public void okClicked() { this.m_questDef = NewQuests.getNewQuestDef(this.m_questID); VillageMap map = GameEngine.Instance.getVillage(this.m_villageID); if (map == null) { this.confirmAvailableSpace(); } else { VillageMap.StockpileLevels levels = new VillageMap.StockpileLevels(); VillageMap.GranaryLevels levels2 = new VillageMap.GranaryLevels(); map.getStockpileLevels(levels); map.getGranaryLevels(levels2); bool flag = false; double num = 0.0; double num2 = 0.0; if (this.m_questDef.reward_apples > 0) { num2 = GameEngine.Instance.World.UserResearchData.getResourceCap(GameEngine.Instance.LocalWorldData, 0x12, false) * CardTypes.getResourceCapMultiplier(0x12, GameEngine.Instance.World.UserCardData); num = num2 - levels2.fishLevel; if (Convert.ToInt32(num) < this.m_questDef.reward_apples) { flag = true; } } if ((this.m_questDef.reward_stone > 0) && !flag) { num2 = GameEngine.Instance.World.UserResearchData.getResourceCap(GameEngine.Instance.LocalWorldData, 7, false) * CardTypes.getResourceCapMultiplier(7, GameEngine.Instance.World.UserCardData); num = num2 - levels.stoneLevel; if (Convert.ToInt32(num) < this.m_questDef.reward_stone) { flag = true; } } if ((this.m_questDef.reward_wood > 0) && !flag) { num2 = GameEngine.Instance.World.UserResearchData.getResourceCap(GameEngine.Instance.LocalWorldData, 6, false) * CardTypes.getResourceCapMultiplier(6, GameEngine.Instance.World.UserCardData); num = num2 - levels.woodLevel; if (Convert.ToInt32(num) < this.m_questDef.reward_wood) { flag = true; } } if (!flag || (MyMessageBox.Show(SK.Text("Quest_Reward_Insufficient_Space", "You do not have enough room to store all of the reward at this village. Are you sure you want to send the reward to this village?"), SK.Text("Quest_Reward_Insufficient_Space_header", "Insufficient Space"), MessageBoxButtons.YesNo) != DialogResult.No)) { this.CompleteQuest(); } } }
public void update() { VillageMap village = GameEngine.Instance.Village; if (village != null) { NumberFormatInfo nFI = GameEngine.NFI; VillageMap.StockpileLevels levels = new VillageMap.StockpileLevels(); village.getStockpileLevels(levels); VillageMap.GranaryLevels levels2 = new VillageMap.GranaryLevels(); village.getGranaryLevels(levels2); VillageMap.ArmouryLevels levels3 = new VillageMap.ArmouryLevels(); village.getArmouryLevels(levels3); VillageMap.TownHallLevels levels4 = new VillageMap.TownHallLevels(); village.getTownHallLevels(levels4); VillageMap.InnLevels levels5 = new VillageMap.InnLevels(); village.getInnLevels(levels5); this.woodLabel.Text = levels.woodLevel.ToString("N", nFI); this.stoneLabel.Text = levels.stoneLevel.ToString("N", nFI); this.pitchLabel.Text = levels.pitchLevel.ToString("N", nFI); this.ironLabel.Text = levels.ironLevel.ToString("N", nFI); this.aleLabel.Text = levels5.aleLevel.ToString("N", nFI); this.applesLabel.Text = levels2.applesLevel.ToString("N", nFI); this.breadLabel.Text = levels2.breadLevel.ToString("N", nFI); this.cheeseLabel.Text = levels2.cheeseLevel.ToString("N", nFI); this.meatLabel.Text = levels2.meatLevel.ToString("N", nFI); this.vegLabel.Text = levels2.vegLevel.ToString("N", nFI); this.fishLabel.Text = levels2.fishLevel.ToString("N", nFI); this.bowsLabel.Text = levels3.bowsLevel.ToString("N", nFI); this.pikesLabel.Text = levels3.pikesLevel.ToString("N", nFI); this.swordsLabel.Text = levels3.swordsLevel.ToString("N", nFI); this.armourLabel.Text = levels3.armourLevel.ToString("N", nFI); this.catapultsLabel.Text = levels3.catapultsLevel.ToString("N", nFI); this.clothesLabel.Text = levels4.clothesLevel.ToString("N", nFI); this.furnitureLabel.Text = levels4.furnitureLevel.ToString("N", nFI); this.saltLabel.Text = levels4.saltLevel.ToString("N", nFI); this.wineLabel.Text = levels4.wineLevel.ToString("N", nFI); this.venisonLabel.Text = levels4.venisonLevel.ToString("N", nFI); this.spicesLabel.Text = levels4.spicesLevel.ToString("N", nFI); this.silkLabel.Text = levels4.silkLevel.ToString("N", nFI); this.metalwareLabel.Text = levels4.metalwareLevel.ToString("N", nFI); this.stockpileLimitLabel.Text = "(" + this.getCap(6).ToString("N", nFI) + ")"; this.innLimitLabel.Text = "(" + this.getCap(12).ToString("N", nFI) + ")"; this.granaryLimitLabel.Text = "(" + this.getCap(13).ToString("N", nFI) + ")"; this.armouryLimitLabel.Text = "(" + this.getCap(0x1d).ToString("N", nFI) + ")"; this.hallLimitLabel.Text = "(" + this.getCap(0x17).ToString("N", nFI) + ")"; if (this.selectedResource >= 0) { this.selectedHeadingLabel.Text = VillageBuildingsData.getResourceNames(this.selectedResource) + ": " + ((int) village.getResourceLevel(this.selectedResource)).ToString("N", nFI); double num2 = village.getResourceProductionPerDay(this.selectedResource); this.dailyProductionValueLabel.Text = ((int) num2).ToString("N", nFI); this.totalBuildingsValueLabel.Text = village.numBuildingsOfType(this.selectedResource).ToString("N", nFI); this.workingBuildingsValueLabel.Text = village.numWorkingBuildingsOfType(this.selectedResource).ToString("N", nFI); } this.cardbar.update(); } }
public void updateGranary(GraphicsMgr gfx, VillageMap vm) { if (this.baseSprite != null) { if (this.granaryExtension == null) { this.granaryExtension = new VillageMapBuildingGranaryExtension(); for (int j = 0; j < 0x15; j++) { this.granaryExtension.cell[j] = new SpriteWrapper(); this.granaryExtension.cell[j].Visible = false; this.granaryExtension.cell[j].PosX = 5 + VillageMapBuildingGranaryExtension.granaryLayout[j * 2]; this.granaryExtension.cell[j].PosY = -33 + VillageMapBuildingGranaryExtension.granaryLayout[(j * 2) + 1]; this.baseSprite.AddChild(this.granaryExtension.cell[j]); this.granaryExtension.showGood(gfx, j, -1, 0); } } for (int i = 0; i < 0x15; i++) { this.granaryExtension.showGood(gfx, i, -1, 0); } VillageMap.GranaryLevels levels = new VillageMap.GranaryLevels(); if (vm.getGranaryLevels(levels)) { if (vm.granaryOpenCount == 0) { this.open = false; } double num3 = ((((levels.applesLevel + levels.breadLevel) + levels.cheeseLevel) + levels.fishLevel) + levels.meatLevel) + levels.vegLevel; if (num3 > 0.0) { if (vm.granaryOpenCount > 0) { this.open = true; } else { return; } int index = 0; if (levels.meatLevel > 416.0) { index = 4; } else if (levels.meatLevel > 96.0) { index = 3; } else if (levels.meatLevel > 16.0) { index = 2; } else if (levels.meatLevel > 0.0) { index = 1; } else { index = 0; } int num5 = 0; if (levels.vegLevel > 96.0) { num5 = 3; } else if (levels.vegLevel > 16.0) { num5 = 2; } else if (levels.vegLevel > 0.0) { num5 = 1; } else { num5 = 0; } int num6 = 0; if (levels.cheeseLevel > 416.0) { num6 = 4; } else if (levels.cheeseLevel > 96.0) { num6 = 3; } else if (levels.cheeseLevel > 16.0) { num6 = 2; } else if (levels.cheeseLevel > 0.0) { num6 = 1; } else { num6 = 0; } int num7 = 0; if (levels.applesLevel > 96.0) { num7 = 3; } else if (levels.applesLevel > 16.0) { num7 = 2; } else if (levels.applesLevel > 0.0) { num7 = 1; } else { num7 = 0; } int num8 = 0; if (levels.fishLevel > 96.0) { num8 = 3; } else if (levels.fishLevel > 16.0) { num8 = 2; } else if (levels.fishLevel > 0.0) { num8 = 1; } else { num8 = 0; } int num9 = 0; if (levels.breadLevel > 832.0) { num9 = 4; } else if (levels.breadLevel > 192.0) { num9 = 3; } else if (levels.breadLevel > 32.0) { num9 = 2; } else if (levels.breadLevel > 0.0) { num9 = 1; } else { num9 = 0; } int cellID = 0; for (int k = 0; k < index; k++) { cellID = this.meatPileOrder[k]; if (k != (index - 1)) { this.granaryExtension.showGood(gfx, cellID, 0x10, 0x10); } else { int num12 = (((int) levels.meatLevel) - this.goods16Levels[index]) / this.goodsDividers[index]; this.granaryExtension.showGood(gfx, cellID, 0x10, Math.Min(num12, 0x10)); } } for (int m = 0; m < num5; m++) { cellID = this.vegPileOrder[m]; if (m != (num5 - 1)) { this.granaryExtension.showGood(gfx, cellID, 15, 0x10); } else { int num14 = (((int) levels.vegLevel) - this.goods16Levels[num5]) / this.goodsDividers[num5]; this.granaryExtension.showGood(gfx, cellID, 15, Math.Min(num14, 0x10)); } } for (int n = 0; n < num6; n++) { cellID = this.cheesePileOrder[n]; if (n != (num6 - 1)) { this.granaryExtension.showGood(gfx, cellID, 0x11, 0x10); } else { int num16 = (((int) levels.cheeseLevel) - this.goods16Levels[num6]) / this.goodsDividers[num6]; this.granaryExtension.showGood(gfx, cellID, 0x11, Math.Min(num16, 0x10)); } } for (int num17 = 0; num17 < num7; num17++) { cellID = this.applesPileOrder[num17]; if (num17 != (num7 - 1)) { this.granaryExtension.showGood(gfx, cellID, 13, 0x10); } else { int num18 = (((int) levels.applesLevel) - this.goods16Levels[num7]) / this.goodsDividers[num7]; this.granaryExtension.showGood(gfx, cellID, 13, Math.Min(num18, 0x10)); } } for (int num19 = 0; num19 < num8; num19++) { cellID = this.fishPileOrder[num19]; if (num19 != (num8 - 1)) { this.granaryExtension.showGood(gfx, cellID, 0x12, 0x10); } else { int num20 = (((int) levels.fishLevel) - this.goods16Levels[num8]) / this.goodsDividers[num8]; this.granaryExtension.showGood(gfx, cellID, 0x12, Math.Min(num20, 0x10)); } } for (int num21 = 0; num21 < num9; num21++) { cellID = this.breadPileOrder[num21]; if (num21 != (num9 - 1)) { this.granaryExtension.showGood(gfx, cellID, 14, 0x20); } else { int num22 = (((int) levels.breadLevel) - (this.goods16Levels[num9] * 2)) / this.goodsDividers[num9]; this.granaryExtension.showGood(gfx, cellID, 14, Math.Min(num22, 0x20)); } } } } } }
public void updateValues() { NumberFormatInfo nFI = GameEngine.NFI; VillageMap village = GameEngine.Instance.Village; if (village == null) { for (int i = 0; i < 8; i++) { this.setRowValues(i, -1, -1, -1); } this.tradersAvailableValue.Text = "0/0"; this.traderCapacityValue.Text = "0"; } else { StockExchangeInfo info2 = null; if ((this.selectedStockExchange >= 0) && (this.stockExchanges[this.selectedStockExchange] != null)) { info2 = (StockExchangeInfo) this.stockExchanges[this.selectedStockExchange]; this.updateDeliveryTime(this.selectedStockExchange); } WorldData localWorldData = GameEngine.Instance.LocalWorldData; switch (this.lastTab) { case 1: { VillageMap.StockpileLevels levels = new VillageMap.StockpileLevels(); village.getStockpileLevels(levels); if (info2 != null) { this.setRowValues(0, (int) levels.woodLevel, info2.woodLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(6), 6)); this.setRowValues(1, (int) levels.stoneLevel, info2.stoneLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(7), 7)); this.setRowValues(2, (int) levels.ironLevel, info2.ironLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(8), 8)); this.setRowValues(3, (int) levels.pitchLevel, info2.pitchLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(9), 9)); break; } this.setRowValues(0, (int) levels.woodLevel, -1, -1); this.setRowValues(1, (int) levels.stoneLevel, -1, -1); this.setRowValues(2, (int) levels.ironLevel, -1, -1); this.setRowValues(3, (int) levels.pitchLevel, -1, -1); break; } case 2: { VillageMap.GranaryLevels levels2 = new VillageMap.GranaryLevels(); village.getGranaryLevels(levels2); VillageMap.InnLevels levels3 = new VillageMap.InnLevels(); village.getInnLevels(levels3); if (info2 != null) { this.setRowValues(0, (int) levels2.applesLevel, info2.applesLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(13), 13)); this.setRowValues(1, (int) levels2.cheeseLevel, info2.cheeseLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x11), 0x11)); this.setRowValues(2, (int) levels2.meatLevel, info2.meatLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x10), 0x10)); this.setRowValues(3, (int) levels2.breadLevel, info2.breadLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(14), 14)); this.setRowValues(4, (int) levels2.vegLevel, info2.vegLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(15), 15)); this.setRowValues(5, (int) levels2.fishLevel, info2.fishLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x12), 0x12)); this.setRowValues(6, (int) levels3.aleLevel, info2.aleLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(12), 12)); break; } this.setRowValues(0, (int) levels2.applesLevel, -1, -1); this.setRowValues(1, (int) levels2.cheeseLevel, -1, -1); this.setRowValues(2, (int) levels2.meatLevel, -1, -1); this.setRowValues(3, (int) levels2.breadLevel, -1, -1); this.setRowValues(4, (int) levels2.vegLevel, -1, -1); this.setRowValues(5, (int) levels2.fishLevel, -1, -1); this.setRowValues(6, (int) levels3.aleLevel, -1, -1); break; } case 3: { VillageMap.ArmouryLevels levels4 = new VillageMap.ArmouryLevels(); village.getArmouryLevels(levels4); if (info2 != null) { this.setRowValues(0, (int) levels4.bowsLevel, info2.bowsLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x1d), 0x1d)); this.setRowValues(1, (int) levels4.pikesLevel, info2.pikesLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x1c), 0x1c)); this.setRowValues(2, (int) levels4.armourLevel, info2.armourLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x1f), 0x1f)); this.setRowValues(3, (int) levels4.swordsLevel, info2.swordsLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(30), 30)); this.setRowValues(4, (int) levels4.catapultsLevel, info2.catapultsLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x20), 0x20)); break; } this.setRowValues(0, (int) levels4.bowsLevel, -1, -1); this.setRowValues(1, (int) levels4.pikesLevel, -1, -1); this.setRowValues(2, (int) levels4.armourLevel, -1, -1); this.setRowValues(3, (int) levels4.swordsLevel, -1, -1); this.setRowValues(4, (int) levels4.catapultsLevel, -1, -1); break; } case 4: { VillageMap.TownHallLevels levels5 = new VillageMap.TownHallLevels(); village.getTownHallLevels(levels5); if (info2 != null) { this.setRowValues(0, (int) levels5.venisonLevel, info2.venisonLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x16), 0x16)); this.setRowValues(1, (int) levels5.furnitureLevel, info2.furnitureLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x15), 0x15)); this.setRowValues(2, (int) levels5.metalwareLevel, info2.metalwareLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x1a), 0x1a)); this.setRowValues(3, (int) levels5.clothesLevel, info2.clothesLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x13), 0x13)); this.setRowValues(4, (int) levels5.wineLevel, info2.wineLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x21), 0x21)); this.setRowValues(5, (int) levels5.saltLevel, info2.saltLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x17), 0x17)); this.setRowValues(6, (int) levels5.spicesLevel, info2.spicesLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x18), 0x18)); this.setRowValues(7, (int) levels5.silkLevel, info2.silkLevel, TradingCalcs.calcSellCost(localWorldData, info2.getFakeLevel(0x19), 0x19)); break; } this.setRowValues(0, (int) levels5.venisonLevel, -1, -1); this.setRowValues(1, (int) levels5.furnitureLevel, -1, -1); this.setRowValues(2, (int) levels5.metalwareLevel, -1, -1); this.setRowValues(3, (int) levels5.clothesLevel, -1, -1); this.setRowValues(4, (int) levels5.wineLevel, -1, -1); this.setRowValues(5, (int) levels5.saltLevel, -1, -1); this.setRowValues(6, (int) levels5.spicesLevel, -1, -1); this.setRowValues(7, (int) levels5.silkLevel, -1, -1); break; } } this.numTraders = village.numTraders(); this.numFreeTraders = village.numFreeTraders(); if (this.numFreeTraders > this.numTraders) { village.refreshTraderNumbers(); } this.tradersAvailableValue.Text = this.numFreeTraders.ToString() + "/" + this.numTraders.ToString(); this.traderCapacityValue.Text = (this.currentResourcePacketSize * this.numFreeTraders).ToString("N", nFI); } this.showBuySellWindow(); }
public void updateGranary(GraphicsMgr gfx, VillageMap vm) { if (this.baseSprite != null) { if (this.granaryExtension == null) { this.granaryExtension = new VillageMapBuildingGranaryExtension(); for (int j = 0; j < 0x15; j++) { this.granaryExtension.cell[j] = new SpriteWrapper(); this.granaryExtension.cell[j].Visible = false; this.granaryExtension.cell[j].PosX = 5 + VillageMapBuildingGranaryExtension.granaryLayout[j * 2]; this.granaryExtension.cell[j].PosY = -33 + VillageMapBuildingGranaryExtension.granaryLayout[(j * 2) + 1]; this.baseSprite.AddChild(this.granaryExtension.cell[j]); this.granaryExtension.showGood(gfx, j, -1, 0); } } for (int i = 0; i < 0x15; i++) { this.granaryExtension.showGood(gfx, i, -1, 0); } VillageMap.GranaryLevels levels = new VillageMap.GranaryLevels(); if (vm.getGranaryLevels(levels)) { if (vm.granaryOpenCount == 0) { this.open = false; } double num3 = ((((levels.applesLevel + levels.breadLevel) + levels.cheeseLevel) + levels.fishLevel) + levels.meatLevel) + levels.vegLevel; if (num3 > 0.0) { if (vm.granaryOpenCount > 0) { this.open = true; } else { return; } int index = 0; if (levels.meatLevel > 416.0) { index = 4; } else if (levels.meatLevel > 96.0) { index = 3; } else if (levels.meatLevel > 16.0) { index = 2; } else if (levels.meatLevel > 0.0) { index = 1; } else { index = 0; } int num5 = 0; if (levels.vegLevel > 96.0) { num5 = 3; } else if (levels.vegLevel > 16.0) { num5 = 2; } else if (levels.vegLevel > 0.0) { num5 = 1; } else { num5 = 0; } int num6 = 0; if (levels.cheeseLevel > 416.0) { num6 = 4; } else if (levels.cheeseLevel > 96.0) { num6 = 3; } else if (levels.cheeseLevel > 16.0) { num6 = 2; } else if (levels.cheeseLevel > 0.0) { num6 = 1; } else { num6 = 0; } int num7 = 0; if (levels.applesLevel > 96.0) { num7 = 3; } else if (levels.applesLevel > 16.0) { num7 = 2; } else if (levels.applesLevel > 0.0) { num7 = 1; } else { num7 = 0; } int num8 = 0; if (levels.fishLevel > 96.0) { num8 = 3; } else if (levels.fishLevel > 16.0) { num8 = 2; } else if (levels.fishLevel > 0.0) { num8 = 1; } else { num8 = 0; } int num9 = 0; if (levels.breadLevel > 832.0) { num9 = 4; } else if (levels.breadLevel > 192.0) { num9 = 3; } else if (levels.breadLevel > 32.0) { num9 = 2; } else if (levels.breadLevel > 0.0) { num9 = 1; } else { num9 = 0; } int cellID = 0; for (int k = 0; k < index; k++) { cellID = this.meatPileOrder[k]; if (k != (index - 1)) { this.granaryExtension.showGood(gfx, cellID, 0x10, 0x10); } else { int num12 = (((int)levels.meatLevel) - this.goods16Levels[index]) / this.goodsDividers[index]; this.granaryExtension.showGood(gfx, cellID, 0x10, Math.Min(num12, 0x10)); } } for (int m = 0; m < num5; m++) { cellID = this.vegPileOrder[m]; if (m != (num5 - 1)) { this.granaryExtension.showGood(gfx, cellID, 15, 0x10); } else { int num14 = (((int)levels.vegLevel) - this.goods16Levels[num5]) / this.goodsDividers[num5]; this.granaryExtension.showGood(gfx, cellID, 15, Math.Min(num14, 0x10)); } } for (int n = 0; n < num6; n++) { cellID = this.cheesePileOrder[n]; if (n != (num6 - 1)) { this.granaryExtension.showGood(gfx, cellID, 0x11, 0x10); } else { int num16 = (((int)levels.cheeseLevel) - this.goods16Levels[num6]) / this.goodsDividers[num6]; this.granaryExtension.showGood(gfx, cellID, 0x11, Math.Min(num16, 0x10)); } } for (int num17 = 0; num17 < num7; num17++) { cellID = this.applesPileOrder[num17]; if (num17 != (num7 - 1)) { this.granaryExtension.showGood(gfx, cellID, 13, 0x10); } else { int num18 = (((int)levels.applesLevel) - this.goods16Levels[num7]) / this.goodsDividers[num7]; this.granaryExtension.showGood(gfx, cellID, 13, Math.Min(num18, 0x10)); } } for (int num19 = 0; num19 < num8; num19++) { cellID = this.fishPileOrder[num19]; if (num19 != (num8 - 1)) { this.granaryExtension.showGood(gfx, cellID, 0x12, 0x10); } else { int num20 = (((int)levels.fishLevel) - this.goods16Levels[num8]) / this.goodsDividers[num8]; this.granaryExtension.showGood(gfx, cellID, 0x12, Math.Min(num20, 0x10)); } } for (int num21 = 0; num21 < num9; num21++) { cellID = this.breadPileOrder[num21]; if (num21 != (num9 - 1)) { this.granaryExtension.showGood(gfx, cellID, 14, 0x20); } else { int num22 = (((int)levels.breadLevel) - (this.goods16Levels[num9] * 2)) / this.goodsDividers[num9]; this.granaryExtension.showGood(gfx, cellID, 14, Math.Min(num22, 0x20)); } } } } } }