toxicity.c 1019 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. class ToxicityMdfr: ModifierBase
  2. {
  3. private const float TOXICITY_CLEANUP_PER_SEC = 1;
  4. private const float VOMIT_THRESHOLD = 70;
  5. override void Init()
  6. {
  7. m_TrackActivatedTime = false;
  8. m_ID = eModifiers.MDF_TOXICITY;
  9. m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  10. m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
  11. DisableDeactivateCheck();
  12. }
  13. override bool ActivateCondition(PlayerBase player)
  14. {
  15. return true;
  16. }
  17. override bool DeactivateCondition(PlayerBase player)
  18. {
  19. return false;
  20. }
  21. override void OnTick(PlayerBase player, float deltaT)
  22. {
  23. player.GetStatToxicity().Add( -TOXICITY_CLEANUP_PER_SEC * deltaT );
  24. if( player.GetStatToxicity().Get() > VOMIT_THRESHOLD )
  25. {
  26. SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
  27. if( symptom )
  28. {
  29. symptom.SetDuration(Math.RandomIntInclusive(4,8));
  30. }
  31. }
  32. }
  33. override void OnReconnect(PlayerBase player)
  34. {
  35. }
  36. override void OnActivate(PlayerBase player)
  37. {
  38. }
  39. };