StoryFightTargetView.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. using FairyGUI;
  2. using UnityEngine;
  3. using UI.Main;
  4. namespace GFGGame
  5. {
  6. public class StoryFightTargetView : BaseView
  7. {
  8. private UI_StoryFightTargetUI _ui;
  9. private GameObject _sceneObject;
  10. private GameObject _scenePrefab;
  11. private GameObject _sceneTargetObject;
  12. private GameObject _sceneTargetObj;
  13. private GameObject _sceneNpcObj;
  14. private DressUpObj _targetDressUpObj;
  15. public override void Dispose()
  16. {
  17. if (_sceneObject != null)
  18. {
  19. GameObject.Destroy(_scenePrefab);
  20. _sceneObject = null;
  21. }
  22. if (_sceneTargetObject != null)
  23. {
  24. _sceneTargetObject = null;
  25. }
  26. if (_targetDressUpObj != null)
  27. {
  28. _targetDressUpObj.Dispose();
  29. _targetDressUpObj = null;
  30. }
  31. if (_ui != null)
  32. {
  33. _ui.Dispose();
  34. _ui = null;
  35. }
  36. base.Dispose();
  37. }
  38. protected override void Init()
  39. {
  40. base.Init();
  41. _ui = UI_StoryFightTargetUI.Create();
  42. viewCom = _ui.target;
  43. isfullScreen = true;
  44. _scenePrefab = GFGAsset.Load<GameObject>(ResPathUtil.GetPrefabPath("SceneFightTarget"));
  45. }
  46. protected override void OnInit()
  47. {
  48. base.OnInit();
  49. }
  50. protected override void OnShown()
  51. {
  52. base.OnShown();
  53. if (_sceneObject == null)
  54. {
  55. _sceneObject = GameObject.Instantiate(_scenePrefab);
  56. _sceneTargetObj = _sceneObject.transform.Find("targetRole").gameObject;
  57. _sceneNpcObj = _sceneObject.transform.Find("Npc").gameObject;
  58. _targetDressUpObj = new DressUpObj();
  59. }
  60. _sceneTargetObj.SetActive(false);
  61. _sceneNpcObj.SetActive(true);
  62. MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, true);
  63. FightRoleData roleData = FightDataManager.Instance.roleData;
  64. FightRoleData targetRoleData = null;
  65. FightRobotData targetRobotData = null;
  66. int fightType;
  67. if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena)
  68. {
  69. roleData = ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex];
  70. MyDressUpHelper.dressUpObj.PutOnItemList(ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex].itemList);
  71. ArenaTargetData arenaTarget = ArenaDataManager.Instance.Targets[ArenaDataManager.Instance.SelectTargetIndex];
  72. if (arenaTarget.Type == ArenaFightTargetType.ROBOT)
  73. {
  74. _sceneTargetObj.SetActive(false);
  75. _sceneNpcObj.SetActive(true);
  76. fightType = ArenaFightTargetType.ROBOT;
  77. targetRobotData = ArenaDataManager.Instance.GetArenaRobotData(0, arenaTarget);
  78. _ui.m_targetName.m_txtName.text = targetRobotData.name;
  79. SceneController.UpdateFightTarget(targetRobotData.res, _sceneObject);
  80. }
  81. else
  82. {
  83. _sceneTargetObj.SetActive(true);
  84. _sceneNpcObj.SetActive(false);
  85. fightType = ArenaFightTargetType.PLAYER;
  86. targetRoleData = ArenaDataManager.Instance.GetArenaRoleData(0, arenaTarget);
  87. _targetDressUpObj.setSceneObj(_sceneTargetObj, true, false);
  88. _targetDressUpObj.PutOnItemList(arenaTarget.RoleDressupList[ArenaDataManager.Instance.CurFightIndex].itemList);
  89. _ui.m_targetName.m_txtName.text = targetRoleData.name;
  90. }
  91. string musicName = "fight";
  92. if (!string.IsNullOrEmpty(musicName))
  93. {
  94. MusicManager.Instance.Play(ResPathUtil.GetMusicPath(musicName, "mp3"));
  95. }
  96. }
  97. else
  98. {
  99. MyDressUpHelper.dressUpObj.UpdateRoleView();
  100. _sceneTargetObj.SetActive(false);
  101. _sceneNpcObj.SetActive(true);
  102. fightType = ArenaFightTargetType.ROBOT;
  103. targetRobotData = FightDataManager.Instance.GetFightRobotData();
  104. StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
  105. StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
  106. if (!string.IsNullOrEmpty(fightCfg.music))
  107. {
  108. MusicManager.Instance.Play(ResPathUtil.GetMusicPath(fightCfg.music, "mp3"));
  109. }
  110. SceneController.UpdateFightTarget(targetRobotData.res, _sceneObject);
  111. _ui.m_targetName.m_txtName.text = targetRobotData.name;
  112. }
  113. _ui.m_roleName.m_txtName.text = RoleDataManager.roleName;
  114. Timers.inst.Add(1.1f, 1, (object param) =>
  115. {
  116. this.Hide();
  117. ViewManager.Show<StoryFightTargetScoreView>(new object[] { fightType, roleData, targetRoleData, targetRobotData });
  118. });
  119. }
  120. protected override void OnHide()
  121. {
  122. base.OnHide();
  123. if (_sceneObject != null)
  124. {
  125. GameObject.Destroy(_sceneObject);
  126. _sceneObject = null;
  127. }
  128. if (_sceneTargetObject != null)
  129. {
  130. GameObject.Destroy(_sceneTargetObject);
  131. _sceneTargetObject = null;
  132. }
  133. }
  134. }
  135. }