public void UpgradeSector(UpgradableSector sector) { if (isEvolutionTime) { return; } int cost = (sector.currentLevel + 1) * sector.levelUpgradeCost; if (sector.currentLevel < sector.maxLevel && money.currentMoney >= cost) { sector.UpgradeSector(); if (sector.Equals(education)) { educationCostText.text = string.Format("{0} €", (education.currentLevel + 1) * education.levelUpgradeCost); educationLevelText.text = education.currentLevel.ToString(); } if (sector.Equals(internalEconomy)) { internalEconomyCostText.text = string.Format("{0} €", (internalEconomy.currentLevel + 1) * internalEconomy.levelUpgradeCost); intEcoLevelText.text = internalEconomy.currentLevel.ToString(); } if (sector.Equals(externalEconomy)) { externalEconomyCostText.text = string.Format("{0} €", (externalEconomy.currentLevel + 1) * externalEconomy.levelUpgradeCost); extEcoLevelText.text = externalEconomy.currentLevel.ToString(); } if (sector.currentLevel == sector.firstMilestoneLevel || sector.currentLevel == sector.secondMilestoneLevel || sector.currentLevel == sector.thirdMilestoneLevel || sector.currentLevel == sector.ultimateMilestoneLevel) { sector.Repair(); if (sector.Equals(education)) { edDetTurns = 0; } if (sector.Equals(internalEconomy)) { intEcoDetTurns = 0; } if (sector.Equals(externalEconomy)) { extEcoDetTurns = 0; } } money.currentMoney -= cost; moneyText.text = string.Format("{0} €", money.currentMoney); StartEvolutionPhase(); } }
public void RepairSector(UpgradableSector sector) { if (isEvolutionTime || sector.currentLevel <= 0) { return; } int cost = 0; switch (sector.currentDeteriorationLevel) { case UpgradableSector.DeteriorationLevel.NORMAL: cost = sector.repairingCostPerLevel; break; case UpgradableSector.DeteriorationLevel.RUINED: cost = sector.repairingCostPerLevel * 2; break; default: return; } if (money.currentMoney >= cost) { money.currentMoney -= cost; moneyText.text = string.Format("{0} €", money.currentMoney); sector.Repair(); if (sector.Equals(education)) { edDetTurns = 0; } if (sector.Equals(internalEconomy)) { intEcoDetTurns = 0; } if (sector.Equals(externalEconomy)) { extEcoDetTurns = 0; } StartEvolutionPhase(); } }
/// <summary> /// Calculates the upgrades to apply to the population based on the milestones reached /// </summary> /// <param name="sector"></param> private void CalculateSectorUpgrades(UpgradableSector sector) { // FIRST MILESTONE if (sector.currentLevel >= sector.firstMilestoneLevel) { switch (sector.currentDeteriorationLevel) { case UpgradableSector.DeteriorationLevel.PERFECT: ApplyUpgrades(sector.firstMilestoneUpgrades, sector.perfect); break; case UpgradableSector.DeteriorationLevel.NORMAL: ApplyUpgrades(sector.firstMilestoneUpgrades, sector.normal); break; default: ApplyUpgrades(sector.firstMilestoneUpgrades, sector.ruined); break; } // SECOND MILESTONE if (sector.currentLevel >= sector.secondMilestoneLevel) { switch (sector.currentDeteriorationLevel) { case UpgradableSector.DeteriorationLevel.PERFECT: ApplyUpgrades(sector.secondMilestoneUpgrades, sector.perfect); break; case UpgradableSector.DeteriorationLevel.NORMAL: ApplyUpgrades(sector.secondMilestoneUpgrades, sector.normal); break; default: ApplyUpgrades(sector.secondMilestoneUpgrades, sector.ruined); break; } // THIRD MILESTONE if (sector.currentLevel >= sector.thirdMilestoneLevel) { switch (sector.currentDeteriorationLevel) { case UpgradableSector.DeteriorationLevel.PERFECT: ApplyUpgrades(sector.thirdMilestoneUpgrades, sector.perfect); break; case UpgradableSector.DeteriorationLevel.NORMAL: ApplyUpgrades(sector.thirdMilestoneUpgrades, sector.normal); break; default: ApplyUpgrades(sector.thirdMilestoneUpgrades, sector.ruined); break; } // ULTIMATE MILESTONE if (sector.currentLevel >= sector.ultimateMilestoneLevel) { switch (sector.currentDeteriorationLevel) { case UpgradableSector.DeteriorationLevel.PERFECT: ApplyUpgrades(sector.ultimateMilestoneUpgrades, sector.perfect); break; case UpgradableSector.DeteriorationLevel.NORMAL: ApplyUpgrades(sector.ultimateMilestoneUpgrades, sector.normal); break; default: ApplyUpgrades(sector.ultimateMilestoneUpgrades, sector.ruined); break; } } } } } }