MagicWeaponCollisionInfo.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using Fort23.Core;
  2. using GameLogic.Combat.Hero;
  3. using GameLogic.Combat.Hero.State;
  4. namespace GameLogic.Combat.CombatTool
  5. {
  6. public class MagicWeaponCollisionInfo : CObject
  7. {
  8. public CombatMagicWeaponEntity a;
  9. public CombatMagicWeaponEntity b;
  10. protected float _currTime;
  11. public void Update(float t)
  12. {
  13. _currTime += t;
  14. if (_currTime > 0.1f)
  15. {
  16. _currTime = 0;
  17. if (a != null)
  18. {
  19. a.ReduceHp(1);
  20. }
  21. if (b != null)
  22. {
  23. b.ReduceHp(1);
  24. }
  25. }
  26. }
  27. public override void ActiveObj()
  28. {
  29. }
  30. public override void DormancyObj()
  31. {
  32. a = null;
  33. b = null;
  34. }
  35. public void Finish()
  36. {
  37. if (a.HpBl > 0)
  38. {
  39. MagicWeaponMoveState.MagicWeaponMoveStateData magicWeaponMoveStateData =
  40. CObjectPool.Instance.Fetch<MagicWeaponMoveState.MagicWeaponMoveStateData>();
  41. magicWeaponMoveStateData.trigger = true;
  42. magicWeaponMoveStateData.triggerTime = 0.5f;
  43. a.CombatAIBasic.ChangeState(CombatHeroStateType.move,magicWeaponMoveStateData);
  44. CObjectPool.Instance.Recycle(magicWeaponMoveStateData);
  45. }
  46. if (b.HpBl > 0)
  47. {
  48. MagicWeaponMoveState.MagicWeaponMoveStateData magicWeaponMoveStateData =
  49. CObjectPool.Instance.Fetch<MagicWeaponMoveState.MagicWeaponMoveStateData>();
  50. magicWeaponMoveStateData.trigger = true;
  51. magicWeaponMoveStateData.triggerTime = 0.5f;
  52. b.CombatAIBasic.ChangeState(CombatHeroStateType.move,magicWeaponMoveStateData);
  53. CObjectPool.Instance.Recycle(magicWeaponMoveStateData);
  54. }
  55. }
  56. }
  57. }