using System.Collections.Generic; using ACE.Entity.Enum; using ACE.Server.Factories.Tables; namespace ACE.Server.Factories { public static class LootTables { public static int[][] DefaultMaterial { get; } = { new int[] { (int)MaterialType.Copper, (int)MaterialType.Bronze, (int)MaterialType.Iron, (int)MaterialType.Steel, (int)MaterialType.Silver }, // Armor new int[] { (int)MaterialType.Oak, (int)MaterialType.Teak, (int)MaterialType.Mahogany, (int)MaterialType.Pine, (int)MaterialType.Ebony }, // Missile new int[] { (int)MaterialType.Brass, (int)MaterialType.Ivory, (int)MaterialType.Gold, (int)MaterialType.Steel, (int)MaterialType.Diamond }, // Melee new int[] { (int)MaterialType.RedGarnet, (int)MaterialType.Jet, (int)MaterialType.BlackOpal, (int)MaterialType.FireOpal, (int)MaterialType.Emerald }, // Caster new int[] { (int)MaterialType.Granite, (int)MaterialType.Ceramic, (int)MaterialType.Porcelain, (int)MaterialType.Alabaster, (int)MaterialType.Marble }, // Dinnerware new int[] { (int)MaterialType.Linen, (int)MaterialType.Wool, (int)MaterialType.Velvet, (int)MaterialType.Satin, (int)MaterialType.Silk } // Clothes }; // for logging epic/legendary drops public static HashSet MinorCantrips; public static HashSet MajorCantrips; public static HashSet EpicCantrips; public static HashSet LegendaryCantrips; private static List cantripTables { get; } = new List() { ArmorCantrips.Table, JewelryCantrips.Table, WandCantrips.Table, MeleeCantrips.Table, MissileCantrips.Table }; static LootTables() { BuildCantripsTable(ref MinorCantrips, 0); BuildCantripsTable(ref MajorCantrips, 1); BuildCantripsTable(ref EpicCantrips, 2); BuildCantripsTable(ref LegendaryCantrips, 3); } private static void BuildCantripsTable(ref HashSet table, int tier) { table = new HashSet(); foreach (var cantripTable in cantripTables) { foreach (var category in cantripTable) table.Add((int)category[tier]); } } } }