using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.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 = StringUtility.Contact("LV.", treasureSkill.level);
|
m_Redpoint.redpointId = treasureSkill.redpoint.id;
|
}
|
|
m_ContainerLock.gameObject.SetActive(!isSkillUnlock);
|
m_SkillIcon.material = isSkillUnlock ? MaterialUtility.GetUIDefaultGraphicMaterial() :
|
MaterialUtility.GetDefaultSpriteGrayMaterial();
|
m_ContainerSelect.gameObject.SetActive(skillId == model.selectSkill);
|
m_SkillLevel.gameObject.SetActive(isSkillUnlock);
|
|
m_ContainerReiki.gameObject.SetActive(isSkillUnlock);
|
if (isSkillUnlock)
|
{
|
var expertSkill = 0;
|
if (model.TryGetExpertSkill(skillId, out expertSkill))
|
{
|
m_ReikiNone.gameObject.SetActive(false);
|
m_ReikiIcon.gameObject.SetActive(true);
|
var skillConfig = SkillConfig.Get(expertSkill);
|
m_ReikiIcon.SetSprite("XT_LG_" + skillConfig.RequireProperty());
|
}
|
else
|
{
|
m_ReikiNone.gameObject.SetActive(true);
|
m_ReikiIcon.gameObject.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);
|
if (treasureConfig != null)
|
{
|
m_SkillCondition.text = Language.Get("TreasureSkillUnlock", treasureConfig.Name);
|
}
|
}
|
|
private void OnFunc()
|
{
|
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);
|
if (treasureConfig != null)
|
{
|
SysNotifyMgr.Instance.ShowTip("TreasureSkillUnlock", treasureConfig.Name);
|
}
|
}
|
}
|
}
|
}
|
}
|