| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 | 
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<int, int> skillScoreDic;        //private EffectUI _effectUI1;        //private EffectUI _effectUI2;        private EffectUI _effectUI3;        private EffectUI _effectUI4;        private EffectUI _effectUI5;        private bool isFirst;        private GameObject mainCamera;        private GameObject stageCamera;        public override void Dispose()        {            //EffectUIPool.Recycle(_effectUI1);            //_effectUI1 = null;            //EffectUIPool.Recycle(_effectUI2);            //_effectUI2 = null;            EffectUIPool.Recycle(_effectUI3);            _effectUI3 = null;            EffectUIPool.Recycle(_effectUI4);            _effectUI4 = null;            EffectUIPool.Recycle(_effectUI5);            _effectUI5 = 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");            _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_addScore, "ui_fight_new", "CFKP_UP");            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_reduceScore, "ui_fight_new", "CFKP_Down");            _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_effReduceScore, "ui_fight_new", "CFKP_Down_end");            _ui.m_comSkillShow.m_t0.ignoreEngineTimeScale = false;            _ui.m_comSkillShow.m_t1.ignoreEngineTimeScale = false;            _ui.m_t1.ignoreEngineTimeScale = false;            isFirst = true;        }        protected override void OnShown()        {            base.OnShown();            skillScoreDic = this.viewData as Dictionary<int, int>;            _ui.m_effReduceScore.visible = false;            _ui.m_SkillScore.visible = false;            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;                _ui.m_SkillScore.SetVar("value", skillScoreDic[skillId].ToString()).FlushVars();                _ui.m_reduceTxt.SetVar("value", skillScoreDic[skillId].ToString()).FlushVars();                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();                        });                    }                });                //战斗卡牌特效处理                Timers.inst.Add(0.5f, 1, SetEffVisible);            }            //else            {                //this.Hide();                Timers.inst.Add(2.2f, 1, AutoHide);            }        }        protected override void OnHide()        {            base.OnHide();                _ui.m_addScore.visible = false;                _ui.m_reduceScore.visible = false;                if (_ui.m_effReduceScore != null)                {                    _ui.m_effReduceScore.visible = false;                }            SetCamera(false);            Timers.inst.Remove(SetEffReduceScore);            Timers.inst.Remove(SetEffVisible);			Timers.inst.Remove(AutoHide);            _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);        }        private void SetEffReduceScore(object param)        {            _ui.m_effReduceScore.visible = true;            _ui.m_t3.Play();           }                private void SetEffVisible(object param)        {            if (skillScoreDic.Count == 0)            {                return;            }            int skillId = 0;            foreach (int key in skillScoreDic.Keys)            {                skillId = key;                break;            }            //战斗卡牌特效处理            if (skillScoreDic[skillId] > 0)            {                _ui.m_SkillScore.color = new Color(0.973f, 0.784f, 0.431f, 1.000f);                _ui.m_reduceScore.visible = false;                _ui.m_addScore.visible = true;                _ui.m_SkillScore.visible = true;                _ui.m_t4.Play();                SetCamera(true);            }            else if (skillScoreDic[skillId] < 0)            {                _ui.m_SkillScore.color = new Color(0.906f, 0.894f, 0.894f, 1.000f);                _ui.m_addScore.visible = false;                _ui.m_reduceScore.visible = true;                _ui.m_SkillScore.visible = false;                Timers.inst.Add(1.5f, 1, SetEffReduceScore);            }        }        private void SetCamera(bool isshake)        {            if (isFirst)            {                mainCamera = Camera.main.gameObject;                mainCamera.AddComponent<SC_shakeCamera>();                mainCamera.AddComponent<shakecameraControl>();                stageCamera = GameObject.Find("Stage Camera").gameObject;                stageCamera.AddComponent<SC_shakeCamera>();                stageCamera.AddComponent<shakecameraControl>();                mainCamera.GetComponent<SC_shakeCamera>().enabled = false;                mainCamera.GetComponent<shakecameraControl>().enabled = false;                stageCamera.GetComponent<SC_shakeCamera>().enabled = false;                stageCamera.GetComponent<shakecameraControl>().enabled = false;                isFirst = false;            }            if (isshake)            {                mainCamera.GetComponent<SC_shakeCamera>().enabled = true;                mainCamera.GetComponent<shakecameraControl>().enabled = true;                stageCamera.GetComponent<SC_shakeCamera>().enabled = true;                stageCamera.GetComponent<shakecameraControl>().enabled = true;            }            else            {                mainCamera.GetComponent<SC_shakeCamera>().enabled = false;                mainCamera.GetComponent<shakecameraControl>().enabled = false;                stageCamera.GetComponent<SC_shakeCamera>().enabled = false;                stageCamera.GetComponent<shakecameraControl>().enabled = false;            }        }        private void AutoHide(object param = null)        {            this.Hide();        }    }}
 |