using System.Collections;
|
using System.Collections.Generic;
|
using TableConfig;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class TreasureUnlockCell : CellView
|
{
|
[SerializeField] Image m_Icon;
|
[SerializeField] Text m_Func;
|
[SerializeField] Image m_Cutline;
|
[SerializeField] Button m_Button;
|
|
TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
|
public void Display(int id, int stage)
|
{
|
m_Button.RemoveAllListeners();
|
Treasure treasure;
|
if (model.TryGetTreasure(id, out treasure))
|
{
|
var treasureStage = treasure.treasureStages.Find((x) =>
|
{
|
return x.stage == stage;
|
});
|
bool last = true;
|
for (int i = 0; i < treasure.treasureStages.Count; i++)
|
{
|
var _stage = treasure.treasureStages[i];
|
if (stage < _stage.stage &&
|
(_stage.unlockType == TreasureStageUnlock.Func || _stage.unlockType == TreasureStageUnlock.Skill
|
|| _stage.unlockType == TreasureStageUnlock.Treasure || _stage.unlockType == TreasureStageUnlock.TreasureSoul))
|
{
|
last = false;
|
break;
|
}
|
}
|
m_Cutline.gameObject.SetActive(!last);
|
if (treasureStage != null)
|
{
|
switch (treasureStage.unlockType)
|
{
|
case TreasureStageUnlock.Skill:
|
var skillConfig = Config.Instance.Get<SkillConfig>(treasureStage.GetSkill(PlayerDatas.Instance.baseData.Job));
|
if (skillConfig != null)
|
{
|
m_Icon.SetSprite(skillConfig.IconName);
|
m_Func.text = Language.Get("TreasureUnlockNewSkill");
|
}
|
break;
|
case TreasureStageUnlock.Func:
|
var funcConfig = Config.Instance.Get<FuncOpenLVConfig>(treasureStage.func);
|
if (funcConfig != null)
|
{
|
m_Icon.SetSprite(funcConfig.Icon);
|
m_Func.text = Language.Get("TreasureUnlockNewFunc");
|
}
|
break;
|
case TreasureStageUnlock.Treasure:
|
var treasureConfig = Config.Instance.Get<TreasureConfig>(treasureStage.treasure);
|
if (treasureConfig != null)
|
{
|
m_Icon.SetSprite(treasureConfig.Icon);
|
m_Func.text = Language.Get("TreasureUnlockNewTreasure");
|
}
|
break;
|
case TreasureStageUnlock.TreasureSoul:
|
var treasureSoulConfig = Config.Instance.Get<TreasurePrivilegeConfig>(treasureStage.treasureSoul);
|
if (treasureSoulConfig != null)
|
{
|
m_Icon.SetSprite(treasureSoulConfig.Icon);
|
m_Func.text = Language.Get("TreasureUnlockNewTreasureSoul");
|
}
|
break;
|
}
|
m_Button.AddListener(() =>
|
{
|
if (model.treasureStepUpShow)
|
{
|
return;
|
}
|
model.selectedStage = treasureStage.stage;
|
if (!WindowCenter.Instance.CheckOpen<TreasureStageTipWin>())
|
{
|
TreasureStageTipWin.SetTargetPosition(m_Button.transform as RectTransform);
|
WindowCenter.Instance.Open<TreasureStageTipWin>();
|
}
|
});
|
}
|
}
|
}
|
}
|
}
|