public static void unlockAchievement(SteamManager.achievement_key key) { if (hasAchieved != null) { if (hasAchieved[(int)key]) { return; } hasAchieved[(int)(key)] = true; } if (SteamManager.s_instance != null && (SteamManager.apiShutdown == false)) { SteamManager.unlockAchievement(key); } }
public void turnTick() { hasTakenAction = false; double powerGainMult = calculatePowerGainMult(); double powerGain = map.param.overmind_powerRegen * powerGainMult; if (power < map.param.overmind_maxPower - powerGain) { power += powerGain; if (map.burnInComplete) { map.hintSystem.popHint(HintSystem.hintType.POWER); } } //power = Math.Min(power, map.param.overmind_maxPower); panicFromPowerUse -= map.param.panic_dropPerTurn; if (panicFromPowerUse < 0) { panicFromPowerUse = 0; } panicFromCluesDiscovered -= map.param.panic_dropPerTurn; if (panicFromCluesDiscovered < 0) { panicFromCluesDiscovered = 0; } processEnthralled(); int count = 0; double sum = 0; int nHumanSettlements = 0; foreach (Location loc in map.locations) { if (loc.person() != null) { sum += loc.person().shadow; count += 1; } if (loc.soc != null && loc.settlement != null && (loc.settlement is Set_Ruins == false) && (loc.settlement is Set_CityRuins == false) && loc.soc is Society) { nHumanSettlements += 1; } } if (count == 0) { map.data_avrgEnshadowment = 0; } else { map.data_avrgEnshadowment = sum / count; } if ((!endOfGameAchieved) && map.data_avrgEnshadowment > map.param.victory_targetEnshadowmentAvrg) { victory(); } if (nHumanSettlements == 0) { victory(); } map.data_nSocietyLocations = nHumanSettlements; if (map.automatic) { autoAI.turnTick(); } if (map.burnInComplete && (map.turn - map.param.mapGen_burnInSteps) % map.param.overmind_enthrallmentUseRegainPeriod == 0) { if (availableEnthrallments < maxEnthralled) { availableEnthrallments += 1; } } if (map.data_globalTempSum <= map.data_globalTempInitial / 2) { SteamManager.unlockAchievement(SteamManager.achievement_key.WORLD_UNDER_ICE); } map.data_globalTempSum = 0; computeLightbringer(); }