Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
 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);
         }
     }
 }
Esempio n. 3
0
        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;
                }
            }
        }