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();
- }
- }
- }
|