DIFF

ActionUnfoldEntity.c


class ActionUnfoldEntity : ActionSingleUseBase
{
	void ActionUnfoldEntity ()
	{
		m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_HANDS;
	}

	override void CreateConditionComponents ()
	{
		m_ConditionItem = new CCINonRuined;
		m_ConditionTarget = new CCTNone;
	}

	override bool HasTarget () { return false; }

	override bool ActionCondition ( PlayerBase player, ActionTarget target, ItemBase item )
	{
		if (item)
			return true;
		return false;
	}

	override bool ActionConditionContinue ( ActionData action_data ) { return true; }

	override void OnExecuteClient ( ActionData action_data )
	{
		ClearInventoryReservationEx(action_data);
	}

	override void OnExecuteServer ( ActionData action_data )
	{
		if ( !g_Game.IsMultiplayer() )
			ClearInventoryReservationEx(action_data);

		ItemBase old_item = action_data.m_MainItem;
		if (old_item.ConfigIsExisting("ChangeIntoOnDetach"))
		{
			string str = old_item.ChangeIntoOnDetach();
			if (str  != "")
			{
				UnfoldEntityLambda lambda = new UnfoldEntityLambda(action_data.m_MainItem, str, action_data.m_Player);
				lambda.SetTransferParams(true, true, true, false, 1);
				action_data.m_Player.ServerReplaceItemInHandsWithNew(lambda);
			}
		}
	}
};

class UnfoldEntityLambda : TurnItemIntoItemLambda
{
	void UnfoldEntityLambda (EntityAI old_item, string new_item_type, PlayerBase player)
	{
	}
};