painkillersmdfr.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. class PainKillersMdfr : ModifierBase
  2. {
  3. const int LIFETIME = 240;
  4. const int ACTIVATION_DELAY = 15;
  5. override void Init()
  6. {
  7. m_TrackActivatedTime = true;
  8. m_AnalyticsStatsEnabled = true;
  9. m_IsPersistent = true;
  10. m_ID = eModifiers.MDF_PAINKILLERS;
  11. m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  12. m_TickIntervalActive = 1;
  13. DisableActivateCheck();
  14. }
  15. override bool ActivateCondition(PlayerBase player)
  16. {
  17. return false;
  18. }
  19. override void OnReconnect(PlayerBase player)
  20. {
  21. OnActivate(player);
  22. }
  23. override string GetDebugText()
  24. {
  25. return (LIFETIME - GetAttachedTime()).ToString();
  26. }
  27. override void OnActivate(PlayerBase player)
  28. {
  29. if (player.GetBrokenLegs() != eBrokenLegs.NO_BROKEN_LEGS)
  30. player.m_ShockHandler.SetMultiplier(0.5);//was 0.75 //Switch the shock multiplier NEED A CONST
  31. player.IncreaseHealingsCount();
  32. m_Player.m_InjuryHandler.m_ForceInjuryAnimMask = m_Player.m_InjuryHandler.m_ForceInjuryAnimMask | eInjuryOverrides.PAIN_KILLERS_LVL0;
  33. }
  34. override void OnDeactivate(PlayerBase player)
  35. {
  36. if (player.GetBrokenLegs() != eBrokenLegs.NO_BROKEN_LEGS)
  37. player.m_ShockHandler.SetMultiplier(1); //Reset the shock multiplier when modifier stops
  38. player.DecreaseHealingsCount();
  39. m_Player.m_InjuryHandler.m_ForceInjuryAnimMask = m_Player.m_InjuryHandler.m_ForceInjuryAnimMask & ~eInjuryOverrides.PAIN_KILLERS_LVL0;
  40. m_Player.m_InjuryHandler.m_ForceInjuryAnimMask = m_Player.m_InjuryHandler.m_ForceInjuryAnimMask & ~eInjuryOverrides.PAIN_KILLERS_LVL1;
  41. }
  42. override bool DeactivateCondition(PlayerBase player)
  43. {
  44. float attached_time = GetAttachedTime();
  45. if (attached_time >= LIFETIME)
  46. return true;
  47. return false;
  48. }
  49. override void OnTick(PlayerBase player, float deltaT)
  50. {
  51. if (GetAttachedTime() > ACTIVATION_DELAY)
  52. {
  53. m_Player.m_InjuryHandler.m_ForceInjuryAnimMask = m_Player.m_InjuryHandler.m_ForceInjuryAnimMask | eInjuryOverrides.PAIN_KILLERS_LVL1;
  54. }
  55. }
  56. }