Skip to content

Commit

Permalink
version 1.4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
pheonix99 committed Jan 15, 2023
1 parent ce45fa2 commit e4bc237
Show file tree
Hide file tree
Showing 29 changed files with 976 additions and 207 deletions.
25 changes: 25 additions & 0 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,19 @@ NOW REQUIRES TabletopTweaks Core Module and ModMenu

## Changelog

### 1.4.1
Added Homebrew Rage Power: Rage Stance Mastery. Use two Barbarian stances at once.

Add Burst Of Radiance

Fixed Death Patron being missing from Second Patron

Added Light, Animal, Protection and Plague patrons

Added Light to default patron selection list for Ember

Made Witch Patron spell features use the spell icon.

### 1.4.0

Switched to building UI with ModMenu
Expand Down Expand Up @@ -299,9 +312,21 @@ Made rewards from Monster Slayers and Local Production crusade events permanent

##Coming Soon:

Some Crusade Mode goodies

Earth Tremor spell

Mountain Witch Patron

Witch Unique Patrons

Compatibility Hack for Expanded Content so Death Patron can be used with the EC version of Gloomblind Bolts if that one is enabled and ToTF version is disabled

Extending Draconic Bloodline claw upgrades to Dragon Mystery abilities if Expanded Content is installed

Improved Multi-Archetyping for Witch archetypes that alter patron selection - you explictly *can* take multiple archetypes that reduce your selection as long as you comply with all the restriction on TT

Seasonal Witch archetype

Banishing Warden Paladin Archetype

Expand Down
10 changes: 8 additions & 2 deletions TomeOfTheFirebird/BuildContent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ static void Postfix()
ElementalShieldSpells.Build();
EntropicShield.Make();

BurstOfRadiance.Make();

//Build Feats
ProdigiousTWF.AddProdigiousTWF();
SunderingStrike.Build();
Expand Down Expand Up @@ -121,12 +123,14 @@ static void Postfix()

EldritchScionSage.Make();

Witch.ReturnAccursedPatrons();
Modified_Content.Archetypes.Witch.ReturnAccursedPatrons();
Modified_Content.Classes.Witch.FixIcons();

ShimmeringMirage.Make();
ClockworkHeart.Make();

New_Content.RagePowers.ElementalStance.Make();
New_Content.RagePowers.RageStanceMastery.Make();

CoordinatedShot.Make();
LastwallPhalanx.Make();
Expand Down Expand Up @@ -178,7 +182,7 @@ static void Postfix()
ExtraMercies.AddToThings();

FighterArmorTrainingFakeLevel.Connect();
WitchPatrons.Finish();


ProdigiousTWF.AddTwoWeaponDefense();
Magus.EScionSanityCheck();
Expand All @@ -187,6 +191,8 @@ static void Postfix()
// MagusArcanaHandling.MergeEScion();

New_Content.RagePowers.ElementalStance.Finish();
New_Content.RagePowers.RageStanceMastery.Finish();

RootConfigurator.ConfigureDelayedBlueprints();

//Modified_Content.ImprovedMultiarchetypeProjct.SpellSlots.Execute();
Expand Down
44 changes: 43 additions & 1 deletion TomeOfTheFirebird/Config/Blueprints.json
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,49 @@
"ElementalStanceRagePowerFireEffectBuff": "ccf6d83d-0fce-4212-9904-389e38f647d3",
"ElementalStanceRagePowerFireSwitchBuff": "baabb65f-cb73-40f1-9cba-e693f4fb1673",
"ElementalStanceRagePowerFireToggleAbility": "10b6e6aa-bb15-46bd-a0fd-511539b51989",
"ElementalStanceRagePowerSelector": "049d5ffb-0f66-4937-adf0-498bc957ef51"
"ElementalStanceRagePowerSelector": "049d5ffb-0f66-4937-adf0-498bc957ef51",
"BurstOfRadiance": "d0b70b44-8715-4ed3-ae10-e642d927330c",
"RageStanceMastery": "2364aca6-07cd-48aa-8087-d287e9a7499c",
"WitchAnimalPatronProgression": "bc12a8e1-23af-47ad-a2e9-dbf00913d2e5",
"WitchAnimalPatronSpellLevel1": "d7108bfc-cb2a-4904-8455-5ef83fd0f8a9",
"WitchAnimalPatronSpellLevel2": "8438e77d-ffae-4b1e-8a24-fafc417841fd",
"WitchAnimalPatronSpellLevel3": "239cf927-0b03-412e-a7cf-2dec4f92dfb4",
"WitchAnimalPatronSpellLevel4": "5bb664d5-a7dd-4bbb-a1f6-02532f055893",
"WitchAnimalPatronSpellLevel5": "5ad454c3-2f65-417f-85e0-d585f2e219aa",
"WitchAnimalPatronSpellLevel6": "990a5b8c-41af-4ed4-acae-d990730ffdcb",
"WitchAnimalPatronSpellLevel7": "f34aa422-7697-4fd7-bac0-4dd77e815274",
"WitchAnimalPatronSpellLevel8": "e4aa3de3-d03f-45cb-8186-fa29ea9cb55d",
"WitchAnimalPatronSpellLevel9": "31e41b6f-d5b0-41de-bfd8-f1adfe874ea7",
"WitchLightPatronProgression": "4cf44d74-4620-4715-ab5d-1a9c81d335ae",
"WitchLightPatronSpellLevel1": "feca048b-7df8-466e-aaf2-14884138e5c1",
"WitchLightPatronSpellLevel2": "d17bbdb1-8029-4af5-b041-a3167a815f23",
"WitchLightPatronSpellLevel3": "bada7dc0-752a-48ef-9a5c-194e62ec27e4",
"WitchLightPatronSpellLevel4": "c5c5f044-07f3-4825-a4d7-436c8be1decd",
"WitchLightPatronSpellLevel5": "32f4a702-d65b-4955-af01-fb187cccdcb8",
"WitchLightPatronSpellLevel6": "d5fe01be-bf7d-4fc4-a76d-4b176813b185",
"WitchLightPatronSpellLevel7": "7db3f47e-9936-4443-ae06-12e9b288977e",
"WitchLightPatronSpellLevel8": "e42853a6-1c4c-4817-8ffe-91170e8ec2c4",
"WitchLightPatronSpellLevel9": "d16a2a0b-4097-4ac0-a19c-62e4dc66a92a",
"WitchPlaguePatronProgression": "f1894c6b-b214-4449-b83f-a3298e676d16",
"WitchPlaguePatronSpellLevel1": "e4449cbb-31d1-416e-a243-900ac07327bb",
"WitchPlaguePatronSpellLevel2": "c921cd33-795c-48d2-8f92-55f3b5db365c",
"WitchPlaguePatronSpellLevel3": "b578ccea-7297-4b45-befa-c59e04532fd5",
"WitchPlaguePatronSpellLevel4": "c83be906-208e-4f38-b3b3-4c4eee247268",
"WitchPlaguePatronSpellLevel5": "a25132fc-9b5f-4281-aade-563baf2ff5de",
"WitchPlaguePatronSpellLevel6": "0f79a8a2-a86b-4b5a-97e1-2228b8d6fd7f",
"WitchPlaguePatronSpellLevel7": "e0b6794f-5904-4db4-9c22-de83f2ee2fb4",
"WitchPlaguePatronSpellLevel8": "e0a6a7ea-818c-4d4a-8833-98b25c6c1da0",
"WitchPlaguePatronSpellLevel9": "ce8a88a7-9499-4161-8edb-1fcad559fe80",
"WitchProtectionPatronProgression": "2c8f4252-c15f-4c56-82f6-fdf7ad58ad4c",
"WitchProtectionPatronSpellLevel1": "17da840a-eb40-4f57-9817-c777ec264539",
"WitchProtectionPatronSpellLevel2": "03be22cb-85ec-41b4-9a6f-476b7899b4bb",
"WitchProtectionPatronSpellLevel3": "10e9d55e-eb47-40f1-a542-21873a18f4eb",
"WitchProtectionPatronSpellLevel4": "dff98c60-8ab5-4f55-8f0e-d7667acce2fa",
"WitchProtectionPatronSpellLevel5": "ffd40bf0-c9f9-4146-a1f5-a040ad06c201",
"WitchProtectionPatronSpellLevel6": "4a732e96-ac5f-4c0f-a299-eb9238952ed6",
"WitchProtectionPatronSpellLevel7": "c7383468-3c60-4994-ba59-55e348b00d8c",
"WitchProtectionPatronSpellLevel8": "eb1b5787-ddfd-4c4a-8539-58e08218d112",
"WitchProtectionPatronSpellLevel9": "b9685c67-6d2a-428c-b99d-9a09106ba249"
},
"DerivedBlueprintMasters": {
"DiminishedSpellcastingMaster": "ba5d3cd1-29c3-4836-ae1d-88467323c6cd",
Expand Down
15 changes: 10 additions & 5 deletions TomeOfTheFirebird/Helpers/MakerTools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
using Kingmaker.Blueprints.Classes;
using Kingmaker.Blueprints;
using TomeOfTheFirebird.New_Components;
using BlueprintCore.Blueprints.CustomConfigurators.Classes.Selection;

namespace TomeOfTheFirebird.Helpers
{
Expand Down Expand Up @@ -208,7 +209,7 @@ public static AbilityConfigurator MakeAbility(string systemName, string displayN
}


public static AbilityConfigurator MakeSpell(string systemName, string displayName, string description, Sprite icon, SpellSchool school, LocalizedString savestring, LocalizedString durationString)
public static AbilityConfigurator MakeSpell(string systemName, string displayName, string description, Sprite icon, SpellSchool school, LocalizedString savestring, LocalizedString durationString = null)
{
Main.TotFContext.Logger.Log($"Building New Spell: {systemName}");
Kingmaker.Blueprints.BlueprintGuid guid = Main.TotFContext.Blueprints.GetGUID(systemName);
Expand All @@ -226,10 +227,14 @@ public static AbilityConfigurator MakeSpell(string systemName, string displayNam
{
Main.TotFContext.Logger.LogError(e.Message);
}



return AbilityConfigurator.New(systemName, guid.ToString()).SetDisplayName(name).SetDescription(desc).SetIcon(icon).AddSpellComponent(school).SetLocalizedSavingThrow(savestring).SetLocalizedDuration(durationString);



var config = AbilityConfigurator.New(systemName, guid.ToString()).SetDisplayName(name).SetDescription(desc).SetIcon(icon).AddSpellComponent(school).SetLocalizedSavingThrow(savestring);
if (durationString != null)
config.SetLocalizedDuration(durationString);

return config;


}
Expand Down
2 changes: 1 addition & 1 deletion TomeOfTheFirebird/Info.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"Id": "TomeOfTheFirebird",
"DisplayName": "Tome Of The Firebird",
"Author": "pheonix99",
"Version": "1.4.0",
"Version": "1.4.1",
"ManagerVersion": "0.21.3",
"AssemblyName": "TomeOfTheFirebird.dll",
"EntryMethod": "TomeOfTheFirebird.Main.Load",
Expand Down
11 changes: 10 additions & 1 deletion TomeOfTheFirebird/Modified Content/Archetypes/Witch.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Kingmaker.Blueprints;
using BlueprintCore.Utils;
using Kingmaker.Blueprints;
using Kingmaker.Blueprints.Classes;
using Kingmaker.Blueprints.Classes.Selection;
using System.Linq;
Expand Down Expand Up @@ -43,6 +44,14 @@ public static void ReturnAccursedPatrons()
m_Selection = patron.ToReference<BlueprintFeatureSelectionReference>(),
m_Features = new BlueprintFeatureReference[] { BlueprintTools.GetBlueprintReference<BlueprintFeatureReference>("8fe0a14c90d3ea94a833d087b8a09bb9") }

});
break;
case Settings.EmberPatron.Light:
emberFeature.Components.OfType<AddClassLevels>().FirstOrDefault().Selections = emberFeature.Components.OfType<AddClassLevels>().FirstOrDefault().Selections.AppendToArray(new SelectionEntry
{
m_Selection = patron.ToReference<BlueprintFeatureSelectionReference>(),
m_Features = new BlueprintFeatureReference[] { BlueprintTool.GetRef<BlueprintFeatureReference>("WitchLightPatronProgression") }

});
break;
default:
Expand Down
51 changes: 51 additions & 0 deletions TomeOfTheFirebird/Modified Content/Classes/Witch.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
using BlueprintCore.Blueprints.CustomConfigurators.Classes;
using BlueprintCore.Utils;
using Kingmaker.Blueprints;
using Kingmaker.Blueprints.Classes;
using Kingmaker.Blueprints.Classes.Selection;
using Kingmaker.UnitLogic.FactLogic;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TabletopTweaks.Core.Utilities;

namespace TomeOfTheFirebird.Modified_Content.Classes
{
class Witch
{
public static void FixIcons()
{
if (Settings.IsDisabled("FixWitchSpellIcons"))
return;

var bloodlineselector = BlueprintTool.Get<BlueprintFeatureSelection>("381cf4c890815d049a4420c6f31d063f");

foreach (var v in bloodlineselector.m_AllFeatures)
{
var v2 = BlueprintTools.GetBlueprint<BlueprintProgression>(v.Guid);
if (v2 != null)
{
ProgressionConfigurator.For(v2).ModifyLevelEntries(x =>
{
foreach (var q in x.m_Features)
{
var feature = q.Get();
AddKnownSpell referant = feature.GetComponent<AddKnownSpell>();
if (referant != null)
{
FeatureConfigurator.For(feature).SetIcon(referant.m_Spell.Get().Icon).Configure();
}
Main.TotFContext.Logger.LogPatch($"Patched Icon on", feature);
}
}).Configure();
}
}

}

}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using BlueprintCore.Blueprints.Configurators.Classes.Selection;
using BlueprintCore.Blueprints.CustomConfigurators.Classes;
using BlueprintCore.Blueprints.CustomConfigurators.Classes.Selection;
using BlueprintCore.Utils;
using Kingmaker.Blueprints;
using Kingmaker.Blueprints.Classes;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Kingmaker.Blueprints.Classes.Selection;
using System.Linq;
using Kingmaker.Utility;
using BlueprintCore.Blueprints.CustomConfigurators.Classes.Selection;

namespace TomeOfTheFirebird.Modified_Content.ImprovedMultiarchetypeProjct
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using BlueprintCore.Utils;
using Kingmaker.Blueprints.Classes;
using Kingmaker.Blueprints.Classes.Selection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TomeOfTheFirebird.Modified_Content.ImprovedMultiarchetypeProjct
{
class WitchPatronUpgrade
{
public static void Handle()
{
List<BlueprintProgression> MasterList = new();
BlueprintFeatureSelection master = BlueprintTool.Get<BlueprintFeatureSelection>("381cf4c890815d049a4420c6f31d063f");
foreach(var patron in master.m_AllFeatures)
{
var progression = BlueprintTool.Get<BlueprintProgression>(patron.Guid.ToString());
if (progression != null)//Failsafe for when I do Celestial Agenda
{

}

}


}

}
}
23 changes: 23 additions & 0 deletions TomeOfTheFirebird/Modified Content/Items/RadianceUpgrades.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TomeOfTheFirebird.Modified_Content.Items
{
class RadianceUpgrades
{
//Rescue Yaniel Upgrade - I THINK this would just be making the enhancement upgrade
//When wielded by a paladin, this sacred weapon provides spell resistance of 5 + the paladin’s class level to the wielder and anyone adjacent to her. It also enables the paladin to use greater dispel magic (once per round as a standard action) at the class level of the paladin. Only the area dispel is possible, not the targeted dispel or counterspell versions of greater dispel magic.


//Vs Deskari - keep the +6
//This +3 cold iron longsword becomes a +5 holy defiantUE cold iron longsword in the hands of a paladin or a lawful good mythic creature. If the creature wielding this weapon is a paladin with mythic tiers, she can also grant the weapon the brilliant energy special ability on command. Dismissing the brilliant energy ability is a free action.

//Defiant: This special ability can only be placed on melee weapons. A defiant weapon helps its wielder stay alive in desperate conditions. It stays in its wielder’s hand even if she is panicked, stunned, or unconscious. She adds the weapon’s enhancement bonus as a bonus on checks to stabilize when dying and on saving throws to end ongoing conditions such as disease, poison, and hold person. If the wielder possesses Heroic Defiance, Heroic Recovery, Improved Great Fortitude, Improved Iron Will, or Improved Lightning Reflexes, she gains a number of additional daily uses equal to the weapon’s enhancement bonus that can be used on any of these feats.

//When wielded by a paladin or a lawful good mythic creature, this weapon provides spell resistance equal to 5 + the character’s paladin class level (if any) + the character’s mythic tier(if any) to the wielder and anyone within 10 feet of her.It also enables the wielder to use mythic greater dispel magic once per round as a standard action, with a caster level equal to either the wielder’s paladin class level or double her mythic tier, whichever is higher.Mythic greater dispel magic functions as greater dispel magic including the benefits of the mythic dispel magic spell, but when the wielder dispels a spell, she heals 1d6 points of damage for every spell level of the dispelled spell instead of healing 1d4 points of damage.

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using JetBrains.Annotations;
using Kingmaker.Blueprints;
using Kingmaker.Blueprints.Classes.Prerequisites;
using Kingmaker.Blueprints.Classes.Selection;
using Kingmaker.UnitLogic;
using Kingmaker.UnitLogic.Class.LevelUp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TomeOfTheFirebird.New_Components.Prerequisites
{
class PrerequisiteArchetypeCantTakeWithX : Prerequisite
{

public List<BlueprintArchetypeReference> blockedArchetypes = new();

public BlueprintFeatureSelectionReference blocked;

public override bool CheckInternal([CanBeNull] FeatureSelectionState selectionState, [NotNull] UnitDescriptor unit, [CanBeNull] LevelUpState state)
{
if (selectionState.Selection is BlueprintFeatureSelection selection)
{
if (selection.ToReference<BlueprintFeatureSelectionReference>().Equals(blocked))
{
foreach(var arch in blockedArchetypes)
{
if (unit.Progression.IsArchetype(arch))
return false;
}

}
}

return true;
}

public override string GetUITextInternal(UnitDescriptor unit)
{
return "";
}
}
}
Loading

0 comments on commit e4bc237

Please sign in to comment.