using System;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
[XLua.Hotfix]
|
public class DungeonGetXianYuanCoinsBehvaiour : MonoBehaviour
|
{
|
[SerializeField] Text getCoinsText;
|
DungeonModel m_Model;
|
DungeonModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>());
|
}
|
}
|
DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
|
Window window = null;
|
string xianYuanCoinsInfo = string.Empty;
|
DungeonOpenTimeConfig dungeonOpenTime;
|
|
|
private void OnEnable()
|
{
|
SetDisplay();
|
GetParentWindow(this.transform);
|
model.updateMissionEvent += SetDisplay;
|
PlayerDatas.Instance.playerDataRefreshEvent += UpdateVipLv;
|
WindowCenter.Instance.windowBeforeOpenEvent += BeforeOpen;
|
}
|
|
private void OnDisable()
|
{
|
model.updateMissionEvent -= SetDisplay;
|
WindowCenter.Instance.windowBeforeOpenEvent -= BeforeOpen;
|
PlayerDatas.Instance.playerDataRefreshEvent -= UpdateVipLv;
|
}
|
|
private void UpdateVipLv(PlayerDataType type)
|
{
|
if (type != PlayerDataType.VIPLv) return;
|
|
SetDisplay();
|
}
|
|
public void SetDisplay()
|
{
|
dungeonOpenTime = DungeonOpenTimeConfig.Get(PlayerDatas.Instance.baseData.MapID);
|
xianYuanCoinsInfo = string.Empty;
|
if (dungeonOpenTime != null)
|
{
|
if (dungeonOpenTime.FBPoint != 0)
|
{
|
UpdateSocialAdd();
|
string addRatio = string.Empty;
|
bool isVipAddRatio = assistModel.TryGetCurVipAddRatio(out addRatio);
|
if (isVipAddRatio)
|
{
|
xianYuanCoinsInfo = StringUtility.Contact(xianYuanCoinsInfo, "\n", Language.Get("DungeonAssist142", Language.Get("DungeonAssist143", addRatio)));
|
}
|
else
|
{
|
xianYuanCoinsInfo = StringUtility.Contact(xianYuanCoinsInfo, "\n", Language.Get("DungeonAssist142", Language.Get("Market_Text_33")));
|
}
|
getCoinsText.text = xianYuanCoinsInfo;
|
this.gameObject.SetActive(true);
|
}
|
else
|
{
|
this.gameObject.SetActive(false);
|
}
|
}
|
else
|
{
|
this.gameObject.SetActive(false);
|
}
|
|
}
|
|
public void UpdateSocialAdd()
|
{
|
int addCoins = 0;
|
var mission = model.mission;
|
int mapId = PlayerDatas.Instance.baseData.MapID;
|
MapConfig mapConfig = MapConfig.Get(mapId);
|
if(mapConfig.MapFBType != 1)
|
{
|
bool isHelp = mission.isHelp == 1;
|
if(mission.relation != null && mission.relation.Length > 1)
|
{
|
addCoins = mission.relation[1];
|
}
|
if (!isHelp)
|
{
|
if (addCoins > 0)
|
{
|
xianYuanCoinsInfo = Language.Get("DungeonAssist141", StringUtility.Contact(dungeonOpenTime.FBPoint, "+", addCoins));
|
}
|
else
|
{
|
xianYuanCoinsInfo = Language.Get("DungeonAssist141", dungeonOpenTime.FBPoint);
|
}
|
}
|
else
|
{
|
int remainNum = 0;
|
bool isRemain = assistModel.TryGetRemainAssistNum(mapId, out remainNum);
|
if (isRemain)
|
{
|
if(addCoins > 0)
|
{
|
xianYuanCoinsInfo = Language.Get("DungeonAssist147", StringUtility.Contact(dungeonOpenTime.HelpPoint, "+", addCoins));
|
}
|
else
|
{
|
xianYuanCoinsInfo = Language.Get("DungeonAssist147", dungeonOpenTime.HelpPoint);
|
}
|
|
}
|
else
|
{
|
xianYuanCoinsInfo = Language.Get("DungeonAssist147", StringUtility.Contact("+", 0));
|
}
|
}
|
}
|
else
|
{
|
bool isAddCoins = assistModel.TryGetRewardAdd(out addCoins);
|
if (isAddCoins)
|
{
|
xianYuanCoinsInfo = Language.Get("DungeonAssist141", StringUtility.Contact(dungeonOpenTime.FBPoint, "+", addCoins));
|
}
|
else
|
{
|
xianYuanCoinsInfo = Language.Get("DungeonAssist141", dungeonOpenTime.FBPoint);
|
}
|
}
|
|
}
|
|
public void GetParentWindow(Transform obj)
|
{
|
var _window = obj.GetComponent<Window>();
|
if(_window == null)
|
{
|
var parent = obj.transform.parent;
|
GetParentWindow(parent);
|
}
|
else
|
{
|
this.window = _window;
|
}
|
}
|
|
private void BeforeOpen(Window win)
|
{
|
if (window == null || win != window) return;
|
|
SetDisplay();
|
}
|
}
|
}
|