PlayerAction.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  1. using System;
  2. using System.Diagnostics;
  3. using Core;
  4. using ExtensionMethods;
  5. using GameWorld;
  6. using UnityEngine;
  7. using UnityEngine.SceneManagement;
  8. public class PlayerAction : BaseBehaviour
  9. {
  10. public Transform executeFollow
  11. {
  12. get
  13. {
  14. return (!this.spATK.enabled) ? this.sword : this.leftHand;
  15. }
  16. }
  17. //[DebuggerBrowsable(DebuggerBrowsableState.Never)]
  18. public event EventHandler OnPlayerTurnRound;
  19. public bool NotAllowPassSceneGate
  20. {
  21. get
  22. {
  23. return this.stateMachine.currentState.IsInArray(PlayerAction.HurtSta) || this.stateMachine.currentState.IsInArray(PlayerAction.ExecuteSta);
  24. }
  25. }
  26. public bool IsInNormalState()
  27. {
  28. return this.stateMachine.currentState.IsInArray(PlayerAction.NormalSta);
  29. }
  30. private void Awake()
  31. {
  32. this.stateMachine = base.GetComponent<StateMachine>();
  33. this.pAttr = R.Player.Attribute;
  34. this.pab = base.GetComponent<PlayerAbilities>();
  35. this.weapon = base.GetComponent<Claymore>();
  36. this.msac = base.GetComponent<MultiSpineAnimationController>();
  37. this.listener = base.GetComponent<PlayerAnimEventListener>();
  38. this.StateInit();
  39. }
  40. private void OnEnable()
  41. {
  42. EventManager.RegisterEvent<EnhanceArgs>("EnhanceLevelup", new EventManager.FBEventHandler<EnhanceArgs>(this.OnEnhancementLevelUp), EventManager.ListenerQueue.Game);
  43. SceneManager.sceneLoaded += this.OnSceneLoaded;
  44. }
  45. private void Start()
  46. {
  47. PlayerAction.main = this;
  48. this.ChangeState(PlayerAction.StateEnum.Idle, 1f);
  49. this.AttributeInit();
  50. this.ShadowInit();
  51. }
  52. private void OnDisable()
  53. {
  54. EventManager.UnregisterEvent<EnhanceArgs>("EnhanceLevelup", new EventManager.FBEventHandler<EnhanceArgs>(this.OnEnhancementLevelUp), EventManager.ListenerQueue.Game);
  55. SceneManager.sceneLoaded -= this.OnSceneLoaded;
  56. }
  57. private void StateInit()
  58. {
  59. this.stateMachine.AddStates(typeof(PlayerAction.StateEnum));
  60. this.stateMachine.OnEnter += this.OnMyStateEnter;
  61. this.stateMachine.OnTransfer += this.OnStateTransfer;
  62. }
  63. private void AttributeInit()
  64. {
  65. this.pAttr.ResetData();
  66. this.TurnRound(1);
  67. }
  68. private void ShadowInit()
  69. {
  70. this.shadow = UnityEngine.Object.Instantiate<Transform>(this.shadowPrefab);
  71. this.shadow.GetComponent<ShadowControl>().SetTarget(base.transform);
  72. }
  73. private void OnSceneLoaded(Scene arg0, LoadSceneMode loadSceneMode)
  74. {
  75. this.shadow = UnityEngine.Object.Instantiate<Transform>(this.shadowPrefab);
  76. this.shadow.GetComponent<ShadowControl>().SetTarget(base.transform);
  77. this.shadow.gameObject.SetActive(true);
  78. if (this.stateMachine.currentState.IsInArray(PlayerAction.HurtSta))
  79. {
  80. this.ChangeState((!this.pAttr.isOnGround) ? PlayerAction.StateEnum.Fall1 : PlayerAction.StateEnum.Idle, 1f);
  81. }
  82. }
  83. private void Update()
  84. {
  85. if (this.pAttr.isDead)
  86. {
  87. return;
  88. }
  89. if (this.stateMachine.currentState.IsInArray(PlayerAction.NormalSta) && !this.pAttr.isOnGround)
  90. {
  91. this.ChangeState(PlayerAction.StateEnum.Fall1, 1f);
  92. }
  93. }
  94. private void OnStateTransfer(object sender, StateMachine.TransferEventArgs args)
  95. {
  96. this.canChangeAnim = false;
  97. this.listener.BoxSizeRecover();
  98. if (args.nextState.IsInArray(PlayerAction.HurtSta))
  99. {
  100. this.weapon.AirAttackReset();
  101. this.listener.StopIEnumerator("FlashPositionSet");
  102. this.listener.isFalling = false;
  103. this.listener.airAtkDown = false;
  104. this.listener.checkFallDown = false;
  105. }
  106. if (!args.lastState.IsInArray(PlayerAction.NormalSta) && args.nextState.IsInArray(PlayerAction.NormalSta))
  107. {
  108. this.listener.PhysicReset();
  109. this.weapon.AirAttackReset();
  110. if (!base.GetComponent<Collider2D>().enabled)
  111. {
  112. base.GetComponent<Collider2D>().enabled = true;
  113. }
  114. }
  115. if (args.nextState == "UnderAtkHitToFly")
  116. {
  117. this.listener.hitJump = false;
  118. base.StartCoroutine(this.listener.HitJumpBack());
  119. }
  120. if (this.pab.hurt.DeadFlag)
  121. {
  122. base.GetComponent<ChangeSpineColor>().TurnOffAll();
  123. }
  124. else if (args.nextState.IsInArray(PlayerAction.NormalSta) || args.nextState.IsInArray(PlayerAction.JumpSta) || args.nextState.IsInArray(PlayerAction.FlySta))
  125. {
  126. base.GetComponent<ChangeSpineColor>().TurnOnBreatheLight();
  127. }
  128. else
  129. {
  130. base.GetComponent<ChangeSpineColor>().TurnOnEmission();
  131. }
  132. }
  133. private void OnMyStateEnter(object sender, StateMachine.StateEventArgs args)
  134. {
  135. if (this.pab.hurt.DeadFlag && !args.state.IsInArray(PlayerAction.DieSta))
  136. {
  137. return;
  138. }
  139. string state = args.state;
  140. switch (state)
  141. {
  142. case "AirAtk1":
  143. case "AirAtk2":
  144. case "AirAtk3":
  145. case "AirAtk4":
  146. case "Atk1":
  147. case "Atk2":
  148. case "Atk3":
  149. case "Atk4":
  150. case "Atk5":
  151. case "Atk7":
  152. case "Atk8":
  153. case "Charge1Ready":
  154. case "Charge1End":
  155. case "Atk11":
  156. case "Atk12":
  157. case "Atk13":
  158. case "Atk14":
  159. case "Atk23":
  160. case "Atk15":
  161. case "AirAtk6":
  162. case "AirAtk7":
  163. case "RiderQTEHurt_3":
  164. case "AirAtkHv1":
  165. case "AirAtkHv2":
  166. case "AirAtkHv3":
  167. case "AirAtkHv5":
  168. case "AtkHv1":
  169. case "AtkHv2":
  170. case "AtkHv3":
  171. case "AtkUpRising":
  172. case "Atk16":
  173. case "AirAtkHv1Push":
  174. case "AtkHv1Push":
  175. case "NewExecute1_2":
  176. case "RiderQTEHurt_2":
  177. case "NewExecute2_1":
  178. case "NewExecute2_2":
  179. case "NewExecuteAir1_1":
  180. case "NewExecuteAir2_2":
  181. case "FlashAttack":
  182. case "AirFlashAttack":
  183. case "DahalAtkUpRising":
  184. case "BeelzebubQTEDie":
  185. case "QTEPush":
  186. case "AirChargeEnd":
  187. case "AirQTEPush":
  188. case "AtkHv4":
  189. case "QTECharge1Ready":
  190. case "QTECharge1End":
  191. this.msac.Play(args.state, PlayerAction.SkeletonType.Attack, false, true, this.animSpeed);
  192. break;
  193. case "Charging1":
  194. case "QTECharging1":
  195. this.msac.Play(args.state, PlayerAction.SkeletonType.Attack, true, false, this.animSpeed);
  196. break;
  197. case "AirShootReady":
  198. case "Flash2":
  199. case "RollJump":
  200. case "HitGround":
  201. case "HitGround2":
  202. case "ShootReady":
  203. case "Execute":
  204. case "ExecuteToIdle":
  205. case "Execute2":
  206. case "Execute2ToFall":
  207. case "Flash1":
  208. case "AirCallSkill":
  209. case "CallSkill":
  210. case "CallSkillAir":
  211. case "Shoot":
  212. case "AirShoot":
  213. case "FlashDown1":
  214. case "FlashDown2":
  215. case "FlashUp1":
  216. case "FlashUp2":
  217. case "RollReady":
  218. case "BladeStormReady":
  219. case "RollEnd":
  220. case "RollGround":
  221. case "NewExecute1_1":
  222. case "RiderQTEHurt_1":
  223. case "BeelzebubQTECatch":
  224. case "NewExecute2_0":
  225. case "NewExecuteAir1_2":
  226. case "NewExecuteAir2_1":
  227. case "AirAtkRoll":
  228. case "AirAtkRollReady":
  229. case "AtkRollEnd":
  230. case "AtkRollReady":
  231. case "FlashDown45_1":
  232. case "FlashDown45_2":
  233. case "FlashUp45_1":
  234. case "FlashUp45_2":
  235. case "RollEndFrame":
  236. case "RollFrameEnd":
  237. case "AtkFlashRollEnd":
  238. case "QTEHitGround":
  239. case "QTEHitGround2":
  240. case "QTERollEnd":
  241. this.msac.Play(args.state, PlayerAction.SkeletonType.SpAttack, false, true, this.animSpeed);
  242. break;
  243. case "Roll":
  244. case "BladeStorm":
  245. case "DahalRoll":
  246. case "QTERoll":
  247. this.msac.Play(args.state, PlayerAction.SkeletonType.SpAttack, true, false, this.animSpeed);
  248. break;
  249. case "EndAtk":
  250. case "Fall1":
  251. case "GetUp":
  252. case "Jump":
  253. case "Jump2":
  254. case "RunSlow":
  255. case "FlashGround":
  256. case "IdleToDefense":
  257. case "FallToDefenseAir":
  258. case "QTEEndAtk":
  259. this.msac.Play(args.state, PlayerAction.SkeletonType.Normal, false, true, this.animSpeed);
  260. break;
  261. case "Fall2":
  262. case "Idle":
  263. case "Ready":
  264. case "Run":
  265. case "Defense":
  266. case "DefenseAir":
  267. case "QTEReady":
  268. this.msac.Play(args.state, PlayerAction.SkeletonType.Normal, true, false, this.animSpeed);
  269. break;
  270. case "UnderAtk1":
  271. case "UnderAtkHitGround":
  272. case "UnderAtkHitToFly":
  273. case "UnderAtkGetUp":
  274. case "UnderAtkFlyToFall":
  275. case "UnderAtkBombKillerII":
  276. this.msac.Play(args.state, PlayerAction.SkeletonType.Hurt, false, true, this.animSpeed);
  277. break;
  278. case "UnderAtkJumper":
  279. case "UnderAtkEat":
  280. case "UnderAtkHitSaw":
  281. case "Disappear":
  282. this.msac.Play(args.state, PlayerAction.SkeletonType.Hurt, true, false, this.animSpeed);
  283. break;
  284. case "UpRising":
  285. this.msac.Play(args.state, PlayerAction.SkeletonType.UpRising, false, true, this.animSpeed);
  286. break;
  287. case "Atk6":
  288. case "AirCombo":
  289. case "AirComboFlash":
  290. this.msac.Play(args.state, PlayerAction.SkeletonType.HeavyAttack, false, true, this.animSpeed);
  291. break;
  292. case "DoubleFlash":
  293. case "DoubleFlashAir":
  294. this.msac.Play(args.state, PlayerAction.SkeletonType.HeavyAttack, false, true, 1.5f);
  295. break;
  296. case "AirCharging":
  297. this.msac.Play(args.state, PlayerAction.SkeletonType.HeavyAttack, true, false, this.animSpeed);
  298. break;
  299. }
  300. }
  301. public void TurnRound(int dir)
  302. {
  303. Vector3 localScale = base.transform.localScale;
  304. if (this.OnPlayerTurnRound != null)
  305. {
  306. this.OnPlayerTurnRound(this, null);
  307. }
  308. if (dir == -1)
  309. {
  310. this.pAttr.faceDir = dir;
  311. localScale.x = 1f * Mathf.Abs(localScale.x);
  312. base.transform.localScale = localScale;
  313. }
  314. else if (dir == 1)
  315. {
  316. this.pAttr.faceDir = dir;
  317. localScale.x = -1f * Mathf.Abs(localScale.x);
  318. base.transform.localScale = localScale;
  319. }
  320. }
  321. public void ChangeState(PlayerAction.StateEnum sta, float speed = 1f)
  322. {
  323. this.animSpeed = speed;
  324. this.stateMachine.SetState(PlayerAction.State[(int)sta]);
  325. }
  326. public void ChangeState(string sta, float speed = 1f)
  327. {
  328. this.animSpeed = speed;
  329. this.stateMachine.SetState(sta);
  330. }
  331. public void FlashReset()
  332. {
  333. }
  334. public void AbsorbEnergyBall()
  335. {
  336. R.Audio.PlayEffect(43, new Vector3?(base.transform.position));
  337. if (this.pAttr.isInCharging && R.Player.Enhancement.Charging >= 1)
  338. {
  339. this.absorbNum++;
  340. this.weapon.AddChargeLevel();
  341. }
  342. }
  343. public static void Reborn()
  344. {
  345. EventManager.PostEvent<PlayerAction, AssessmentEventArgs>("Assessment", R.Player.Action, new AssessmentEventArgs(AssessmentEventArgs.EventType.ContinueGame));
  346. PlayerAttribute attribute = R.Player.Attribute;
  347. attribute.AllAttributeRecovery();
  348. R.Player.Action.pab.hurt.DeadFlag = false;
  349. R.Player.Action.ChangeState(PlayerAction.StateEnum.Idle, 1f);
  350. }
  351. public static void Reset()
  352. {
  353. PlayerAttribute attribute = R.Player.Attribute;
  354. attribute.ResetData();
  355. R.Player.Action.pab.hurt.DeadFlag = false;
  356. R.Player.Action.ChangeState(PlayerAction.StateEnum.Idle, 1f);
  357. }
  358. public void HPRecover(int recoverNum)
  359. {
  360. this.pAttr.currentHP += recoverNum;
  361. }
  362. private bool OnEnhancementLevelUp(string eventDefine, object sender, EnhanceArgs msg)
  363. {
  364. string name = msg.Name;
  365. if (name != null)
  366. {
  367. if (name == "maxHP")
  368. {
  369. this.pAttr.maxHP = DB.Enhancements["maxHP"].GetEnhanceEffect(msg.UpToLevel);
  370. this.pAttr.currentHP = this.pAttr.maxHP;
  371. }
  372. }
  373. return true;
  374. }
  375. public void QTEHPRecover(bool fullRecover = false)
  376. {
  377. Core.Input.Vibration.Vibrate(8);
  378. float num = 0f;
  379. int recover = R.Player.Enhancement.Recover;
  380. if (recover != 1)
  381. {
  382. if (recover != 2)
  383. {
  384. if (recover == 3)
  385. {
  386. num = 0.3f;
  387. }
  388. }
  389. else
  390. {
  391. num = 0.25f;
  392. }
  393. }
  394. else
  395. {
  396. num = 0.2f;
  397. }
  398. if (fullRecover)
  399. {
  400. this.pAttr.currentHP = this.pAttr.maxHP;
  401. }
  402. else
  403. {
  404. this.pAttr.currentHP += (int)((float)this.pAttr.maxHP * num);
  405. }
  406. this.pAttr.currentEnergy = this.pAttr.maxEnergy;
  407. }
  408. private const int LEFT = -1;
  409. private const int RIGHT = 1;
  410. private const int STOP = 0;
  411. private const int CURRENT = 3;
  412. public bool canChangeAnim;
  413. public StateMachine stateMachine;
  414. [SerializeField]
  415. private Transform leftHand;
  416. [SerializeField]
  417. private Transform sword;
  418. [SerializeField]
  419. private MeshRenderer spATK;
  420. public static PlayerAction main;
  421. public int tempDir;
  422. public Transform shadow;
  423. private MultiSpineAnimationController msac;
  424. private PlayerAnimEventListener listener;
  425. private PlayerAttribute pAttr;
  426. public PlayerAbilities pab;
  427. private Claymore weapon;
  428. [SerializeField]
  429. public ParticleSystem blockPartical;
  430. [SerializeField]
  431. private Transform shadowPrefab;
  432. public Transform hurtBox;
  433. private float animSpeed = 1f;
  434. public int absorbNum;
  435. private static readonly string[] State = new string[]
  436. {
  437. "EndAtk",
  438. "Fall1",
  439. "Fall2",
  440. "GetUp",
  441. "Idle",
  442. "Jump",
  443. "Jump2",
  444. "Ready",
  445. "Run",
  446. "RunSlow",
  447. "AirAtk1",
  448. "AirAtk2",
  449. "AirAtk3",
  450. "Atk1",
  451. "Atk2",
  452. "Atk3",
  453. "Atk4",
  454. "Atk5",
  455. "AirShoot",
  456. "AirShootReady",
  457. "Flash1",
  458. "Flash2",
  459. "HitGround",
  460. "HitGround2",
  461. "Shoot",
  462. "ShootReady",
  463. "UnderAtk1",
  464. "UnderAtkFlyToFall",
  465. "UnderAtkHitGround",
  466. "UnderAtkHitToFly",
  467. "Atk6",
  468. "Atk7",
  469. "Atk8",
  470. "UpRising",
  471. "UnderAtkGetUp",
  472. "Execute",
  473. "AirAtk4",
  474. "Charge1Ready",
  475. "Charging1",
  476. "Charge1End",
  477. "UnderAtkJumper",
  478. "UnderAtkEat",
  479. "RollJump",
  480. "UnderAtkHitSaw",
  481. "AirCallSkill",
  482. "CallSkill",
  483. "CallSkillAir",
  484. "Atk11",
  485. "Atk12",
  486. "Atk13",
  487. "Atk14",
  488. "Atk23",
  489. "Atk15",
  490. "FlashDown1",
  491. "FlashDown2",
  492. "FlashUp1",
  493. "FlashUp2",
  494. "IdleToDefense",
  495. "Defense",
  496. "FallToDefenseAir",
  497. "DefenseAir",
  498. "AirAtk6",
  499. "AirAtkHv1",
  500. "AirAtkHv2",
  501. "AirAtkHv3",
  502. "AirAtkHv4",
  503. "AirAtkHv5",
  504. "AtkHv1",
  505. "AtkHv2",
  506. "AtkHv3",
  507. "AtkUpRising",
  508. "Atk16",
  509. "AtkHv1Push",
  510. "AirAtkHv1Push",
  511. "Execute2",
  512. "RollReady",
  513. "Roll",
  514. "RollEnd",
  515. "RollGround",
  516. "ExecuteToIdle",
  517. "Execute2ToFall",
  518. "FlashGround",
  519. "NewExecute1_1",
  520. "NewExecute1_2",
  521. "NewExecute2_1",
  522. "NewExecute2_2",
  523. "NewExecuteAir1_1",
  524. "NewExecuteAir1_2",
  525. "NewExecuteAir2_1",
  526. "NewExecuteAir2_2",
  527. "AtkRollReady",
  528. "AtkRollEnd",
  529. "AirAtkRollReady",
  530. "AirAtkRoll",
  531. "FlashAttack",
  532. "AirComboFlash",
  533. "AirCombo",
  534. "AirFlashAttack",
  535. "NewExecute2_0",
  536. "AirAtk7",
  537. "Disappear",
  538. "FlashDown45_1",
  539. "FlashDown45_2",
  540. "FlashUp45_1",
  541. "FlashUp45_2",
  542. "DahalAtkUpRising",
  543. "DahalRoll",
  544. "BeelzebubQTECatch",
  545. "BeelzebubQTEDie",
  546. "QTEPush",
  547. "RiderQTEHurt_1",
  548. "RiderQTEHurt_2",
  549. "RiderQTEHurt_3",
  550. "BladeStormReady",
  551. "BladeStorm",
  552. "AirCharging",
  553. "AirChargeEnd",
  554. "DoubleFlash",
  555. "DoubleFlashAir",
  556. "RollEndFrame",
  557. "RollFrameEnd",
  558. "AtkFlashRollEnd",
  559. "UnderAtkBombKillerII",
  560. "QTEHitGround",
  561. "QTEHitGround2",
  562. "QTERoll",
  563. "QTERollEnd",
  564. "AirQTEPush",
  565. "AtkHv4",
  566. "QTECharge1Ready",
  567. "QTECharging1",
  568. "QTECharge1End",
  569. "QTEEndAtk",
  570. "QTEReady"
  571. };
  572. public static readonly string[] AttackSta = new string[]
  573. {
  574. "Atk1",
  575. "Atk2",
  576. "Atk3",
  577. "Atk4",
  578. "Atk5",
  579. "Atk6",
  580. "Atk7",
  581. "Atk8",
  582. "Atk11",
  583. "Atk12",
  584. "Atk13",
  585. "Atk14",
  586. "Atk23",
  587. "Atk15",
  588. "AtkHv1",
  589. "AtkHv2",
  590. "AtkHv3",
  591. "Atk16",
  592. "AtkHv1Push",
  593. "AtkRollReady",
  594. "AtkRollEnd",
  595. "DoubleFlash"
  596. };
  597. public static readonly string[] FlySta = new string[]
  598. {
  599. "Fall1",
  600. "Fall2",
  601. "Flash2",
  602. "FlashDown2",
  603. "FlashUp2"
  604. };
  605. public static readonly string[] UpRisingSta = new string[]
  606. {
  607. "UpRising",
  608. "AtkUpRising"
  609. };
  610. public static readonly string[] JumpSta = new string[]
  611. {
  612. "Jump",
  613. "Jump2",
  614. "RollJump"
  615. };
  616. public static readonly string[] AirAttackSta = new string[]
  617. {
  618. "AirAtk1",
  619. "AirAtk2",
  620. "AirAtk3",
  621. "AirAtk4",
  622. "AirAtk6",
  623. "AirAtkHv1",
  624. "AirAtkHv2",
  625. "AirAtkHv3",
  626. "AirAtkHv4",
  627. "AirAtkHv5",
  628. "AirAtkHv1Push",
  629. "AirAtkRollReady",
  630. "AirAtkRoll",
  631. "DoubleFlashAir"
  632. };
  633. public static readonly string[] AirLightAttackSta = new string[]
  634. {
  635. "AirAtk1",
  636. "AirAtk2",
  637. "AirAtk6"
  638. };
  639. public static readonly string[] NormalSta = new string[]
  640. {
  641. "EndAtk",
  642. "GetUp",
  643. "Idle",
  644. "Ready",
  645. "Run",
  646. "RunSlow"
  647. };
  648. public static readonly string[] HitGroundSta = new string[]
  649. {
  650. "HitGround",
  651. "HitGround2",
  652. "RollReady",
  653. "Roll",
  654. "RollEnd",
  655. "RollEndFrame",
  656. "RollFrameEnd"
  657. };
  658. public static readonly string[] FlashAttackSta = new string[]
  659. {
  660. "Flash1",
  661. "FlashDown1",
  662. "FlashUp1",
  663. "FlashGround",
  664. "FlashDown45_1",
  665. "FlashDown45_2",
  666. "FlashUp45_1",
  667. "FlashUp45_2"
  668. };
  669. public static readonly string[] ChargeSta = new string[]
  670. {
  671. "Charge1Ready",
  672. "Charging1",
  673. "Charge1End",
  674. "AirCharging",
  675. "AirChargeEnd"
  676. };
  677. public static readonly string[] HurtSta = new string[]
  678. {
  679. "UnderAtk1",
  680. "UnderAtkFlyToFall",
  681. "UnderAtkHitGround",
  682. "UnderAtkHitToFly",
  683. "UnderAtkGetUp",
  684. "UnderAtkJumper",
  685. "UnderAtkEat",
  686. "UnderAtkHitSaw",
  687. "UnderAtkBombKillerII"
  688. };
  689. public static readonly string[] SpHurtSta = new string[]
  690. {
  691. "UnderAtkJumper",
  692. "UnderAtkEat",
  693. "UnderAtkHitSaw",
  694. "UnderAtkBombKillerII"
  695. };
  696. public static readonly string[] DieSta = new string[]
  697. {
  698. "UnderAtkFlyToFall",
  699. "UnderAtkHitGround",
  700. "UnderAtkHitToFly"
  701. };
  702. public static readonly string[] ExecuteSta = new string[]
  703. {
  704. "Execute",
  705. "Execute2",
  706. "NewExecute1_1",
  707. "NewExecute1_2",
  708. "NewExecute2_1",
  709. "NewExecute2_2",
  710. "NewExecuteAir1_1",
  711. "NewExecuteAir1_2",
  712. "NewExecuteAir2_1",
  713. "NewExecuteAir2_2",
  714. "NewExecute2_0",
  715. "DahalAtkUpRising",
  716. "DahalRoll",
  717. "BeelzebubQTECatch",
  718. "BeelzebubQTEDie",
  719. "QTEPush",
  720. "RiderQTEHurt_1",
  721. "RiderQTEHurt_2",
  722. "RiderQTEHurt_3",
  723. "QTEHitGround",
  724. "QTEHitGround2",
  725. "QTERoll",
  726. "QTERollEnd",
  727. "AirQTEPush",
  728. "AtkHv4",
  729. "QTECharge1Ready",
  730. "QTECharging1",
  731. "QTECharge1End",
  732. "QTEEndAtk",
  733. "QTEReady"
  734. };
  735. public static readonly string CanRunSlow = "Run";
  736. public enum SkeletonType
  737. {
  738. Normal,
  739. Attack,
  740. SpAttack,
  741. Hurt,
  742. UpRising,
  743. HeavyAttack
  744. }
  745. public enum StateEnum
  746. {
  747. EndAtk,
  748. Fall1,
  749. Fall2,
  750. GetUp,
  751. Idle,
  752. Jump,
  753. Jump2,
  754. Ready,
  755. Run,
  756. RunSlow,
  757. AirAtk1,
  758. AirAtk2,
  759. AirAtk3,
  760. Atk1,
  761. Atk2,
  762. Atk3,
  763. Atk4,
  764. Atk5,
  765. AirShoot,
  766. AirShootReady,
  767. Flash1,
  768. Flash2,
  769. HitGround,
  770. HitGround2,
  771. Shoot,
  772. ShootReady,
  773. UnderAtk1,
  774. UnderAtkFlyToFall,
  775. UnderAtkHitGround,
  776. UnderAtkHitToFly,
  777. Atk6,
  778. Atk7,
  779. Atk8,
  780. UpRising,
  781. UnderAtkGetUp,
  782. Execute,
  783. AirAtk4,
  784. Charge1Ready,
  785. Charging1,
  786. Charge1End,
  787. UnderAtkJumper,
  788. UnderAtkEat,
  789. RollJump,
  790. UnderAtkHitSaw,
  791. AirCallSkill,
  792. CallSkill,
  793. CallSkillAir,
  794. Atk11,
  795. Atk12,
  796. Atk13,
  797. Atk14,
  798. Atk23,
  799. Atk15,
  800. FlashDown1,
  801. FlashDown2,
  802. FlashUp1,
  803. FlashUp2,
  804. IdleToDefense,
  805. Defense,
  806. FallToDefenseAir,
  807. DefenseAir,
  808. AirAtk6,
  809. AirAtkHv1,
  810. AirAtkHv2,
  811. AirAtkHv3,
  812. AirAtkHv4,
  813. AirAtkHv5,
  814. AtkHv1,
  815. AtkHv2,
  816. AtkHv3,
  817. AtkUpRising,
  818. Atk16,
  819. AtkHv1Push,
  820. AirAtkHv1Push,
  821. Execute2,
  822. RollReady,
  823. Roll,
  824. RollEnd,
  825. RollGround,
  826. ExecuteToIdle,
  827. Execute2ToFall,
  828. FlashGround,
  829. NewExecute1_1,
  830. NewExecute1_2,
  831. NewExecute2_1,
  832. NewExecute2_2,
  833. NewExecuteAir1_1,
  834. NewExecuteAir1_2,
  835. NewExecuteAir2_1,
  836. NewExecuteAir2_2,
  837. AtkRollReady,
  838. AtkRollEnd,
  839. AirAtkRollReady,
  840. AirAtkRoll,
  841. FlashAttack,
  842. AirComboFlash,
  843. AirCombo,
  844. AirFlashAttack,
  845. NewExecute2_0,
  846. AirAtk7,
  847. Disappear,
  848. FlashDown45_1,
  849. FlashDown45_2,
  850. FlashUp45_1,
  851. FlashUp45_2,
  852. DahalAtkUpRising,
  853. DahalRoll,
  854. BeelzebubQTECatch,
  855. BeelzebubQTEDie,
  856. QTEPush,
  857. RiderQTEHurt_1,
  858. RiderQTEHurt_2,
  859. RiderQTEHurt_3,
  860. BladeStormReady,
  861. BladeStorm,
  862. AirCharging,
  863. AirChargeEnd,
  864. DoubleFlash,
  865. DoubleFlashAir,
  866. RollEndFrame,
  867. RollFrameEnd,
  868. AtkFlashRollEnd,
  869. UnderAtkBombKillerII,
  870. QTEHitGround,
  871. QTEHitGround2,
  872. QTERoll,
  873. QTERollEnd,
  874. AirQTEPush,
  875. AtkHv4,
  876. QTECharge1Ready,
  877. QTECharging1,
  878. QTECharge1End,
  879. QTEEndAtk,
  880. QTEReady
  881. }
  882. }