public bool GiveItem(string itemName)
        {
            if (_inventory.Count >= 10)
            {
                Debug.Log($"{Context.Self.name} failed to receive a {itemName}. Inventory is full.");
                return(false);
            }

            ItemDbEntry meta;

            if (this.Context.Dungeon.ItemDb.Find(itemName, out meta))
            {
                var item = new Item.Item();
                item.Setup(Context.Dungeon, meta, spawnInWorld: false);
                _inventory.Add(item);
                Debug.Log($"{Context.Self.name} was given a {itemName}");

                if (PrimaryWeapon == null && item.Meta.Type == ItemType.Weapon)
                {
                    SetPrimaryWeapon(item);
                }
                return(true);
            }

            return(false);
        }
 private void SpawnLootEntry(ItemDbEntry entry, List <Item.Item> loot)
 {
     if (entry != null)
     {
         var item = new Item.Item();
         item.Setup(Context.Dungeon, entry, spawnInWorld: true);
         loot.Add(item);
         DropItem(item);
     }
 }
示例#3
0
        private void SpawnLootEntry(Character.Character character, LootDbEntry entry, List <Item.Item> loot)
        {
            ItemDbEntry meta;

            if (_meta.ItemDb.Find(entry.Item, out meta))
            {
                var item = new Item.Item();
                item.Setup(character.Context.Dungeon, meta, spawnInWorld: true);
                loot.Add(item);

                character.Context.Dungeon.DropItemIntoWorld(item, _item.WorldPosition);
                Debug.Log($"{_item.Meta.Name} drops a {item.Meta.Name}");
            }
        }
示例#4
0
        public Item.Item SpawnItemInWorld(string itemName, int2 position)
        {
            ItemDbEntry meta;

            if (ItemDb.Find(itemName, out meta))
            {
                var item = new Item.Item();
                item.Setup(this, meta, spawnInWorld: false);
                DropItemIntoWorld(item, position);
                Debug.Log($"{itemName} was spawned into the world at {position}");
                return(item);
            }

            return(null);
        }