/// <summary> /// Called when all instances has been loaded for initialized members in instance. /// </summary> public override void CreateReferences() { base.CreateVillageReferences(); this._upgradeLevelCount = this._row.GetBiggestArraySize(); this._buildingClass = LogicDataTables.GetBuildingClassByName(this.BuildingClass); if (this._buildingClass == null) { Debugger.Error("Building class is not defined for " + this.GetName()); } int longestArraySize = this._row.GetBiggestArraySize(); this._buildResourceData = new LogicResourceData[longestArraySize]; this._altBuildResourceData = new LogicResourceData[longestArraySize]; this._storedResourceCounts = new LogicArrayList <int> [longestArraySize]; this._percentageStoredResourceCounts = new LogicArrayList <int> [longestArraySize]; this._townHallLevel = new int[longestArraySize]; this._townHallVillage2Level = new int[longestArraySize]; this._constructionTimes = new int[longestArraySize]; this._gearUpTime = new int[longestArraySize]; this._gearUpCost = new int[longestArraySize]; this._boostCost = new int[longestArraySize]; for (int i = 0; i < longestArraySize; i++) { this._gearUpCost[i] = this.GetClampedIntegerValue("GearUpCost", i); this._gearUpTime[i] = this.GetClampedIntegerValue("GearUpTime", i); this._boostCost[i] = this.GetClampedIntegerValue("BoostCost", i); this._buildResourceData[i] = LogicDataTables.GetResourceByName(this.GetClampedValue("BuildResource", i)); this._altBuildResourceData[i] = LogicDataTables.GetResourceByName(this.GetClampedValue("AltBuildResource", i)); this._townHallLevel[i] = LogicMath.Max(this.GetClampedIntegerValue("TownHallLevel", i) - 1, 0); this._townHallVillage2Level[i] = LogicMath.Max(this.GetClampedIntegerValue("TownHallLevel2", i) - 1, 0); this._storedResourceCounts[i] = new LogicArrayList <int>(); this._percentageStoredResourceCounts[i] = new LogicArrayList <int>(); LogicDataTable table = LogicDataTables.GetTable(2); for (int j = 0; j < table.GetItemCount(); j++) { this._storedResourceCounts[i].Add(this.GetIntegerValue("MaxStored" + table.GetItemAt(j).GetName(), i)); this._percentageStoredResourceCounts[i].Add(this.GetIntegerValue("PercentageStored" + table.GetItemAt(j).GetName(), i)); } this._constructionTimes[i] = 86400 * this.GetIntegerValue("BuildTimeD", i) + 3600 * this.GetIntegerValue("BuildTimeH", i) + 60 * this.GetIntegerValue("BuildTimeM", i) + this.GetIntegerValue("BuildTimeS", i); } this._produceResourceData = LogicDataTables.GetResourceByName(this.GetValue("ProducesResource", 0)); this._gearUpResourceData = LogicDataTables.GetResourceByName(this.GetClampedValue("GearUpResource", 0)); string heroType = this.GetValue("HeroType", 0); if (!string.IsNullOrEmpty(heroType)) { this._heroData = LogicDataTables.GetHeroByName(heroType); } string wallBlockX = this.GetValue("WallBlockX", 0); if (wallBlockX.Length > 0) { this.LoadWallBlock(wallBlockX, out this._wallBlockX); this.LoadWallBlock(this.GetValue("WallBlockY", 0), out this._wallBlockY); } this._isClockTower = this.GetName().Equals("Clock Tower"); this._isFlamer = this.GetName().Equals("Flamer"); this._isBarrackVillage2 = this.GetName().Equals("Barrack2"); }
/// <summary> /// Creates a new data item. /// </summary> public LogicData CreateItem(CSVRow row) { LogicData data = null; switch (this._tableIndex) { case 0: { data = new LogicBuildingData(row, this); break; } case 1: { data = new LogicLocaleData(row, this); break; } case 2: { data = new LogicResourceData(row, this); break; } case 3: { data = new LogicCharacterData(row, this); break; } case 5: { data = new LogicProjectileData(row, this); break; } case 6: { data = new LogicBuildingClassData(row, this); break; } case 7: { data = new LogicObstacleData(row, this); break; } case 8: { data = new LogicEffectData(row, this); break; } case 9: { data = new LogicParticleEmitterData(row, this); break; } case 10: { data = new LogicExperienceLevelData(row, this); break; } case 11: { data = new LogicTrapData(row, this); break; } case 12: { data = new LogicAllianceBadgeData(row, this); break; } case 13: { data = new LogicGlobalData(row, this); break; } case 14: { data = new LogicTownhallLevelData(row, this); break; } case 15: { data = new LogicAlliancePortalData(row, this); break; } case 16: { data = new LogicNpcData(row, this); break; } case 17: { data = new LogicDecoData(row, this); break; } case 18: { data = new LogicResourcePackData(row, this); break; } case 19: { data = new LogicShieldData(row, this); break; } case 20: { data = new LogicMissionData(row, this); break; } case 21: { data = new LogicBillingPackageData(row, this); break; } case 22: { data = new LogicAchievementData(row, this); break; } case 23: { data = new LogicFaqData(row, this); break; } case 25: { data = new LogicSpellData(row, this); break; } case 26: { data = new LogicHintData(row, this); break; } case 27: { data = new LogicHeroData(row, this); break; } case 28: { data = new LogicLeagueData(row, this); break; } case 29: { data = new LogicNewsData(row, this); break; } case 30: { data = new LogicWarData(row, this); break; } case 31: { data = new LogicRegionData(row, this); break; } case 32: { data = new LogicGlobalData(row, this); break; } case 33: { data = new LogicAllianceBadgeLayerData(row, this); break; } case 34: { data = new LogicAllianceLevelData(row, this); break; } case 36: { data = new LogicVariableData(row, this); break; } case 37: { data = new LogicGemBundleData(row, this); break; } case 38: { data = new LogicVillageObjectData(row, this); break; } case 39: { data = new LogicCalendarEventFunctionData(row, this); break; } case 40: { data = new LogicBoomboxData(row, this); break; } case 41: { data = new LogicEventEntryData(row, this); break; } case 42: { data = new LogicDeeplinkData(row, this); break; } case 43: { data = new LogicLeague2Data(row, this); break; } default: { Debugger.Error("Invalid data table id: " + this._tableIndex); break; } } return(data); }