private static void GenerateFromItemTypes() { var nodes = new List <Node>(); foreach (var type in ItemType.sheet) { if (!type.treasureClass) { continue; } for (int i = 0; i < 100; i += 3) { var treasureClass = new TreasureClass(); treasureClass.name = type.code + i; treasureClass.picks = 1; byName.Add(treasureClass.name, treasureClass); nodes.Clear(); foreach (var item in ItemInfo.all) { if (item.level > i && item.level <= i + 3 && item.HasType(type)) { var node = new Node(); node.code = item.code; node.prob = 1; nodes.Add(node); treasureClass.probSum += node.prob; } } treasureClass.nodeArray = nodes.ToArray(); } } }
public static void Load() { sheet = Datasheet.Load <MonStat>("data/global/excel/MonStats.txt"); monStats = new Dictionary <string, MonStat>(); foreach (MonStat stat in sheet) { var key = stat.id.ToLower(); if (monStats.ContainsKey(key)) { monStats.Remove(key); } monStats.Add(key, stat); stat.ext = MonStatsExtended.Find(stat.monStatEx); stat.name = stat.nameStr == null ? null : Translation.Find(stat.nameStr); stat.minion1 = stat.minion1Id == null ? null : Find(stat.minion1Id); stat.minion2 = stat.minion2Id == null ? null : Find(stat.minion2Id); stat.sound = MonSound.Find(stat.monSoundId); stat.uniqueSound = MonSound.Find(stat.uMonSoundId); for (int i = 0; i < stat.treasureClass.Length; ++i) { stat.treasureClass[i].normal = TreasureClass.Find(stat.treasureClass[i]._normal); stat.treasureClass[i].champion = TreasureClass.Find(stat.treasureClass[i]._champion); stat.treasureClass[i].unique = TreasureClass.Find(stat.treasureClass[i]._unique); stat.treasureClass[i].quest = TreasureClass.Find(stat.treasureClass[i]._quest); } } }
public static void Load() { sheet = Datasheet.Load <TreasureClass>("data/global/excel/TreasureClassEx.txt"); byName = new Dictionary <string, TreasureClass>(); GenerateFromItemTypes(); for (int i = 0; i < sheet.Count; ++i) { TreasureClass tc = sheet[i]; if (tc.name == null) { continue; } if (byName.ContainsKey(tc.name)) { continue; } byName.Add(tc.name, tc); tc.index = i; } foreach (TreasureClass tc in sheet) { if (tc.name == null) { continue; } tc.probSum = 0; for (int i = 0; i < tc.nodeArray.Length; ++i) { var node = tc.nodeArray[i]; if (node.code == null) { break; } if (node.code.StartsWith("\"gld")) { node.code = "gld"; // todo correctly parse strings like "gld,mul=123" } tc.probSum += node.prob; tc.nodeArray[i] = node; } } }