コード例 #1
0
 public static void Postfix(TechType techType, ref TechUnlockState __result)
 {
     if (Main.config.Hardcore && (__result != TechUnlockState.Available || !CrafterLogic.IsCraftRecipeUnlocked(techType)))
     {
         __result = TechUnlockState.Hidden;
     }
 }
コード例 #2
0
 static void lockIcon(TechUnlockState unlockState, string stringForInt)
 {
     if (unlockState == TechUnlockState.Locked)
     {
         uGUI_BuilderMenu.singleton.iconGrid.GetIcon(stringForInt).manager = null;
     }
 }
コード例 #3
0
 static void updateUnlockState(TechType techType, ref TechUnlockState unlockState)
 {
     if (unlockState == TechUnlockState.Available && lockedBlueprints.Contains(techType))
     {
         unlockState = TechUnlockState.Locked;
     }
 }
コード例 #4
0
 public static bool LockReturn(ref TechUnlockState unlockState, ref int unlocked, ref int total)
 {
     unlocked    = 0;
     total       = 1;
     unlockState = TechUnlockState.Hidden;
     return(false);
 }
コード例 #5
0
ファイル: Core.cs プロジェクト: snoopybeegle/Subnautica-Mods
        private static bool Prefix(uGUI_BuilderMenu __instance)
        {
            __instance.iconGrid.Clear();
            __instance.items.Clear();

            List <TechType> techTypesForGroup = __instance.GetTechTypesForGroup(__instance.selected);
            int             num = 0;

            for (int i = 0; i < techTypesForGroup.Count; i++)
            {
                TechType techType = techTypesForGroup[i];
                if (!Core.RecipeBlacklist.Contains(techType.AsString()))
                {
                    TechUnlockState techUnlockState = KnownTech.GetTechUnlockState(techType);
                    if (techUnlockState == TechUnlockState.Available || techUnlockState == TechUnlockState.Locked)
                    {
                        string stringForInt = IntStringCache.GetStringForInt(num);
                        __instance.items.Add(stringForInt, techType);
                        __instance.iconGrid.AddItem(stringForInt, SpriteManager.Get(techType), SpriteManager.GetBackground(techType), techUnlockState == TechUnlockState.Locked, num);
                        __instance.iconGrid.RegisterNotificationTarget(stringForInt, NotificationManager.Group.Builder, techType.EncodeKey());
                        num++;
                    }
                }
            }
            return(false);
        }
コード例 #6
0
        /// <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);
        }