CASingleUseQuantityEdible.c
class CASingleUseQuantityEdible : CASingleUseQuantity
{
void CASingleUseQuantityEdible(float quantity_used_per_action)
{
m_QuantityUsedPerAction = quantity_used_per_action;
}
override void CalcAndSetQuantity(ActionData action_data)
{
super.CalcAndSetQuantity(action_data);
PlayerConsumeData consumeData = new PlayerConsumeData();
consumeData.m_Type = EConsumeType.ITEM_CONTINUOUS;
consumeData.m_Amount = m_QuantityUsedPerAction;
consumeData.m_Source = action_data.m_MainItem;
consumeData.m_Agents = 0;
Edible_Base edibleItem;
if (Edible_Base.CastTo(edibleItem, action_data.m_MainItem))
{
if ((edibleItem.GetConsumptionPenaltyContext() & EConsumptionPenaltyContext.DRINK|EConsumptionPenaltyContext.EAT) != EConsumptionPenaltyContext.NONE)
consumeData.m_Agents = action_data.m_Player.GetBloodyHandsPenaltyAgents();
}
if (g_Game.IsServer())
{
PlayerBase ntarget = PlayerBase.Cast(action_data.m_Target.GetObject());
if (ntarget)
ntarget.Consume(consumeData);
else
action_data.m_Player.Consume(consumeData);
}
}
}