Exemple #1
0
        static internal void create()
        {
            lamashtu = library.CopyAndAdd <BlueprintFeature>("04bc2b62273ab744092d992ed72bff41", "LamashtuFeature", "");//rovagug

            lamashtu.SetNameDescriptionIcon("Lamashtu",
                                            "Lamashtu (pronounced lah-MAHSH-too) is the mother and patroness of many misshapen and malformed creatures that crawl, slither, or flap on, above, or below the surface of Golarion. Her unholy symbol is a three-eyed jackal head, which may be represented in many ways, and her sacred animal is the jackal.\n"
                                            + "Domains: Chaos, Evil, Madness, Strength, Trickery.\nFavored Weapon: Kukri.",
                                            LoadIcons.Image2Sprite.Create(@"FeatIcons/Lamashtu.png"));
            kukri_proficiency = library.CopyAndAdd <BlueprintFeature>("70ab8880eaf6c0640887ae586556a652", "KukriProficiency", "");
            kukri_proficiency.SetNameDescription("Weapon Proficiency (Kukri)",
                                                 "You become proficient with kukris and can use them as a weapon.");
            kukri_proficiency.ReplaceComponent <AddProficiencies>(a => a.WeaponProficiencies = new Kingmaker.Enums.WeaponCategory[] { Kingmaker.Enums.WeaponCategory.Kukri });

            lamashtu.ReplaceComponent <AddFeatureOnClassLevel>(a => a.Feature     = kukri_proficiency);
            lamashtu.ReplaceComponent <AddStartingEquipment>(a => a.CategoryItems = new Kingmaker.Enums.WeaponCategory[] { Kingmaker.Enums.WeaponCategory.Kukri });
            lamashtu.ReplaceComponent <AddFacts>(a => a.Facts = new Kingmaker.Blueprints.Facts.BlueprintUnitFact[]
            {
                library.Get <BlueprintFeature>("8c7d778bc39fec642befc1435b00f613"), //chaos
                library.Get <BlueprintFeature>("351235ac5fc2b7e47801f63d117b656c"), //evil
                library.Get <BlueprintFeature>("c346bcc77a6613040b3aa915b1ceddec"), //madness
                library.Get <BlueprintFeature>("eaa368e08628a8641b16cd41cbd2cb33"), //trickery
                library.Get <BlueprintFeature>("58d2867520de17247ac6988a31f9e397"), //strength
                library.Get <BlueprintFeature>("dab5255d809f77c4395afc2b713e9cd6"), //channel negative
            });
            //lamashtu.AddComponent(Helpers.Create<RaceMechanics.PrerequisiteRace>(p => p.race = library.Get<BlueprintRace>("9d168ca7100e9314385ce66852385451")));

            var deities = library.Get <BlueprintFeatureSelection>("59e7a76987fe3b547b9cce045f4db3e4");

            deities.AllFeatures = deities.AllFeatures.AddToArray(lamashtu);
        }
Exemple #2
0
 static void createZenArcherProficiencies()
 {
     zen_archer_proficiencies = library.CopyAndAdd <BlueprintFeature>("c7d6f5244c617734a8a76b6785a752b4", "ZenArcherProficiencies", "");//monk proficiencies
     zen_archer_proficiencies.SetNameDescriptionIcon("Zen Archer Proficiencies",
                                                     "Zen archers are proficient with longbows, shortbows, composite longbows, and composite shortbows in addition to their normal weapon proficiencies.",
                                                     Helpers.GetIcon("3e9d1119d43d07c4c8ba9ebfd1671952"));
     zen_archer_proficiencies.ReplaceComponent <AddProficiencies>(a => a.WeaponProficiencies = a.WeaponProficiencies.AddToArray(WeaponCategory.Longbow, WeaponCategory.Shortbow));
 }
 static void createWeaponProficiency()
 {
     weapon_proficiency = library.CopyAndAdd <BlueprintFeature>("fa3d3b2211a51994785d85e753f612d3", "ArrowsongMinstrelProficiencies", "");
     weapon_proficiency.ReplaceComponent <AddProficiencies>(a => a.WeaponProficiencies = new WeaponCategory[] { WeaponCategory.Shortbow, WeaponCategory.Longbow });
     weapon_proficiency.SetNameDescriptionIcon("Arrowsong Minstrel Proficiencies",
                                               "An Arrowsong minstrel is proficient with longbows, but not the longsword and rapier.",
                                               library.Get <BlueprintAbility>("3e9d1119d43d07c4c8ba9ebfd1671952").Icon);//gravity bow
 }
 public static void SetFeatureInfo(BlueprintFeature feat, String name, String displayName, String description, String guid, Sprite icon,
                                   FeatureGroup group, params BlueprintComponent[] components)
 {
     feat.name = name;
     feat.SetComponents(components);
     feat.Groups = new [] { group };
     feat.SetNameDescriptionIcon(displayName, description, icon);
     Main.library.AddAsset(feat, guid);
 }
Exemple #5
0
        static void createDivineBody()
        {
            var ability = library.CopyAndAdd <BlueprintAbility>("7ff088ab58c69854b82ea95c2b0e35b4", "DivineBodyIroranPaladinAbility", "");

            ability.SetNameDescriptionIcon("Divine Body",
                                           "Upon reaching 5th level, an Iroran paladin must form a bond with a weapon, except he can only choose to enhance his unarmed strike. This ability otherwise functions as and replaces divine bond.",
                                           Helpers.GetIcon("1bc83efec9f8c4b42a46162d72cbf494") //burst of glory
                                           );
            ability.AddComponent(Common.createAbilityCasterMainWeaponCheck(WeaponCategory.UnarmedStrike));
            divine_body = library.CopyAndAdd <BlueprintFeature>("1c7cdc1605554954f838d85bbdd22d90", "DivineBodyIroranPaladinFeature", "");
            divine_body.SetNameDescriptionIcon(ability);
            divine_body.ReplaceComponent <AddFacts>(a => a.Facts = a.Facts.Skip(1).ToArray().AddToArray(ability));
        }
Exemple #6
0
        static void createPersonalTrial()
        {
            var icon = Helpers.GetIcon("c3a8f31778c3980498d8f00c980be5f5"); //guidance

            var config = Helpers.CreateContextRankConfig(ContextRankBaseValueType.ClassLevel, classes: new BlueprintCharacterClass[] { archetype.GetParentClass() },
                                                         progression: ContextRankProgression.OnePlusDivStep, stepLevel: 4);
            var buff = Helpers.CreateBuff("PersonalTrialBuff",
                                          "",
                                          "",
                                          "",
                                          icon,
                                          Common.createPrefabLink("5b4cdc22715305949a1bd80fab08302b"),
                                          Helpers.Create <UniqueBuff>(),
                                          Helpers.Create <ACBonusAgainstTarget>(a =>
            {
                a.CheckCaster = true;
                a.Descriptor  = ModifierDescriptor.Insight;
                a.Value       = Helpers.CreateContextValue(AbilityRankType.Default);
            }
                                                                                ),
                                          Helpers.Create <DamageBonusAgainstTarget>(a =>
            {
                a.CheckCaster        = true;
                a.ApplyToSpellDamage = true;
                a.Value = Helpers.CreateContextValue(AbilityRankType.Default);
            }
                                                                                    ),
                                          config
                                          );

            buff.SetBuffFlags(BuffFlags.RemoveOnRest);
            var ability = library.CopyAndAdd <BlueprintAbility>("7bb9eb2042e67bf489ccd1374423cdec", "PersonalTrialAbility", "");

            ability.RemoveComponents <AbilityEffectRunAction>();
            ability.RemoveComponents <ContextRankConfig>();

            ability.AddComponent(Helpers.CreateRunActions(Common.createContextActionApplyBuff(buff, Helpers.CreateContextDuration(), dispellable: false, is_permanent: true)));
            ability.SetNameDescriptionIcon("Personal Trial",
                                           " Once per day, an Iroran paladin can as a swift action declare one target within line of sight as his personal trial. The Iroran paladin gains a +1 insight bonus on attack rolls and damage rolls against that creature, to his AC against attacks made by the target, and on saving throws against the target’s spells and special abilities. This bonus increases by 1 at 4th level and every 4 levels thereafter, to a maximum bonus of +6 at 20th level. The personal trial effect remains until the target of the trial is dead or the next time the paladin rests and regains daily uses of this ability. At 4th level and every three levels thereafter, the Iroran paladin can use personal trial one additional time per day.",
                                           icon);

            personal_trial = Common.AbilityToFeature(ability, false);
            personal_trial.AddComponent(ability.GetComponent <AbilityResourceLogic>().RequiredResource.CreateAddAbilityResource());

            personal_trial.AddComponents(Helpers.Create <NewMechanics.SavingThrowBonusAgainstFactFromCaster>(s =>
            {
                s.CheckedFact = buff;
                s.Descriptor  = ModifierDescriptor.Insight;
                s.Value       = Helpers.CreateContextValue(AbilityRankType.Default);
            }),
                                         Helpers.Create <NewMechanics.AttackBonusAgainstFactsOwner>(s =>
            {
                s.CheckedFacts     = new BlueprintUnitFact[] { buff };
                s.Descriptor       = ModifierDescriptor.Insight;
                s.Bonus            = Helpers.CreateContextValue(AbilityRankType.Default);
                s.only_from_caster = true;
                s.attack_types     = new AttackType[] { AttackType.Melee, AttackType.Touch, AttackType.RangedTouch, AttackType.Ranged };
            }),
                                         config
                                         );
            personal_trial.ReapplyOnLevelUp = true;
            personal_trial_extra_use        = library.CopyAndAdd <BlueprintFeature>("0f5c99ffb9c084545bbbe960b825d137", "PersonalTrialExtraUse", "");
            personal_trial_extra_use.SetNameDescriptionIcon(personal_trial);


            personal_trial_buff = buff;
        }