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); } }
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}"); } }
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); }