public static void DoAssignDrugPolicyButtons(Rect rect, ColonistGroup group)
        {
            int    num   = Mathf.FloorToInt((rect.width - 4f) * 0.714285731f);
            int    num2  = Mathf.FloorToInt((rect.width - 4f) * 0.2857143f);
            float  x     = rect.x;
            Rect   rect2 = new Rect(x, rect.y + 2f, num, rect.height - 4f);
            string text  = group.pawns.First().drugs.CurrentPolicy.label;

            Widgets.Dropdown(rect2, group, (ColonistGroup g) => g.pawns.First().drugs.CurrentPolicy, Button_GenerateMenu, text.Truncate(rect2.width), null,
                             group.pawns.First().drugs.CurrentPolicy.label, null, delegate
            {
                PlayerKnowledgeDatabase.KnowledgeDemonstrated(ConceptDefOf.DrugPolicies, KnowledgeAmount.Total);
            }, paintable: true);
            x += (float)num;
            x += 4f;
            Rect rect3 = new Rect(x, rect.y + 2f, num2, rect.height - 4f);

            if (Widgets.ButtonText(rect3, "AssignTabEdit".Translate()))
            {
                var window = new Dialog_ManageDrugPolicies(group.pawns.First().drugs.CurrentPolicy);
                Find.WindowStack.Add(window);
            }
            UIHighlighter.HighlightOpportunity(rect2, "ButtonAssignDrugs");
            UIHighlighter.HighlightOpportunity(rect3, "ButtonAssignDrugs");
            x += (float)num2;
        }
        static void Postfix(Dialog_ManageDrugPolicies __instance, Rect inRect)
        {
            float x = 500;

            if (Widgets.ButtonText(new Rect(x, 0, 150f, 35f), "SaveStorageSettings.LoadAsNew".Translate(), true, false, true))
            {
                DrugPolicy policy = Current.Game.drugPolicyDatabase.MakeNewDrugPolicy();
                SetDrugPolicy(__instance, policy);

                Find.WindowStack.Add(new LoadPolicyDialog("DrugPolicy", policy));
            }
            x += 160;

            DrugPolicy selectedPolicy = GetDrugPolicy(__instance);

            if (selectedPolicy != null)
            {
                Text.Font = GameFont.Small;
                if (Widgets.ButtonText(new Rect(x, 0f, 75, 35f), "LoadGameButton".Translate(), true, false, true))
                {
                    string label = selectedPolicy.label;
                    Find.WindowStack.Add(new LoadPolicyDialog("DrugPolicy", selectedPolicy));
                    selectedPolicy.label = label;
                }
                x += 80;
                if (Widgets.ButtonText(new Rect(x, 0f, 75, 35f), "SaveGameButton".Translate(), true, false, true))
                {
                    Find.WindowStack.Add(new SavePolicyDialog("DrugPolicy", selectedPolicy));
                }
            }
        }
Exemplo n.º 3
0
        static void DialogManageDrugPolicies(Dialog_ManageDrugPolicies __instance)
        {
            DrugPolicy policy = __instance.SelectedPolicy;

            for (int i = 0; i < policy.Count; i++)
            {
                SyncDrugPolicyEntry.Watch(policy, i);
                SyncDrugPolicyEntryBuffered.Watch(policy, i);
            }
        }
Exemplo n.º 4
0
        public void DoDrugPolicyHeader(Rect rect)
        {
            MouseoverSounds.DoRegion(rect);
            Rect rect2 = new Rect(rect.x, rect.y + (rect.height - 65f), Mathf.Min(rect.width, 360f), 32f);

            if (Widgets.ButtonText(rect2, "ManageDrugPolicies".Translate()))
            {
                var window = new Dialog_ManageDrugPolicies(null);
                Find.WindowStack.Add(window);
            }
            UIHighlighter.HighlightOpportunity(rect2, "ManageDrugPolicies");
            UIHighlighter.HighlightOpportunity(rect2, "ButtonAssignDrugs");
        }
 private static void SetDrugPolicy(Dialog_ManageDrugPolicies dialog, DrugPolicy selectedPolicy)
 {
     typeof(Dialog_ManageDrugPolicies).GetProperty("SelectedPolicy", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty).SetValue(dialog, selectedPolicy, null);
 }
 private static DrugPolicy GetDrugPolicy(Dialog_ManageDrugPolicies dialog)
 {
     return((DrugPolicy)typeof(Dialog_ManageDrugPolicies).GetProperty("SelectedPolicy", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty).GetValue(dialog, null));
 }