PlayerExecuteTools.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. using System;
  2. using UnityEngine;
  3. public class PlayerExecuteTools
  4. {
  5. private PlayerAction player
  6. {
  7. get
  8. {
  9. return R.Player.Action;
  10. }
  11. }
  12. public void SpecicalEnemyQTE(Transform enemy)
  13. {
  14. EnemyType enemyType = EnemyGenerator.GetEnemyType(enemy.name.Replace("(Clone)", string.Empty));
  15. switch (enemyType)
  16. {
  17. case EnemyType.跳拳大脚组合:
  18. this.JumperFooterQTE(enemy);
  19. return;
  20. case EnemyType.锤子:
  21. case EnemyType.巨柱:
  22. case EnemyType.锤子精英版:
  23. case EnemyType.巨柱精英版:
  24. this.StickerHammerQTE(enemy);
  25. return;
  26. case EnemyType.巨型机器人:
  27. this.RiantRobotQTE(enemy);
  28. return;
  29. case EnemyType.骑兵改:
  30. goto IL_AE;
  31. case EnemyType.卡洛斯:
  32. case EnemyType.卡洛斯精英版:
  33. this.EatingBossQTE(enemy);
  34. return;
  35. default:
  36. switch (enemyType)
  37. {
  38. case EnemyType.骑兵:
  39. goto IL_AE;
  40. case EnemyType.蜜蜂:
  41. return;
  42. case EnemyType.达哈尔:
  43. break;
  44. case EnemyType.暴食:
  45. goto IL_A2;
  46. default:
  47. return;
  48. }
  49. break;
  50. case EnemyType.愚笨蜘蛛:
  51. case EnemyType.愚笨蜘蛛精英版:
  52. this.SpiderQTE(enemy);
  53. return;
  54. case EnemyType.杰克:
  55. case EnemyType.杰克精英版:
  56. this.JackQTE(enemy);
  57. return;
  58. case EnemyType.犹大:
  59. this.JudgesQTE(enemy);
  60. return;
  61. case EnemyType.达哈尔终极版:
  62. case EnemyType.达哈尔精英版:
  63. break;
  64. case EnemyType.暴食Boss版:
  65. goto IL_A2;
  66. }
  67. this.DahalQTE(enemy);
  68. return;
  69. IL_A2:
  70. this.BeelzebubQTE(enemy);
  71. return;
  72. IL_AE:
  73. this.RiderQTE(enemy);
  74. }
  75. private void RiderQTE(Transform rider)
  76. {
  77. EnemyBaseHurt component = rider.GetComponent<EnemyBaseHurt>();
  78. int currentPhase = component.currentPhase;
  79. if (currentPhase != 0)
  80. {
  81. if (currentPhase == 1)
  82. {
  83. this.SpecialEnemyExecute(rider, PlayerAction.StateEnum.RiderQTEHurt_1, 1f);
  84. }
  85. }
  86. else
  87. {
  88. this.SpecialEnemyQTEHurt(rider, PlayerAction.StateEnum.RiderQTEHurt_1, 1f);
  89. }
  90. }
  91. private void BeelzebubQTE(Transform beelzebub)
  92. {
  93. BeelzebubHurt component = beelzebub.GetComponent<BeelzebubHurt>();
  94. int currentPhase = component.currentPhase;
  95. if (currentPhase != 0)
  96. {
  97. if (currentPhase == 1)
  98. {
  99. this.SpecialEnemyExecute(beelzebub, PlayerAction.StateEnum.AtkHv4, 1f);
  100. }
  101. }
  102. else
  103. {
  104. this.SpecialEnemyQTEHurt(beelzebub, PlayerAction.StateEnum.BeelzebubQTECatch, 1f);
  105. }
  106. }
  107. private void DahalQTE(Transform dahal)
  108. {
  109. EnemyBaseHurt component = dahal.GetComponent<EnemyBaseHurt>();
  110. int currentPhase = component.currentPhase;
  111. if (currentPhase != 0)
  112. {
  113. if (currentPhase == 1)
  114. {
  115. this.SpecialEnemyExecute(dahal, PlayerAction.StateEnum.DahalAtkUpRising, 1f);
  116. }
  117. }
  118. else
  119. {
  120. this.SpecialEnemyQTEHurt(dahal, PlayerAction.StateEnum.Disappear, 1f);
  121. }
  122. }
  123. private void JumperFooterQTE(Transform jumperFooter)
  124. {
  125. JumperFooterHurt component = jumperFooter.GetComponent<JumperFooterHurt>();
  126. int currentPhase = component.currentPhase;
  127. if (currentPhase != 0)
  128. {
  129. if (currentPhase == 1)
  130. {
  131. this.SpecialEnemyExecute(jumperFooter, PlayerAction.StateEnum.Disappear, 1f);
  132. }
  133. }
  134. else
  135. {
  136. this.SpecialEnemyQTEHurt(jumperFooter, PlayerAction.StateEnum.Disappear, 1f);
  137. }
  138. }
  139. private void StickerHammerQTE(Transform stickOrHammer)
  140. {
  141. EnemyBaseHurt component = stickOrHammer.GetComponent<EnemyBaseHurt>();
  142. int currentPhase = component.currentPhase;
  143. if (currentPhase != 0)
  144. {
  145. if (currentPhase == 1)
  146. {
  147. this.SpecialEnemyExecute(stickOrHammer, PlayerAction.StateEnum.Disappear, 1f);
  148. }
  149. }
  150. else
  151. {
  152. this.SpecialEnemyQTEHurt(stickOrHammer, PlayerAction.StateEnum.Disappear, 1f);
  153. }
  154. }
  155. private void RiantRobotQTE(Transform giantRobot)
  156. {
  157. this.SpecialEnemyExecute(giantRobot, PlayerAction.StateEnum.Disappear, 1f);
  158. }
  159. private void EatingBossQTE(Transform eatingBoss)
  160. {
  161. EatingBossHurt component = eatingBoss.GetComponent<EatingBossHurt>();
  162. int currentPhase = component.currentPhase;
  163. if (currentPhase != 0)
  164. {
  165. if (currentPhase == 1)
  166. {
  167. this.SpecialEnemyExecute(eatingBoss, PlayerAction.StateEnum.AtkHv4, 1f);
  168. }
  169. }
  170. else
  171. {
  172. this.SpecialEnemyQTEHurt(eatingBoss, PlayerAction.StateEnum.Disappear, 1f);
  173. }
  174. }
  175. private void SpiderQTE(Transform spider)
  176. {
  177. SpiderBossHurt component = spider.GetComponent<SpiderBossHurt>();
  178. int currentPhase = component.currentPhase;
  179. if (currentPhase != 0)
  180. {
  181. if (currentPhase == 1)
  182. {
  183. this.SpecialEnemyExecute(spider, PlayerAction.StateEnum.Disappear, 1f);
  184. }
  185. }
  186. else
  187. {
  188. this.SpecialEnemyQTEHurt(spider, PlayerAction.StateEnum.BeelzebubQTEDie, 1f);
  189. }
  190. }
  191. private void JackQTE(Transform jack)
  192. {
  193. JackHurt component = jack.GetComponent<JackHurt>();
  194. int currentPhase = component.currentPhase;
  195. if (currentPhase != 0)
  196. {
  197. if (currentPhase == 1)
  198. {
  199. this.SpecialEnemyExecute(jack, PlayerAction.StateEnum.BeelzebubQTEDie, 1f);
  200. }
  201. }
  202. else
  203. {
  204. this.SpecialEnemyQTEHurt(jack, PlayerAction.StateEnum.BeelzebubQTEDie, 1f);
  205. }
  206. }
  207. private void JudgesQTE(Transform judges)
  208. {
  209. JudgesHurt component = judges.GetComponent<JudgesHurt>();
  210. switch (component.currentPhase)
  211. {
  212. case 0:
  213. case 1:
  214. case 2:
  215. case 3:
  216. this.SpecialEnemyQTEHurt(judges, PlayerAction.StateEnum.Disappear, 1f);
  217. break;
  218. case 4:
  219. this.SpecialEnemyExecute(judges, PlayerAction.StateEnum.QTECharge1Ready, 1f);
  220. break;
  221. }
  222. }
  223. private void SpecialEnemyExecute(Transform enemy, PlayerAction.StateEnum playerSta, float speed = 1f)
  224. {
  225. enemy.GetComponent<EnemyBaseAction>().AnimExecute();
  226. EnemyAttribute component = enemy.GetComponent<EnemyAttribute>();
  227. component.currentHp = 0;
  228. component.timeController.SetSpeed(Vector2.zero);
  229. this.player.ChangeState(playerSta, speed);
  230. }
  231. private void SpecialEnemyQTEHurt(Transform enemy, PlayerAction.StateEnum playerSta, float speed = 1f)
  232. {
  233. enemy.GetComponent<EnemyBaseAction>().AnimQTEHurt();
  234. enemy.GetComponent<EnemyAttribute>().timeController.SetSpeed(Vector2.zero);
  235. this.player.ChangeState(playerSta, speed);
  236. }
  237. }