Example #1
0
 /// <summary>
 /// Switch to the main menu UIElement linked in Editor.
 /// </summary>
 public void NavToMainMenu()
 {
     activeGroup.Deactivate();
     activeGroup = null;
     uiMainMenu.Activate();
     mainMenuButton.gameObject.SetActive(false);
 }
Example #2
0
 /// <summary>
 /// Switch to a UIGroup linked in editor by using a direct object reference.
 /// </summary>
 /// <param name="nextUIGroup">Reference to the UIGroup to swtich to.</param>
 /// <param name="clearPreviousGroup">Boolean to determine of the active UIElement in the previous UIGroup should be cleared.</param>
 public void NavToUIGroup(UIGroup nextUIGroup, bool clearPreviousGroup = false)
 {
     if (nextUIGroup != activeGroup)
     {
         previousGroup = activeGroup;
         activeGroup = nextUIGroup;
         Debug.Log("PreviousGroup: " + previousGroup);
         Debug.Log("ActiveGroup: " + nextUIGroup);
         if (previousGroup == null)
         {
             uiMainMenu.Deactivate();
         }
         else
         {
             previousGroup.Deactivate();
             if (clearPreviousGroup)
             {
                 previousGroup.ClearActiveUI();
             }
         }
         activeGroup.Activate();
         mainMenuButton.gameObject.SetActive(true);
     }
 }
Example #3
0
 public UIBaseLayer FindFrontLayerInGroup(UIGroup group)
 {
     return(m_list.Find(l => {
         return (l.ui.group == group);
     }));
 }
Example #4
0
 // Token: 0x060124AC RID: 74924 RVA: 0x004B3830 File Offset: 0x004B1A30
 public static void RegisterUITask(string name, UIGroup group)
 {
     ProjectLUITaskRegister.RegisterUITask(name, group);
 }
Example #5
0
 // Token: 0x060124A1 RID: 74913 RVA: 0x004B360C File Offset: 0x004B180C
 private static void RegisterUITask(string name, UIGroup group)
 {
     UIManager.Instance.RegisterUITaskWithGroup(name, new TypeDNName("BlackJack.ProjectL.UI." + name), (int)group, null);
 }
Example #6
0
 public void diableUI(UIGroup _hudgroup)
 {
     _hudgroup.HUDObject.SetActive(false);
 }
 public void ClearGroup(UIGroup i_Group)
 {
     m_PanelsManager.ClearGroup(i_Group);
 }
 public void SequentialSwitchPanels(UIGroup i_Group, UIBasePanel i_First, UIBasePanel i_Second, Action i_Callback = null)
 {
     m_PanelsManager.SequentialSwitchPanels(i_Group, i_First, i_Second, i_Callback);
 }
 public void SwitchPanels(UIGroup i_Group, UIBasePanel i_First, UIBasePanel i_Second)
 {
     m_PanelsManager.SwitchPanels(i_Group, i_First, i_Second);
 }
Example #10
0
 public void SequentialSwitchPanels(UIGroup i_Group, UIBasePanel i_First, UIBasePanel i_Second, Action i_Callback = null)
 {
     UIBasePanel[] panels = new UIBasePanel[] { i_First, i_Second };
     SequentialSwitchPanels(i_Group, panels, i_Callback);
 }
        public RadioButtonBoxComponent(
            UIGroup uiGroup,
            Vector2 position,
            Vector2 size,
            string[] labels,
            int defaultValue
            ) : base(uiGroup, position, size)
        {
            _defaultValue = defaultValue;

            var tempGameObject = new GameObject();

            tempGameObject.transform.SetParent(UIManager.UiGameObject.transform);
            tempGameObject.SetActive(true);

            _toggleGroup = tempGameObject.AddComponent <ToggleGroup>();
            _toggleGroup.allowSwitchOff = false;

            _toggles = new Toggle[labels.Length];

            _activeIndex = defaultValue;

            for (var i = 0; i < labels.Length; i++)
            {
                var label = labels[i];

                new TextComponent(
                    uiGroup,
                    position,
                    new Vector2(TextWidth, 30),
                    label,
                    FontManager.UIFontRegular,
                    18,
                    alignment: TextAnchor.LowerLeft
                    );

                var checkboxComponent = new CheckboxComponent(
                    uiGroup,
                    position + new Vector2(90, 0),
                    new Vector2(20, 20),
                    i == defaultValue,
                    TextureManager.RadioBackground,
                    TextureManager.RadioFilled
                    );
                var toggle = checkboxComponent.ToggleComponent;
                toggle.group = _toggleGroup;
                _toggleGroup.RegisterToggle(toggle);
                _toggles[i] = toggle;

                var index = i;

                checkboxComponent.SetOnToggle(value => {
                    if (value)
                    {
                        OnClicked(index);
                    }
                });

                position -= new Vector2(0, 40);
            }
        }
Example #12
0
    void Start()
    {
        var eventSystem = FindObjectOfType <EventSystem>();

        eventSystem.pixelDragThreshold = (int)(Screen.width / 50f);
        Items = new Dictionary <string, UILayout>();

        PartTitles = new [] {
            "Components",
            "TableView",
            "ListView",
            "GridView"
        };
        TypeListView = new ListView
        {
            Name                   = "Type List View",
            UIRect                 = new UIRect(20, 0, 240, 720),
            Adapter                = new TypeListAdapter(PartTitles),
            BackgroundColor        = new Color(0, 0, 0, 0.75f),
            OnItemSelectedListener = (index) =>
            {
                Debug.Log("Select : " + index);
                Group.Select(Items[PartTitles[index]]);
            }
        };

        Group = new UIGroup <UILayout>((layout) =>
        {
            layout.UIObject.SetActive(true);
        }, (layout) =>
        {
            if (layout.UIObject.activeSelf)
            {
                layout.UIObject.SetActive(false);
            }
        });

        // Components
        UILayout components = new Part1();

        components.Name = "Components";
        Items.Add(PartTitles[0], components);
        Group.Add(components);

        // TableView
        UILayout tableView = new Part2();

        tableView.Name = "Table View";
        Items.Add(PartTitles[1], tableView);
        Group.Add(tableView);
        // ListView
        ListView listView = new Part3();

        listView.Name = "List View";

        TextView textView = new TextView(listView);

        textView.UIFrame = new UIFrame(0, 0, 1000, 150);
        textView.TextComponent.alignment = TextAnchor.MiddleCenter;
        textView.FontSize   = 30;
        textView.Text       = "List View Header";
        listView.HeaderView = textView;

        listView.Adapter = new Part3Adapter();
        Items.Add(PartTitles[2], listView);
        Group.Add(listView);

        // GridView
        GridView gridView = new Part4();

        gridView.Name     = "Grid View";
        gridView.ItemSize = new Vector2(150, 150);
        gridView.Adapter  = new Part4Adapter();
        Items.Add(PartTitles[3], gridView);
        Group.Add(gridView);
    }
Example #13
0
        public void CreateUI()
        {
            pluginLabelJSON.val = PluginName;

            _builder = new UIBuilder(this);
            _group   = new UIGroup(_builder);
            _group.BlacklistStorable("Device Report");

            PluginTitle = _group.CreateDisabledButton("Plugin", new Color(0.3f, 0.3f, 0.3f), Color.white);

            PresetButtonGroup = _group.CreateHorizontalGroup(510, 50, new Vector2(10, 0), 3, idx => _group.CreateButtonEx());
            var saveButton = PresetButtonGroup.items[0].GetComponent <UIDynamicButton>();

            saveButton.buttonText.fontSize = 25;
            saveButton.label       = "Save Config";
            saveButton.buttonColor = new Color(0.309f, 1f, 0.039f) * 0.8f;
            saveButton.textColor   = Color.white;
            saveButton.button.onClick.AddListener(SaveConfigCallback);

            var loadButton = PresetButtonGroup.items[1].GetComponent <UIDynamicButton>();

            loadButton.buttonText.fontSize = 25;
            loadButton.label       = "Load Config";
            loadButton.buttonColor = new Color(1f, 0.168f, 0.039f) * 0.8f;
            loadButton.textColor   = Color.white;
            loadButton.button.onClick.AddListener(LoadConfigCallback);

            var defaultButton = PresetButtonGroup.items[2].GetComponent <UIDynamicButton>();

            defaultButton.buttonText.fontSize = 25;
            defaultButton.label       = "As Default";
            defaultButton.buttonColor = new Color(1f, 0.870f, 0.039f) * 0.8f;
            defaultButton.textColor   = Color.white;
            defaultButton.button.onClick.AddListener(SaveDefaultConfigCallback);

            DebugDrawEnableToggle = _group.CreateToggle("Plugin:DebugDrawEnable", "Enable Debug", false);

            var rangeVisible = false;
            var rangeGroup   = new UIGroup(_group);

            RangeTitle = _group.CreateButton("Range", () => rangeGroup.SetVisible(rangeVisible = !rangeVisible), new Color(0.3f, 0.3f, 0.3f), Color.white);

            UpDirectionChooser = rangeGroup.CreateScrollablePopup("Plugin:UpDirection", "Up Direction", new List <string> {
                "+Up", "+Right", "+Forward", "-Up", "-Right", "-Forward"
            }, "+Up", null);
            UpRangeSlider      = rangeGroup.CreateSlider("Plugin:UpRange", "Up Range (+/- cm)", 0.08f, 0.01f, 0.25f, true, true, valueFormat: "P0");
            RightRangeSlider   = rangeGroup.CreateSlider("Plugin:RightRange", "Right Range (+/- cm)", 0.05f, 0.01f, 0.25f, true, true, valueFormat: "P0");
            ForwardRangeSlider = rangeGroup.CreateSlider("Plugin:ForwardRange", "Forward Range (+/- cm)", 0.05f, 0.01f, 0.25f, true, true, valueFormat: "P0");

            YawRangeSlider   = rangeGroup.CreateSlider("Plugin:YawRange", "Yaw Range (+/- deg)", 30, 1, 90, true, true, valueFormat: "F0");
            PitchRangeSlider = rangeGroup.CreateSlider("Plugin:PitchRange", "Pitch Range (+/- deg)", 30, 1, 90, true, true, valueFormat: "F0");
            RollRangeSlider  = rangeGroup.CreateSlider("Plugin:RollRange", "Roll Range (+/- deg)", 30, 1, 90, true, true, valueFormat: "F0");
            rangeGroup.SetVisible(false);

            _valuesSourceGroup = new UIGroup(_group);
            var valuesSourceVisible = true;

            ValuesSourceTitle                = _group.CreateButton("Values Source", () => _valuesSourceGroup.SetVisible(valuesSourceVisible = !valuesSourceVisible), new Color(0.3f, 0.3f, 0.3f), Color.white);
            ValuesSourceReportText           = _valuesSourceGroup.CreateTextField("Values Report", "", 230);
            ValuesSourceReportText.text.font = Font.CreateDynamicFontFromOSFont("Consolas", 14);

            ValuesSourceChooser = _valuesSourceGroup.CreatePopup("Plugin:ValuesSource", "Select values source", new List <string> {
                "None", "Udp"
            }, "None", ValuesSourceChooserCallback);

            _motionTargetGroup = new UIGroup(_group);
            var motionTargetVisible = true;

            MotionTargetTitle   = _group.CreateButton("Motion Target", () => _motionTargetGroup.SetVisible(motionTargetVisible = !motionTargetVisible), new Color(0.3f, 0.3f, 0.3f), Color.white, true);
            MotionTargetChooser = _motionTargetGroup.CreatePopup("Plugin:MotionTarget", "Select motion target", new List <string> {
                "None", "Physics Link", "Force"
            }, "None", MotionTargetChooserCallback, true);

            ValuesSourceChooserCallback(null);
            MotionTargetChooserCallback(null);
        }
Example #14
0
        public static void Main(string[] args)
        {
            uiInitOptions o = new uiInitOptions();

            uiInit(ref o);

            List <UIMenu> menus = new List <UIMenu>();
            var           menu  = new UIMenu("File");

            menus.Add(menu);
            var item = menu.AppendItem("Open");

            item.OnClicked += (mi, w) =>
            {
                string filename = window.OpenFile();
                if (String.IsNullOrEmpty(filename))
                {
                    window.MessageBox("No file selected", "Don't be alarmed!", true);
                    return;
                }
                window.MessageBox("File selected", filename);
            };
            item            = menu.AppendItem("Save");
            item.OnClicked += (mi, w) =>
            {
                string filename = window.OpenFile();
                if (String.IsNullOrEmpty(filename))
                {
                    window.MessageBox("No file selected", "Don't be alarmed!", true);
                    return;
                }
                window.MessageBox("File selected (don't worry, it's still there)", filename);
            };
            item = menu.AppendQuitItem();
            //uiOnShouldQuit()

            menu = new UIMenu("Edit");
            menus.Add(menu);
            item = menu.AppendCheckItem("Checkable Item");
            menu.AppendSeparator();
            item         = menu.AppendItem("Disabled Item");
            item.Enabled = false;
            item         = menu.AppendPreferencesItem();

            menu = new UIMenu("Help");
            menus.Add(menu);
            item = menu.AppendItem("Help");
            menu.AppendAboutItem();

            window = new UIWindow("libui Control Gallery", 640, 480, true);

            window.Margined   = true;
            window.OnClosing += (w) =>
            {
                window.Dispose();
                uiQuit();
                return(0);
            };

            var box = new UIBox(true);

            box.Padded = true;
            window.SetChild(box);

            var hbox = new UIBox();

            box.Padded = true;
            box.Append(hbox, true);

            var group = new UIGroup("Basic Controls");

            group.Margined = true;
            hbox.Append(group, false);

            var inner = new UIBox(true);

            inner.Padded = true;
            group.SetChild(inner);

            inner.Append(new UIButton("Button"), false);

            var entry = new UIEntry();

            entry.Text = "Entry";
            inner.Append(entry, false);

            inner.Append(new UILabel("Label"), false);

            inner.Append(new UISeparator(), false);

            inner.Append(new UIDateTimePicker(UIDateTimePickerType.Date), false);

            inner.Append(new UIDateTimePicker(UIDateTimePickerType.Time), false);

            inner.Append(new UIDateTimePicker(UIDateTimePickerType.DateTime), false);

            //inner.Append(new UIFontButton(), false);

            var inner2 = new UIBox(true);

            inner2.Padded = true;
            hbox.Append(inner2, true);

            group          = new UIGroup("Numbers");
            group.Margined = true;
            inner2.Append(group, false);

            inner        = new UIBox(true);
            inner.Padded = true;
            group.SetChild(inner);

            var spinbox = new UISpinbox(0, 100);

            inner.Append(spinbox, false);

            var slider = new UISlider(0, 100);

            inner.Append(slider, false);

            var progressbar = new UIProgressBar();

            inner.Append(progressbar, false);

            group          = new UIGroup("Lists");
            group.Margined = true;
            inner2.Append(group, false);

            inner        = new UIBox(true);
            inner.Padded = true;
            group.SetChild(inner);

            spinbox.OnChanged += (s) =>
            {
                slider.Value      = spinbox.Value;
                progressbar.Value = (int)spinbox.Value;
            };

            slider.OnChanged += (s) =>
            {
                spinbox.Value     = slider.Value;
                progressbar.Value = (int)slider.Value;
            };

            var cbox = new UICombobox();

            cbox.Append("Combobox Item 1");
            cbox.Append("Combobox Item 2");
            cbox.Append("Combobox Item 3");
            inner.Append(cbox, false);

            cbox = new UICombobox(true);
            cbox.Append("Editable Item 1");
            cbox.Append("Editable Item 2");
            cbox.Append("Editable Item 3");
            inner.Append(cbox, false);

            var rb = new UIRadioButtons();

            rb.Append("Radio Button 1");
            rb.Append("Radio Button 2");
            rb.Append("Radio Button 3");
            inner.Append(rb, true);

            var tab = new UITab();

            tab.Append("Page 1", new UIBox());
            tab.Append("Page 2", new UIBox());
            tab.Append("Page 3", new UIBox());
            inner2.Append(tab, true);

            GC.Collect();

            window.Shown = true;
            uiMain();
            uiUninit();
            GC.KeepAlive(menus);
            GC.KeepAlive(window);
        }
Example #15
0
 public int GetNumInGroup(UIGroup group)
 {
     return(UIBaseLayerList.GetNumInGroup(group, m_list));
 }
Example #16
0
        // INTERNALS

        private IEnumerator Switch(UIGroup i_Group, UIBasePanel[] i_Panels)
        {
            if (i_Panels != null)
            {
                List <UIBasePanel> openedPanels = m_OpenedPanels[i_Group];
                if (openedPanels != null)
                {
                    // Close panels

                    int    closingPanelsCount  = 0;
                    int    closedPanelsCount   = 0;
                    Action panelClosedCallback = () => { ++closedPanelsCount; };

                    for (int panelIndex = 0; panelIndex < openedPanels.Count; ++panelIndex)
                    {
                        UIBasePanel panel = openedPanels[panelIndex];

                        if (panel == null)
                        {
                            continue;
                        }

                        bool shouldBeClosed = true;
                        for (int index = 0; index < i_Panels.Length; ++index)
                        {
                            UIBasePanel current = i_Panels[index];
                            if (current == panel)
                            {
                                shouldBeClosed = false;
                                break;
                            }
                        }

                        if (shouldBeClosed)
                        {
                            ++closingPanelsCount;
                            UI.ClosePanel(panel, panelClosedCallback);
                        }
                    }

                    // Remove closed panels

                    for (int panelIndex = 0; panelIndex < openedPanels.Count;)
                    {
                        UIBasePanel panel = openedPanels[panelIndex];

                        if (panel == null)
                        {
                            continue;
                        }

                        if (!panel.isOpen)
                        {
                            openedPanels.Remove(panel);
                            panelIndex = 0;
                        }
                        else
                        {
                            ++panelIndex;
                        }
                    }

                    // Wait animations.

                    yield return(new WaitUntil(() => (closedPanelsCount == closingPanelsCount)));

                    // Open new panels.

                    int    openingPanelsCount  = 0;
                    int    openedPanelsCount   = 0;
                    Action panelOpenedCallback = () => { ++openedPanelsCount; };

                    for (int panelIndex = 0; panelIndex < i_Panels.Length; ++panelIndex)
                    {
                        UIBasePanel panel = i_Panels[panelIndex];

                        if (panel == null)
                        {
                            continue;
                        }

                        if (!openedPanels.Contains(panel))
                        {
                            ++openingPanelsCount;
                            UI.OpenPanel(panel, panelOpenedCallback);
                            openedPanels.Add(panel);
                        }
                    }

                    // Wait animations.

                    yield return(new WaitUntil(() => (openedPanelsCount == openingPanelsCount)));
                }
            }

            Callback(i_Group);
        }
Example #17
0
 private void OnPricticeClicked()
 {
     UIGroup.Open("ExperimentChoisePanel");
     SceneMain.Current.InvokeEvents(AppConfig.EventKey.ClickEmpty);
 }
Example #18
0
 public void SwitchPanels(UIGroup i_Group, UIBasePanel i_Panel)
 {
     UIBasePanel[] panels = new UIBasePanel[] { i_Panel };
     SwitchPanels(i_Group, panels);
 }
 public void SwitchPanels(UIGroup i_Group, UIBasePanel[] i_Panels)
 {
     m_PanelsManager.SwitchPanels(i_Group, i_Panels);
 }
Example #20
0
 public void SwitchPanels(UIGroup i_Group, UIBasePanel i_First, UIBasePanel i_Second)
 {
     UIBasePanel[] panels = new UIBasePanel[] { i_First, i_Second };
     SwitchPanels(i_Group, panels);
 }
 public void SequentialSwitchPanels(UIGroup i_Group, UIBasePanel[] i_Panels, Action i_Callback = null)
 {
     m_PanelsManager.SequentialSwitchPanels(i_Group, i_Panels, i_Callback);
 }
Example #22
0
        public void SwitchPanels(UIGroup i_Group, UIBasePanel[] i_Panels)
        {
            if (i_Panels == null)
            {
                return;
            }

            List <UIBasePanel> openedPanels = m_OpenedPanels[i_Group];

            if (openedPanels == null)
            {
                return;
            }

            // Close panels

            for (int panelIndex = 0; panelIndex < openedPanels.Count; ++panelIndex)
            {
                UIBasePanel panel = openedPanels[panelIndex];

                if (panel == null)
                {
                    continue;
                }

                bool shouldBeClosed = true;
                for (int index = 0; index < i_Panels.Length; ++index)
                {
                    UIBasePanel current = i_Panels[index];
                    if (current == panel)
                    {
                        shouldBeClosed = false;
                        break;
                    }
                }

                if (shouldBeClosed)
                {
                    UI.ClosePanel(panel);
                }
            }

            // Remove closed panels

            for (int panelIndex = 0; panelIndex < openedPanels.Count;)
            {
                UIBasePanel panel = openedPanels[panelIndex];

                if (panel == null)
                {
                    continue;
                }

                if (!panel.isOpen)
                {
                    openedPanels.Remove(panel);
                    panelIndex = 0;
                }
                else
                {
                    ++panelIndex;
                }
            }

            // Open new panels.

            for (int panelIndex = 0; panelIndex < i_Panels.Length; ++panelIndex)
            {
                UIBasePanel panel = i_Panels[panelIndex];

                if (panel == null)
                {
                    continue;
                }

                if (!openedPanels.Contains(panel))
                {
                    UI.OpenPanel(panel);
                    openedPanels.Add(panel);
                }
            }
        }
Example #23
0
 public void enableUI(UIGroup _hudGroup)
 {
     _hudGroup.HUDObject.SetActive(true);
 }
        public static void Load()
        {
            BlueprintCharacterClass inquisitor            = library.Get <BlueprintCharacterClass>("f1a70d9e1b0b41e49874e1fa9052a1ce"); // Inquisitor
            BlueprintProgression    inquisitorProgression = library.Get <BlueprintProgression>("4e945c2fe5e252f4ea61eee7fb560017");    // InquisitorProgression

            livingGrimoire = Helpers.Create <BlueprintArchetype>(l =>
            {
                l.name                 = "LivingGrimoireArchetype";
                l.LocalizedName        = Helpers.CreateString("LivingGrimoire.Name", "Living Grimoire");
                l.LocalizedDescription = Helpers.CreateString("LivingGrimoire.Description", "The living grimoire literally wields the sacred word of his deity, using his holy tome to smite the foes of his god with divine might. Unlike most inquisitors, a living grimoire focuses on careful study of divine scripture, valuing knowledge over intuition.");
            });

            livingGrimoireArray = new BlueprintArchetype[] { livingGrimoire };
            library.AddAsset(livingGrimoire, Helpers.getGuid("LivingGrimoireArchetype"));
            livingGrimoire.SetIcon(inquisitor.Icon);
            livingGrimoire.BaseAttackBonus = inquisitor.BaseAttackBonus;
            livingGrimoire.FortitudeSave   = inquisitor.FortitudeSave;
            livingGrimoire.ReflexSave      = inquisitor.ReflexSave;
            livingGrimoire.WillSave        = inquisitor.WillSave;

            Helpers.SetField(livingGrimoire, "m_ParentClass", inquisitor);

            livingGrimoire.LocalizedName = Helpers.CreateString("LivingGrimoire.Name", "Living Grimoire");

            BlueprintSpellbook MagusSpellbook      = library.Get <BlueprintSpellbook>("5d8d04e76dff6c5439de99af0d57be63"); // MagusSpellbook
            BlueprintSpellbook InquisitorSpellbook = library.Get <BlueprintSpellbook>("57fab75111f377248810ece84193a5a5"); // InquisitorSpellbook
            BlueprintSpellbook spellbook           = Helpers.Create <BlueprintSpellbook>();

            spellbook.name = "LivingGrimoireSpellbook";
            library.AddAsset(spellbook, Helpers.getGuid("LivingGrimoireSpellbook"));
            spellbook.Name             = livingGrimoire.LocalizedName;
            spellbook.SpellsPerDay     = MagusSpellbook.SpellsPerDay;
            spellbook.SpellList        = InquisitorSpellbook.SpellList;
            spellbook.CharacterClass   = inquisitor;
            spellbook.CastingAttribute = StatType.Intelligence;
            spellbook.Spontaneous      = false;
            spellbook.SpellsPerLevel   = 2;
            spellbook.AllSpellsKnown   = false;
            spellbook.CanCopyScrolls   = true;
            spellbook.IsArcane         = false;
            spellbook.CantripsType     = CantripsType.Orisions;


            livingGrimoire.ReplaceSpellbook = spellbook;

            BlueprintItem[] items = new BlueprintItem[]
            {
                (BlueprintItem)((IList <BlueprintCategoryDefaults.CategoryDefaultEntry>)Game.Instance.BlueprintRoot.Progression.CategoryDefaults.Entries).FirstOrDefault <BlueprintCategoryDefaults.CategoryDefaultEntry>((Func <BlueprintCategoryDefaults.CategoryDefaultEntry, bool>)(p => p.Key == WeaponCategory.LightMace))?.DefaultWeapon,
                library.Get <BlueprintItem>("f4cef3ba1a15b0f4fa7fd66b602ff32b"),
                library.Get <BlueprintItem>("d7963e1fcf260c148877afd3252dbc91"),
                library.Get <BlueprintItem>("ec619484fb1a13441b30f6d08e1c5b6f")
            };

            livingGrimoire.StartingItems = items;


            BlueprintFeature HolyBookFeature = Helpers.CreateFeature(
                "HolyBook",
                "Holy Book",
                "At 1st level, a living grimoire forms a supernatural bond with a large ironbound tome containing the holy text of his deity and learns to use it as a weapon.\n When wielding the holy book as a weapon, he deals base damage as if it were a cold iron light mace(but see Sacred Word below), is considered proficient with the book, takes no improvised weapon penalty, and gains a + 1 bonus on attack rolls with the book.The tome serves as his holy symbol and divine focus, and can be enchanted as a magic weapon. \nHe can replace his bonded tome with another book at any time, though he must perform a 24 - hour binding ritual to attune himself to the new book. \n Dev note: This ability works with all light maces.",
                Helpers.getGuid("HolyBook"),
                null,
                FeatureGroup.None,
                Helpers.Create <HolyBookLogic>()
                );

            BlueprintFeature SacredWordFeature = Helpers.CreateFeature(
                "SacredWord",
                "Sacred Word",
                "At 1st (level, a living grimoire learns to charge his holy book with the power of his faith. The inquisitor gains the benefits of the warpriest’s sacred weapon class ability, but the benefits apply only to his bonded holy book. Like a warpriest’s sacred weapon, the living grimoire’s book deals damage based on the inquisitor’s level, not the book’s base damage (unless the inquisitor chooses to use the book’s base damage).\nAt 4th level, the living grimoire gains the ability to enhance his holy book with divine power as a swift action.This ability grants the holy book a + 1 enhancement bonus.For every 4 inquisitor levels the living grimoire has beyond 4th, this bonus increases by 1(to a maximum of + 5 at 20th level).\nThese bonuses stack with any existing bonuses the holy book might have, to a maximum of + 5.The living grimoire can enhance his holy book to have any of the special abilities listed in the warpriest’s sacred weapon ability, subject to the same alignment restrictions, but adds bane to the general special ability list.Adding any of these special abilities to the holy book consumes an amount of enhancement bonus equal to the special ability’s base price modifier.The holy book must have at least a + 1 enhancement bonus before the living grimoire can add any special abilities to it.The living grimoire can use this ability a number of rounds per day equal to his inquisitor level, but these rounds don’t need to be consecutive.As with the warpriest sacred weapon ability, he determines the enhancement bonus and special abilities the first time he uses the ability each day, and they cannot be changed until the next day. \nThis ability replaces judgment.\n Dev note: This ability works with all light maces.",
                Helpers.getGuid("SacredWordFeature"),
                null,
                FeatureGroup.None,
                Helpers.Create <FocusedWeaponLogic>(x =>
            {
                x.Category = WeaponCategory.LightMace;
                x.Class    = inquisitor;
            })
                );

            BlueprintFeature SacredWordFeature1d8 = Helpers.CreateFeature(
                "SacredWord_1d8",
                "Sacred Word 1d8",
                "The damage of your holy book (light maces) increases to 1d8.",
                Helpers.getGuid("SacredWord_1d8"),
                null,
                FeatureGroup.None
                );

            BlueprintFeature SacredWordFeature1d10 = Helpers.CreateFeature(
                "SacredWord_1d10",
                "Sacred Word 1d10",
                "The damage of your holy book (light maces) increases to 1d10.",
                Helpers.getGuid("SacredWord_1d10"),
                null,
                FeatureGroup.None
                );

            BlueprintFeature SacredWordFeature2d6 = Helpers.CreateFeature(
                "SacredWord_2d6",
                "Sacred Word 2d6",
                "The damage of your holy book (light maces) increases to 2d6.",
                Helpers.getGuid("SacredWord_2d6"),
                null,
                FeatureGroup.None
                );

            BlueprintFeature SacredWordFeature2d8 = Helpers.CreateFeature(
                "SacredWord_2d8",
                "Sacred Word 2d8",
                "The damage of your holy book (light maces) increases to 2d8.",
                Helpers.getGuid("SacredWord_2d8"),
                null,
                FeatureGroup.None
                );


            BlueprintBuff InspireCourageBuff = library.Get <BlueprintBuff>("b4027a834204042409248889cc8abf67");
            BlueprintActivatableAbility InspireCourageToggleAbility = library.Get <BlueprintActivatableAbility>("5250fe10c377fdb49be449dfe050ba70"); // InspireCourageToggleAbility

            BlueprintItemEnchantment[] defaultEnchantments = new BlueprintItemEnchantment[]
            {
                library.Get <BlueprintItemEnchantment>("d704f90f54f813043a525f304f6c0050"),
                library.Get <BlueprintItemEnchantment>("9e9bab3020ec5f64499e007880b37e52"),
                library.Get <BlueprintItemEnchantment>("d072b841ba0668846adeb007f623bd6c"),
                library.Get <BlueprintItemEnchantment>("6a6a0901d799ceb49b33d4851ff72132"),
                library.Get <BlueprintItemEnchantment>("746ee366e50611146821d61e391edf16")
            };

            BlueprintBuff SacredWordBuff = Helpers.CreateBuff(
                "SacredWordBuff",
                "Sacred Word",
                "",
                Helpers.getGuid("SacredWordBuff"),
                null,
                InspireCourageBuff.FxOnStart,
                Helpers.Create <AddSacredWordBonus>(x =>
            {
                x.DefaultEnchantments = defaultEnchantments;
                x.DurationValue       = Helpers.CreateContextDuration(rate: DurationRate.Rounds, bonus: 1);
                x.Group       = ActivatableAbilityGroup.DivineWeaponProperty;
                x.EnchantPool = EnchantPoolType.DivineWeaponBond;
            })
                );

            BlueprintAbilityResource abilityResource = Helpers.CreateAbilityResource(
                "SacredWordResource",
                "Sacred Word Resource",
                "",
                Helpers.getGuid("SacredWordResource"),
                null
                );

            abilityResource.SetIncreasedByLevel(1, 1, new BlueprintCharacterClass[] { inquisitor });

            BlueprintAbility            WeaponBondSwitchAbility = library.Get <BlueprintAbility>("7ff088ab58c69854b82ea95c2b0e35b4"); //WeaponBondSwitchAbility
            BlueprintActivatableAbility SacredWordToggleAbility = Helpers.CreateActivatableAbility(
                "SacredWordSwitchAbility",
                "Sacred Word",
                "",
                Helpers.getGuid("SacredWordSwitchAbility"),
                WeaponBondSwitchAbility.Icon,
                SacredWordBuff,
                AbilityActivationType.WithUnitCommand,
                UnitCommand.CommandType.Swift,
                InspireCourageToggleAbility.ActivateWithUnitAnimation,
                abilityResource.CreateActivatableResourceLogic(ActivatableAbilityResourceLogic.ResourceSpendType.NewRound)
                );

            SacredWordToggleAbility.DeactivateIfCombatEnded   = true;
            SacredWordToggleAbility.DeactivateIfOwnerDisabled = true;


            BlueprintActivatableAbility SacredWordFrost      = library.CopyAndAdd <BlueprintActivatableAbility>("b338e43a8f81a2f43a73a4ae676353a5", "SacredWordFrost", Helpers.getGuid("SacredWordFrost"));           // ArcaneWeaponFrostChoice
            BlueprintActivatableAbility SacredWordShock      = library.CopyAndAdd <BlueprintActivatableAbility>("a3a9e9a2f909cd74e9aee7788a7ec0c6", "SacredWordShock", Helpers.getGuid("SacredWordShock"));           // ArcaneWeaponShockChoice
            BlueprintActivatableAbility SacredWordAnarchic   = library.CopyAndAdd <BlueprintActivatableAbility>("8ed07b0cc56223c46953348f849f3309", "SacredWordAnarchic", Helpers.getGuid("SacredWordAnarchic"));     // ArcaneWeaponAnarchicChoice
            BlueprintActivatableAbility SacredWordGhostTouch = library.CopyAndAdd <BlueprintActivatableAbility>("688d42200cbb2334c8e27191c123d18f", "SacredWordGhostTouch", Helpers.getGuid("SacredWordGhostTouch")); // ArcaneWeaponGhostTouchChoice
            BlueprintActivatableAbility SacredWordUnholy     = library.CopyAndAdd <BlueprintActivatableAbility>("561803a819460f34ea1fe079edabecce", "SacredWordUnholy", Helpers.getGuid("SacredWordUnholy"));         // ArcaneWeaponUnholyChoice
            BlueprintActivatableAbility SacredWordBane       = library.CopyAndAdd <BlueprintActivatableAbility>("3a909d1effa3bbc4084f2b5ac95f5306", "SacredWordBane", Helpers.getGuid("SacredWordBane"));             // ArcaneWeaponUnholyChoice

            SacredWordFrost.Group        = ActivatableAbilityGroup.DivineWeaponProperty;
            SacredWordShock.Group        = ActivatableAbilityGroup.DivineWeaponProperty;
            SacredWordAnarchic.Group     = ActivatableAbilityGroup.DivineWeaponProperty;
            SacredWordGhostTouch.Group   = ActivatableAbilityGroup.DivineWeaponProperty;
            SacredWordUnholy.Group       = ActivatableAbilityGroup.DivineWeaponProperty;
            SacredWordBane.Group         = ActivatableAbilityGroup.DivineWeaponProperty;
            SacredWordBane.WeightInGroup = 1;



            BlueprintFeature SacredWordFeatureLevel4 = Helpers.CreateFeature(
                "SacredWord_FeatureLevel4",
                "Sacred Word",
                "At 4th level, the living grimoire gains the ability to enhance his holy book with divine power as a swift action.This ability grants the holy book a + 1 enhancement bonus.For every 4 inquisitor levels the living grimoire has beyond 4th, this bonus increases by 1(to a maximum of + 5 at 20th level).\nThese bonuses stack with any existing bonuses the holy book might have, to a maximum of + 5.The living grimoire can enhance his holy book to have any of the special abilities listed in the warpriest’s sacred weapon ability, subject to the same alignment restrictions, but adds bane to the general special ability list.Adding any of these special abilities to the holy book consumes an amount of enhancement bonus equal to the special ability’s base price modifier.The holy book must have at least a + 1 enhancement bonus before the living grimoire can add any special abilities to it.The living grimoire can use this ability a number of rounds per day equal to his inquisitor level, but these rounds don’t need to be consecutive.As with the warpriest sacred weapon ability, he determines the enhancement bonus and special abilities the first time he uses the ability each day, and they cannot be changed until the next day. \nThis ability replaces judgment.\n Dev note: This ability works with all light maces.",
                Helpers.getGuid("SacredWord_FeatureLevel4"),
                null,
                FeatureGroup.None,
                Helpers.CreateAddFacts(new BlueprintUnitFact[]
            {
                SacredWordToggleAbility,
                library.Get <BlueprintActivatableAbility>("7902941ef70a0dc44bcfc174d6193386"),    //WeaponBondFlamingChoice
                library.Get <BlueprintActivatableAbility>("27d76f1afda08a64d897cc81201b5218"),    //WeaponBondKeenChoice
                SacredWordFrost,
                SacredWordShock,
                SacredWordGhostTouch,
            }),
                Helpers.Create <AddAbilityResources>(x =>
            {
                x.UseThisAsResource = false;
                x.Resource          = library.Get <BlueprintAbilityResource>("3683d1af071c1744185ff93cba9db10b"); // WeaponBondResourse
                x.Amount            = 0;
                x.RestoreAmount     = true;
                x.RestoreOnLevelUp  = false;
            }),
                abilityResource.CreateAddAbilityResource(),
                Helpers.Create <IncreaseResourcesByClass>(x =>
            {
                x.CharacterClass = inquisitor;
                x.Resource       = abilityResource;
                x.BaseValue      = 1;
            })

                );

            BlueprintFeature SacredWordPlus2 = Helpers.CreateFeature(
                "SacredWord_Plus2",
                "Sacred Word",
                "Increases the enchantment bonus from Sacred Word by 1. Adds the enchantments Anarchic, Axiomatic, Disruption, Holy, Unholy",
                Helpers.getGuid("SacredWord_Plus2"),
                null,
                FeatureGroup.None,
                Helpers.Create <IncreaseActivatableAbilityGroupSize>(x => x.Group = ActivatableAbilityGroup.DivineWeaponProperty),
                Helpers.CreateAddFacts(new BlueprintUnitFact[]
            {
                library.Get <BlueprintActivatableAbility>("d76e8a80ab14ac942b6a9b8aaa5860b1"),    //WeaponBondAxiomaticChoice
                library.Get <BlueprintActivatableAbility>("ce0ece459ebed9941bb096f559f36fa8"),    //WeaponBondHolyChoice
                library.Get <BlueprintActivatableAbility>("8c714fbd564461e4588330aeed2fbe1d"),    //WeaponBondDisruptionChoice
                SacredWordAnarchic,
                SacredWordUnholy,
                SacredWordBane
            }));

            BlueprintFeature SacredWordPlus3 = Helpers.CreateFeature(
                "SacredWord_Plus3",
                "Sacred Word",
                "Increases the enchantment bonus from Sacred Word by 1.",
                Helpers.getGuid("SacredWord_Plus3"),
                null,
                FeatureGroup.None,
                Helpers.Create <IncreaseActivatableAbilityGroupSize>(x => x.Group = ActivatableAbilityGroup.DivineWeaponProperty)
                );

            BlueprintFeature SacredWordPlus4 = Helpers.CreateFeature(
                "SacredWord_Plus4",
                "Sacred Word",
                "Increases the enchantment bonus from Sacred Word by 1. Adds the enchantment Brilliant Energy",
                Helpers.getGuid("SacredWord_Plus4"),
                null,
                FeatureGroup.None,
                Helpers.Create <IncreaseActivatableAbilityGroupSize>(x => x.Group = ActivatableAbilityGroup.DivineWeaponProperty),
                Helpers.CreateAddFacts(new BlueprintUnitFact[]
            {
                library.Get <BlueprintActivatableAbility>("f1eec5cc68099384cbfc6964049b24fa"),    //WeaponBondBrilliantEnergyChoice
            }));

            BlueprintFeature SacredWordPlus5 = Helpers.CreateFeature(
                "SacredWord_Plus5",
                "Sacred Word",
                "Increases the enchantment bonus from Sacred Word by 1.",
                Helpers.getGuid("SacredWord_Plus5"),
                null,
                FeatureGroup.None,
                Helpers.Create <IncreaseActivatableAbilityGroupSize>(x => x.Group = ActivatableAbilityGroup.DivineWeaponProperty)
                );

            BlueprintFeatureSelection BlessedScriptSelection = Helpers.CreateFeatureSelection(
                "BlessedScript",
                "Blessed Script",
                "At 5th level, a living grimoire can permanently tattoo one spell of 2nd level or lower from his holy book onto his body. The tattooed spell cannot have an expensive material component or focus. The living grimoire can cast his tattooed spells as a spell-like ability once per day.",
                Helpers.getGuid("BlessedScript"),
                null,
                FeatureGroup.None
                );

            List <BlueprintFeatureSelection> BlessedScriptSpellLevelSelection = new List <BlueprintFeatureSelection>();

            for (int i = 1; i < 7; i++)
            {
                BlueprintFeatureSelection BlessedScriptSpellSelection = Helpers.CreateFeatureSelection(
                    "BlessedScriptLevel" + (i),
                    "Blessed Script Level " + (i),
                    "At 5th level, a living grimoire can permanently tattoo one spell of 2nd level or lower from his holy book onto his body. The tattooed spell cannot have an expensive material component or focus. The living grimoire can cast his tattooed spells as a spell-like ability once per day.",
                    Helpers.getGuid("BlessedScriptLevel" + (i)),
                    null,
                    FeatureGroup.None,
                    inquisitor.PrerequisiteClassLevel((i - 1) * 4)
                    );
                List <BlueprintFeature> SpellSelection = new List <BlueprintFeature>();
                foreach (BlueprintAbility Spell in InquisitorSpellbook.SpellList.GetSpells(i))
                {
                    if (Spell.MaterialComponent.Item != null)
                    {
                        continue;
                    }

                    BlueprintAbilityResource BlessedScriptAbilityResource = Helpers.CreateAbilityResource(
                        "BlessedScriptAbilityResource" + Spell.name,
                        "",
                        "",
                        Helpers.getGuid("BlessedScriptAbilityResource" + Spell.name),
                        null);
                    BlessedScriptAbilityResource.SetFixedResource(1);


                    BlueprintAbility ability        = library.CopyAndAdd(Spell, "BlessedScriptAbility" + Spell.name, Helpers.getGuid("BlessedScriptAbility" + Spell.name));
                    SpellComponent   spellComponent = ability.GetComponent <SpellComponent>();
                    if (spellComponent != null)
                    {
                        ability.RemoveComponent(spellComponent);
                    }
                    ability.AddComponent(Helpers.Create <AbilityResourceLogic>(x =>
                    {
                        x.Amount           = 1;
                        x.IsSpendResource  = true;
                        x.CostIsCustom     = false;
                        x.RequiredResource = BlessedScriptAbilityResource;
                    }));

                    BlueprintFeature BlessedScriptSpell = Helpers.CreateFeature(
                        "BlessedScript" + Spell.name,
                        "Blessed Script (" + Spell.Name + ")",
                        "You have tattooed the spell \"" + Spell.Name + "\" onto your body. You can  can cast his tattooed spells as a spell-like ability once per day.",
                        Helpers.getGuid("BlessedScript" + Spell.name),
                        null,
                        FeatureGroup.None,
                        Helpers.Create <PrerequisiteKnowsSpell>(x =>
                    {
                        x.Ability        = Spell;
                        x.CharacterClass = inquisitor;
                    }),
                        Helpers.CreateAddFacts(ability),
                        Helpers.CreateAddAbilityResource(BlessedScriptAbilityResource)
                        );
                    BlessedScriptSpell.AddComponent(BlessedScriptSpell.PrerequisiteNoFeature());
                    SpellSelection.Add(BlessedScriptSpell);
                }
                BlessedScriptSpellSelection.SetFeatures(SpellSelection);
                BlessedScriptSpellLevelSelection.Add(BlessedScriptSpellSelection);
            }
            BlessedScriptSelection.SetFeatures(BlessedScriptSpellLevelSelection);


            BlueprintBuff TrueJudgmentCooldownBuff = library.Get <BlueprintBuff>("65058aafc91a12042b158527f9d0506a");

            ContextValue CooldownBuff = new ContextValue();

            CooldownBuff.Value = 24;

            BlueprintAbilityResource WordOfGodAbilityResource = Helpers.CreateAbilityResource(
                "WordOfGodAbilityResource",
                "",
                "",
                Helpers.getGuid("WordOfGodAbilityResource"),
                null);

            WordOfGodAbilityResource.SetFixedResource(7);

            AbilityEffectRunAction   abilityEffectRunAction = Helpers.Create <AbilityEffectRunAction>();
            ContextActionSavingThrow savingThrow            = Helpers.Create <ContextActionSavingThrow>();

            savingThrow.Type = SavingThrowType.Fortitude;

            ContextActionConditionalSaved saved = Helpers.Create <ContextActionConditionalSaved>();

            saved.Succeed = new ActionList
            {
                Actions = new GameAction[]
                {
                    Helpers.Create <ContextActionApplyBuff>(ap =>
                    {
                        ap.Buff          = TrueJudgmentCooldownBuff;
                        ap.DurationValue = Helpers.CreateContextDuration(CooldownBuff, DurationRate.Hours);
                    })
                }
            };
            saved.Failed = new ActionList {
                Actions = new GameAction[] { Helpers.Create <ContextActionKillTarget>() }
            };
            savingThrow.Actions = new ActionList {
                Actions = new GameAction[] { saved }
            };


            Conditional conditional = Helpers.Create <Conditional>();

            conditional.ConditionsChecker = new ConditionsChecker();

            ContextConditionHasBuffFromCaster condition = Helpers.Create <ContextConditionHasBuffFromCaster>();

            condition.Buff = TrueJudgmentCooldownBuff;

            conditional.ConditionsChecker.Conditions = new Condition[] { condition };
            conditional.IfFalse = new ActionList {
                Actions = new GameAction[] { savingThrow }
            };

            abilityEffectRunAction.Actions = new ActionList {
                Actions = new GameAction[] { conditional }
            };

            BlueprintAbility TrueJudgmentAbility = library.Get <BlueprintAbility>("d69715dc0de8f8b44ac9f20188c7c22e");

            BlueprintAbility WordOfGodAbility = Helpers.CreateAbility(
                "WordOfGodAbility",
                "Word of God",
                "At 20th level, a living grimoire can smite his foes with the holy word of his deity. Up to seven times per day, the inquisitor can make a single melee attack with his holy book against a target. If the attack hits, it deals damage normally and the target must succeed at a Fortitude save or die (DC = 10 + 1/2 the living grimoire’s inquisitor level + his Intelligence modifier). Regardless of whether the save is successful, the target creature is immune to the living grimoire’s word of god ability for 24 hours. Once the living grimoire uses this ability, he can’t use it again for 1d4 rounds.\nThis ability replaces true judgment.",
                Helpers.getGuid("WordOfGodAbility"),
                TrueJudgmentAbility.Icon,
                AbilityType.Supernatural,
                UnitCommand.CommandType.Standard,
                AbilityRange.Weapon,
                "Instant",
                "Fortitude",
                abilityEffectRunAction
                ,
                Helpers.Create <AbilityResourceLogic>(x =>
            {
                x.Amount           = 1;
                x.IsSpendResource  = true;
                x.CostIsCustom     = false;
                x.RequiredResource = WordOfGodAbilityResource;
            })
                );

            WordOfGodAbility.CanTargetEnemies = true;
            WordOfGodAbility.CanTargetSelf    = false;

            BlueprintFeature TrueJudgmentFeature = library.Get <BlueprintFeature>("f069b6557a2013544ac3636219186632"); // TrueJudgmentFeature

            BlueprintFeature WordOfGod = Helpers.CreateFeature("WordOfGod",
                                                               "Word of God",
                                                               "At 20th level, a living grimoire can smite his foes with the holy word of his deity. Up to seven times per day, the inquisitor can make a single melee attack with his holy book against a target. If the attack hits, it deals damage normally and the target must succeed at a Fortitude save or die (DC = 10 + 1/2 the living grimoire’s inquisitor level + his Intelligence modifier). Regardless of whether the save is successful, the target creature is immune to the living grimoire’s word of god ability for 24 hours. Once the living grimoire uses this ability, he can’t use it again for 1d4 rounds.\nThis ability replaces true judgment.",
                                                               Helpers.getGuid("WordOfGod"),
                                                               TrueJudgmentFeature.Icon,
                                                               FeatureGroup.None,
                                                               Helpers.CreateAddFacts(WordOfGodAbility),
                                                               Helpers.Create <ReplaceAbilitiesStat>(x =>
            {
                x.Stat    = StatType.Intelligence;
                x.Ability = new BlueprintAbility[] { WordOfGodAbility };
            }),
                                                               Helpers.Create <ReplaceCasterLevelOfAbility>(x =>
            {
                x.Spell = WordOfGodAbility;
                x.Class = inquisitor;
            }),
                                                               WordOfGodAbilityResource.CreateAddAbilityResource()
                                                               );

            List <LevelEntry> addFeatures = new List <LevelEntry>();

            addFeatures.Add(Helpers.LevelEntry(1, HolyBookFeature, SacredWordFeature));
            addFeatures.Add(Helpers.LevelEntry(4, SacredWordFeatureLevel4));
            addFeatures.Add(Helpers.LevelEntry(5, BlessedScriptSelection, SacredWordFeature1d8));
            addFeatures.Add(Helpers.LevelEntry(8, SacredWordPlus2, BlessedScriptSelection));
            addFeatures.Add(Helpers.LevelEntry(10, SacredWordFeature1d10));
            addFeatures.Add(Helpers.LevelEntry(12, SacredWordPlus3, BlessedScriptSelection));
            addFeatures.Add(Helpers.LevelEntry(15, SacredWordFeature2d6));
            addFeatures.Add(Helpers.LevelEntry(16, SacredWordPlus4, BlessedScriptSelection));
            addFeatures.Add(Helpers.LevelEntry(20, SacredWordPlus5, WordOfGod, SacredWordFeature2d8));


            BlueprintFeature JudgmentAdditionalUse = library.Get <BlueprintFeature>("ee50875819478774b8968701893b52f5"); //JudgmentAdditionalUse
            BlueprintFeature SecondJudgment        = library.Get <BlueprintFeature>("33bf0404b70d65f42acac989ec5295b2"); // SecondJudgment
            BlueprintFeature ThirdJudgment         = library.Get <BlueprintFeature>("490c7e92b22cc8a4bb4885a027b355db"); // ThirdJudgment

            List <LevelEntry> removeFeatures = new List <LevelEntry>();

            removeFeatures.Add(Helpers.LevelEntry(1, library.Get <BlueprintFeature>("981def910b98200499c0c8f85a78bde8"))); //JudgmentFeature
            removeFeatures.Add(Helpers.LevelEntry(2, library.Get <BlueprintFeature>("6be8b4031d8b9fc4f879b72b5428f1e0"))); //CunningInitiative
            removeFeatures.Add(Helpers.LevelEntry(4, JudgmentAdditionalUse));
            removeFeatures.Add(Helpers.LevelEntry(5, library.Get <BlueprintFeature>("7ddf7fbeecbe78342b83171d888028cf"))); //InquisitorBaneNormalFeatureAdd
            removeFeatures.Add(Helpers.LevelEntry(7, JudgmentAdditionalUse));
            removeFeatures.Add(Helpers.LevelEntry(8, SecondJudgment));
            removeFeatures.Add(Helpers.LevelEntry(10, JudgmentAdditionalUse));
            removeFeatures.Add(Helpers.LevelEntry(12, library.Get <BlueprintFeature>("6e694114b2f9e0e40a6da5d13736ff33")));//InquisitorBaneGreaterFeature
            removeFeatures.Add(Helpers.LevelEntry(13, JudgmentAdditionalUse));
            removeFeatures.Add(Helpers.LevelEntry(16, JudgmentAdditionalUse, ThirdJudgment));
            removeFeatures.Add(Helpers.LevelEntry(19, JudgmentAdditionalUse));
            removeFeatures.Add(Helpers.LevelEntry(20, TrueJudgmentFeature));

            livingGrimoire.AddFeatures    = addFeatures.ToArray();
            livingGrimoire.RemoveFeatures = removeFeatures.ToArray();

            UIGroup SacredWordGroup = new UIGroup();

            SacredWordGroup.Features.Add(SacredWordFeature);
            SacredWordGroup.Features.Add(SacredWordFeatureLevel4);
            SacredWordGroup.Features.Add(SacredWordPlus2);
            SacredWordGroup.Features.Add(SacredWordPlus3);
            SacredWordGroup.Features.Add(SacredWordPlus4);
            SacredWordGroup.Features.Add(SacredWordPlus5);
            SacredWordGroup.Features.Add(SacredWordFeature1d8);
            SacredWordGroup.Features.Add(SacredWordFeature1d10);
            SacredWordGroup.Features.Add(SacredWordFeature2d6);
            SacredWordGroup.Features.Add(SacredWordFeature2d8);
            inquisitorProgression.UIGroups = inquisitorProgression.UIGroups.AddToArray(SacredWordGroup);
            UIGroup BlessedScriptGroup = new UIGroup();

            BlessedScriptGroup.Features.Add(BlessedScriptSelection);
            inquisitorProgression.UIGroups = inquisitorProgression.UIGroups.AddToArray(BlessedScriptGroup);

            List <BlueprintArchetype> archetypes = inquisitor.Archetypes.ToList();

            archetypes.Insert(0, livingGrimoire);
            inquisitor.Archetypes = archetypes.ToArray();
        }
Example #25
0
        public static int?OpenUIForm(this UIComponent uiComponent, UIFormId uiFormId, UIGroup uiGroup, bool pause = true, object userData = null)
        {
            string assetName = AssetUtility.GetUIFormAsset(uiFormId);

            if (uiComponent.IsLoadingUIForm(assetName))
            {
                return(null);
            }

            return(uiComponent.OpenUIForm(assetName, uiGroup.ToString(), pause, userData));
        }
Example #26
0
    public void SendWaringInformation(string info)
    {
        PresentationData data = PresentationData.Allocate("提示", info, "");

        UIGroup.Open <PresentationPanel>(data);
    }
Example #27
0
 // Token: 0x060124A2 RID: 74914 RVA: 0x004B362C File Offset: 0x004B182C
 private static void SetUITaskGroupConflict(UIGroup group1, UIGroup group2)
 {
     UIManager.Instance.SetUITaskGroupConflict((uint)group1, (uint)group2);
 }
Example #28
0
 private void OpenCl2()
 {
     UIGroup.Open("FlowSystemPanel");
     Close();
 }
Example #29
0
 // Token: 0x060124AD RID: 74925 RVA: 0x004B383C File Offset: 0x004B1A3C
 public static void SetUITaskGroupConflict(UIGroup group1, UIGroup group2)
 {
     ProjectLUITaskRegister.SetUITaskGroupConflict(group1, group2);
 }
Example #30
0
 private void OpenH2so4Cu()
 {
     UIGroup.Open("ReactSystemPanel", cudata);
     Close();
 }
Example #31
0
 private int FindFrontIndexInGroup(UIGroup group)
 {
     return(m_list.FindIndex(l => {
         return (l.ui.group == group);
     }));
 }
Example #32
0
 private void OpenFeso4()
 {
     UIGroup.Open("ActionPanel", command);
     Close();
 }
Example #33
0
 public UIGroupRouter(UIGroup group)
 {
     this.m_Group = group;
 }
Example #34
0
 private void OnElementClicked()
 {
     UIGroup.Open("ElementPanel");
     SceneMain.Current.InvokeEvents(AppConfig.EventKey.ClickEmpty);
 }