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); } } }
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); } }