| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 | using FairyGUI;using UnityEngine;using UI.Main;using System.Collections;using System.Collections.Generic;using ET;namespace GFGGame{    public struct StoryFightResultData    {        public bool Result;        public int Score;        public int Star;        public bool FirstPass;        public List<ItemData> BonusList;    }    public class StroyFightResultView : BaseView    {        private UI_StoryFightResultUI _ui;        private GameObject _sceneObject;        private GameObject _scenePrefab;        private GameObject _gameObject;        private GameObject _gameObject1;        private GoWrapper _wrapper;        private GoWrapper _wrapper1;        private StoryLevelCfg _levelCfg;        private StoryFightResultData _resultData;        public override void Dispose()        {            SceneController.DestroyObjectFromView(_gameObject, _wrapper);            SceneController.DestroyObjectFromView(_gameObject1, _wrapper1);            if (_sceneObject != null)            {                GameObject.Destroy(_sceneObject);                _sceneObject = null;            }            if (_ui != null)            {                _ui.Dispose();            }            _ui = null;            base.Dispose();        }        protected override void Init()        {            base.Init();            _ui = UI_StoryFightResultUI.Create();            viewCom = _ui.target;            isfullScreen = true;            _scenePrefab = GFGAsset.Load<GameObject>(ResPathUtil.GetPrefabPath("SceneFightResult"));        }        protected override void OnInit()        {            base.OnInit();            _ui.m_btnClose.enabled = false;            _ui.m_btnClose.onClick.Add(OnClickBtnClose);            _ui.m_loaBg.url = ResPathUtil.GetFightBgImgPath("fightBg");        }        protected override void OnShown()        {            base.OnShown();            _resultData = (StoryFightResultData)this.viewData;            InstanceZonesDataManager.usedRecommend = false;            InstanceZonesDataManager.isResultFighting = true;            NTexture nTexture = new NTexture(EquipDataCache.cacher.RoleTextuex);            _ui.m_comRoleResult.m_c1.selectedIndex = _resultData.Star;            _ui.m_comRoleResult.m_comRole.m_imgRole.SetSize(GRoot.inst.width, GRoot.inst.height);            _ui.m_comRoleResult.m_comRole.m_imgRole.texture = nTexture;            _ui.m_comRoleResult.m_comRole.m_imgRole.alpha = 1;            _ui.m_comResult.m_c1.selectedIndex = _resultData.Star;            _ui.m_comResult.m_txtScore.text = "" + _resultData.Score;            _ui.m_comExpBar.m_txtLvl.text = string.Format("等级 {0}", GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl));            _levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);            if (!this._resultData.Result)            {                _ui.m_comExpBar.target.visible = false;                _ui.m_btnClose.enabled = true;                InstanceZonesDataManager.isResultFighting = false;            }            else            {                _ui.m_comExpBar.target.visible = true;                _ui.m_btnClose.enabled = false;                //过关                StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(_levelCfg.fightID);                _ui.m_comExpBar.m_txtLvlAdded.text = string.Format("经验值:+{0}", fightCfg.exp);            }            if (_levelCfg.type == ConstInstanceZonesType.Field)            {                _ui.m_comExpBar.target.visible = false;                Timers.inst.Add(3, 1, OnClickBtnClose);            }            GetCurStar(out Transition transition);            _ui.m_t0.Play();//播放重置动画            _ui.m_comRoleResult.m_t0.Play();//播放重置动画            _ui.m_comRoleResult.m_comRole.m_t0.Play(() =>            {                transition.Play(() =>                {                    _ui.m_t1.Play(AddExp);                });            });        }        private void GetCurStar(out Transition transition)        {            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);            transition = _ui.m_comRoleResult.m_t0;            if (_resultData.Star == 1)            {                transition = _ui.m_comRoleResult.m_t1;            }            else if (_resultData.Star == 2)            {                transition = _ui.m_comRoleResult.m_t2;            }            else if (_resultData.Star == 3)            {                transition = _ui.m_comRoleResult.m_t3;            }        }        protected override void OnHide()        {            base.OnHide();            InstanceZonesDataManager.isResultFighting = false;            // Timers.inst.Remove(AddExp);            if (_sceneObject != null)            {                GameObject.Destroy(_sceneObject);                _sceneObject = null;            }            MusicManager.Instance.Play(ResPathUtil.GetMusicPath(ConstMusicName.DEFAULT));            _ui.m_comResult.target.height = 0;            _ui.m_comExpBar.target.alpha = 0;            _ui.m_t1.Stop(true, false);        }        private async void OnClickBtnClose(object param)        {            this.Hide();            if (_levelCfg.type == ConstInstanceZonesType.Field)            {                Timers.inst.Remove(OnClickBtnClose);                if (!this._resultData.Result || FieldDataManager.Instance.currFightLv == FieldCfgArray.Instance.GetCfg(FieldDataManager.Instance.chapterId).num)                {                    ViewManager.Show<FieldView>();                    if (FieldDataManager.Instance.currFightLv <= 1) return;                    bool result = await FieldSProxy.ReqFieldInstanceResult();                    if (result)                    {                        ViewManager.Show<FieldFightEndView>();                    }                }                else                {                    ViewManager.Show<FieldView>();                    ViewManager.Show<FieldFightInfoView>();                }            }            else            {                InstanceZonesController.OnFinishStoryLevel(InstanceZonesDataManager.currentLevelCfgId, _resultData.FirstPass, true);                //尝试显示奖励                BonusController.TryShowBonusList(_resultData.BonusList);            }            InstanceZonesDataManager.currentCardId = -1;        }        private void AddExp()        {            int lv = GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl);            _ui.m_comExpBar.m_txtLvl.text = string.Format("等级 {0}", GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl));            float exp = GameGlobal.myNumericComponent.GetAsInt(NumericType.Exp);            float cfgExp = RoleLevelCfgArray.Instance.GetCfg(lv).exp;            float initWidth = _ui.m_comExpBar.m_pbExp.m_bar.target.initWidth;            float curWidth = _ui.m_comExpBar.m_pbExp.m_bar.target.width;            float width = exp / cfgExp * initWidth;            if (width <= curWidth)            {                _ui.m_comExpBar.m_pbExp.m_bar.target.width = 0;            }            GTween.To(_ui.m_comExpBar.m_pbExp.m_bar.target.width, width, 0.2f).SetTarget(_ui.m_comExpBar.m_pbExp.m_bar).OnUpdate((GTweener t) =>                {                    _ui.m_comExpBar.m_pbExp.m_bar.target.width = t.value.x;                }).OnComplete(() =>                {                    InstanceZonesDataManager.isResultFighting = false;                }); ;            // _ui.m_expBar.m_pbExp..TweenValue(exp, 0.2f);            _ui.m_btnClose.enabled = true;            UpdateToCheckGuide(null);        }    }}
 |