immunityboost.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. class ImmunityBoost: ModifierBase
  2. {
  3. float m_LastWaterLevel;
  4. ref HumanMovementState m_MovementState = new HumanMovementState();
  5. float m_RegenTime;
  6. override void Init()
  7. {
  8. m_TrackActivatedTime = true;
  9. m_AnalyticsStatsEnabled = true;
  10. m_IsPersistent = true;
  11. m_ID = eModifiers.MDF_IMMUNITYBOOST;
  12. m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  13. m_TickIntervalActive = 1;
  14. m_RegenTime = PlayerConstants.VITAMINS_LIFETIME_SECS;
  15. }
  16. override bool ActivateCondition(PlayerBase player)
  17. {
  18. return false;
  19. }
  20. override void OnReconnect(PlayerBase player)
  21. {
  22. OnActivate(player);
  23. }
  24. override string GetDebugText()
  25. {
  26. return (m_RegenTime - GetAttachedTime()).ToString();
  27. }
  28. override void OnActivate(PlayerBase player)
  29. {
  30. player.SetImmunityBoosted(true);
  31. player.IncreaseHealingsCount();
  32. }
  33. override void OnDeactivate(PlayerBase player)
  34. {
  35. player.SetImmunityBoosted(false);
  36. player.DecreaseHealingsCount();
  37. }
  38. override bool DeactivateCondition(PlayerBase player)
  39. {
  40. float attached_time = GetAttachedTime();
  41. if( attached_time >= m_RegenTime )
  42. return true;
  43. else
  44. return false;
  45. }
  46. }