public List <ItemLootDrop> GetLootDrop(LootTableState lootTableState, Loot loot, bool lootGroupUnlimitedDrops, bool ignoreDropLimit, bool lootTableUnlimitedDrops, ref int lootGroupRemainingDrops) { List <ItemLootDrop> returnValue = new List <ItemLootDrop>(); int itemCount = Random.Range(loot.MinDrops, loot.MaxDrops + 1); //Debug.Log("GatherLootTable.RollLoot(): itemCount: " + itemCount); for (int i = 0; i < itemCount; i++) { ItemLootDrop droppedItem = new ItemLootDrop(systemItemManager.GetNewResource(loot.Item.DisplayName), lootTableState, systemGameManager); droppedItem.Item.DropLevel = playerManager.MyCharacter.CharacterStats.Level; lootTableState.DroppedItems.Add(droppedItem); if (lootGroupUnlimitedDrops == false && ignoreDropLimit == false) { lootGroupRemainingDrops = lootGroupRemainingDrops - 1; if (lootGroupRemainingDrops <= 0) { break; } } if (lootTableUnlimitedDrops == false && ignoreDropLimit == false) { lootTableState.LootTableRemainingDrops -= 1; if (lootTableState.LootTableRemainingDrops <= 0) { break; } } } //droppedItems.Add(new LootDrop(systemItemManager.GetNewResource(item.MyItem.DisplayName), this)); return(returnValue); }
private void AddItem(string itemName) { Item tmpItem = systemItemManager.GetNewResource(itemName); if (tmpItem != null) { playerManager.ActiveCharacter.CharacterInventoryManager.AddItem(tmpItem, false); } }