using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class TreasureSkillCell : CellView
|
{
|
[SerializeField] Image m_SkillIcon;
|
[SerializeField] Text m_SkillName;
|
[SerializeField] Text m_SkillLevel;
|
[SerializeField] Transform m_ContainerLock;
|
[SerializeField] Text m_SkillCondition;
|
[SerializeField] Transform m_ContainerReiki;
|
[SerializeField] Text m_ReikiNone;
|
[SerializeField] Image m_ReikiIcon;
|
[SerializeField] Transform m_ContainerSelect;
|
[SerializeField] Button m_Func;
|
[SerializeField] RedpointBehaviour m_Redpoint;
|
|
int skillId;
|
|
TreasureSkillModel model
|
{
|
get { return ModelCenter.Instance.GetModel<TreasureSkillModel>(); }
|
}
|
|
TreasureModel treasureModel
|
{
|
get { return ModelCenter.Instance.GetModel<TreasureModel>(); }
|
}
|
|
private void Awake()
|
{
|
m_Func.onClick.AddListener(OnFunc);
|
}
|
|
public void Display(int skillId)
|
{
|
this.skillId = skillId;
|
|
DisplayBase();
|
|
var treasureId = treasureModel.GetTreasureBySkillId(skillId);
|
|
var isSkillUnlock = false;
|
TreasureSkill treasureSkill;
|
if (model.TryGetSkill(skillId, out treasureSkill))
|
{
|
isSkillUnlock = treasureSkill.level > 0;
|
m_SkillLevel.text = string.Empty;// StringUtility.Contact("LV.", treasureSkill.level);
|
m_Redpoint.redpointId = treasureSkill.redpoint.id;
|
}
|
|
m_ContainerLock.SetActive(!isSkillUnlock);
|
m_SkillIcon.material = isSkillUnlock ? MaterialUtility.GetUIDefaultGraphicMaterial() :
|
MaterialUtility.GetDefaultSpriteGrayMaterial();
|
m_ContainerSelect.SetActive(skillId == model.selectSkill);
|
m_SkillLevel.SetActive(isSkillUnlock);
|
|
m_ContainerReiki.SetActive(isSkillUnlock);
|
if (isSkillUnlock)
|
{
|
var expertSkill = 0;
|
if (model.TryGetExpertSkill(skillId, out expertSkill))
|
{
|
m_ReikiNone.SetActive(false);
|
m_ReikiIcon.SetActive(true);
|
var skillConfig = SkillConfig.Get(expertSkill);
|
m_ReikiIcon.SetSprite("XT_LG_" + skillConfig.RequireProperty());
|
}
|
else
|
{
|
m_ReikiNone.SetActive(true);
|
m_ReikiIcon.SetActive(false);
|
}
|
}
|
}
|
|
void DisplayBase()
|
{
|
var config = SkillConfig.Get(skillId);
|
m_SkillIcon.SetSprite(config.IconName);
|
m_SkillName.text = config.SkillName;
|
|
var treasureId = treasureModel.GetTreasureBySkillId(skillId);
|
var treasureConfig = TreasureConfig.Get(treasureId);
|
switch ((TreasureCategory)treasureConfig.Category)
|
{
|
case TreasureCategory.Human:
|
m_SkillCondition.text = Language.Get("TreasureSkillUnlock", treasureConfig.Name);
|
break;
|
case TreasureCategory.Fairy:
|
if (treasureModel.fairyTreasureGetDict.ContainsKey(treasureId))
|
{
|
m_SkillCondition.text = Language.Get("FairyTreasure_1", treasureModel.fairyTreasureGetDict[treasureId]);
|
}
|
break;
|
}
|
}
|
|
private void OnFunc()
|
{
|
if (TreasureSkillWin.autoSelectSkill != 0)
|
{
|
return;
|
}
|
|
TreasureSkill skill;
|
if (model.TryGetSkill(skillId, out skill))
|
{
|
if (skill.level > 0)
|
{
|
model.selectSkill = skillId;
|
}
|
else
|
{
|
var treasureId = treasureModel.GetTreasureBySkillId(skillId);
|
var treasureConfig = TreasureConfig.Get(treasureId);
|
switch ((TreasureCategory)treasureConfig.Category)
|
{
|
case TreasureCategory.Human:
|
SysNotifyMgr.Instance.ShowTip("TreasureSkillUnlock", treasureConfig.Name);
|
break;
|
case TreasureCategory.Fairy:
|
if (treasureModel.fairyTreasureGetDict.ContainsKey(treasureId))
|
{
|
SysNotifyMgr.Instance.ShowTip("TreasureSkillUnlock_Vip", treasureModel.fairyTreasureGetDict[treasureId]);
|
}
|
break;
|
}
|
}
|
}
|
}
|
}
|
}
|
|