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

◆ Consume() [2/2]

bool ManBase::Consume ( PlayerConsumeData data)
inlineprivate

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

7119 {
7120 PluginTransmissionAgents plugin = PluginTransmissionAgents.Cast(GetPlugin(PluginTransmissionAgents));
7121 int pollution = GetGame().GetMission().GetWorldData().GetPollution();
7122 float temperature = 0;
7123
7124 if (data.m_Type == EConsumeType.ENVIRO_POND || data.m_Type == EConsumeType.ENVIRO_WELL || data.m_Type == EConsumeType.ENVIRO_SNOW)
7125 {
7126 if (data.m_Type != EConsumeType.ENVIRO_WELL)
7127 {
7128 if (pollution & EPollution.HEAVYMETAL)
7129 data.m_Agents = data.m_Agents | eAgents.HEAVYMETAL;
7130
7131 if (data.m_Type == EConsumeType.ENVIRO_POND)
7132 data.m_Agents = data.m_Agents | eAgents.CHOLERA;
7133 }
7134
7136 m_PlayerStomach.AddToStomach(Liquid.GetLiquidClassname(LIQUID_WATER), data.m_Amount, 0 , data.m_Agents, temperature);
7137
7138 return true;
7139 }
7140
7141 Edible_Base edibleItem = Edible_Base.Cast(data.m_Source);
7142 if (!edibleItem || !edibleItem.CanBeConsumed())
7143 return false;
7144
7145 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME || data.m_Type == EConsumeType.ITEM_CONTINUOUS)
7146 {
7147 data.m_Agents = edibleItem.FilterAgents(data.m_Agents | edibleItem.GetAgents());
7148 temperature = edibleItem.GetTemperature();
7149
7150 if (data.m_Type == EConsumeType.ITEM_SINGLE_TIME)
7151 plugin.TransmitAgents(edibleItem, this, AGT_UACTION_CONSUME, data.m_Amount);
7152
7153 if (edibleItem.IsLiquidContainer())
7154 {
7155 int liquidType = edibleItem.GetLiquidType();
7156 string liquidClassName = Liquid.GetLiquidClassname(liquidType);
7157 if (liquidClassName.Length() == 0)
7158 Error("Error! Trying to add unknown liquid to stomach with item=" + Object.GetDebugName(edibleItem) + " data.m_Type=" + data.m_Type + " liquid_type=" + liquidType);
7159
7160 m_PlayerStomach.AddToStomach(liquidClassName, data.m_Amount, 0, data.m_Agents, temperature);
7161 }
7162 else
7163 {
7164 int foodStageType;
7165 if (edibleItem.GetFoodStage())
7166 foodStageType = edibleItem.GetFoodStage().GetFoodStageType();
7167
7168 m_PlayerStomach.AddToStomach(data.m_Source.GetType(), data.m_Amount, foodStageType, data.m_Agents, temperature);
7169 }
7170
7171 edibleItem.Consume(data.m_Amount, this);
7172
7173 return true;
7174
7175 }
7176
7177 return false;
7178 }
eAgents
Определения EAgents.c:3
EConsumeType
Определения EConsumeType.c:2
void Edible_Base()
Определения Edible_Base.c:1132
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
Определения constants.c:497
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
const int LIQUID_WATER
Определения constants.c:539
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.