//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, March 21, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; using System; //是否显示XP namespace Snxxz.UI { public class IsShowXpButton:MonoBehaviour { [SerializeField] UIEffect m_UiEffect; List ProhibitedToRelease = new List(); PlayerMainDate m_MainModel; PlayerMainDate onMainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel()); } } private int m_PlayerXpSkillId = 0; private SkillConfig _XpSkill; public void Init() { m_PlayerXpSkillId = ConfigParse.GetDic(FuncConfigConfig.Get("XpSkillID").Numerical1)[PlayerDatas.Instance.baseData.Job];//获取各个职业的XP技能 StorageList(); Skill.OnSkillCDFinished += OnSkillCDFinished; Skill.OnSkillCast += OnSkillCast; PlayerMainDate.Event_XpSkill += OPenXpSkill; int MapIDNow = PlayerDatas.Instance.baseData.MapID; if (ProhibitedToRelease.Contains(MapIDNow)) { this.gameObject.SetActive(false); } else { this.gameObject.SetActive(true); } int SkillID = onMainModel.SkillID; if (SkillID == 0) { return; } _XpSkill = SkillConfig.Get(SkillID); Skill _skill = PlayerDatas.Instance.hero.SkillMgr.Get(_XpSkill.SkillID); if (_skill.IsValid()) { if (!m_UiEffect.IsPlaying) { m_UiEffect.Play(); } } else { if (m_UiEffect.IsPlaying) { m_UiEffect.Stop(); } } } public void Unit() { Skill.OnSkillCDFinished -= OnSkillCDFinished; Skill.OnSkillCast -= OnSkillCast; PlayerMainDate.Event_XpSkill -= OPenXpSkill; } private void OPenXpSkill()//获得技能 { if (onMainModel.SkillID != 0) { if (!m_UiEffect.IsPlaying) { m_UiEffect.Play(); } } } private void OnSkillCast(uint objSID, int obj)//技能释放 { if (objSID != PlayerDatas.Instance.PlayerId) { return; } if (obj != 0 && obj == m_PlayerXpSkillId) { if (m_UiEffect.IsPlaying) { m_UiEffect.Stop(); } } } private void OnSkillCDFinished(int obj)//冷却结束 { if (obj != 0 && obj == m_PlayerXpSkillId) { if (!m_UiEffect.IsPlaying) { m_UiEffect.Play(); } } } private void StorageList() { if (ProhibitedToRelease.Count <= 0) { string str = FuncConfigConfig.Get("XpNoUseDungeon").Numerical1; string[] list = ConfigParse.GetMultipleStr(str);//解析出数组| for (int i = 0; i < list.Length; i++) { ProhibitedToRelease.Add(int.Parse(list[i])); } } } } }