예제 #1
0
        public void mod_CopyButton(DescriptionBricksBox box, TooltipData data, bool isTooltip)
        {
            if (!KingmakerPatchSettings.UI.AddSpellbookNameToCopyScrollAction)
            {
                this.source_CopyButton(box, data, isTooltip);
                return;
            }

            if (data.Item == null || data.Item.Blueprint.GetComponent <CopyItem>() == null)
            {
                return;
            }

            UnitEntityData unit = UIUtility.GetCurrentCharacter();

            var component = data.Item.Blueprint.GetComponent <CopyItem>();

            if (component == null || !component.CanCopy(data.Item, unit) || !Kingmaker.Game.Instance.Player.Inventory.Contains(data.Item.Blueprint) || isTooltip)
            {
                return;
            }

            DescriptionBrick descriptionBrick = box.Add(DescriptionTemplatesBase.Bricks.GreenButton);

            string actionName = component.GetActionName(unit);

            actionName = CopyScrollNew.mod_GetSpellbookActionName(actionName, data.Item, unit);

            descriptionBrick.SetText(actionName);
            descriptionBrick.SetButtonAction(() => Kingmaker.Game.Instance.UI.DescriptionController.CopyItem(data.Item, unit));
        }
예제 #2
0
        public void mod_EncumbrancePartyPenalty(DescriptionBricksBox box, EncumbranceHelper.CarryingCapacity capacity)
        {
            if (!KingmakerPatchSettings.Cheats.AlwaysUnencumbered)
            {
                this.source_EncumbrancePartyPenalty(box, capacity);
                return;
            }

            box.Add(DescriptionTemplatesBase.Bricks.Separator3);
            box.Add(DescriptionTemplatesBase.Bricks.TitleH3).SetText(UIUtility.GetGlossaryEntryName("NoPenalty"));
        }
 static void Postfix(DescriptionTemplatesLevelup __instance, DescriptionBricksBox box, TooltipData data, bool b)
 {
     try
     {
         if (data?.Archetype == null || Main.settings?.RelaxAncientLorekeeper == true)
         {
             return;
         }
         Prerequisites(__instance, box, data.Archetype.GetComponents <Prerequisite>());
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
 }
예제 #4
0
 static void Postfix(DescriptionTemplatesLevelup __instance, DescriptionBricksBox box, TooltipData data, bool b)
 {
     try
     {
         if (data?.Archetype == null)
         {
             return;
         }
         Prerequisites(__instance, box, data.Archetype.GetComponents <Prerequisite>(), data.ParentFeatureSelection);
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
 }
            static bool Prefix(DescriptionTemplatesAbility __instance, bool isTooltip, DescriptionBricksBox box, AbilityData abilityData)
            {
                if (abilityData.ParamSpellSlot == null || abilityData.Blueprint.GetComponent <AbilityStoreSpellInFact>() == null)
                {
                    return(true);
                }

                string name = abilityData.Blueprint.Name;
                var    c    = abilityData.Blueprint.GetComponent <AbilityConvertSpell>().getSpellOrVariantBlueprint(abilityData.ParamSpellSlot.Spell.Blueprint);

                if (c != null)
                {
                    name += $" ({c.Name})";
                }

                DescriptionBrick descriptionBrick = DescriptionBuilder.Templates.IconNameHeader(box, name, abilityData.Blueprint.Icon, isTooltip);
                string           text1            = LocalizedTexts.Instance.AbilityTypes.GetText(abilityData.Blueprint.Type);
                string           text2            = abilityData.Blueprint.School == SpellSchool.None ? string.Empty : LocalizedTexts.Instance.SpellSchoolNames.GetText(abilityData.Blueprint.School);
                string           text3            = abilityData.Blueprint.School == SpellSchool.None ? string.Empty : (string)UIStrings.Instance.SpellBookTexts.Level + ": " + (object)abilityData.SpellLevel;

                descriptionBrick.SetText(text1, 1);
                descriptionBrick.SetText(text2, 2);
                if (abilityData.Blueprint.Type != AbilityType.Spell)
                {
                    return(false);
                }
                descriptionBrick.SetText(text3, 3);

                return(false);
            }
예제 #6
0
 public void source_EncumbrancePartyPenalty(DescriptionBricksBox box, EncumbranceHelper.CarryingCapacity capacity)
 {
     throw new DeadEndException("source_EncumbrancePartyPenalty");
 }
예제 #7
0
 public void source_CopyButton(DescriptionBricksBox box, TooltipData data, bool isTooltip)
 {
     throw new DeadEndException("source_CopyButton");
 }