DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ GrowAgents()

void PlayerAgentPool::GrowAgents ( float deltaT)
inlineprotected

См. определение в файле PlayerAgentPool.c строка 52

53 {
55 return;
56
57 EStatLevels immunityLevel = m_Player.GetImmunityLevel();
58
60 for (int i = 0; i < m_VirusPool.Count(); i++)
61 {
62 int agentId = m_VirusPool.GetKey(i);
63 int maxCount = m_PluginTransmissionAgents.GetAgentMaxCount(agentId);
64
65 EStatLevels agentPotency = m_PluginTransmissionAgents.GetAgentPotencyEx(agentId, m_Player);
66
67 float growDelta;
68
69 if (agentPotency <= immunityLevel)
70 {
71 float temporaryResistance = GetTemporaryResistance(agentId);
72 if (temporaryResistance > 1.0)
73 continue;
74
75 if (m_Player.IsAntibioticsActive() && !m_PluginTransmissionAgents.GrowDuringMedicalDrugsAttack(agentId, EMedicalDrugsType.CHELATION, m_Player))
76 continue;
77
78 if (m_Player.IsChelationActive() && !m_PluginTransmissionAgents.GrowDuringMedicalDrugsAttack(agentId, EMedicalDrugsType.CHELATION, m_Player))
79 continue
80
81 float invasibility = m_PluginTransmissionAgents.GetAgentInvasibilityEx(agentId, m_Player);
82 growDelta = invasibility * deltaT;
83 }
84 else
85 {
86 float dieOffSpeed = m_PluginTransmissionAgents.GetAgentDieOffSpeedEx(agentId, m_Player);
87 growDelta = -dieOffSpeed * deltaT;
88 }
89
90 float oldCount = m_VirusPool.Get(agentId);
91 float newCount = oldCount + growDelta;
92 newCount = Math.Clamp(newCount, 0, maxCount);
93
94 m_TotalAgentCount += newCount;
95 SetAgentCount(agentId, newCount);
96 }
97 }
EMedicalDrugsType
Определения EMedicalDrugsType.c:2
EStatLevels
Определения EStatLevels.c:2
bool IsPluginManagerExists()
Определения PluginManager.c:306
float m_TotalAgentCount
Определения PlayerAgentPool.c:7
PluginTransmissionAgents m_PluginTransmissionAgents
Определения PlayerAgentPool.c:14
PlayerBase m_Player
Определения PlayerAgentPool.c:8
ref map< int, float > m_VirusPool
Определения PlayerAgentPool.c:10
float GetTemporaryResistance(int agentId)
Определения PlayerAgentPool.c:305
void SetAgentCount(int agent_id, float count)
Определения PlayerAgentPool.c:247

Перекрестные ссылки Math::Clamp(), GetTemporaryResistance(), IsPluginManagerExists(), m_Player, m_PluginTransmissionAgents, m_TotalAgentCount, m_VirusPool и SetAgentCount().

Используется в ImmuneSystemTick().