Пример #1
0
 public static void ForceShow()
 {
     Find.WindowStack.Add(new NewsDialog());
     PrisonLaborPrefs.LastVersion = PrisonLaborPrefs.Version;
     PrisonLaborPrefs.Save();
     autoShow = false;
 }
Пример #2
0
 static Initialization()
 {
     HPatcher.Init();
     ClassInjector.Init();
     PrisonLaborPrefs.Init();
     SettingsMenu.Init();
     VersionUtility.CheckVersion();
     Designator_AreaLabor.Initialization();
     Behaviour_MotivationIcon.Initialization();
     CompatibilityPatches.Initialization.Run();
     HediffManager.Init();
 }
Пример #3
0
 public override void WriteSettings()
 {
     PrisonLaborPrefs.ShowNews          = showNews;
     PrisonLaborPrefs.AllowAllWorkTypes = allowAllWorktypes;
     if (!disableMod)
     {
         PrisonLaborPrefs.EnableMotivationMechanics = enableMotivationMechanics;
     }
     PrisonLaborPrefs.EnableMotivationIcons  = enableMotivationIcons;
     PrisonLaborPrefs.AdvancedGrowing        = advancedGrowing;
     PrisonLaborPrefs.DisableMod             = disableMod;
     PrisonLaborPrefs.DefaultInteractionMode = interactionModeList[defaultInteractionMode].defName;
     PrisonLaborPrefs.Save();
     Log.Message("Prison Labor settings saved");
 }
Пример #4
0
        static Initialization()
        {
            try
            {
                PrisonLaborPrefs.Init();
                HPatcher.Init();
                SettingsMenu.Init();
                VersionUtility.CheckVersion();
                CompatibilityPatches.Initialization.Run();
                HediffManager.Init();

                Log.Message($"Enabled Prison Labor v{VersionUtility.versionString}");
            }
            catch (Exception e)
            {
                Log.Error($"Prison Labor v{VersionUtility.versionString} caught error during start up:\n{e}");
            }
        }
Пример #5
0
 public static void UpdateTutorialFlags()
 {
     if (PlayerKnowledgeDatabase.IsComplete(introductionDef))
     {
         PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.Introduction);
     }
     if (!PlayerKnowledgeDatabase.IsComplete(motivationDef))
     {
         PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.Motivation);
     }
     if (!PlayerKnowledgeDatabase.IsComplete(managementDef))
     {
         PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.Managment);
     }
     if (!PlayerKnowledgeDatabase.IsComplete(timetableDef))
     {
         PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.Timetable);
     }
     if (!PlayerKnowledgeDatabase.IsComplete(growingDef))
     {
         PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.Growing);
     }
 }
Пример #6
0
 public static void Apply()
 {
     if (PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.Introduction))
     {
         PlayerKnowledgeDatabase.SetKnowledge(introductionDef, 1.0f);
     }
     if (PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.Motivation))
     {
         PlayerKnowledgeDatabase.SetKnowledge(motivationDef, 1.0f);
     }
     if (PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.Growing))
     {
         PlayerKnowledgeDatabase.SetKnowledge(growingDef, 1.0f);
     }
     if (PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.Managment))
     {
         PlayerKnowledgeDatabase.SetKnowledge(managementDef, 1.0f);
     }
     if (PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.Timetable))
     {
         PlayerKnowledgeDatabase.SetKnowledge(timetableDef, 1.0f);
     }
 }
Пример #7
0
        public static void CheckVersion()
        {
            // Update actual version
            if (PrisonLaborPrefs.Version == Version.v0_0)
            {
                PrisonLaborPrefs.Version     = versionNumber;
                PrisonLaborPrefs.LastVersion = versionNumber;
            }
            else if (PrisonLaborPrefs.Version != versionNumber)
            {
                PrisonLaborPrefs.Version = versionNumber;
            }

            // Check for news
            if (PrisonLaborPrefs.LastVersion < Version.v0_5)
            {
                NewsDialog.news_0_5 = true;
                NewsDialog.autoShow = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_6)
            {
                NewsDialog.news_0_6 = true;
                NewsDialog.autoShow = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_7)
            {
                NewsDialog.news_0_7 = true;
                NewsDialog.autoShow = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_8_0)
            {
                NewsDialog.news_0_8_0 = true;
                NewsDialog.autoShow   = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_8_1)
            {
                NewsDialog.news_0_8_1 = true;
                NewsDialog.autoShow   = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_8_3)
            {
                NewsDialog.news_0_8_3 = true;
                NewsDialog.autoShow   = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_8_6)
            {
                NewsDialog.news_0_8_6 = true;
                NewsDialog.autoShow   = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_9_0)
            {
                NewsDialog.news_0_9_0 = true;
                NewsDialog.autoShow   = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_9_1)
            {
                NewsDialog.news_0_9_1 = true;
                NewsDialog.autoShow   = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_9_2)
            {
                NewsDialog.news_0_9_2 = true;
                NewsDialog.autoShow   = true;
            }
            if (PrisonLaborPrefs.LastVersion < Version.v0_9_4)
            {
                CompatibilityPatches.OlderVersions.Pre_v0_9_4();
            }

            Log.Message($"Enabled Prison Labor v{versionString}");
            PrisonLaborPrefs.Version = versionNumber;
            PrisonLaborPrefs.Save();
        }
Пример #8
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            var leftRect  = new Rect(inRect.x, inRect.y, inRect.width * 0.65f, inRect.height);
            var rightRect = new Rect(inRect.x + inRect.width * 0.65f + 30f, inRect.y, inRect.width * 0.35f - 30f,
                                     inRect.height);

            var listing_options = new Listing_Standard();

            listing_options.Begin(leftRect);

            listing_options.CheckboxLabeled("PrisonLabor_ShowNews".Translate(), ref showNews,
                                            "PrisonLabor_ShowNewsDesc".Translate());

            listing_options.GapLine();

            if (listing_options.ButtonTextLabeled("PrisonLabor_DefaultInterMode".Translate(), interactionModeList[defaultInteractionMode].LabelCap))
            {
                defaultInteractionMode = defaultInteractionMode < interactionModeList.Count - 1 ? defaultInteractionMode + 1 : 0;
            }

            listing_options.GapLine();

            if (!disableMod)
            {
                listing_options.Label("PrisonLabor_AllowedWorkTypes".Translate(), -1f);
                listing_options.CheckboxLabeled("   " + "PrisonLabor_AllowAll".Translate(), ref allowAllWorktypes, "PrisonLabor_AllowAllWorkTypes".Translate());
                if (!allowAllWorktypes)
                {
                    if (listing_options.ButtonTextLabeled("   " + "PrisonLabor_AllowedWorkTypesL".Translate(), "PrisonLabor_Browse".Translate()))
                    {
                        Find.WindowStack.Add(new SelectWorkTypesDialog());
                    }
                }
                else
                {
                    listing_options.Gap();
                }

                listing_options.GapLine();

                listing_options.CheckboxLabeled("PrisonLabor_MotivationMechanics".Translate(), ref enableMotivationMechanics,
                                                "PrisonLabor_MotivationWarning".Translate());

                listing_options.GapLine();

                listing_options.CheckboxLabeled("PrisonLabor_MotivationIcons".Translate(), ref enableMotivationIcons,
                                                "PrisonLabor_MotivationIconsDesc".Translate());

                listing_options.GapLine();

                listing_options.CheckboxLabeled("PrisonLabor_CanGrowAdvanced".Translate(), ref advancedGrowing,
                                                "PrisonLabor_CanGrowAdvancedDesc".Translate());

                listing_options.GapLine();

                listing_options.CheckboxLabeled("PrisonLabor_EnableRevolts".Translate(), ref enableRevolts,
                                                "PrisonLabor_EnableRevoltsDesc".Translate());
            }
            else
            {
                listing_options.Gap();
                listing_options.Gap();
                listing_options.Label("PrisonLabor_RestartInfo".Translate(), -1f);
                listing_options.Label("PrisonLabor_RestartInfo2".Translate(), -1f);
                listing_options.Gap();
                listing_options.Gap();
                listing_options.Gap();
            }

            listing_options.Gap();
            listing_options.Gap();
            listing_options.Gap();

            listing_options.CheckboxLabeled("PrisonLabor_DisableMod".Translate(), ref disableMod,
                                            "PrisonLabor_DisableModDesc".Translate());

            listing_options.End();

            var listing_panel = new Listing_Standard();

            listing_panel.Begin(rightRect);

            var heigh_temp = rightRect.width * 0.56f;

            GUI.DrawTexture(new Rect(0, 0, rightRect.width, heigh_temp), ContentFinder <Texture2D> .Get("Preview", true));
            listing_panel.Gap(heigh_temp);
            listing_panel.Label("Prison Labor", -1f);
            listing_panel.Label("PrisonLabor_Version".Translate() + VersionUtility.versionString, -1f);

            listing_panel.GapLine();

            listing_panel.Label("PrisonLabor_Difficulty".Translate() + difficulty, -1f);

            listing_panel.GapLine();

            if (listing_panel.ButtonText("PrisonLabor_Defaults".Translate()))
            {
                PrisonLaborPrefs.RestoreToDefault();
                Init();
            }

            if (listing_panel.ButtonText("PrisonLabor_ShowNews".Translate()))
            {
                NewsDialog.showAll = true;
                NewsDialog.ForceShow();
            }

            listing_panel.End();

            Apply();
        }
Пример #9
0
 private static void Apply()
 {
     PrisonLaborPrefs.Apply();
     CalculateDifficulty();
 }