public void PerformGoldenAgeTasks() { if (GoldenAgeCanon.IsCivInGoldenAge(this)) { GoldenAgeCanon.ChangeTurnsOfGoldenAgeForCiv(this, -1); if (GoldenAgeCanon.GetTurnsLeftOnGoldenAgeForCiv(this) <= 0) { GoldenAgeCanon.StopGoldenAgeForCiv(this); } } else { int happiness = CivHappinessLogic.GetNetHappinessOfCiv(this); GoldenAgeCanon.ChangeGoldenAgeProgressForCiv(this, happiness); float progressTowards = GoldenAgeCanon.GetGoldenAgeProgressForCiv(this); float progressNeeded = GoldenAgeCanon.GetNextGoldenAgeCostForCiv(this); if (progressTowards >= progressNeeded) { GoldenAgeCanon.SetGoldenAgeProgressForCiv(this, 0f); GoldenAgeCanon.StartGoldenAgeForCiv(this, GoldenAgeCanon.GetGoldenAgeLengthForCiv(this)); } } }
private void TryStartGoldenAge(ICivilization civ) { int goldenAgeDuration = GoldenAgeCanon.GetGoldenAgeLengthForCiv(civ); if (GoldenAgeCanon.IsCivInGoldenAge(civ)) { GoldenAgeCanon.ChangeTurnsOfGoldenAgeForCiv(civ, goldenAgeDuration); } else { GoldenAgeCanon.StartGoldenAgeForCiv(civ, goldenAgeDuration); } }