public string Day() { var energyProvidedForTheDay = Providers.Sum(p => p.EnergyOutput); this.TotalEnergyStored += energyProvidedForTheDay; double mineableForTheDay = 0; double energyConsumedForTheDay = 0; switch (this.HarvesterMode) { case "Full": mineableForTheDay = Harvesters.Sum(h => h.OreOutput); energyConsumedForTheDay = Harvesters.Sum(h => h.EnergyRequirement); break; case "Half": mineableForTheDay = 0.5 * Harvesters.Sum(h => h.OreOutput); energyConsumedForTheDay = 0.6 * Harvesters.Sum(h => h.EnergyRequirement); break; } if (TotalEnergyStored >= energyConsumedForTheDay) { this.TotalMinedStored += mineableForTheDay; this.TotalEnergyStored -= energyConsumedForTheDay; } else { mineableForTheDay = 0; } return ($"A day has passed.\r\nEnergy Provided: {energyProvidedForTheDay}\r\nPlumbus Ore Mined: {mineableForTheDay}"); }
public string Day() { double dayEnergyOutput, dayEnergyRequired, dayMinedOre, eventualDayMinedOre; //calculate day needs and capabilities dayEnergyOutput = 0; dayMinedOre = 0; eventualDayMinedOre = 0; dayEnergyRequired = 0; dayEnergyOutput = Providers.Sum(p => p.EnergyOutput); totalEnergyStored += dayEnergyOutput; if (workingMode != "Energy") { dayEnergyRequired = Harvesters.Sum(h => h.EnergyRequirement); if (workingMode == "Full") { eventualDayMinedOre = Harvesters.Sum(h => h.OreOutput); } else if (workingMode == "Half") { dayEnergyRequired = dayEnergyRequired * 0.6; //consume 60 % of their energy requirements eventualDayMinedOre = Harvesters.Sum(h => h.OreOutput) * 0.5; //produce 50 % of their ore output } } else { dayEnergyRequired = 0; dayMinedOre = 0; } if (totalEnergyStored >= dayEnergyRequired) { dayMinedOre = eventualDayMinedOre; totalEnergyStored -= dayEnergyRequired; totalMinedOre += dayMinedOre; } return(string.Format(Messages.DayHasPassed, Environment.NewLine, dayEnergyOutput, Environment.NewLine, dayMinedOre));//Environment.NewLine, summedEnergyOutput, Environment.NewLine, summedOreOutput }