Exemple #1
0
 private void loadCsv(string csvFilePath)
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>(csvFilePath, false).text);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] != null)
         {
             PlayerSkillUpgrade res = new PlayerSkillUpgrade();
             int num2 = 0;
             res.Id    = strArray[num2++, i];
             res.Price = base.parseDouble(strArray[num2++, i]);
             PerkType item = base.parseEnumType <PerkType>(strArray[num2++, i]);
             float    num3 = base.parseFloat(strArray[num2++, i]);
             if (item != PerkType.NONE)
             {
                 PerkInstance instance = new PerkInstance();
                 instance.Type     = item;
                 instance.Modifier = num3;
                 res.PerkInstance  = instance;
                 if (!this.m_usedPerkTypesList.Contains(item))
                 {
                     this.m_usedPerkTypesList.Add(item);
                 }
             }
             base.addResource(res.Id, res);
             this.m_orderedList.Add(res);
         }
     }
 }
 public DungeonEventRules()
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>("Rules/Dungeon-Events", false).text);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] != null)
         {
             DungeonEvent item = new DungeonEvent();
             int          num2 = 0;
             item.DungeonId            = strArray[num2++, i];
             item.Mon                  = base.parseBool(strArray[num2++, i]);
             item.Tue                  = base.parseBool(strArray[num2++, i]);
             item.Wed                  = base.parseBool(strArray[num2++, i]);
             item.Thu                  = base.parseBool(strArray[num2++, i]);
             item.Fri                  = base.parseBool(strArray[num2++, i]);
             item.Sat                  = base.parseBool(strArray[num2++, i]);
             item.Sun                  = base.parseBool(strArray[num2++, i]);
             item.CoinMultiplier       = base.parseFloat(strArray[num2++, i]);
             item.XpMultiplier         = base.parseFloat(strArray[num2++, i]);
             item.DropChanceMultiplier = base.parseFloat(strArray[num2++, i]);
             if (!this.m_events.ContainsKey(item.DungeonId))
             {
                 this.m_events.Add(item.DungeonId, new List <DungeonEvent>());
             }
             this.m_events[item.DungeonId].Add(item);
         }
     }
 }
 public LevelUpRules()
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>("Rules/Rules-LevelUp", false).text);
     this.m_levelXpRequirements.Add(0.0);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] != null)
         {
             LevelEntry entry = new LevelEntry();
             int        num2  = 0;
             entry.Level     = base.parseInt(strArray[num2++, i]);
             entry.XpReq     = base.parseDouble(strArray[num2++, i]);
             entry.MaxEnergy = base.parseInt(strArray[num2++, i]);
             base.m_resources.Add(entry.Level, entry);
             this.m_levelXpRequirements.Add(entry.XpReq);
         }
     }
 }
 public UpgradeRules()
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>("Rules/Rules-Upgrades", false).text);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] != null)
         {
             LevelEntry entry = new LevelEntry();
             int        num2  = 0;
             entry.Level     = base.parseInt(strArray[num2++, i]);
             entry.Coins     = base.parseInt(strArray[num2++, i]);
             entry.Tokens    = base.parseInt(strArray[num2++, i]);
             entry.Material1 = base.parseInt(strArray[num2++, i]);
             entry.Material2 = base.parseInt(strArray[num2++, i]);
             entry.Material3 = base.parseInt(strArray[num2++, i]);
             this.m_resources.Add(entry.Level, entry);
         }
     }
 }
Exemple #5
0
 private void loadItemCsv(string csvFilePath)
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>(csvFilePath, false).text);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] != null)
         {
             Item res  = new Item();
             int  num2 = 0;
             res.Id            = strArray[num2++, i];
             res.Name          = _.L(strArray[num2++, i], null, false);
             res.Type          = base.parseEnumType <ItemType>(strArray[num2++, i]);
             res.Accessories   = base.parseOrderedEnumStringDict <AccessoryType>(strArray[num2++, i]);
             res.SpriteId      = strArray[num2++, i];
             res.BodyMaterials = base.parseStringList(strArray[num2++, i]);
             res.Rarity        = base.parseInt(strArray[num2++, i]);
             List <PerkType> list = base.parseEnumList <PerkType>(strArray[num2++, i]);
             for (int j = 0; j < list.Count; j++)
             {
                 PerkType     perkType     = list[j];
                 float        bestModifier = ConfigPerks.GetBestModifier(perkType);
                 PerkInstance item         = new PerkInstance();
                 item.Type     = perkType;
                 item.Modifier = bestModifier;
                 res.FixedPerks.PerkInstances.Add(item);
             }
             res.FromChest = base.parseEnumType <ChestType>(strArray[num2++, i]);
             res.postDeserializeInitialization();
             base.addResource(res.Id, res);
             this.m_orderedItemIds.Add(res.Id);
             this.m_sortedItems.Add(res);
             if (res.FromChest != ChestType.NONE)
             {
                 LootTableItem item3 = new LootTableItem();
                 item3.Id = res.Id;
                 LootTableItem item2 = item3;
                 this.m_dynamicChestLootTables[res.FromChest].Items.Add(item2);
             }
         }
     }
 }
 private void loadEnemyCharacterCsv(string csvFilePath)
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>(csvFilePath, false).text);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] != null)
         {
             Character e    = new Character();
             int       num2 = 0;
             e.Id   = strArray[num2++, i];
             e.Name = _.L(strArray[num2++, i], null, false);
             num2++;
             e.Type                        = base.parseEnumType <GameLogic.CharacterType>(strArray[num2++, i]);
             e.Prefab                      = base.parseEnumType <CharacterPrefab>(strArray[num2++, i]);
             e.Rarity                      = base.parseInt(strArray[num2++, i]);
             e.CoreAiBehaviour             = base.parseEnumType <AiBehaviourType>(strArray[num2++, i]);
             e.BossAiBehaviour             = base.parseEnumType <AiBehaviourType>(strArray[num2++, i]);
             e.BossAiParameters            = new string[] { strArray[num2++, i], strArray[num2++, i], strArray[num2++, i] };
             e.BossPerk                    = base.parseEnumType <PerkType>(strArray[num2++, i]);
             e.RangedProjectileType        = base.parseEnumType <ProjectileType>(strArray[num2++, i]);
             e.AttackContactTimeNormalized = base.parseFloat(strArray[num2++, i]);
             e.BaseStats                   = new Dictionary <string, double>();
             e.BaseStats.Add(BaseStatProperty.Life.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.AttacksPerSecond.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.AttackRange.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.DamagePerHit.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.CriticalHitChancePct.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.CriticalHitMultiplier.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.CleaveDamagePct.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.CleaveRange.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.MovementSpeed.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.Threat.ToString(), base.parseDouble(strArray[num2++, i]));
             e.BaseStats.Add(BaseStatProperty.UniversalArmorBonus.ToString(), 0.0);
             e.BaseStats.Add(BaseStatProperty.SkillDamage.ToString(), 0.0);
             e.BaseStats.Add(BaseStatProperty.UniversalXpBonus.ToString(), 0.0);
             this.postProcess(e);
         }
     }
 }
 public DungeonResources([Optional, DefaultParameterValue("Rules/Dungeon-Instances")] string sourcePath)
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>(sourcePath, false).text);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] != null)
         {
             int      num4;
             RowEntry entry = new RowEntry();
             int      num2  = 0;
             entry.Id               = strArray[num2++, i];
             entry.Name             = _.L(strArray[num2++, i], null, false);
             entry.LevelRequirement = base.parseInt(strArray[num2++, i]);
             entry.ExploreCost      = base.parseInt(strArray[num2++, i]);
             entry.BaseDifficulty   = base.parseInt(strArray[num2++, i]);
             entry.EnergyCost       = base.parseInt(strArray[num2++, i]);
             entry.FloorCount       = ConfigDungeons.DEFAULT_DUNGEON_ROOM_COUNT;
             num2++;
             entry.PrimaryMinionType   = base.parseEnumType <CharacterType>(strArray[num2++, i]);
             entry.SecondaryMinionType = base.parseEnumType <CharacterType>(strArray[num2++, i]);
             List <KeyValuePair <string, int> > list = base.parseStringIntList(strArray[num2++, i], 0x22c);
             entry.BossPool = new Dictionary <string, int>();
             for (int j = 0; j < list.Count; j++)
             {
                 KeyValuePair <string, int> pair  = list[j];
                 KeyValuePair <string, int> pair2 = list[j];
                 entry.BossPool.Add(pair.Key, pair2.Value);
             }
             entry.BossType   = strArray[num2++, i];
             entry.FtueBoss   = ((list.Count <= 0) || !(entry.BossType != "Elite")) ? null : list[0].Key;
             entry.Theme      = base.parseEnumType <DungeonThemeType>(strArray[num2++, i]);
             entry.Mood       = strArray[num2++, i];
             entry.MapStyle   = strArray[num2++, i];
             entry.LootPool   = base.parseStringList(strArray[num2++, i]);
             entry.LayoutPool = base.parseStringList(strArray[num2++, i]);
             Dungeon dungeon = new Dungeon();
             dungeon.Id                  = entry.Id;
             dungeon.Name                = entry.Name;
             dungeon.LevelRequirement    = entry.LevelRequirement;
             dungeon.ExploreCost         = entry.ExploreCost;
             dungeon.EnergyCost          = entry.EnergyCost;
             dungeon.LootPool            = entry.LootPool;
             dungeon.BaseDifficulty      = entry.BaseDifficulty;
             dungeon.FloorCount          = entry.FloorCount;
             dungeon.LayoutPool          = entry.LayoutPool;
             dungeon.Theme               = entry.Theme;
             dungeon.Mood                = GameLogic.Binder.DungeonMoodResources.getMood(entry.Mood);
             dungeon.MapStyle            = entry.MapStyle;
             dungeon.PrimaryMinionType   = entry.PrimaryMinionType;
             dungeon.SecondaryMinionType = entry.SecondaryMinionType;
             dungeon.FtueBoss            = entry.FtueBoss;
             dungeon.BossPool            = entry.BossPool;
             dungeon.EliteTag            = entry.BossType == "Elite";
             bool flag = int.TryParse(dungeon.Id, out num4);
             if (!flag || (this.m_orderedRegularDungeons.Count < ConfigDungeons.MAX_DUNGEON_COUNT))
             {
                 base.m_resources.Add(dungeon.Id, dungeon);
             }
             if (flag && (this.m_orderedRegularDungeons.Count < ConfigDungeons.MAX_DUNGEON_COUNT))
             {
                 this.m_orderedRegularDungeons.Add(dungeon);
             }
             if (!this.m_dungeonThemeMinionCharacterTypes.ContainsKey(dungeon.Theme))
             {
                 this.m_dungeonThemeMinionCharacterTypes.Add(dungeon.Theme, new List <CharacterType>());
             }
             List <CharacterType> list2 = this.m_dungeonThemeMinionCharacterTypes[dungeon.Theme];
             if (!list2.Contains(entry.PrimaryMinionType))
             {
                 list2.Add(entry.PrimaryMinionType);
             }
             if (!list2.Contains(entry.SecondaryMinionType))
             {
                 list2.Add(entry.SecondaryMinionType);
             }
         }
     }
     this.createDebugDungeon();
 }
 private void loadPetCharacterCsv(string csvFilePath)
 {
     string[,] strArray = CsvUtils.Deserialize(ResourceUtil.LoadSafe <TextAsset>(csvFilePath, false).text);
     for (int i = 0; i < strArray.GetLength(1); i++)
     {
         if (strArray[0, i] == null)
         {
             continue;
         }
         Character e    = new Character();
         int       num2 = 0;
         e.Id   = strArray[num2++, i];
         e.Name = _.L(strArray[num2++, i], null, false);
         num2++;
         e.FlavorText      = _.L(strArray[num2++, i], null, false);
         e.Type            = GameLogic.CharacterType.Pet;
         e.Prefab          = base.parseEnumType <CharacterPrefab>(strArray[num2++, i]);
         e.Rarity          = base.parseInt(strArray[num2++, i]);
         e.AvatarSpriteId  = strArray[num2++, i];
         e.CoreAiBehaviour = base.parseEnumType <AiBehaviourType>(strArray[num2++, i]);
         KeyValuePair <string, float>   pair      = base.parseStringFloatPair(strArray[num2++, i]);
         KeyValuePair <string, float>   pair2     = base.parseStringFloatPair(strArray[num2++, i]);
         KeyValuePair <string, float>   pair3     = base.parseStringFloatPair(strArray[num2++, i]);
         KeyValuePair <string, float>   pair4     = base.parseStringFloatPair(strArray[num2++, i]);
         KeyValuePair <string, float>[] pairArray = new KeyValuePair <string, float>[] { pair, pair2, pair3, pair4 };
         e.FixedPerks = new GatedPerkContainer();
         for (int j = 0; j < pairArray.Length; j++)
         {
             if (string.IsNullOrEmpty(pairArray[j].Key) || (j >= ConfigGameplay.PET_PERK_MILESTONE_LEVELS.Count))
             {
                 break;
             }
             int      num4               = ConfigGameplay.PET_PERK_MILESTONE_LEVELS[j];
             PerkType perkType           = base.parseEnumType <PerkType>(pairArray[j].Key);
             ConfigPerks.SharedData data = ConfigPerks.SHARED_DATA[perkType];
             float bestModifier          = (data.LinkedToRunestone == null) ? pairArray[j].Value : ConfigRunestones.GetRunestoneData(data.LinkedToRunestone).PerkInstance.Modifier;
             if (bestModifier == 0f)
             {
                 bestModifier = ConfigPerks.GetBestModifier(perkType);
             }
             GatedPerkContainer.Entry item = new GatedPerkContainer.Entry();
             item.RankReq = num4;
             PerkInstance instance = new PerkInstance();
             instance.Type     = perkType;
             instance.Modifier = bestModifier;
             item.PerkInstance = instance;
             e.FixedPerks.Entries.Add(item);
         }
         e.RangedProjectileType        = base.parseEnumType <ProjectileType>(strArray[num2++, i]);
         e.MainHeroDamagePerHitPct     = base.parseFloat(strArray[num2++, i]);
         e.AttackContactTimeNormalized = base.parseFloat(strArray[num2++, i]);
         e.BaseStats = new Dictionary <string, double>();
         e.BaseStats.Add(BaseStatProperty.AttacksPerSecond.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.AttackRange.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.CriticalHitChancePct.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.CriticalHitMultiplier.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.CleaveDamagePct.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.CleaveRange.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.MovementSpeed.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.Threat.ToString(), base.parseDouble(strArray[num2++, i]));
         e.BaseStats.Add(BaseStatProperty.Life.ToString(), 999.0);
         e.BaseStats.Add(BaseStatProperty.DamagePerHit.ToString(), 0.0);
         e.BaseStats.Add(BaseStatProperty.UniversalArmorBonus.ToString(), 0.0);
         e.BaseStats.Add(BaseStatProperty.SkillDamage.ToString(), 0.0);
         e.BaseStats.Add(BaseStatProperty.UniversalXpBonus.ToString(), 0.0);
         this.postProcess(e);
     }
 }