using FairyGUI; using UnityEngine; using UI.Main; using System.Collections.Generic; using cfg.GfgCfg; using ET; namespace GFGGame { public class StoryFightTargetView : BaseView { private UI_StoryFightTargetUI _ui; private GameObject _sceneObject; private GameObject _sceneTargetObject; private GameObject _sceneTargetObj; private GameObject _sceneNpcObj; private DressUpObj _targetDressUpObj; public override void Dispose() { if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } if (_sceneTargetObject != null) { _sceneTargetObject = null; } if (_targetDressUpObj != null) { _targetDressUpObj.Dispose(); _targetDressUpObj = null; } if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void Init() { base.Init(); _ui = UI_StoryFightTargetUI.Create(); viewCom = _ui.target; isfullScreen = true; //isReturnView = true; } protected override void OnInit() { base.OnInit(); } protected override void OnShown() { base.OnShown(); if (_sceneObject == null) { PrefabManager.Instance.InstantiateAsync(ResPathUtil.GetPrefabPath("SceneFightTarget"), (gameObj) => { _sceneObject = gameObj; _sceneTargetObj = _sceneObject.transform.Find("targetRole").gameObject; _sceneNpcObj = _sceneObject.transform.Find("Npc").gameObject; _targetDressUpObj = new DressUpObj(); _sceneTargetObj.SetActive(false); _sceneNpcObj.SetActive(true); MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, true, true, null, false); FightData roleFightData = null; FightData targetFightData = null; if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena) { roleFightData = ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex]; MyDressUpHelper.dressUpObj.PutOnItemList(ArenaDataManager.Instance .DressupList[ArenaDataManager.Instance.CurFightIndex].itemList); targetFightData = ArenaDataManager.Instance .LastTargets[ArenaDataManager.Instance.SelectTargetIndex].FightDatas[0]; _ui.m_targetName.m_txtName.text = targetFightData.name; _sceneTargetObj.SetActive(true); _sceneNpcObj.SetActive(false); _targetDressUpObj.setSceneObj(_sceneTargetObj, true, false, null, false); if (targetFightData.type == FightTargetType.ROBOT) { _targetDressUpObj.PutOnSuitCfg(targetFightData.showSuitId, false, new int[] { ConstDressUpItemType.BEI_JING }, true, false); } else { _targetDressUpObj.PutOnItemList(targetFightData.itemList); } } else { roleFightData = InstanceZonesDataManager.roleData; _sceneTargetObj.SetActive(false); _sceneNpcObj.SetActive(true); targetFightData = InstanceZonesDataManager.GetFightTargetData(); _ui.m_targetName.m_txtName.text = targetFightData.name; SceneController.UpdateFightTarget(targetFightData.res, _sceneObject); } _ui.m_roleName.m_txtName.text = roleFightData.name; Timers.inst.Add(1.1f, 1, (object param) => { if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena) { MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath("fight", "mp3")); } else { StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager .currentLevelCfgId); StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID)); if (!string.IsNullOrEmpty(fightCfg.Music)) { MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(fightCfg.Music, "mp3")); } } ViewManager.Show(new object[] { roleFightData, targetFightData }); this.Hide(); }); }); return; } _sceneTargetObj.SetActive(false); _sceneNpcObj.SetActive(true); MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, true, true, null, false); FightData roleFightData = null; FightData targetFightData = null; if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena) { roleFightData = ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex]; MyDressUpHelper.dressUpObj.PutOnItemList(ArenaDataManager.Instance .DressupList[ArenaDataManager.Instance.CurFightIndex].itemList); targetFightData = ArenaDataManager.Instance.LastTargets[ArenaDataManager.Instance.SelectTargetIndex] .FightDatas[0]; _ui.m_targetName.m_txtName.text = targetFightData.name; _sceneTargetObj.SetActive(true); _sceneNpcObj.SetActive(false); _targetDressUpObj.setSceneObj(_sceneTargetObj, true, false, null, false); if (targetFightData.type == FightTargetType.ROBOT) { _targetDressUpObj.PutOnSuitCfg(targetFightData.showSuitId, false, new int[] { ConstDressUpItemType.BEI_JING }, true, false); } else { _targetDressUpObj.PutOnItemList(targetFightData.itemList); } } else { roleFightData = InstanceZonesDataManager.roleData; _sceneTargetObj.SetActive(false); _sceneNpcObj.SetActive(true); targetFightData = InstanceZonesDataManager.GetFightTargetData(); _ui.m_targetName.m_txtName.text = targetFightData.name; SceneController.UpdateFightTarget(targetFightData.res, _sceneObject); } _ui.m_roleName.m_txtName.text = roleFightData.name; Timers.inst.Add(1.1f, 1, (object param) => { if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena) { MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath("fight", "mp3")); } else { StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager .currentLevelCfgId); StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID)); if (!string.IsNullOrEmpty(fightCfg.Music)) { MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(fightCfg.Music, "mp3")); } } ViewManager.Show(new object[] { roleFightData, targetFightData }); this.Hide(); }); } protected override void OnHide() { base.OnHide(); if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } if (_sceneTargetObject != null) { PrefabManager.Instance.Restore(_sceneTargetObject); _sceneTargetObject = null; } } } }