FighterStateDie.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using UnityEngine;
  2. using System.Collections;
  3. public class FighterStateDie : FighterState
  4. {
  5. public static FighterState Creator (Fighter fighter)
  6. {
  7. return new FighterStateDie (fighter);
  8. }
  9. public FighterStateDie (Fighter fighter)
  10. : base (fighter, FighterStateType.Die)
  11. {
  12. mAnimName = FighterAnimatorHash.StateDie;
  13. }
  14. int nOverFrame = 0;
  15. public override void OnEnter (FighterStateType fromState, object param)
  16. {
  17. base.OnEnter(fromState, param);
  18. EffectManager.Instance.RemoveEffectByOwnerFighter(mFighter);
  19. mStateData.DyingTime = 2.0f;
  20. if(!string.IsNullOrEmpty(mFighter.DieSound))
  21. {
  22. MusicMgr.Instance.PlayFightSound(mFighter.DieSound);
  23. }
  24. nOverFrame = ChangeFrame(mStateData.DyingTime);
  25. m_nFrame = 0;
  26. }
  27. public override void Update (float deltaTime)
  28. {
  29. m_nFrame += 1;
  30. if(mFighter.IsSummoned && m_nFrame == nOverFrame)
  31. {
  32. mFighter.Dispose();
  33. }
  34. }
  35. public override void OnLeave()
  36. {
  37. base.OnLeave();
  38. if (!string.IsNullOrEmpty(mFighter.DieSound))
  39. {
  40. MusicMgr.Instance.RemoveSound(mFighter.DieSound);
  41. }
  42. }
  43. public override void OnDataChanged ()
  44. {
  45. if (mStateData.IsAlive && (mFighter.IsPlayer || mFighter.IsPet)) {
  46. mStateData.ChangeState (FighterStateType.Revive);
  47. }
  48. }
  49. public override FighterStateType GetTriggerNextState (FighterStateTriggerType triggerType, int checkVal = 0)
  50. {
  51. return FighterStateType.None;
  52. }
  53. }