using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class TreasureDemonBehaviour : MonoBehaviour { [SerializeField] Text m_TreasureDescription; [SerializeField] RectTransform m_ContainerFightPower; [SerializeField] Text m_FightPower; [SerializeField] RectTransform m_ContainerLimit; [SerializeField] Text m_Limit; [SerializeField] RectTransform m_ContainerSkill; [SerializeField] Image m_SkillIcon; [SerializeField] Text m_SkillName; [SerializeField] Text m_SkillEffect; [SerializeField] Text m_SkillDescrition; TreasureModel m_Model; TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } Treasure m_Treasure; private void OnEnable() { model.treasureStateChangeEvent += TreasureStateChangeEvent; } private void TreasureStateChangeEvent(int _id) { if (_id == m_Treasure.id) { Display(_id); } } private void OnDisable() { model.treasureStateChangeEvent -= TreasureStateChangeEvent; } public void Display(int _id) { model.TryGetTreasure(_id, out m_Treasure); if (m_Treasure == null) { return; } var config = TreasureConfig.Get(_id); m_TreasureDescription.text = config.Story; var demonRecommondCfg = DemonRecommondPropertyConfig.Get(_id); var myPower = PlayerDatas.Instance.baseData.FightPoint; m_ContainerLimit.SetActive(m_Treasure.state == TreasureState.Locked); m_ContainerFightPower.SetActive(m_Treasure.state == TreasureState.Collected); if (m_Treasure.state == TreasureState.Locked) { if (config.PreTreasure == 0) { var levelLimitHint = UIHelper.AppendColor( PlayerDatas.Instance.baseData.LV >= config.ChallengeLevel ? TextColType.Green : TextColType.Red, config.ChallengeLevel.ToString(), true); m_Limit.text = Language.Get("TreasureLevelLimit", levelLimitHint); } else { var levelLimitHint = UIHelper.AppendColor( PlayerDatas.Instance.baseData.LV >= config.ChallengeLevel ? TextColType.Green : TextColType.Red, config.ChallengeLevel.ToString(), true); var preTreasureConfig = TreasureConfig.Get(config.PreTreasure); var treasureLimitHint = UIHelper.AppendColor( m_Treasure.state == TreasureState.Collecting ? TextColType.Green : TextColType.Red, preTreasureConfig.Name, true); m_Limit.text = Language.Get("TreasureLvLimit", levelLimitHint, treasureLimitHint); } } var skillConfig = SkillConfig.Get(m_Treasure.skillId); m_ContainerSkill.SetActive(skillConfig != null); if (skillConfig != null) { m_SkillIcon.SetSprite(skillConfig.IconName); m_SkillName.text = skillConfig.SkillName; m_SkillDescrition.text = skillConfig.Description; m_SkillEffect.text = skillConfig.HurtType == 1 ? "PVP" : skillConfig.HurtType == 2 ? "PVE" : string.Empty; var fightPower = 0; TreasureDungeon treasureDungeon; if (model.TryGetTreasureDungeon(_id, out treasureDungeon)) { var dungeonInfo = treasureDungeon.Get(treasureDungeon.maxLevel); if (!dungeonInfo.Equals(default(TreasureDungeonInfo))) { fightPower += UIHelper.GetFightPower(dungeonInfo.propertyDict); } } fightPower += skillConfig.FightPower; m_FightPower.text = fightPower.ToString(); } else { m_FightPower.text = string.Empty; } if (m_Treasure.id == 201 && m_Treasure.state == TreasureState.Collecting && !NewBieCenter.Instance.completeGuidesBuf.Contains(88)) { //NewBieCenter.Instance.StartNewBieGuide(88); } } } }