morphinemdfr.c 1.5 KB

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