using System; using System.Collections.Generic; using FairyGUI; using UI.Main; using UnityEngine; namespace GFGGame { public class StorySkillView : BaseView { private UI_StorySkillUI _ui; private Dictionary skillScoreDic; private EffectUI _effectUI1; private EffectUI _effectUI2; public override void Dispose() { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui = UI_StorySkillUI.Create(); viewCom = _ui.target; isfullScreen = true; // this.modal = false; _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_comSkillShow.m_holderBottom, "ui_fight_new", "CFKP_TX_down"); _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_comSkillShow.m_holderTop, "ui_fight_new", "CFKP_TX_up"); _ui.m_comSkillShow.m_t0.ignoreEngineTimeScale = false; _ui.m_comSkillShow.m_t1.ignoreEngineTimeScale = false; _ui.m_t1.ignoreEngineTimeScale = false; } protected override void OnShown() { base.OnShown(); skillScoreDic = this.viewData as Dictionary; UpdateView(); } private void UpdateView() { if (skillScoreDic.Count > 0) { int skillId = 0; foreach (int key in skillScoreDic.Keys) { skillId = key; break; } PassivitySkillCfg skillCfg = PassivitySkillCfgArray.Instance.GetCfg(skillId); _ui.m_comSkillShow.m_txtName.text = skillCfg.name; _ui.m_comSkillShow.m_ComSkillScore.m_txtCount.SetVar("value", skillScoreDic[skillId].ToString()).FlushVars(); _ui.m_comSkillShow.m_ComSkillScore.m_txtCount1.SetVar("value", Math.Abs(skillScoreDic[skillId]).ToString()).FlushVars(); _ui.m_comSkillShow.m_ComSkillScore.m_c1.selectedIndex = skillScoreDic[skillId] >= 0 ? 0 : 1; string res = skillCfg.res; res = ItemCfgArray.Instance.GetCfg(skillCfg.cardId).res; _ui.m_comSkillShow.m_comSkillCard.m_comCard.m_loaCard.url = ResPathUtil.GetCardPath(res); _ui.m_comSkillShow.m_t0.timeScale = FightDataManager.Instance.fightSpeed; _ui.m_comSkillShow.m_t0.Play(() => { if (skillScoreDic[skillId] > 0) { _ui.m_comSkillShow.m_t1.timeScale = FightDataManager.Instance.fightSpeed; _ui.m_comSkillShow.m_t1.Play(() => { skillScoreDic.Remove(skillId); UpdateView(); }); } else { _ui.m_t1.timeScale = FightDataManager.Instance.fightSpeed; _ui.m_t1.Play(() => { skillScoreDic.Remove(skillId); UpdateView(); }); } }); } else { this.Hide(); } } protected override void OnHide() { base.OnHide(); _ui.m_comSkillShow.m_t0.Stop(true, false); _ui.m_comSkillShow.m_t1.Stop(true, false); _ui.m_t1.Stop(true, false); _ui.m_t2.Play(); EventAgent.DispatchEvent(ConstMessage.SHOW_CARD_SKILL_END); } } }