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

◆ Consume() [2/2]

bool ManBase::Consume ( PlayerConsumeData data)
inlineprivate

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

7111 {
7112 PluginTransmissionAgents plugin = PluginTransmissionAgents.Cast(GetPlugin(PluginTransmissionAgents));
7113 int pollution = GetGame().GetMission().GetWorldData().GetPollution();
7114 float temperature = 0;
7115
7116 if (data.m_Type == EConsumeType.ENVIRO_POND || data.m_Type == EConsumeType.ENVIRO_WELL || data.m_Type == EConsumeType.ENVIRO_SNOW)
7117 {
7118 if (data.m_Type != EConsumeType.ENVIRO_WELL)
7119 {
7120 if (pollution & EPollution.HEAVYMETAL)
7121 data.m_Agents = data.m_Agents | eAgents.HEAVYMETAL;
7122
7123 if (data.m_Type == EConsumeType.ENVIRO_POND)
7124 data.m_Agents = data.m_Agents | eAgents.CHOLERA;
7125 }
7126
7128 m_PlayerStomach.AddToStomach(Liquid.GetLiquidClassname(LIQUID_WATER), data.m_Amount, 0 , data.m_Agents, temperature);
7129
7130 return true;
7131 }
7132
7133 Edible_Base edibleItem = Edible_Base.Cast(data.m_Source);
7134 if (!edibleItem || !edibleItem.CanBeConsumed())
7135 return false;
7136
7137 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME || data.m_Type == EConsumeType.ITEM_CONTINUOUS)
7138 {
7139 data.m_Agents = edibleItem.FilterAgents(data.m_Agents | edibleItem.GetAgents());
7140 temperature = edibleItem.GetTemperature();
7141
7142 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME)
7143 plugin.TransmitAgents(edibleItem, this, AGT_UACTION_CONSUME, data.m_Amount);
7144
7145 if (edibleItem.IsLiquidContainer())
7146 {
7147 int liquidType = edibleItem.GetLiquidType();
7148 string liquidClassName = Liquid.GetLiquidClassname(liquidType);
7149 if (liquidClassName.Length() == 0)
7150 Error("Error! Trying to add unknown liquid to stomach with item=" + Object.GetDebugName(edibleItem) + " data.m_Type=" + data.m_Type + " liquid_type=" + liquidType);
7151
7152 m_PlayerStomach.AddToStomach(liquidClassName, data.m_Amount, 0, data.m_Agents, temperature);
7153 }
7154 else
7155 {
7156 int foodStageType;
7157 if (edibleItem.GetFoodStage())
7158 foodStageType = edibleItem.GetFoodStage().GetFoodStageType();
7159
7160 m_PlayerStomach.AddToStomach(data.m_Source.GetType(), data.m_Amount, foodStageType, data.m_Agents, temperature);
7161 }
7162
7163 edibleItem.Consume(data.m_Amount, this);
7164
7165 return true;
7166
7167 }
7168
7169 return false;
7170 }
eAgents
Определения EAgents.c:3
EConsumeType
Определения EConsumeType.c:2
void Edible_Base()
Определения Edible_Base.c:1133
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:316
proto native Mission GetMission()
int FilterAgents(int agentsIn)
Filter agents from the item (override on higher implementations)
Определения Edible_Base.c:112
bool Consume(float amount, PlayerBase consumer)
Определения Edible_Base.c:95
override FoodStage GetFoodStage()
Определения Edible_Base.c:361
ref PlayerStomach m_PlayerStomach
Определения PlayerBase.c:273
WorldData GetWorldData()
Определения gameplay.c:743
EConsumeType m_Type
Определения PlayerConsumeData.c:8
float m_Amount
Определения PlayerConsumeData.c:3
int m_LiquidType
Определения PlayerConsumeData.c:5
int m_Agents
Определения PlayerConsumeData.c:4
ItemBase m_Source
Определения PlayerConsumeData.c:7
int GetPollution()
Определения WorldData.c:281
float GetLiquidTypeEnviroTemperature(int liquidType)
Определения WorldData.c:228
class LOD Object
proto native CGame GetGame()
const int AGT_UACTION_CONSUME
Определения 3_Game/constants.c:499
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
const int LIQUID_WATER
Определения 3_Game/constants.c:541
proto native int Length()
Returns length of string.

Перекрестные ссылки AGT_UACTION_CONSUME, Edible_Base::Consume(), Error(), Edible_Base::FilterAgents(), Edible_Base::GetFoodStage(), GetGame(), WorldData::GetLiquidTypeEnviroTemperature(), CGame::GetMission(), GetPlugin(), WorldData::GetPollution(), Mission::GetWorldData(), string::Length(), LIQUID_WATER, PlayerConsumeData::m_Agents, PlayerConsumeData::m_Amount, PlayerConsumeData::m_LiquidType, m_PlayerStomach, PlayerConsumeData::m_Source и PlayerConsumeData::m_Type.