antibiotics.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. class AntibioticsMdfr : ModifierBase
  2. {
  3. const int ANTIBIOTICS_LIFETIME = 300;
  4. const float ANTIBIOTICS_STRENGTH = 1;
  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_ANTIBIOTICS;
  12. m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  13. m_TickIntervalActive = 3;
  14. m_RegenTime = ANTIBIOTICS_LIFETIME;
  15. DisableActivateCheck();
  16. }
  17. override bool ActivateCondition(PlayerBase player)
  18. {
  19. return false;
  20. }
  21. override void OnReconnect(PlayerBase player)
  22. {
  23. OnActivate(player);
  24. }
  25. override string GetDebugText()
  26. {
  27. return (ANTIBIOTICS_LIFETIME - GetAttachedTime()).ToString();
  28. }
  29. override string GetDebugTextSimple()
  30. {
  31. return (ANTIBIOTICS_LIFETIME - GetAttachedTime()).ToString();
  32. }
  33. override void OnActivate(PlayerBase player)
  34. {
  35. player.IncreaseHealingsCount();
  36. player.AddMedicalDrugsInUse(EMedicalDrugsType.ANTIBIOTICS);
  37. }
  38. override void OnDeactivate(PlayerBase player)
  39. {
  40. player.DecreaseHealingsCount();
  41. player.RemoveMedicalDrugsInUse(EMedicalDrugsType.ANTIBIOTICS);
  42. }
  43. override bool DeactivateCondition(PlayerBase player)
  44. {
  45. float attachedTime = GetAttachedTime();
  46. if (attachedTime >= m_RegenTime)
  47. return true;
  48. return false;
  49. }
  50. override void OnTick(PlayerBase player, float deltaT)
  51. {
  52. player.m_AgentPool.DrugsAttack(EMedicalDrugsType.ANTIBIOTICS, ANTIBIOTICS_STRENGTH * deltaT);
  53. }
  54. }