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(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel(); } } 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); } } } } } }