19 override void CreateConditionComponents()
28 if (!targetEntity || (targetEntity && targetEntity.IsManagingArrows() && !targetEntity.IsDamageDestroyed()))
37 if (player.GetInventory().CanAddEntityIntoInventory(arrow))
48 if (!targetEntity || (targetEntity && targetEntity.IsManagingArrows() && !targetEntity.IsDamageDestroyed()))
54 return arrowManager.GetFirstArrow();
60 override bool CanBeUsedOnBack()
65 override bool InventoryReservation(
ActionData action_data)
72 if (
EntityAI.CastTo(targetEntity, action_data.m_Target.GetObject()))
81 if (action_data.m_Player.GetInventory().HasInventoryReservation(targetArrow, il))
87 action_data.m_Player.GetInventory().AddInventoryReservationEx(targetArrow, il,
GameInventory.c_InventoryReservationTimeoutMS);
96 action_data.m_ReservedInventoryLocations.Insert(il);
143 override void OnExecuteClient(
ActionData action_data)
150 arrow.GetInventory().GetCurrentInventoryLocation(arrowInventoryLocation);
152 float stackable = arrow.GetTargetQuantityMax(il.GetSlot());
154 if ( stackable == 0 || stackable >= arrow.GetQuantity() )
156 action_data.m_Player.PredictiveTakeToDst(arrowInventoryLocation, il);
160 arrow.SplitIntoStackMaxToInventoryLocationClient( il );
186 override void OnExecuteServer(
ActionData action_data)
197 arrow.GetInventory().GetCurrentInventoryLocation(arrowInventoryLocation);
202 targetEntity.RemoveChild(arrow);
209 action_data.m_Player.PredictiveTakeToDst(arrowInventoryLocation, il);