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

◆ Consume() [2/2]

bool ManBase::Consume ( PlayerConsumeData data)
inlineprivate

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

7345 {
7346 PluginTransmissionAgents plugin = PluginTransmissionAgents.Cast(GetPlugin(PluginTransmissionAgents));
7347 WorldData worldData = g_Game.GetMission().GetWorldData();
7348 int pollution = worldData.GetPollution();
7349 float temperature = 0;
7350
7351 if (data.m_Type == EConsumeType.ENVIRO_POND || data.m_Type == EConsumeType.ENVIRO_WELL || data.m_Type == EConsumeType.ENVIRO_SNOW)
7352 {
7353 if (data.m_Type != EConsumeType.ENVIRO_WELL)
7354 {
7355 if (pollution & EPollution.HEAVYMETAL)
7356 data.m_Agents = data.m_Agents | eAgents.HEAVYMETAL;
7357
7358 if (data.m_Type == EConsumeType.ENVIRO_POND)
7359 data.m_Agents = data.m_Agents | eAgents.CHOLERA;
7360 }
7361
7362 temperature = worldData.GetLiquidTypeEnviroTemperature(data.m_LiquidType);
7363 m_PlayerStomach.AddToStomach(Liquid.GetLiquidClassname(LIQUID_WATER), data.m_Amount, 0 , data.m_Agents, temperature);
7364
7365 return true;
7366 }
7367
7368 Edible_Base edibleItem = Edible_Base.Cast(data.m_Source);
7369 if (!edibleItem || !edibleItem.CanBeConsumed())
7370 return false;
7371
7372 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME || data.m_Type == EConsumeType.ITEM_CONTINUOUS)
7373 {
7374 data.m_Agents = edibleItem.FilterAgents(data.m_Agents | edibleItem.GetAgents());
7375 temperature = edibleItem.GetTemperature();
7376
7377 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME)
7378 plugin.TransmitAgents(edibleItem, this, AGT_UACTION_CONSUME, data.m_Amount);
7379
7380 if (edibleItem.IsLiquidContainer())
7381 {
7382 int liquidType = edibleItem.GetLiquidType();
7383 string liquidClassName = Liquid.GetLiquidClassname(liquidType);
7384 if (liquidClassName.Length() == 0)
7385 Error("Error! Trying to add unknown liquid to stomach with item=" + Object.GetDebugName(edibleItem) + " data.m_Type=" + data.m_Type + " liquid_type=" + liquidType);
7386
7387 m_PlayerStomach.AddToStomach(liquidClassName, data.m_Amount, 0, data.m_Agents, temperature);
7388 }
7389 else
7390 {
7391 int foodStageType;
7392 if (edibleItem.GetFoodStage())
7393 foodStageType = edibleItem.GetFoodStage().GetFoodStageType();
7394
7395 m_PlayerStomach.AddToStomach(data.m_Source.GetType(), data.m_Amount, foodStageType, data.m_Agents, temperature);
7396 }
7397
7398 edibleItem.Consume(data.m_Amount, this);
7399
7400 return true;
7401
7402 }
7403
7404 return false;
7405 }
DayZGame g_Game
Определения DayZGame.c:3942
eAgents
Определения EAgents.c:3
EConsumeType
Определения EConsumeType.c:2
void Edible_Base()
Определения Edible_Base.c:1133
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:325
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:320
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:282
float GetLiquidTypeEnviroTemperature(int liquidType)
Определения WorldData.c:229
class LOD Object
const int AGT_UACTION_CONSUME
Определения 3_Game/DayZ/constants.c:502
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
const int LIQUID_WATER
Определения 3_Game/DayZ/constants.c:544
proto native int Length()
Returns length of string.

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