public static float DefineAscension(ColonyController c) { if (c == null) { return(0f); } float maxVal = GameConstants.ASCENSION_VERYLOW; var lvl = c.hq?.level ?? 0; if (lvl > 1) { switch (lvl) { case 2: case 3: maxVal = GameConstants.ASCENSION_LOW; break; case 4: maxVal = GameConstants.ASCENSION_MEDIUM; break; case 5: case 6: maxVal = GameConstants.ASCENSION_HIGH; break; } } if (c.HaveBuilding(Structure.MONUMENT_ID)) { maxVal += 10f; } if (c.HaveBuilding(Structure.QUANTUM_ENERGY_TRANSMITTER_5_ID)) { maxVal += 10f; } //if (HaveBuilding(Structure.ASCENSION_ENGINE)) maxVal += 10f; var a = Knowledge.GetCurrent()?.GetCompleteness() ?? 0f; if (a > maxVal) { a = maxVal; } return(a); }