HealHP.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using UnityEngine;
  2. using System.Collections;
  3. public class HealHP : TickFunctionEvent
  4. {
  5. public static HealHP Creator(BuffFunctionData data)
  6. {
  7. return new HealHP(data);
  8. }
  9. public HealHP(BuffFunctionData data) : base(data)
  10. {
  11. }
  12. public override void Enter(Fighter fighter)
  13. {
  14. base.Enter(fighter);
  15. if (!fighter.IsAlive) return;
  16. int addHp = (int)(fighter.GetBuffFunctionValue(Buff_Function_Type.Heal_Target_HP_Change_Value) * (1+ fighter.GetBuffPercentValue(Buff_Function_Type.Heal_Change_Percent)));
  17. fighter.Life += addHp;
  18. if (Caster != null)
  19. {
  20. EventMgr.DispatchEvent<Fighter>(new CoreEvent<Fighter>(ECoreEventType.EID_Fighter_Treatment, mCaster));
  21. if (Caster.Statistics != null)
  22. Caster.Statistics.StatHealInfo(Caster, addHp);
  23. if (addHp > 0)
  24. Caster.Battle.Output(OutputType.Heal, Caster, fighter, SkillName, (int)addHp);
  25. }
  26. if (addHp > 0)
  27. EventMgr.DispatchEvent<object[]>(new CoreEvent<object[]>(ECoreEventType.EID_FIGHTER_HEAL, new object[] { fighter, addHp }));
  28. }
  29. }