DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Pneumonia.c
См. документацию.
2{
3 const int AGENT_THRESHOLD_ACTIVATE = 1150;
4 const int AGENT_THRESHOLD_DEACTIVATE = 1100;
5
6 const float STAMINA_DEPLETION_MULTIPLIER = 1.3;
7 const float STAMINA_RECOVERY_MULTIPLIER = 0.5;
8
9 const float HEALTH_LOSS_PNEUMONIA = 0.1;
10
11 private const int TEMPORARY_RESISTANCE_TIME = 600;
12
21
22 override string GetDebugText()
23 {
24 return ("Activate threshold: "+AGENT_THRESHOLD_ACTIVATE + "| " +"Deativate threshold: "+AGENT_THRESHOLD_DEACTIVATE);
25 }
26
27 override protected bool ActivateCondition(PlayerBase player)
28 {
29 if (player.GetSingleAgentCount(eAgents.INFLUENZA) >= AGENT_THRESHOLD_ACTIVATE)
30 return true;
31
32 return false;
33 }
34
35 override protected void OnActivate(PlayerBase player)
36 {
37 player.IncreaseDiseaseCount();
38
39 player.GetStaminaHandler().ActivateRecoveryModifier(EStaminaMultiplierTypes.DISEASE_PNEUMONIA);
40 player.GetStaminaHandler().ActivateDepletionModifier(EStaminaMultiplierTypes.DISEASE_PNEUMONIA);
41 }
42
43 override protected void OnDeactivate(PlayerBase player)
44 {
45 player.DecreaseDiseaseCount();
46
47 player.GetStaminaHandler().DeactivateRecoveryModifier(EStaminaMultiplierTypes.DISEASE_PNEUMONIA);
48 player.GetStaminaHandler().DeactivateDepletionModifier(EStaminaMultiplierTypes.DISEASE_PNEUMONIA);
49
50 player.SetTemporaryResistanceToAgent(eAgents.INFLUENZA, TEMPORARY_RESISTANCE_TIME);
51 }
52
53 override protected bool DeactivateCondition(PlayerBase player)
54 {
55 return (player.GetSingleAgentCount(eAgents.INFLUENZA) <= AGENT_THRESHOLD_DEACTIVATE);
56 }
57
58 override protected void OnTick(PlayerBase player, float deltaT)
59 {
60 float healthLoss = HEALTH_LOSS_PNEUMONIA * deltaT;
61
62 player.AddHealth(-healthLoss);
63
64 float heavyBreathChance = player.GetSingleAgentCountNormalized(eAgents.INFLUENZA);
65
66 if ( Math.RandomFloat01() < heavyBreathChance / Math.RandomInt(1,15) )
67 {
68 player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_GASP);
69 }
70 }
71};
eAgents
Определения EAgents.c:3
int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it)
Определения Effect.c:49
bool m_TrackActivatedTime
overall time this modifier was active
Определения ModifierBase.c:14
bool m_AnalyticsStatsEnabled
Определения ModifierBase.c:31
float m_TickIntervalActive
Определения ModifierBase.c:18
float m_TickIntervalInactive
Определения ModifierBase.c:17
const int DEFAULT_TICK_TIME_INACTIVE
Определения ModifiersManager.c:29
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE
EStaminaMultiplierTypes
Определения StaminaHandler.c:2
Определения EnMath.c:7
Определения BreathVapourMdfr.c:4
Определения PlayerBaseClient.c:2
bool ActivateCondition(PlayerBase player)
Определения Pneumonia.c:27
const float HEALTH_LOSS_PNEUMONIA
Определения Pneumonia.c:9
const int AGENT_THRESHOLD_DEACTIVATE
Определения Pneumonia.c:4
override string GetDebugText()
Определения Pneumonia.c:22
const int AGENT_THRESHOLD_ACTIVATE
Определения Pneumonia.c:3
void OnActivate(PlayerBase player)
Определения Pneumonia.c:35
override void Init()
Определения Pneumonia.c:13
const int TEMPORARY_RESISTANCE_TIME
Определения Pneumonia.c:11
bool DeactivateCondition(PlayerBase player)
Определения Pneumonia.c:53
void OnTick(PlayerBase player, float deltaT)
Определения Pneumonia.c:58
void OnDeactivate(PlayerBase player)
Определения Pneumonia.c:43
const float STAMINA_RECOVERY_MULTIPLIER
Определения Pneumonia.c:7
const float STAMINA_DEPLETION_MULTIPLIER
Определения Pneumonia.c:6
Определения Pneumonia.c:2
eModifiers
Определения eModifiers.c:2
static float RandomFloat01()
Returns a random float number between and min [inclusive] and max [inclusive].
Определения EnMath.c:126
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].