heartattack.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. class HeartAttackMdfr: ModifierBase
  2. {
  3. private const float HEALTH_DECREMENT_PER_SEC = -0.2;
  4. private const float SHOCK_DECREMENT_PER_SEC = -2;
  5. private const float SHOCK_LIMIT = 0;
  6. override void Init()
  7. {
  8. m_TrackActivatedTime = false;
  9. m_ID = eModifiers.MDF_HEART_ATTACK;
  10. m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  11. m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
  12. m_IsPersistent = true;
  13. DisableDeactivateCheck();
  14. DisableActivateCheck();
  15. }
  16. override bool ActivateCondition(PlayerBase player)
  17. {
  18. return false;
  19. }
  20. override void OnActivate(PlayerBase player)
  21. {
  22. }
  23. override bool DeactivateCondition(PlayerBase player)
  24. {
  25. return false;
  26. }
  27. override void OnTick(PlayerBase player, float deltaT)
  28. {
  29. if ( player.GetHealth("GlobalHealth","Shock") <= SHOCK_LIMIT )
  30. {
  31. float currenthealth = player.GetHealth("GlobalHealth", "Health");
  32. player.AddHealth("GlobalHealth", "Health" , HEALTH_DECREMENT_PER_SEC * deltaT );
  33. }
  34. else
  35. {
  36. float currentshock = player.GetHealth("GlobalHealth", "Shock");
  37. player.AddHealth("GlobalHealth", "Shock", SHOCK_DECREMENT_PER_SEC * deltaT);
  38. }
  39. }
  40. };