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);
 }
Esempio n. 7
0
 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);
 }
Esempio n. 15
0
 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);
     }
 }
Esempio n. 16
0
 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);
 }
Esempio n. 18
0
 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);
             }
         }
     }
 }
Esempio n. 19
0
 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);
     }
 }
Esempio n. 20
0
    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);
 }
Esempio n. 22
0
 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);
 }
Esempio n. 24
0
 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;
 }
Esempio n. 25
0
 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"));
 }