Example #1
0
        public static void create()
        {
            var sorcerer = library.Get <BlueprintCharacterClass>("b3a505fb61437dc4097f43c3f8f9a4cf");

            createPrimalBloodlines();

            archetype = Helpers.Create <BlueprintArchetype>(a =>
            {
                a.name                 = "PrimalSorcererArchetype";
                a.LocalizedName        = Helpers.CreateString($"{a.name}.Name", "Primal Sorcerer");
                a.LocalizedDescription = Helpers.CreateString($"{a.name}.Description", "Your powers are attuned to the concentrated core of the elemental plane.");
            });
            Helpers.SetField(archetype, "m_ParentClass", sorcerer);
            library.AddAsset(archetype, "");
            archetype.RemoveFeatures = new LevelEntry[] { Helpers.LevelEntry(1, library.Get <BlueprintFeatureSelection>("24bef8d1bee12274686f6da6ccbc8914")), //original bloodline
            };
            archetype.AddFeatures = new LevelEntry[] { Helpers.LevelEntry(1, primal_bloodline_selection) };

            sorcerer.Archetypes = sorcerer.Archetypes.AddToArray(archetype);

            //fix dragon disciple
            var dragon_disciple = library.Get <BlueprintCharacterClass>("72051275b1dbb2d42ba9118237794f7c");

            dragon_disciple.AddComponent(Common.prerequisiteNoArchetype(sorcerer, archetype));
            archetype.AddComponent(Helpers.Create <PrerequisiteMechanics.PrerequisiteNoClassLevelVisible>(p => p.CharacterClass = dragon_disciple));
        }
Example #2
0
        static void fixDragonDisciple()
        {
            var dragon_disciple = library.Get <BlueprintCharacterClass>("72051275b1dbb2d42ba9118237794f7c");

            dragon_disciple.AddComponent(Common.prerequisiteNoArchetype(archetype.GetParentClass(), archetype));
            archetype.AddComponent(Helpers.Create <PrerequisiteMechanics.PrerequisiteNoClassLevelVisible>(p => p.CharacterClass = dragon_disciple));
        }
        internal static void create()
        {
            var bard_class = ResourcesLibrary.TryGetBlueprint <BlueprintCharacterClass>("772c83a25e2268e448e841dcd548235f");

            createSpellbook();
            createPreciseMinstrel();
            createArrowSongStrike();
            createArcaneArchery();
            createWeaponProficiency();

            archetype = Helpers.Create <BlueprintArchetype>(a =>
            {
                a.name                 = "ArrowsongMinstrelArchetype";
                a.LocalizedName        = Helpers.CreateString($"{a.name}.Name", "Arrowsong Minstrel");
                a.LocalizedDescription = Helpers.CreateString($"{a.name}.Description", "Arrowsong minstrels combine the elven traditions of archery, song, and spellcasting into a seamless harmony of dazzling magical effects.");
            });
            Helpers.SetField(archetype, "m_ParentClass", bard_class);
            library.AddAsset(archetype, "");
            archetype.RemoveFeatures = new LevelEntry[] { Helpers.LevelEntry(1, library.Get <BlueprintFeature>("fa3d3b2211a51994785d85e753f612d3")),  //bard proficiencies
                                                          Helpers.LevelEntry(2, bard_class.Progression.LevelEntries[1].Features),                     //well versed and versatile
                                                          Helpers.LevelEntry(3, bard_class.Progression.LevelEntries[2].Features),                     //inspire competence
                                                          Helpers.LevelEntry(6, library.Get <BlueprintFeature>("ddaec3a5845bc7d4191792529b687d65")),  //fascinate
                                                          Helpers.LevelEntry(7, library.Get <BlueprintFeature>("6d3fcfab6d935754c918eb0e004b5ef7")),  //inspire competence
                                                          Helpers.LevelEntry(8, library.Get <BlueprintFeature>("1d48ab2bded57a74dad8af3da07d313a")),  //dirge of doom
                                                          Helpers.LevelEntry(11, library.Get <BlueprintFeature>("6d3fcfab6d935754c918eb0e004b5ef7")), //inspire competence
                                                          Helpers.LevelEntry(12, library.Get <BlueprintFeature>("546698146e02d1e4ea00581a3ea7fe58")), //soothing performance
                                                          Helpers.LevelEntry(14, library.Get <BlueprintFeature>("cfd8940869a304f4aa9077415f93febe")), //frightening tune
                                                          Helpers.LevelEntry(15, library.Get <BlueprintFeature>("6d3fcfab6d935754c918eb0e004b5ef7")), //inspire competence
                                                          Helpers.LevelEntry(19, library.Get <BlueprintFeature>("6d3fcfab6d935754c918eb0e004b5ef7")), //inspire competence
            };
            archetype.ReplaceSpellbook = spellbook;
            archetype.AddFeatures      = new LevelEntry[] { Helpers.LevelEntry(1, weapon_proficiency),
                                                            Helpers.LevelEntry(1, arcane_achery),
                                                            Helpers.LevelEntry(2, precise_minstrel),
                                                            Helpers.LevelEntry(6, arrowsong_strike),
                                                            Helpers.LevelEntry(18, ray_spell_combat) };

            bard_class.Progression.UIDeterminatorsGroup = bard_class.Progression.UIDeterminatorsGroup.AddToArray(weapon_proficiency);
            bard_class.Progression.UIGroups             = bard_class.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(arcane_achery, precise_minstrel, arrowsong_strike, ray_spell_combat));
            bard_class.Archetypes = bard_class.Archetypes.AddToArray(archetype);


            archetype.ReplaceStartingEquipment = true;
            var starting_items = library.Get <BlueprintArchetype>("44388c01eb4a29d4d90a25cc0574320d").StartingItems; //from eldritch archer

            //replace scroll of snowball with cure light wounds
            archetype.StartingItems = starting_items.RemoveFromArray(library.Get <BlueprintItemEquipmentUsable>("66fc961f9c39ae94fb87a79adc87212e")).AddToArray(library.Get <BlueprintItemEquipmentUsable>("cd635d5720937b044a354dba17abad8d"));
            addToPrestigeClasses();

            var magus = library.Get <BlueprintCharacterClass>("45a4607686d96a1498891b3286121780");

            magus.AddComponent(Common.prerequisiteNoArchetype(bard_class, archetype));
            archetype.AddComponent(Helpers.Create <PrerequisiteMechanics.PrerequisiteNoClassLevelVisible>(p => p.CharacterClass = magus));
        }
        internal static void create()
        {
            var inquisitor_class = ResourcesLibrary.TryGetBlueprint <BlueprintCharacterClass>("f1a70d9e1b0b41e49874e1fa9052a1ce");

            archetype = Helpers.Create <BlueprintArchetype>(a =>
            {
                a.name                 = "RavenerHunterArchetype";
                a.LocalizedName        = Helpers.CreateString($"{a.name}.Name", "Demon Hunter");
                a.LocalizedDescription = Helpers.CreateString($"{a.name}.Description", "The natural enemies of demoniacs and other cultists of fiendish forces, demon hunters are inquisitors who dedicate their lives to eradicating demonkind.");
            });
            Helpers.SetField(archetype, "m_ParentClass", inquisitor_class);
            library.AddAsset(archetype, "");

            var deity                = library.Get <BlueprintFeatureSelection>("59e7a76987fe3b547b9cce045f4db3e4");
            var domain               = library.Get <BlueprintFeatureSelection>("48525e5da45c9c243a343fc6545dbdb9");
            var teamwork_feat        = library.Get <BlueprintFeature>("d87e2f6a9278ac04caeb0f93eff95fcb");
            var solo_tactics         = library.Get <BlueprintFeature>("5602845cd22683840a6f28ec46331051");
            var solo_tactics_ravener = library.CopyAndAdd(solo_tactics, "SoloTacticsRavenerHunter", "");

            solo_tactics_ravener.SetDescription("A demon hunter gains solo tactics at 6th level instead of 3rd level.");
            createHolyMagic();
            createDemonHunter();
            createChargedByNatureAndRevelations();

            archetype.RemoveFeatures = new LevelEntry[] { Helpers.LevelEntry(1, domain),
                                                          Helpers.LevelEntry(3, teamwork_feat, solo_tactics), };
            archetype.AddFeatures = new LevelEntry[] { Helpers.LevelEntry(1, holy_magic, charged_by_nature, revelation_selection),
                                                       Helpers.LevelEntry(3, demon_hunter),
                                                       Helpers.LevelEntry(6, solo_tactics_ravener),
                                                       Helpers.LevelEntry(8, revelation_selection), };

            archetype.ReplaceSpellbook = spellbook;
            archetype.AddComponent(Common.createPrerequisiteAlignment((~Kingmaker.UnitLogic.Alignments.AlignmentMaskType.Evil) & Kingmaker.UnitLogic.Alignments.AlignmentMaskType.Any));

            inquisitor_class.Progression.UIGroups             = inquisitor_class.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(revelation_selection, demon_hunter, solo_tactics_ravener));
            inquisitor_class.Progression.UIDeterminatorsGroup = inquisitor_class.Progression.UIDeterminatorsGroup.AddToArray(holy_magic, charged_by_nature);
            inquisitor_class.Archetypes = inquisitor_class.Archetypes.AddToArray(archetype);

            var mt_progression = library.Get <BlueprintProgression>("d21a104c204ed7348a51405e68387013");

            mt_progression.AddComponent(Common.prerequisiteNoArchetype(archetype));
            Common.addMTDivineSpellbookProgression(archetype.GetParentClass(), spellbook, "MysticTheurgeRavenerHunterProgression",
                                                   Common.createPrerequisiteArchetypeLevel(archetype, 1),
                                                   Common.createPrerequisiteClassSpellLevel(inquisitor_class, 2)
                                                   );
        }
        internal static void create()
        {
            var slayer_class = ResourcesLibrary.TryGetBlueprint <BlueprintCharacterClass>("c75e0971973957d4dbad24bc7957e4fb");

            archetype = Helpers.Create <BlueprintArchetype>(a =>
            {
                a.name                 = "ExecutionerArchetype";
                a.LocalizedName        = Helpers.CreateString($"{a.name}.Name", "Executioner");
                a.LocalizedDescription = Helpers.CreateString($"{a.name}.Description", "These professional killers are trained and used almost exclusively by the various crime families. Streetwise and ruthless, they operate independently, often making their talents available to the highest bidder. Though a few unscrupulous executioners exploit this arrangement and force families to pay higher rates for their services, most of these assassins follow a strict personal code and maintain absolute transparency with their employers.");
            });
            Helpers.SetField(archetype, "m_ParentClass", slayer_class);
            library.AddAsset(archetype, "");

            var slayer_talent4  = library.Get <BlueprintFeatureSelection>("04430ad24988baa4daa0bcd4f1c7d118");
            var slayer_talent10 = library.Get <BlueprintFeatureSelection>("913b9cf25c9536949b43a2651b7ffb66");

            var quarry          = library.Get <BlueprintFeature>("385260ca07d5f1b4e907ba22a02944fc");
            var improved_quarry = library.Get <BlueprintFeature>("25e009b7e53f86141adee3a1213af5af");

            archetype.RemoveFeatures = new LevelEntry[] { Helpers.LevelEntry(4, slayer_talent4),
                                                          Helpers.LevelEntry(10, slayer_talent10),
                                                          Helpers.LevelEntry(14, quarry),
                                                          Helpers.LevelEntry(19, improved_quarry), };

            createBloodstainedHands();
            createFocusedKiller();
            createPainStrike();

            assasinate = Helpers.CreateFeature("ExecutionerAssasinateFeature",
                                               RogueTalents.assasinate.Name,
                                               "At 10th level, an executioner must select the assassinate advanced slayer talent.",
                                               "",
                                               RogueTalents.assasinate.Icon,
                                               FeatureGroup.None,
                                               Helpers.CreateAddFact(RogueTalents.assasinate)
                                               );

            archetype.AddFeatures = new LevelEntry[] { Helpers.LevelEntry(1, focused_killer /*, bloodstained_hands*/),
                                                       Helpers.LevelEntry(4, pain_strike),
                                                       Helpers.LevelEntry(10, assasinate),
                                                       Helpers.LevelEntry(14, RogueTalents.swift_death), };
            archetype.AddComponent(Common.createPrerequisiteAlignment(AlignmentMaskType.Evil));
            //slayer_class.Progression.UIDeterminatorsGroup = slayer_class.Progression.UIDeterminatorsGroup.AddToArray(bloodstained_hands);
            slayer_class.Progression.UIGroups = slayer_class.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(focused_killer, pain_strike, assasinate, RogueTalents.swift_death));
            slayer_class.Archetypes           = slayer_class.Archetypes.AddToArray(archetype);
        }
Example #6
0
        internal static void create()
        {
            var inquisitor_class = ResourcesLibrary.TryGetBlueprint <BlueprintCharacterClass>("f1a70d9e1b0b41e49874e1fa9052a1ce");



            archetype = Helpers.Create <BlueprintArchetype>(a =>
            {
                a.name                 = "RelicHunterArchetype";
                a.LocalizedName        = Helpers.CreateString($"{a.name}.Name", "Relic Hunter");
                a.LocalizedDescription = Helpers.CreateString($"{a.name}.Description", "Some inquisitors specialize in the use and recovery of long-lost relics of their faiths, drawing forth divine might from the recovered items in order to restore their sanctity and wield these artifacts against the enemies of their gods.");
            });
            Helpers.SetField(archetype, "m_ParentClass", inquisitor_class);
            library.AddAsset(archetype, "");

            spellbook             = library.CopyAndAdd(inquisitor_class.Spellbook, "RelicHunterSpellBook", "");
            spellbook.SpellsKnown = Occultist.occultist_class.Spellbook.SpellsKnown;
            spellbook.AddComponent(Helpers.Create <SpellbookMechanics.OccultistSpellbook>());
            archetype.ReplaceSpellbook = spellbook;

            createDeificFocus();
            createImplements();
            createFocusPowers();

            var judgment           = library.Get <BlueprintFeature>("981def910b98200499c0c8f85a78bde8");
            var judgment_extra_use = library.Get <BlueprintFeature>("ee50875819478774b8968701893b52f5");
            var bane          = library.Get <BlueprintFeature>("7ddf7fbeecbe78342b83171d888028cf");
            var bane_greater  = library.Get <BlueprintFeature>("6e694114b2f9e0e40a6da5d13736ff33");
            var judgment2     = library.Get <BlueprintFeature>("33bf0404b70d65f42acac989ec5295b2");
            var judgment3     = library.Get <BlueprintFeature>("490c7e92b22cc8a4bb4885a027b355db");
            var judgment_true = library.Get <BlueprintFeature>("f069b6557a2013544ac3636219186632");
            var domains       = library.Get <BlueprintFeatureSelection>("48525e5da45c9c243a343fc6545dbdb9");

            archetype.RemoveFeatures = new LevelEntry[] { Helpers.LevelEntry(1, judgment, domains),
                                                          Helpers.LevelEntry(4, judgment_extra_use),
                                                          Helpers.LevelEntry(5, bane),
                                                          Helpers.LevelEntry(7, judgment_extra_use),
                                                          Helpers.LevelEntry(8, judgment2),
                                                          Helpers.LevelEntry(10, judgment_extra_use),
                                                          Helpers.LevelEntry(12, bane_greater),
                                                          Helpers.LevelEntry(13, judgment_extra_use),
                                                          Helpers.LevelEntry(16, judgment_extra_use, judgment3),
                                                          Helpers.LevelEntry(19, judgment_extra_use),
                                                          Helpers.LevelEntry(20, judgment_true), };
            archetype.ReplaceSpellbook = spellbook;
            archetype.AddFeatures      = new LevelEntry[] { Helpers.LevelEntry(1, deific_focus, first_implement_selection, implement_selection, focus_power_selection),
                                                            Helpers.LevelEntry(4, implement_selection, focus_power_selection),
                                                            Helpers.LevelEntry(7, implement_selection),
                                                            Helpers.LevelEntry(8, focus_power_selection),
                                                            Helpers.LevelEntry(10, implement_selection),
                                                            Helpers.LevelEntry(12, focus_power_selection),
                                                            Helpers.LevelEntry(13, implement_selection),
                                                            Helpers.LevelEntry(16, implement_selection, focus_power_selection),
                                                            Helpers.LevelEntry(19, implement_selection),
                                                            Helpers.LevelEntry(20, focus_power_selection), };


            inquisitor_class.Progression.UIDeterminatorsGroup = inquisitor_class.Progression.UIDeterminatorsGroup.AddToArray(deific_focus);
            inquisitor_class.Progression.UIGroups             = inquisitor_class.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(first_implement_selection, implement_selection));
            inquisitor_class.Progression.UIGroups             = inquisitor_class.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(focus_power_selection));
            inquisitor_class.Archetypes = inquisitor_class.Archetypes.AddToArray(archetype);

            addToPrestigeClasses();
            Occultist.occultist_class.AddComponent(Common.prerequisiteNoArchetype(inquisitor_class, archetype));
            archetype.AddComponent(Helpers.Create <PrerequisiteMechanics.PrerequisiteNoClassLevelVisible>(p => p.CharacterClass = Occultist.occultist_class));
        }