DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Influenza.c
См. документацию.
2{
3 const int AGENT_THRESHOLD_ACTIVATE = 600;
5
6 private const int COUGH_RND_DIVIDER_NORMAL_MIN = 5;
7 private const int COUGH_RND_DIVIDER_NORMAL_MAX = 20;
8 private const int COUGH_RND_DIVIDER_SUPPRESSED_MIN = 10;
9 private const int COUGH_RND_DIVIDER_SUPPRESSED_MAX = 40;
10
11 private const int TEMPORARY_RESISTANCE_TIME = 300;
12
14
23
24 override string GetDebugText()
25 {
26 return ("Activate threshold: "+AGENT_THRESHOLD_ACTIVATE + "| " +"Deativate threshold: "+AGENT_THRESHOLD_DEACTIVATE);
27 }
28
29 override protected bool ActivateCondition(PlayerBase player)
30 {
31 if (player.GetSingleAgentCount(eAgents.INFLUENZA) >= AGENT_THRESHOLD_ACTIVATE)
32 return true;
33
34 return false;
35 }
36
37 override protected void OnActivate(PlayerBase player)
38 {
39 player.IncreaseDiseaseCount();
40
41 m_ModifiersManager = player.GetModifiersManager();
42 }
43
44 override protected void OnDeactivate(PlayerBase player)
45 {
46 player.DecreaseDiseaseCount();
47
48 player.SetTemporaryResistanceToAgent(eAgents.INFLUENZA, TEMPORARY_RESISTANCE_TIME);
49 }
50
51 override protected bool DeactivateCondition(PlayerBase player)
52 {
53 return (player.GetSingleAgentCount(eAgents.INFLUENZA) <= AGENT_THRESHOLD_DEACTIVATE);
54 }
55
56 override protected void OnTick(PlayerBase player, float deltaT)
57 {
58 float chanceOfCough = Math.Clamp(player.GetSingleAgentCountNormalized(eAgents.INFLUENZA),0,0.85);
59
61 if (m_ModifiersManager.IsModifierActive(eModifiers.MDF_PAINKILLERS) || m_ModifiersManager.IsModifierActive(eModifiers.MDF_MORPHINE))
63
64 if (Math.RandomFloat01() < chanceOfCough / coughRandomDivider)
65 {
66 player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_COUGH);
67 }
68 }
69}
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
void ModifiersManager(PlayerBase player)
Определения ModifiersManager.c:80
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE
const int COUGH_RND_DIVIDER_NORMAL_MIN
Определения Influenza.c:6
void OnActivate(PlayerBase player)
Определения Influenza.c:37
void OnTick(PlayerBase player, float deltaT)
Определения Influenza.c:56
const int AGENT_THRESHOLD_ACTIVATE
Определения Influenza.c:3
const int COUGH_RND_DIVIDER_SUPPRESSED_MAX
Определения Influenza.c:9
ModifiersManager m_ModifiersManager
Определения Influenza.c:13
const int AGENT_THRESHOLD_DEACTIVATE
Определения Influenza.c:4
const int COUGH_RND_DIVIDER_NORMAL_MAX
Определения Influenza.c:7
override string GetDebugText()
Определения Influenza.c:24
bool ActivateCondition(PlayerBase player)
Определения Influenza.c:29
const int COUGH_RND_DIVIDER_SUPPRESSED_MIN
Определения Influenza.c:8
const int TEMPORARY_RESISTANCE_TIME
Определения Influenza.c:11
void OnDeactivate(PlayerBase player)
Определения Influenza.c:44
override void Init()
Определения Influenza.c:15
bool DeactivateCondition(PlayerBase player)
Определения Influenza.c:51
Определения Influenza.c:2
Определения EnMath.c:7
Определения BreathVapourMdfr.c:4
Определения PlayerBaseClient.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 float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].