ActionPickupChicken.c
//!DEPRECATED
class ActionPickupChicken: ActionInteractBase
{
void ActionPickupChicken()
{
m_Text = "#take";
}
override typename GetInputType()
{
return ContinuousInteractActionInput;
}
override void CreateConditionComponents()
{
m_ConditionItem = new CCINone;
m_ConditionTarget = new CCTNone;
}
override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
{
if ( player.GetCommand_Vehicle() )
return false;
Animal_GallusGallusDomesticus chicken;
if ( Class.CastTo( chicken, target.GetObject() ) )
{
return !chicken.IsAlive();
}
return false;
}
override void OnExecuteServer( ActionData action_data )
{
// We will switch the item
Animal_GallusGallusDomesticus targetChicken = Animal_GallusGallusDomesticus.Cast( action_data.m_Target.GetObject() );
if ( targetChicken )
{
DeadChicken_ColorBase deadChicken = DeadChicken_ColorBase.Cast( action_data.m_Player.GetHumanInventory().CreateInHands( targetChicken.GetDeadItemName() ) );
if ( deadChicken == null )
{
deadChicken = DeadChicken_ColorBase.Cast( action_data.m_Player.GetHumanInventory().CreateInInventory( targetChicken.GetDeadItemName() ) );
if ( deadChicken == null )
deadChicken = DeadChicken_ColorBase.Cast( g_Game.CreateObjectEx( targetChicken.GetDeadItemName(), targetChicken.GetPosition(), ECE_PLACE_ON_SURFACE, RF_ORIGINAL ) );
}
targetChicken.Delete();
}
}
};