public void UpdatePersistentSnapshotParameters() { SetVisibleDuplicants(); if (activeSnapshots.TryGetValue(AudioMixerSnapshots.Get().DuplicantCountMovingSnapshot, out duplicantCountMovingInst)) { duplicantCountMovingInst.setParameterValue("duplicantCount", (float)Mathf.Max(0, visibleDupes["moving"] - VISIBLE_DUPLICANTS_BEFORE_ATTENUATION)); } if (activeSnapshots.TryGetValue(AudioMixerSnapshots.Get().DuplicantCountSleepingSnapshot, out duplicantCountSleepingInst)) { duplicantCountSleepingInst.setParameterValue("duplicantCount", (float)Mathf.Max(0, visibleDupes["sleeping"] - VISIBLE_DUPLICANTS_BEFORE_ATTENUATION)); } if (activeSnapshots.TryGetValue(AudioMixerSnapshots.Get().DuplicantCountAttenuatorMigrated, out duplicantCountInst)) { duplicantCountInst.setParameterValue("duplicantCount", (float)Mathf.Max(0, visibleDupes["visible"] - VISIBLE_DUPLICANTS_BEFORE_ATTENUATION)); } if (activeSnapshots.TryGetValue(AudioMixerSnapshots.Get().PulseSnapshot, out pulseInst)) { float num = PULSE_SNAPSHOT_BPM / 60f; switch (SpeedControlScreen.Instance.GetSpeed()) { case 1: num /= 2f; break; case 2: num /= 3f; break; } float value = Mathf.Abs(Mathf.Sin(Time.time * 3.14159274f * num)); pulseInst.setParameterValue("Pulse", value); } }
public void StartUserVolumesSnapshot() { Start(AudioMixerSnapshots.Get().UserVolumeSettingsSnapshot); if (activeSnapshots.TryGetValue(AudioMixerSnapshots.Get().UserVolumeSettingsSnapshot, out EventInstance value)) { value.getDescription(out EventDescription description); description.getUserProperty("buses", out USER_PROPERTY property); string text = property.stringValue(); char c = '-'; string[] array = text.Split(c); for (int i = 0; i < array.Length; i++) { float busLevel = 1f; string key = "Volume_" + array[i]; if (KPlayerPrefs.HasKey(key)) { busLevel = KPlayerPrefs.GetFloat(key); } UserVolumeBus userVolumeBus = new UserVolumeBus(); userVolumeBus.busLevel = busLevel; userVolumeBus.labelString = Strings.Get("STRINGS.UI.FRONTEND.AUDIO_OPTIONS_SCREEN.AUDIO_BUS_" + array[i].ToUpper()); userVolumeSettings.Add(array[i], userVolumeBus); SetUserVolume(array[i], userVolumeBus.busLevel); } } }
public void SetUserVolume(string bus, float value) { if (!userVolumeSettings.ContainsKey(bus)) { Debug.LogError("The provided bus doesn't exist. Check yo'self fool!"); } else { if (value > 1f) { value = 1f; } else if (value < 0f) { value = 0f; } userVolumeSettings[bus].busLevel = value; KPlayerPrefs.SetFloat("Volume_" + bus, value); if (activeSnapshots.TryGetValue(AudioMixerSnapshots.Get().UserVolumeSettingsSnapshot, out EventInstance value2)) { value2.setParameterValue("userVolume_" + bus, userVolumeSettings[bus].busLevel); } else { Log("Tried to set [" + bus + "] to [" + value + "] but UserVolumeSettingsSnapshot is not active."); } if (bus == "Music") { SetSnapshotParameter(AudioMixerSnapshots.Get().DynamicMusicPlayingSnapshot, "userVolume_Music", value, true); } } }
private static IEnumerator Sequence() { Vector3 cameraTagetMid = Vector3.zero; Vector3 zero = Vector3.zero; foreach (Spacecraft item in SpacecraftManager.instance.GetSpacecraft()) { if (item.state != 0 && SpacecraftManager.instance.GetSpacecraftDestination(item.id).GetDestinationType().Id == Db.Get().SpaceDestinationTypes.Wormhole.Id) { foreach (RocketModule rocketModule in item.launchConditions.rocketModules) { if ((Object)rocketModule.GetComponent <RocketEngine>() != (Object)null) { cameraTagetMid = rocketModule.gameObject.transform.position + Vector3.up * 7f; break; } } Vector3 vector = cameraTagetMid + Vector3.up * 20f; } } if (!SpeedControlScreen.Instance.IsPaused) { SpeedControlScreen.Instance.Pause(false); } CameraController.Instance.SetWorldInteractive(false); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().VictoryMessageSnapshot, STOP_MODE.ALLOWFADEOUT); CameraController.Instance.FadeOut(1f, 1f); yield return((object)new WaitForSecondsRealtime(3f)); /*Error: Unable to find new state assignment for yield return*/; }
public void StartPersistentSnapshots() { persistentSnapshotsActive = true; Start(AudioMixerSnapshots.Get().DuplicantCountAttenuatorMigrated); Start(AudioMixerSnapshots.Get().DuplicantCountMovingSnapshot); Start(AudioMixerSnapshots.Get().DuplicantCountSleepingSnapshot); spaceVisibleInst = Start(AudioMixerSnapshots.Get().SpaceVisibleSnapshot); facilityVisibleInst = Start(AudioMixerSnapshots.Get().FacilityVisibleSnapshot); Start(AudioMixerSnapshots.Get().PulseSnapshot); }
public void StopPersistentSnapshots() { persistentSnapshotsActive = false; Stop(AudioMixerSnapshots.Get().DuplicantCountAttenuatorMigrated, STOP_MODE.ALLOWFADEOUT); Stop(AudioMixerSnapshots.Get().DuplicantCountMovingSnapshot, STOP_MODE.ALLOWFADEOUT); Stop(AudioMixerSnapshots.Get().DuplicantCountSleepingSnapshot, STOP_MODE.ALLOWFADEOUT); Stop(AudioMixerSnapshots.Get().SpaceVisibleSnapshot, STOP_MODE.ALLOWFADEOUT); Stop(AudioMixerSnapshots.Get().FacilityVisibleSnapshot, STOP_MODE.ALLOWFADEOUT); Stop(AudioMixerSnapshots.Get().PulseSnapshot, STOP_MODE.ALLOWFADEOUT); }
public void StopDynamicMusic(bool stopImmediate = false) { if (activeDynamicSong != null) { STOP_MODE stopMode = stopImmediate ? STOP_MODE.IMMEDIATE : STOP_MODE.ALLOWFADEOUT; Log("Stop DynamicMusic: " + Assets.GetSimpleSoundEventName(activeDynamicSong.fmodEvent)); StopSong(Assets.GetSimpleSoundEventName(activeDynamicSong.fmodEvent), true, stopMode); activeDynamicSong = null; AudioMixer.instance.Stop(AudioMixerSnapshots.Get().DynamicMusicPlayingSnapshot, STOP_MODE.ALLOWFADEOUT); } }
private void TriggerLoadingMusic() { if (AudioDebug.Get().musicEnabled&& !MusicManager.instance.SongIsPlaying("Music_FrontEnd")) { MusicManager.instance.StopSong("Music_TitleTheme", true, STOP_MODE.ALLOWFADEOUT); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().FrontEndSnapshot, STOP_MODE.ALLOWFADEOUT); AudioMixer.instance.Start(AudioMixerSnapshots.Get().FrontEndWorldGenerationSnapshot); MusicManager.instance.PlaySong("Music_FrontEnd", false); MusicManager.instance.SetSongParameter("Music_FrontEnd", "songSection", 1f, true); } }
public static AudioMixer Create() { _instance = new AudioMixer(); AudioMixerSnapshots audioMixerSnapshots = AudioMixerSnapshots.Get(); if ((Object)audioMixerSnapshots != (Object)null) { audioMixerSnapshots.ReloadSnapshots(); } return(_instance); }
public void ToggleScreen(ScreenData screenData) { if (screenData != null) { if (screenData.toggleInfo == researchInfo && !ResearchAvailable()) { CheckResearch(null); CloseActive(); } else if (screenData.toggleInfo == skillsInfo && !SkillsAvailable()) { CheckSkills(null); CloseActive(); } else if (screenData.toggleInfo == starmapInfo && !StarmapAvailable()) { CheckStarmap(null); CloseActive(); } else if (!screenData.toggleInfo.toggle.gameObject.GetComponentInChildren <ImageToggleState>().IsDisabled) { if (activeScreen != null) { activeScreen.toggleInfo.toggle.isOn = false; activeScreen.toggleInfo.toggle.gameObject.GetComponentInChildren <ImageToggleState>().SetInactive(); } if (activeScreen != screenData) { OverlayScreen.Instance.ToggleOverlay(OverlayModes.None.ID, true); if (activeScreen != null) { activeScreen.toggleInfo.toggle.ActivateFlourish(false); } KMonoBehaviour.PlaySound(GlobalAssets.GetSound("HUD_Click_Open", false)); AudioMixer.instance.Start(AudioMixerSnapshots.Get().MenuOpenMigrated); screenData.toggleInfo.toggle.ActivateFlourish(true); screenData.toggleInfo.toggle.gameObject.GetComponentInChildren <ImageToggleState>().SetActive(); CloseActive(); activeScreen = screenData; activeScreen.screen.Show(true); } else { activeScreen.screen.Show(false); KMonoBehaviour.PlaySound(GlobalAssets.GetSound("HUD_Click_Close", false)); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().MenuOpenMigrated, STOP_MODE.ALLOWFADEOUT); activeScreen.toggleInfo.toggle.ActivateFlourish(false); activeScreen = null; screenData.toggleInfo.toggle.gameObject.GetComponentInChildren <ImageToggleState>().SetInactive(); } } } }
protected override void OnShow(bool show) { if (!show) { DeactivateSideContent(); } else { MaskSideContent(false); AudioMixer.instance.Start(AudioMixerSnapshots.Get().MenuOpenHalfEffect); } base.OnShow(show); }
public void StartFEAudio() { AudioMixer.instance.Reset(); AudioMixer.instance.Start(AudioMixerSnapshots.Get().FrontEndSnapshot); if (!AudioMixer.instance.SnapshotIsActive(AudioMixerSnapshots.Get().UserVolumeSettingsSnapshot)) { AudioMixer.instance.StartUserVolumesSnapshot(); } if (AudioDebug.Get().musicEnabled&& !MusicManager.instance.SongIsPlaying("Music_TitleTheme")) { MusicManager.instance.PlaySong("Music_TitleTheme", false); } CheckForAudioDriverIssue(); }
private void OnRejectionConfirmed() { telepad.RejectAll(); containers.ForEach(delegate(ITelepadDeliverableContainer cc) { Object.Destroy(cc.GetGameObject()); }); containers.Clear(); rejectConfirmationScreen.SetActive(false); Show(false); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().MENUNewDuplicantSnapshot, STOP_MODE.ALLOWFADEOUT); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().PortalLPDimmedSnapshot, STOP_MODE.ALLOWFADEOUT); MusicManager.instance.StopSong("Music_SelectDuplicant", true, STOP_MODE.ALLOWFADEOUT); }
protected override void OnProceed() { telepad.OnAcceptDelivery(selectedDeliverables[0]); Show(false); containers.ForEach(delegate(ITelepadDeliverableContainer cc) { Object.Destroy(cc.GetGameObject()); }); containers.Clear(); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().MENUNewDuplicantSnapshot, STOP_MODE.ALLOWFADEOUT); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().PortalLPDimmedSnapshot, STOP_MODE.ALLOWFADEOUT); MusicManager.instance.StopSong("Music_SelectDuplicant", true, STOP_MODE.ALLOWFADEOUT); MusicManager.instance.PlaySong("Stinger_NewDuplicant", false); }
public override void OnKeyDown(KButtonEvent e) { if (e.TryConsume(Action.Escape) || e.TryConsume(Action.MouseRight)) { Show(false); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().ESCPauseSnapshot, STOP_MODE.ALLOWFADEOUT); MusicManager.instance.OnEscapeMenu(false); MusicManager.instance.StopSong("Music_ESC_Menu", true, STOP_MODE.ALLOWFADEOUT); } else { base.OnKeyDown(e); } }
private void OnApplicationFocus(bool hasFocus) { if (AudioMixer.instance != null && !((Object)AudioMixerSnapshots.Get() == (Object)null)) { if (!hasFocus && KPlayerPrefs.GetInt(AudioOptionsScreen.MuteOnFocusLost) == 1) { AudioMixer.instance.Start(AudioMixerSnapshots.Get().GameNotFocusedSnapshot); } else { AudioMixer.instance.Stop(AudioMixerSnapshots.Get().GameNotFocusedSnapshot, STOP_MODE.ALLOWFADEOUT); } } }
protected override void OnShow(bool show) { if (show) { AudioMixer.instance.Start(AudioMixerSnapshots.Get().FabricatorSideScreenOpenSnapshot); } else { AudioMixer.instance.Stop(AudioMixerSnapshots.Get().FabricatorSideScreenOpenSnapshot, STOP_MODE.ALLOWFADEOUT); DetailsScreen.Instance.ClearSecondarySideScreen(); selectedRecipe = null; selectedToggle = null; } base.OnShow(show); }
public void PlayDynamicMusic() { if (DynamicMusicIsActive()) { Log("Trying to play DynamicMusic when it is already playing."); } else { string nextDynamicSong = GetNextDynamicSong(); if (!(nextDynamicSong == "NONE")) { PlaySong(nextDynamicSong, false); if (activeSongs.TryGetValue(nextDynamicSong, out SongInfo value)) { activeDynamicSong = value; AudioMixer.instance.Start(AudioMixerSnapshots.Get().DynamicMusicPlayingSnapshot); if ((UnityEngine.Object)SpeedControlScreen.Instance != (UnityEngine.Object)null && SpeedControlScreen.Instance.IsPaused) { SetDynamicMusicPaused(); } if ((UnityEngine.Object)OverlayScreen.Instance != (UnityEngine.Object)null && OverlayScreen.Instance.mode != OverlayModes.None.ID) { SetDynamicMusicOverlayActive(); } SetDynamicMusicPlayHook(); string key = "Volume_Music"; if (KPlayerPrefs.HasKey(key)) { float @float = KPlayerPrefs.GetFloat(key); AudioMixer.instance.SetSnapshotParameter(AudioMixerSnapshots.Get().DynamicMusicPlayingSnapshot, "userVolume_Music", @float, true); } AudioMixer.instance.SetSnapshotParameter(AudioMixerSnapshots.Get().DynamicMusicPlayingSnapshot, "intensity", value.sfxAttenuationPercentage / 100f, true); } else { Log("DynamicMusic song " + nextDynamicSong + " did not start."); string text = string.Empty; foreach (KeyValuePair <string, SongInfo> activeSong in activeSongs) { text = text + activeSong.Key + ", "; Debug.Log(text); } DebugUtil.DevAssert(false, "Song failed to play: " + nextDynamicSong); } } } }
protected override void OnShow(bool show) { base.OnShow(show); if (show) { AudioMixer.instance.Start(AudioMixerSnapshots.Get().ESCPauseSnapshot); MusicManager.instance.OnEscapeMenu(true); MusicManager.instance.PlaySong("Music_ESC_Menu", false); } else { ToolTipScreen.Instance.ClearToolTip(closeButton.GetComponent <ToolTip>()); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().ESCPauseSnapshot, STOP_MODE.ALLOWFADEOUT); MusicManager.instance.OnEscapeMenu(false); MusicManager.instance.StopSong("Music_ESC_Menu", true, STOP_MODE.ALLOWFADEOUT); } }
public void ToggleOverlay(HashedString newMode, bool allowSound = true) { bool flag = allowSound && ((!(currentModeInfo.mode.ViewMode() == newMode)) ? true : false); if (newMode != OverlayModes.None.ID) { ManagementMenu.Instance.CloseAll(); } currentModeInfo.mode.Disable(); if (newMode != currentModeInfo.mode.ViewMode() && newMode == OverlayModes.None.ID) { ManagementMenu.Instance.CloseAll(); } ResourceCategoryScreen.Instance.Show(newMode == OverlayModes.None.ID && Game.Instance.GameStarted()); SimDebugView.Instance.SetMode(newMode); if (!modeInfos.TryGetValue(newMode, out currentModeInfo)) { currentModeInfo = modeInfos[OverlayModes.None.ID]; } currentModeInfo.mode.Enable(); if (flag) { UpdateOverlaySounds(); } if (OverlayModes.None.ID == currentModeInfo.mode.ViewMode()) { AudioMixer.instance.Stop(AudioMixerSnapshots.Get().TechFilterOnMigrated, STOP_MODE.ALLOWFADEOUT); MusicManager.instance.SetDynamicMusicOverlayInactive(); techViewSound.stop(STOP_MODE.ALLOWFADEOUT); techViewSoundPlaying = false; } else if (!techViewSoundPlaying) { AudioMixer.instance.Start(AudioMixerSnapshots.Get().TechFilterOnMigrated); MusicManager.instance.SetDynamicMusicOverlayActive(); techViewSound.start(); techViewSoundPlaying = true; } if (OnOverlayChanged != null) { OnOverlayChanged(currentModeInfo.mode.ViewMode()); } ActivateLegend(); }
public void DeactivateSideContent() { if ((UnityEngine.Object)SideDetailsScreen.Instance != (UnityEngine.Object)null && SideDetailsScreen.Instance.gameObject.activeInHierarchy) { SideDetailsScreen.Instance.Show(false); } if (sideScreens != null && sideScreens.Count > 0) { sideScreens.ForEach(delegate(SideScreenRef scn) { if ((UnityEngine.Object)scn.screenInstance != (UnityEngine.Object)null) { scn.screenInstance.ClearTarget(); scn.screenInstance.Show(false); } }); } AudioMixer.instance.Stop(AudioMixerSnapshots.Get().MenuOpenHalfEffect, STOP_MODE.ALLOWFADEOUT); sideScreen.SetActive(false); }
protected override void OnProceed() { Util.KInstantiateUI(newBasePrefab.gameObject, GameScreenManager.Instance.ssOverlayCanvas, false); MusicManager.instance.StopSong("Music_FrontEnd", true, STOP_MODE.ALLOWFADEOUT); AudioMixer.instance.Start(AudioMixerSnapshots.Get().NewBaseSetupSnapshot); AudioMixer.instance.Stop(AudioMixerSnapshots.Get().FrontEndWorldGenerationSnapshot, STOP_MODE.ALLOWFADEOUT); selectedDeliverables.Clear(); foreach (CharacterContainer container in containers) { selectedDeliverables.Add(container.Stats); } NewBaseScreen.Instance.SetStartingMinionStats(selectedDeliverables.ToArray()); if (OnProceedEvent != null) { OnProceedEvent(); } Game.Instance.Trigger(-838649377, null); BuildWatermark.Instance.gameObject.SetActive(false); Deactivate(); }
protected override void OnShow(bool show) { if (show) { KFMOD.PlayOneShot(GlobalAssets.GetSound("Dialog_Popup", false)); AudioMixer.instance.Start(AudioMixerSnapshots.Get().MENUNewDuplicantSnapshot); MusicManager.instance.PlaySong("Music_SelectDuplicant", false); hasShown = true; } else { AudioMixer.instance.Stop(AudioMixerSnapshots.Get().MENUNewDuplicantSnapshot, STOP_MODE.ALLOWFADEOUT); if (MusicManager.instance.SongIsPlaying("Music_SelectDuplicant")) { MusicManager.instance.StopSong("Music_SelectDuplicant", true, STOP_MODE.ALLOWFADEOUT); } if (Immigration.Instance.ImmigrantsAvailable && hasShown) { AudioMixer.instance.Start(AudioMixerSnapshots.Get().PortalLPDimmedSnapshot); } } base.OnShow(show); }
public ColonyAchievement(string Id, string steamAchievementId, string Name, string description, bool isVictoryCondition, List <ColonyAchievementRequirement> requirementChecklist, string messageTitle = "", string messageBody = "", string videoDataName = "", string victoryLoopVideo = "", Action <KMonoBehaviour> VictorySequence = null, string victorySnapshot = "", string icon = "") : base(Id, Name) { base.Id = Id; this.steamAchievementId = steamAchievementId; base.Name = Name; this.description = description; this.isVictoryCondition = isVictoryCondition; this.requirementChecklist = requirementChecklist; this.messageTitle = messageTitle; this.messageBody = messageBody; shortVideoName = videoDataName; loopVideoName = victoryLoopVideo; victorySequence = VictorySequence; victoryNISSnapshot = ((!string.IsNullOrEmpty(victorySnapshot)) ? victorySnapshot : AudioMixerSnapshots.Get().VictoryNISGenericSnapshot); this.icon = icon; }
public ColonyAchievements(ResourceSet parent) : base("ColonyAchievements", parent) { Thriving = Add(new ColonyAchievement("Thriving", "WINCONDITION_STAY", COLONY_ACHIEVEMENTS.THRIVING.NAME, COLONY_ACHIEVEMENTS.THRIVING.DESCRIPTION, true, new List <ColonyAchievementRequirement> { new CycleNumber(200), new MinimumMorale(16), new NumberOfDupes(12), new MonumentBuilt() }, COLONY_ACHIEVEMENTS.THRIVING.MESSAGE_TITLE, COLONY_ACHIEVEMENTS.THRIVING.MESSAGE_BODY, "victoryShorts/Stay", "victoryLoops/Stay_loop", ThrivingSequence.Start, AudioMixerSnapshots.Get().VictoryNISGenericSnapshot, "home_sweet_home")); ReachedDistantPlanet = Add(new ColonyAchievement("ReachedDistantPlanet", "WINCONDITION_LEAVE", COLONY_ACHIEVEMENTS.DISTANT_PLANET_REACHED.NAME, COLONY_ACHIEVEMENTS.DISTANT_PLANET_REACHED.DESCRIPTION, true, new List <ColonyAchievementRequirement> { new ReachedSpace(Db.Get().SpaceDestinationTypes.Wormhole) }, COLONY_ACHIEVEMENTS.DISTANT_PLANET_REACHED.MESSAGE_TITLE, COLONY_ACHIEVEMENTS.DISTANT_PLANET_REACHED.MESSAGE_BODY, "victoryShorts/Leave", "victoryLoops/Leave_loop", ReachedDistantPlanetSequence.Start, AudioMixerSnapshots.Get().VictoryNISRocketSnapshot, "rocket")); Survived100Cycles = Add(new ColonyAchievement("Survived100Cycles", "SURVIVE_HUNDRED_CYCLES", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.SURVIVE_HUNDRED_CYCLES, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.SURVIVE_HUNDRED_CYCLES_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new CycleNumber(100) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Turn_of_the_Century")); ReachedSpace = Add(new ColonyAchievement("ReachedSpace", "REACH_SPACE_ANY_DESTINATION", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.REACH_SPACE_ANY_DESTINATION, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.REACH_SPACE_ANY_DESTINATION_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new ReachedSpace(null) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "space_race")); CompleteSkillBranch = Add(new ColonyAchievement("CompleteSkillBranch", "COMPLETED_SKILL_BRANCH", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.COMPLETED_SKILL_BRANCH, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.COMPLETED_SKILL_BRANCH_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new SkillBranchComplete(new List <Skill> { Db.Get().Skills.Mining3, Db.Get().Skills.Building3, Db.Get().Skills.Farming3, Db.Get().Skills.Ranching2, Db.Get().Skills.Researching3, Db.Get().Skills.Cooking2, Db.Get().Skills.Arting3, Db.Get().Skills.Hauling2, Db.Get().Skills.Technicals2, Db.Get().Skills.Engineering1, Db.Get().Skills.Basekeeping2, Db.Get().Skills.Astronauting2, Db.Get().Skills.Medicine3 }) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "CompleteSkillBranch")); CompleteResearchTree = Add(new ColonyAchievement("CompleteResearchTree", "COMPLETED_RESEARCH", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.COMPLETED_RESEARCH, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.COMPLETED_RESEARCH_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new ResearchComplete() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "honorary_doctorate")); Clothe8Dupes = Add(new ColonyAchievement("Clothe8Dupes", "EQUIP_EIGHT_DUPES", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EQUIP_N_DUPES, string.Format(COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EQUIP_N_DUPES_DESCRIPTION, 8), false, new List <ColonyAchievementRequirement> { new EquipNDupes(Db.Get().AssignableSlots.Outfit, 8) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "and_nowhere_to_go")); TameAllBasicCritters = Add(new ColonyAchievement("TameAllBasicCritters", "TAME_BASIC_CRITTERS", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TAME_BASIC_CRITTERS, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TAME_BASIC_CRITTERS_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new CritterTypesWithTraits(new List <Tag> { "Drecko", "Hatch", "LightBug", "Mole", "Oilfloater", "Pacu", "Puft", "Moo", "Crab", "Squirrel" }, false) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Animal_friends")); Build4NatureReserves = Add(new ColonyAchievement("Build4NatureReserves", "BUILD_NATURE_RESERVES", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BUILD_NATURE_RESERVES, string.Format(COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BUILD_NATURE_RESERVES_DESCRIPTION, Db.Get().RoomTypes.NatureReserve.Name, 4), false, new List <ColonyAchievementRequirement> { new BuildNRoomTypes(Db.Get().RoomTypes.NatureReserve, 4) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Some_Reservations")); Minimum20LivingDupes = Add(new ColonyAchievement("Minimum20LivingDupes", "TWENTY_DUPES", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TWENTY_DUPES, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TWENTY_DUPES_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new NumberOfDupes(20) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "no_place_like_clone")); TameAGassyMoo = Add(new ColonyAchievement("TameAGassyMoo", "TAME_GASSYMOO", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TAME_GASSYMOO, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TAME_GASSYMOO_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new CritterTypesWithTraits(new List <Tag> { "Moo" }, false) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "moovin_on_up")); CoolBuildingTo6K = Add(new ColonyAchievement("CoolBuildingTo6K", "SIXKELVIN_BUILDING", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.SIXKELVIN_BUILDING, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.SIXKELVIN_BUILDING_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new CoolBuildingToXKelvin(6) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "not_0k")); EatkCalFromMeatByCycle100 = Add(new ColonyAchievement("EatkCalFromMeatByCycle100", "EAT_MEAT", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EAT_MEAT, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EAT_MEAT_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new BeforeCycleNumber(100), new EatXCaloriesFromY(400000, new List <string> { FOOD.FOOD_TYPES.MEAT.Id, FOOD.FOOD_TYPES.FISH_MEAT.Id, FOOD.FOOD_TYPES.COOKED_MEAT.Id, FOOD.FOOD_TYPES.COOKED_FISH.Id, FOOD.FOOD_TYPES.SURF_AND_TURF.Id, FOOD.FOOD_TYPES.BURGER.Id }) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Carnivore")); NoFarmTilesAndKCal = Add(new ColonyAchievement("NoFarmTilesAndKCal", "NO_PLANTERBOX", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.NO_PLANTERBOX, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.NO_PLANTERBOX_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new NoFarmables(), new EatXCalories(400000) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Locavore")); Generate240000kJClean = Add(new ColonyAchievement("Generate240000kJClean", "CLEAN_ENERGY", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.CLEAN_ENERGY, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.CLEAN_ENERGY_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new ProduceXEngeryWithoutUsingYList(240000f, new List <Tag> { "MethaneGenerator", "PetroleumGenerator", "WoodGasGenerator", "Generator" }) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "sustainably_sustaining")); BuildOutsideStartBiome = Add(new ColonyAchievement("BuildOutsideStartBiome", "BUILD_OUTSIDE_BIOME", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BUILD_OUTSIDE_BIOME, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BUILD_OUTSIDE_BIOME_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new BuildOutsideStartBiome() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "build_outside")); Travel10000InTubes = Add(new ColonyAchievement("Travel10000InTubes", "TUBE_TRAVEL_DISTANCE", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TUBE_TRAVEL_DISTANCE, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.TUBE_TRAVEL_DISTANCE_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new TravelXUsingTransitTubes(NavType.Tube, 10000) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Totally-Tubular")); VarietyOfRooms = Add(new ColonyAchievement("VarietyOfRooms", "VARIETY_OF_ROOMS", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.VARIETY_OF_ROOMS, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.VARIETY_OF_ROOMS_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new BuildRoomType(Db.Get().RoomTypes.NatureReserve), new BuildRoomType(Db.Get().RoomTypes.Hospital), new BuildRoomType(Db.Get().RoomTypes.RecRoom), new BuildRoomType(Db.Get().RoomTypes.GreatHall), new BuildRoomType(Db.Get().RoomTypes.Bedroom), new BuildRoomType(Db.Get().RoomTypes.PlumbedBathroom), new BuildRoomType(Db.Get().RoomTypes.Farm), new BuildRoomType(Db.Get().RoomTypes.CreaturePen) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Get-a-Room")); SurviveOneYear = Add(new ColonyAchievement("SurviveOneYear", "SURVIVE_ONE_YEAR", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.SURVIVE_ONE_YEAR, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.SURVIVE_ONE_YEAR_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new FractionalCycleNumber(365.25f) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "One_year")); ExploreOilBiome = Add(new ColonyAchievement("ExploreOilBiome", "EXPLORE_OIL_BIOME", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EXPLORE_OIL_BIOME, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EXPLORE_OIL_BIOME_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new ExploreOilFieldSubZone() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "enter_oil_biome")); EatCookedFood = Add(new ColonyAchievement("EatCookedFood", "COOKED_FOOD", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.COOKED_FOOD, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.COOKED_FOOD_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new EatXKCalProducedByY(1, new List <Tag> { "GourmetCookingStation", "CookingStation" }) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "its_not_raw")); BasicPumping = Add(new ColonyAchievement("BasicPumping", "BASIC_PUMPING", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BASIC_PUMPING, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BASIC_PUMPING_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new VentXKG(SimHashes.Oxygen, 1000f) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "BasicPumping")); BasicComforts = Add(new ColonyAchievement("BasicComforts", "BASIC_COMFORTS", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BASIC_COMFORTS, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BASIC_COMFORTS_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new AtLeastOneBuildingForEachDupe(new List <Tag> { "FlushToilet", "Outhouse" }), new AtLeastOneBuildingForEachDupe(new List <Tag> { BedConfig.ID, LuxuryBedConfig.ID }) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "1bed_1toilet")); PlumbedWashrooms = Add(new ColonyAchievement("PlumbedWashrooms", "PLUMBED_WASHROOMS", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.PLUMBED_WASHROOMS, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.PLUMBED_WASHROOMS_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new UpgradeAllBasicBuildings("Outhouse", "FlushToilet"), new UpgradeAllBasicBuildings("WashBasin", "WashSink") }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "royal_flush")); AutomateABuilding = Add(new ColonyAchievement("AutomateABuilding", "AUTOMATE_A_BUILDING", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.AUTOMATE_A_BUILDING, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.AUTOMATE_A_BUILDING_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new AutomateABuilding() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "red_light_green_light")); MasterpiecePainting = Add(new ColonyAchievement("MasterpiecePainting", "MASTERPIECE_PAINTING", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.MASTERPIECE_PAINTING, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.MASTERPIECE_PAINTING_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new CreateMasterPainting() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "art_underground")); InspectPOI = Add(new ColonyAchievement("InspectPOI", "INSPECT_POI", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.INSPECT_POI, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.INSPECT_POI_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new ActivateLorePOI() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "ghosts_of_gravitas")); HatchACritter = Add(new ColonyAchievement("HatchACritter", "HATCH_A_CRITTER", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.HATCH_A_CRITTER, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.HATCH_A_CRITTER_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new CritterTypeExists(new List <Tag> { "DreckoPlasticBaby", "HatchHardBaby", "HatchMetalBaby", "HatchVeggieBaby", "LightBugBlackBaby", "LightBugBlueBaby", "LightBugCrystalBaby", "LightBugOrangeBaby", "LightBugPinkBaby", "LightBugPurpleBaby", "OilfloaterDecorBaby", "OilfloaterHighTempBaby", "PacuCleanerBaby", "PacuTropicalBaby", "PuftBleachstoneBaby", "PuftOxyliteBaby" }) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "good_egg")); CuredDisease = Add(new ColonyAchievement("CuredDisease", "CURED_DISEASE", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.CURED_DISEASE, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.CURED_DISEASE_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new CureDisease() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "medic")); GeneratorTuneup = Add(new ColonyAchievement("GeneratorTuneup", "GENERATOR_TUNEUP", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.GENERATOR_TUNEUP, string.Format(COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.GENERATOR_TUNEUP_DESCRIPTION, 100), false, new List <ColonyAchievementRequirement> { new TuneUpGenerator(100f) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "tune_up_for_what")); ClearFOW = Add(new ColonyAchievement("ClearFOW", "CLEAR_FOW", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.CLEAR_FOW, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.CLEAR_FOW_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new RevealAsteriod(0.8f) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "pulling_back_the_veil")); HatchRefinement = Add(new ColonyAchievement("HatchRefinement", "HATCH_REFINEMENT", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.HATCH_REFINEMENT, string.Format(COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.HATCH_REFINEMENT_DESCRIPTION, GameUtil.GetFormattedMass(10000f, GameUtil.TimeSlice.None, GameUtil.MetricMassFormat.Tonne, true, "{0:0.#}")), false, new List <ColonyAchievementRequirement> { new CreaturePoopKGProduction("HatchMetal", 10000f) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "down_the_hatch")); BunkerDoorDefense = Add(new ColonyAchievement("BunkerDoorDefense", "BUNKER_DOOR_DEFENSE", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BUNKER_DOOR_DEFENSE, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.BUNKER_DOOR_DEFENSE_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new BlockedCometWithBunkerDoor() }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "Immovable_Object")); IdleDuplicants = Add(new ColonyAchievement("IdleDuplicants", "IDLE_DUPLICANTS", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.IDLE_DUPLICANTS, COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.IDLE_DUPLICANTS_DESCRIPTION, false, new List <ColonyAchievementRequirement> { new DupesVsSolidTransferArmFetch(0.51f, 5) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "easy_livin")); ExosuitCycles = Add(new ColonyAchievement("ExosuitCycles", "EXOSUIT_CYCLES", COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EXOSUIT_CYCLES, string.Format(COLONY_ACHIEVEMENTS.MISC_REQUIREMENTS.EXOSUIT_CYCLES_DESCRIPTION, 10), false, new List <ColonyAchievementRequirement> { new DupesCompleteChoreInExoSuitForCycles(10) }, string.Empty, string.Empty, string.Empty, string.Empty, null, string.Empty, "job_suitability")); }