private void PickupItem(Player player, DroppedItem droppedItem) { // Check the Distance Player <> Item double dist = player.GetDistanceTo(droppedItem); if (dist > 3) { return; } // Check Inv Space int slot = player.Inventory.CheckInvSpace(droppedItem.Item); if (slot < 12) { return; } var success = droppedItem.TryPickUpBy(player); if (success) { player.PlayerView.InventoryView.ItemAppear(droppedItem.Item); } // todo: "Obtained message" ?? guess not }
private bool TryPickupItem(Player player, DroppedItem droppedItem, out Item?stackTarget) { stackTarget = null; if (!this.CanPickup(player, droppedItem)) { return(false); } var slot = player.Inventory?.CheckInvSpace(droppedItem.Item); if (slot < InventoryConstants.EquippableSlotsCount) { return(false); } return(droppedItem.TryPickUpBy(player, out stackTarget)); }
private bool TryPickupItem(Player player, DroppedItem droppedItem, out Item stackTarget) { stackTarget = null; if (!player.Alive) { return(false); } double dist = player.GetDistanceTo(droppedItem); if (dist > 3) { return(false); } int slot = player.Inventory.CheckInvSpace(droppedItem.Item); if (slot < InventoryConstants.EquippableSlotsCount) { return(false); } return(droppedItem.TryPickUpBy(player, out stackTarget)); }