void ITurnWaiter.NewTurn() { producingProgress += GetStatistic("Production"); IProducible producible = (IProducible)producing; if (producible != null && producingProgress >= producible.CostInProduction()) { if (producing is Unit) { var newUnit = GameManager.PlaceUnit(producing.name, Tile, Nation); unitObjects.Add(newUnit); } else if (producing is Building) { buildings.Add(producing.name); } producingProgress = 0; producing = null; } cityLevelProgress += GetStatistic("Food"); if (cityLevelProgress >= LevelProgressRequired) { cityLevelProgress = 0; cityLevel++; Expand(); } }
internal override string GetStats() { string stats = ""; if (producing) { IProducible producible = (IProducible)producing; if (producible != null) { int turnsLeft = Mathf.CeilToInt((producible.CostInProduction() - producingProgress) / (float)GetStatistic("Production")); stats = "Producing " + producing.name + " (" + turnsLeft + " turn(s) left)"; } else { stats = "Producing " + producing.name; } } if (stats != "") { stats += "\n"; } stats += "Gold +" + GetStatistic("Gold"); stats += "\n"; stats += "Science +" + GetStatistic("Science"); stats += "\n"; stats += "Production +" + GetStatistic("Production"); stats += "\n"; stats += "Food +" + GetStatistic("Food"); return(stats); }