burning.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. class BurningMdfr: ModifierBase
  2. {
  3. private const float BURNING_TRESHOLD = 199;
  4. private const float HEALTH_DECREMENT_PER_SEC = -5;
  5. override void Init()
  6. {
  7. m_TrackActivatedTime = false;
  8. m_ID = eModifiers.MDF_BURNING;
  9. m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  10. m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
  11. }
  12. override bool ActivateCondition(PlayerBase player)
  13. {
  14. float hc = player.GetStatHeatComfort().Get();
  15. if ( hc > BURNING_TRESHOLD )
  16. {
  17. return true;
  18. }
  19. else
  20. {
  21. return false;
  22. }
  23. }
  24. override void OnActivate(PlayerBase player)
  25. {
  26. //Print("My face is melting!");
  27. }
  28. override bool DeactivateCondition(PlayerBase player)
  29. {
  30. if ( player.GetStatHeatComfort().Get() <= BURNING_TRESHOLD )
  31. {
  32. return true;
  33. }
  34. else
  35. {
  36. return false;
  37. }
  38. }
  39. override void OnTick(PlayerBase player, float deltaT)
  40. {
  41. float currenthealth = player.GetHealth("GlobalHealth", "Health");
  42. player.SetHealth("GlobalHealth", "Health" , ( currenthealth + (HEALTH_DECREMENT_PER_SEC*deltaT) ) );
  43. //player.GetStatTemperature().Set( player.GetStatTemperature().GetMax() );
  44. }
  45. };