ActionWashHandsWater.c
class ActionWashHandsWaterCB : ActionContinuousBaseCB
{
override void CreateActionComponent()
{
m_ActionData.m_ActionComponent = new CAContinuousRepeat(UATimeSpent.WASH_HANDS);
}
}
class ActionWashHandsWater : ActionContinuousBase
{
void ActionWashHandsWater()
{
m_CallbackClass = ActionWashHandsWaterCB;
m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_WASHHANDSPOND;
m_FullBody = true;
m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
m_Text = "#wash_hands";
}
override typename GetInputType()
{
return ContinuousInteractActionInput;
}
override void CreateConditionComponents()
{
m_ConditionItem = new CCINone();
m_ConditionTarget = new CCTWaterSurfaceEx(UAMaxDistances.DEFAULT, LIQUID_GROUP_WATER - LIQUID_SNOW);
}
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
{
// Other conditions are in CCTWaterSurface
return (player.HasBloodyHands() && !player.GetItemInHands() && !player.GetItemOnSlot("Gloves"));
}
override void OnFinishProgressServer( ActionData action_data )
{
PluginLifespan moduleLifespan = PluginLifespan.Cast(GetPlugin(PluginLifespan));
moduleLifespan.UpdateBloodyHandsVisibility(action_data.m_Player, false);
action_data.m_Player.ClearBloodyHandsPenaltyChancePerAgent(eAgents.SALMONELLA);
}
}