unconsciousness.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. class UnconsciousnessMdfr: ModifierBase
  2. {
  3. const int UNCONSIOUSS_COOLDOWN_TIME = 60;//in s
  4. override void Init()
  5. {
  6. m_TrackActivatedTime = false;
  7. m_AnalyticsStatsEnabled = true;
  8. m_ID = eModifiers.MDF_UNCONSCIOUSNESS;
  9. m_TickIntervalInactive = 0.5;
  10. m_TickIntervalActive = 0.5;
  11. }
  12. override bool ActivateCondition(PlayerBase player)
  13. {
  14. if( player.GetHealth("","Shock") <= PlayerConstants.UNCONSCIOUS_THRESHOLD )
  15. {
  16. return true;
  17. }
  18. return false;
  19. }
  20. override void OnActivate(PlayerBase player)
  21. {
  22. DayZPlayerSyncJunctures.SendPlayerUnconsciousness(player, true);
  23. }
  24. override void OnDeactivate(PlayerBase player)
  25. {
  26. player.m_UnconsciousEndTime = GetGame().GetTime();
  27. DayZPlayerSyncJunctures.SendPlayerUnconsciousness(player, false);
  28. }
  29. override string GetDebugText()
  30. {
  31. string text_pulse = "pulse type:"+m_Player.GetPulseType()+"|";
  32. string text_shock = (PlayerConstants.CONSCIOUS_THRESHOLD - m_Player.GetHealth("","Shock")).ToString();
  33. string debug_text = text_pulse + text_shock;
  34. return debug_text;
  35. }
  36. override void OnReconnect(PlayerBase player)
  37. {
  38. }
  39. override bool DeactivateCondition(PlayerBase player)
  40. {
  41. if( player.GetHealth("","Shock") >= PlayerConstants.CONSCIOUS_THRESHOLD && player.GetPulseType() == EPulseType.REGULAR )
  42. {
  43. return true;
  44. }
  45. return false;
  46. }
  47. override void OnTick(PlayerBase player, float deltaT)
  48. {
  49. }
  50. };