예제 #1
0
        public async Task PickupItemHandler(PickupItemMessage message, Player player)
        {
            if (message.Loot == default)
            {
                Logger.Error($"{player} is trying to pick up invalid item.");
                return;
            }

            await player.OnLootPickup.InvokeAsync(message.Loot.Lot);

            Object.Destroy(message.Loot);

            await player.GetComponent <InventoryManagerComponent>().AddItemAsync(message.Loot.Lot, 1);
        }
예제 #2
0
        public async Task PickupItemHandler(PickupItemMessage message, Player player)
        {
            Logger.Debug($"{player} TRYING picking up {message.Loot}");

            await Lock.WaitAsync();

            Lot loot = default;

            try
            {
                if (message.Loot != default && message.Loot.Alive)
                {
                    loot = message.Loot.Lot;

                    Object.Destroy(message.Loot);
                }
                else
                {
                    Logger.Error($"{player} is trying to pick up invalid item.");
                }
            }
            finally
            {
                Lock.Release();
            }

            if (loot == default)
            {
                return;
            }

            Logger.Debug($"{player} picking up {loot}");

            await player.OnLootPickup.InvokeAsync(loot);

            await player.GetComponent <InventoryManagerComponent>().AddLotAsync(loot, 1, lootType: LootType.Pickup);
        }
 private void OnPickedUpItem(PickupItemMessage msg)
 {
     Debug.Log("Grabbing " + msg.ItemPickedUp.name + " with hand " + msg.Hand);
     _currentlyGrabbedItems[msg.Hand] = msg.ItemPickedUp.GetComponent<WeaponPiece>();
 }