9 override void CreateConditionComponents()
18 if (!targetEntity || (targetEntity && targetEntity.IsManagingArrows() && !targetEntity.IsDamageDestroyed()))
27 if (player.GetInventory().CanAddEntityIntoInventory(arrow))
35 override Object GetDisplayInteractObject(
PlayerBase player, ActionTarget target)
38 if (!targetEntity || (targetEntity && targetEntity.IsManagingArrows() && !targetEntity.IsDamageDestroyed()))
50 override bool CanBeUsedOnBack()
55 override bool InventoryReservation(ActionData action_data)
62 if (
EntityAI.CastTo(targetEntity, action_data.m_Target.GetObject()))
71 if (action_data.m_Player.GetInventory().HasInventoryReservation(targetArrow, il))
86 action_data.m_ReservedInventoryLocations.Insert(il);
93 override void OnExecute(ActionData action_data)
95 if (
GetGame().IsDedicatedServer())
107 arrow.GetInventory().GetCurrentInventoryLocation(arrowInventoryLocation);
109 float stackable = arrow.GetTargetQuantityMax(il.GetSlot());
111 if ( stackable == 0 || stackable >= arrow.GetQuantity() )
113 action_data.m_Player.PredictiveTakeToDst(arrowInventoryLocation, il);
117 arrow.SplitIntoStackMaxToInventoryLocationClient( il );