public static bool OnErrorConfirmed_Prefix(bool confirmed, string saveGame)
 {
     // Load added notifications if needed.
     if (confirmed)
     {
         KnownTechFixer.LoadAddedNotifications(saveGame);
     }
     // Give back execution to original function.
     return(true);
 }
Exemple #2
0
 //public void BeginAsyncSceneLoad(string sceneName)
 public static bool BeginAsyncSceneLoad_Prefix(string sceneName)
 {
     if (string.Compare("Main", sceneName, true, CultureInfo.InvariantCulture) == 0)
     {
         KnownTechFixer.LoadAddedNotifications(null);
         ConstructableFixer.LoadLadderDirections(null);
     }
     // Give back execution to origin function.
     return(true);
 }
Exemple #3
0
        public static bool LoadMostRecentSavedGame_Prefix()
        {
            SaveLoadManager.GameInfo gameInfo = null;
            string slotName = null;

            // Try get game info and slot name
            try
            {
                string[] activeSlotNames = SaveLoadManager.main.GetActiveSlotNames();
                long     num             = 0L;
                int      i    = 0;
                int      num2 = activeSlotNames.Length;
                while (i < num2)
                {
                    SaveLoadManager.GameInfo gameInfo2 = SaveLoadManager.main.GetGameInfo(activeSlotNames[i]);
                    if (gameInfo2.dateTicks > num)
                    {
                        gameInfo = gameInfo2;
                        num      = gameInfo2.dateTicks;
                        slotName = activeSlotNames[i];
                    }
                    i++;
                }
            }
            catch (Exception ex)
            {
                Logger.Log("WARNING: Exception caught while retrieving game info. Exception=[" + ex.ToString() + "]");
                gameInfo = null;
            }
            // Load added notifications and outdoor ladder directions if needed.
            if (gameInfo != null)
            {
                KnownTechFixer.LoadAddedNotifications(slotName);
                ConstructableFixer.LoadLadderDirections(slotName);
            }
            // Give back execution to origin function.
            return(true);
        }
        /// <summary>Sets unlock state for new items.</summary>
        /// <param name="__result">Defines if the item is locked, hidden or visible.</param>
        /// <param name="techType">The tech type of the item.</param>
        /// <param name="unlocked">The number of currently unlocked fragments.</param>
        /// <param name="total">The total number of fragments to unlock before the item gets unlocked.</param>
        /// <returns>Returns false if current item is an item from this mod (original function not called), and returns true otherwise (original function is called).</returns>
        public static bool GetTechUnlockState_Prefix(ref TechUnlockState __result, TechType techType, ref int unlocked, ref int total)
        {
            if (techType != TechType.None && ConfigSwitcher.AddItemsWhenDiscovered && GameModeUtils.RequiresBlueprints())
            {
                if (techType == CrafterLogicFixer.SeamothDoll || techType == CrafterLogicFixer.SeamothFragment1 || techType == CrafterLogicFixer.SeamothFragment2 || techType == CrafterLogicFixer.SeamothFragment3 || techType == CrafterLogicFixer.SeamothFragment4 || techType == CrafterLogicFixer.SeamothFragment5)
                {
                    if (KnownTech.GetTechUnlockState(TechType.Seamoth) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.ExosuitDoll)
                {
                    if (KnownTech.GetTechUnlockState(TechType.Exosuit) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.CuddleFishDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("CuteFish"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.GhostLeviathanDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("GhostLeviathan") && !PDAEncyclopedia.ContainsEntry("GhostLeviathanJuvenile"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.ReaperLeviathanDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("ReaperLeviathan"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.ReefBackDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("Reefback"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.SeaDragonDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("SeaDragon"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.SeaEmperorDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("SeaEmperor") && !PDAEncyclopedia.ContainsEntry("SeaEmperorLeviathan") && !PDAEncyclopedia.ContainsEntry("SeaEmperorBaby"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.SeaTreaderDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("SeaTreader"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.ReaperSkeletonDoll || techType == CrafterLogicFixer.ReaperSkullDoll)
                {
                    if (!PDAEncyclopedia.ContainsEntry("LavaZone_ReaperSkeleton"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.SeaDragonSkeleton)
                {
                    if (!PDAEncyclopedia.ContainsEntry("LostRiverBase_SeaDragonSkeleton"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.GenericSkeleton1 || techType == CrafterLogicFixer.GenericSkeleton2 || techType == CrafterLogicFixer.GenericSkeleton3)
                {
                    if (!PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_Bones") &&
                        !PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_GiantFishSkeleton") &&
                        !PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_SeaDragonSkeleton") &&
                        !PDAEncyclopedia.ContainsEntry("LostRiver_BonesfieldHugeSkeleton") &&
                        !PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_CaveSkeletonScan") &&
                        !PDAEncyclopedia.ContainsEntry("LavaZone_ReaperSkeleton") &&
                        !PDAEncyclopedia.ContainsEntry("Precursor_Cache_LostRiverBonesScan"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact1)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact1"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact2)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact2"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact3)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact3"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact4)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact4"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact5)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact5"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact6)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact6"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact7)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact7"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact8)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact8"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact9)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact10"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact10)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact11"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienArtefact11)
                {
                    if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonArtifact12"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.BenchSmall || techType == CrafterLogicFixer.BenchMedium)
                {
                    if (KnownTech.GetTechUnlockState(TechType.Bench) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.SofaCorner || techType == CrafterLogicFixer.Sofa1 || techType == CrafterLogicFixer.Sofa2 || techType == CrafterLogicFixer.Sofa3)
                {
                    if (!(KnownTech.GetTechUnlockState(TechType.Bench) == TechUnlockState.Available &&
                          KnownTech.GetTechUnlockState(TechType.StarshipChair) == TechUnlockState.Available &&
                          KnownTech.GetTechUnlockState(TechType.StarshipChair2) == TechUnlockState.Available &&
                          KnownTech.GetTechUnlockState(TechType.StarshipChair3) == TechUnlockState.Available))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.Stool)
                {
                    if (!(KnownTech.GetTechUnlockState(TechType.StarshipChair) == TechUnlockState.Available ||
                          KnownTech.GetTechUnlockState(TechType.StarshipChair2) == TechUnlockState.Available ||
                          KnownTech.GetTechUnlockState(TechType.StarshipChair3) == TechUnlockState.Available))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.Stool);
                    }
                }
                else if (techType == CrafterLogicFixer.LongPlanterA)
                {
                    if (KnownTech.GetTechUnlockState(TechType.PlanterBox) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.LongPlanterA);
                    }
                }
                else if (techType == CrafterLogicFixer.LongPlanterB)
                {
                    if (KnownTech.GetTechUnlockState(TechType.FarmingTray) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.LongPlanterB);
                    }
                }
                else if (techType == CrafterLogicFixer.EmptyDesk)
                {
                    if (KnownTech.GetTechUnlockState(TechType.StarshipDesk) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.EmptyDesk);
                    }
                }
                else if (techType == CrafterLogicFixer.CustomizablePictureFrame)
                {
                    if (KnownTech.GetTechUnlockState(TechType.PictureFrame) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.CustomizablePictureFrame);
                    }
                }
                else if (techType == CrafterLogicFixer.ReactorLamp)
                {
                    if (!(KnownTech.GetTechUnlockState(TechType.Spotlight) == TechUnlockState.Available ||
                          KnownTech.GetTechUnlockState(TechType.LEDLight) == TechUnlockState.Available ||
                          KnownTech.GetTechUnlockState(TechType.Techlight) == TechUnlockState.Available))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.ReactorLamp);
                    }
                }
                else if (techType == CrafterLogicFixer.AlienPillar)
                {
                    if (!(PDAEncyclopedia.ContainsEntry("PrecursorTeleporter") ||
                          PDAEncyclopedia.ContainsEntry("PrecursorKeyTerminal") ||
                          PDAEncyclopedia.ContainsEntry("PrecursorEnergyCore") ||
                          PDAEncyclopedia.ContainsEntry("Precursor_Cache_LostRiverLabTable")))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.AlienPillar);
                    }
                }
                else if (techType == CrafterLogicFixer.WarperPart1)
                {
                    if (!PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_WarperScan"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(CrafterLogicFixer.WarperPart1);
                    }
                }
                else if (techType == CrafterLogicFixer.WarperPart2 || techType == CrafterLogicFixer.WarperPart3 || techType == CrafterLogicFixer.WarperPart4 ||
                         techType == CrafterLogicFixer.WarperPart5 || techType == CrafterLogicFixer.WarperPart6 || techType == CrafterLogicFixer.WarperPart7 ||
                         techType == CrafterLogicFixer.WarperPart8 || techType == CrafterLogicFixer.WarperPart9 || techType == CrafterLogicFixer.WarperPart10 ||
                         techType == CrafterLogicFixer.WarperPart11 || techType == CrafterLogicFixer.WarperPart12)
                {
                    if (!(PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_ProductionLine") || PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_WarperParts")))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType, false, false, true);
                    }
                }
                else if (techType == CrafterLogicFixer.LabCart || techType == CrafterLogicFixer.SpecimenAnalyzer || techType == CrafterLogicFixer.LabRobotArm)
                {
                    if (KnownTech.GetTechUnlockState(TechType.BaseWaterPark) != TechUnlockState.Available)
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
            }
            if (techType != TechType.None && ConfigSwitcher.AddWaterSeedsWhenDiscovered && GameModeUtils.RequiresBlueprints())
            {
                if (techType == CrafterLogicFixer.FloatingStone1)
                {
                    if (!PDAEncyclopedia.ContainsEntry("FloatingStones"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.BrineLily)
                {
                    if (!PDAEncyclopedia.ContainsEntry("BlueLostRiverLilly"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.Amoeba)
                {
                    if (!PDAEncyclopedia.ContainsEntry("BlueAmoeba"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.PyroCoral1 || techType == CrafterLogicFixer.PyroCoral2 || techType == CrafterLogicFixer.PyroCoral3)
                {
                    if (!PDAEncyclopedia.ContainsEntry("RedTipRockThings"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.CrabClawKelp1 || techType == CrafterLogicFixer.CrabClawKelp2 || techType == CrafterLogicFixer.CrabClawKelp3)
                {
                    if (!PDAEncyclopedia.ContainsEntry("BlueTipLostRiverPlant"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.BrownTubes1 || techType == CrafterLogicFixer.BrownTubes2 || techType == CrafterLogicFixer.BrownTubes3)
                {
                    if (!PDAEncyclopedia.ContainsEntry("EarthenCoralTubes"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType);
                    }
                }
                else if (techType == CrafterLogicFixer.CoveTree)
                {
                    if (!PDAEncyclopedia.ContainsEntry("TreeCoveTree"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType, false, false, true);
                    }
                }
                else if (techType == CrafterLogicFixer.MushroomTree1 || techType == CrafterLogicFixer.MushroomTree2)
                {
                    if (!PDAEncyclopedia.ContainsEntry("TreeLeech") && !PDAEncyclopedia.ContainsEntry("TreeMushroom") && !PDAEncyclopedia.ContainsEntry("TreeMushroomPiece"))
                    {
                        return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                    }
                    else
                    {
                        KnownTechFixer.AddNotification(techType, false, false, true);
                    }
                }
            }
            if (techType != TechType.None && !ConfigSwitcher.EnableEggsAtStart && GameModeUtils.RequiresBlueprints())
            {
                if (techType == CrafterLogicFixer.GhostLeviathanEggs)
                {
                    if (ConfigSwitcher.EnableEggsWhenCreatureScanned)
                    {
                        if (!PDAEncyclopedia.ContainsEntry("TreeCoveTree") && !PDAEncyclopedia.ContainsEntry("GhostLeviathan") && !PDAEncyclopedia.ContainsEntry("GhostLeviathanJuvenile"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(CrafterLogicFixer.GhostLeviathanEggs, false, false, true);
                        }
                    }
                    else
                    {
                        if (!PDAEncyclopedia.ContainsEntry("TreeCoveTree"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(CrafterLogicFixer.GhostLeviathanEggs, false, false, true);
                        }
                    }
                }
                else if (techType == CrafterLogicFixer.SeaDragonEgg)
                {
                    if (ConfigSwitcher.EnableEggsWhenCreatureScanned)
                    {
                        if (!PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_LeviathanEggShellScan") && !PDAEncyclopedia.ContainsEntry("SeaDragon"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(CrafterLogicFixer.SeaDragonEgg, false, false, true);
                        }
                    }
                    else
                    {
                        if (!PDAEncyclopedia.ContainsEntry("Precursor_LostRiverBase_LeviathanEggShellScan"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(CrafterLogicFixer.SeaDragonEgg, false, false, true);
                        }
                    }
                }
                else if (techType == CrafterLogicFixer.SeaEmperorEgg)
                {
                    if (ConfigSwitcher.EnableEggsWhenCreatureScanned)
                    {
                        if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonEggChamberEmperorEgg") && !PDAEncyclopedia.ContainsEntry("PrecursorPrisonAquariumIncubatorEggs") && !PDAEncyclopedia.ContainsEntry("SeaEmperor") && !PDAEncyclopedia.ContainsEntry("SeaEmperorLeviathan") && !PDAEncyclopedia.ContainsEntry("SeaEmperorBaby"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(CrafterLogicFixer.SeaEmperorEgg, false, false, true);
                        }
                    }
                    else
                    {
                        if (!PDAEncyclopedia.ContainsEntry("PrecursorPrisonEggChamberEmperorEgg") && !PDAEncyclopedia.ContainsEntry("PrecursorPrisonAquariumIncubatorEggs"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(CrafterLogicFixer.SeaEmperorEgg, false, false, true);
                        }
                    }
                }
                else if (ConfigSwitcher.EnableEggsWhenCreatureScanned)
                {
                    switch (techType)
                    {
                    case TechType.BonesharkEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Boneshark"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.CrabsnakeEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Crabsnake"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.CrabsquidEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Crabsquid"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.CrashEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Crash") && !PDAEncyclopedia.ContainsEntry("CrashLair"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.CutefishEgg:
                        if (!PDAEncyclopedia.ContainsEntry("CuteFish"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.GasopodEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Gasopod"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.JellyrayEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Jellyray"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.JumperEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Shuttlebug"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.LavaLizardEgg:
                        if (!PDAEncyclopedia.ContainsEntry("LavaLizard"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.MesmerEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Mesmer"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.RabbitrayEgg:
                        if (!PDAEncyclopedia.ContainsEntry("RabbitRay"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.ReefbackEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Reefback"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.SandsharkEgg:
                        if (!PDAEncyclopedia.ContainsEntry("SandShark"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.ShockerEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Ampeel"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.SpadefishEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Spadefish"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    case TechType.StalkerEgg:
                        if (!PDAEncyclopedia.ContainsEntry("Stalker"))
                        {
                            return(KnownTechFixer.LockReturn(ref __result, ref unlocked, ref total));
                        }
                        else
                        {
                            KnownTechFixer.AddNotification(techType, false, false, true);
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
            return(true);
        }