示例#1
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);
     }
     if (PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.Treatment))
     {
         PlayerKnowledgeDatabase.SetKnowledge(treatmentDef, 1.0f);
     }
 }
示例#2
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);
     }
     if (PlayerKnowledgeDatabase.IsComplete(treatmentDef))
     {
         PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.Treatment);
     }
 }
示例#3
0
 public static void ForceShow()
 {
     Find.WindowStack.Add(new NewsWindow());
     PrisonLaborPrefs.LastVersion = PrisonLaborPrefs.Version;
     PrisonLaborPrefs.Save();
     AutoShow = false;
 }
示例#4
0
 public static void Introduction()
 {
     //TryActivateTutorial(introductionDef, OpportunityType.Important);
     if (!PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.Introduction))
     {
         TutorialWindow.Show("Introduction");
         PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.Introduction);
         PrisonLaborPrefs.Save();
     }
 }
示例#5
0
 public static void LaborAreaWarning()
 {
     if (!PrisonLaborPrefs.HasTutorialFlag(TutorialFlag.LaborAreaWarning))
     {
         Find.WindowStack.Add(
             new Dialog_MessageBox(
                 "PrisonLabor_LaborAreaWarning".Translate(),
                 "PrisonLabor_DontShowAgain".Translate(),
                 () => { PrisonLaborPrefs.AddTutorialFlag(TutorialFlag.LaborAreaWarning); PrisonLaborPrefs.Save(); }
                 ));
     }
 }
示例#6
0
 public override void WriteSettings()
 {
     PrisonLaborPrefs.ShowNews                  = showNews;
     PrisonLaborPrefs.AllowAllWorkTypes         = allowAllWorktypes;
     PrisonLaborPrefs.EnableMotivationMechanics = enableMotivationMechanics;
     PrisonLaborPrefs.EnableMotivationIcons     = enableMotivationIcons;
     PrisonLaborPrefs.EnableRevolts             = enableRevolts;
     PrisonLaborPrefs.ShowTreatmentHappiness    = showTreatmentHappiness;
     PrisonLaborPrefs.AdvancedGrowing           = advancedGrowing;
     PrisonLaborPrefs.DefaultInteractionMode    = interactionModeList[defaultInteractionMode].defName;
     PrisonLaborPrefs.Save();
     Log.Message("Prison Labor settings saved");
 }
示例#7
0
        internal static void Pre_v0_9_4()
        {
            if (WorkSettings.AllowedWorkTypes.Contains(WorkTypeDefOf.Warden))
            {
                WorkSettings.AllowedWorkTypes.Remove(WorkTypeDefOf.Warden);
            }
            if (WorkSettings.AllowedWorkTypes.Contains(PL_DefOf.PrisonLabor_Jailor))
            {
                WorkSettings.AllowedWorkTypes.Remove(PL_DefOf.PrisonLabor_Jailor);
            }

            WorkSettings.Apply();
            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((int)(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();

            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());

            listing_options.GapLine();

            listing_options.CheckboxLabeled("PrisonLabor_EnableSuicide".Translate(), ref enableSuicide,
                                            "PrisonLabor_EnableSuicideDesc".Translate());

            listing_options.CheckboxLabeled("PrisonLabor_EnableFullHealRest".Translate(), ref enableFullHealRest,
                                            "PrisonLabor_EnableFullHealRestDesc".Translate());


            listing_options.GapLine();

            listing_options.CheckboxLabeled("PrisonLabor_ShowTreatmentHappiness".Translate(), ref showTreatmentHappiness,
                                            "PrisonLabor_ShowTreatmentHappinessDesc".Translate());

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

            if (listing_options.ButtonTextLabeled("PrisonLabor_ButtonRemoveModFromSaveDesc".Translate(), "PrisonLabor_ButtonRemoveModFromSave".Translate()))
            {
                Find.WindowStack.Add(new SelectSaveForCleaningDialog());
            }

            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()))
            {
                NewsWindow.ShowAll = true;
                NewsWindow.ForceShow();
            }

            if (listing_panel.ButtonText("PrisonLabor_ReplayTurorialsButton".Translate()))
            {
                ReplayTutorialsWindow.Show();
            }

            listing_panel.End();

            Apply();
        }
示例#9
0
 private static void Apply()
 {
     PrisonLaborPrefs.Apply();
     CalculateDifficulty();
 }