12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- class ContaminationStage3Mdfr: ModifierBase
- {
- static const int AGENT_THRESHOLD_ACTIVATE = 400;
- static const int AGENT_THRESHOLD_DEACTIVATE = AGENT_THRESHOLD_ACTIVATE - 1;
- static const int AGENT_THRESHOLD_FEVER = 250;
- static const float DAMAGE_PER_SEC = -3;
- override void Init()
- {
- m_AnalyticsStatsEnabled = true;
- m_ID = eModifiers.MDF_CONTAMINATION3;
- m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
- m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE_SHORT;
- m_SyncID = eModifierSyncIDs.MODIFIER_SYNC_CONTAMINATION2;//using the same sync as stage 2 for now
- m_TrackActivatedTime = true;
- }
-
- override string GetDebugText()
- {
- return ("Activate threshold: "+AGENT_THRESHOLD_ACTIVATE + "| " +"Deativate threshold: "+AGENT_THRESHOLD_DEACTIVATE);
- }
-
- override protected bool ActivateCondition(PlayerBase player)
- {
- return ( player.GetSingleAgentCount(eAgents.CHEMICAL_POISON) >= AGENT_THRESHOLD_ACTIVATE );
- }
- override protected void OnActivate(PlayerBase player)
- {
- player.IncreaseDiseaseCount();
- player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
- }
- override protected void OnDeactivate(PlayerBase player)
- {
- player.DecreaseDiseaseCount();
- }
- override protected bool DeactivateCondition(PlayerBase player)
- {
- return !ActivateCondition(player);
- }
- override protected void OnTick(PlayerBase player, float deltaT)
- {
- if(GetAttachedTime() > 4 && (!player.GetSymptomManager().GetCurrentPrimaryActiveSymptom() || (player.GetSymptomManager().GetCurrentPrimaryActiveSymptom() && player.GetSymptomManager().GetCurrentPrimaryActiveSymptom().GetType() != SymptomIDs.SYMPTOM_VOMIT)) )
- {
- player.AddHealth("","Shock", -100);
- }
-
- if (player.IsUnconscious())
- {
- player.AddHealth("","",DAMAGE_PER_SEC * deltaT);
- }
- }
- };
|