Skip to content

Commit

Permalink
1.4.9: 2.1 beta, fly, and elemental tweaks buff
Browse files Browse the repository at this point in the history
  • Loading branch information
pheonix99 committed Feb 28, 2023
1 parent 31b34bd commit 5ddceea
Show file tree
Hide file tree
Showing 38 changed files with 1,403 additions and 191 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -367,3 +367,4 @@ FodyWeavers.xsd
/TomeOfTheFirebird/Assets/Spells/SpearOfPurity.png
/TomeOfTheFirebird/Assets/Spells/GloomblindBolts.png
/TomeOfTheFirebird/Assets/Abilities/Phoenix_Bloodline.png
/TomeOfTheFirebird/Assets/Spells/Fly.png
17 changes: 12 additions & 5 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,23 @@ All homebrew content or divergences from TT will be called out.

NOW REQUIRES TabletopTweaks Core Module and ModMenu




## Changelog

###
1.4.8
### 1.4.9
2.1 Beta experimental patch. WARNING: Has not been signficantly tested!
Added Spells: Fly
Buffed Elemental Bloodline Elemental Strikes - now always-on at level 1, gains burst effect at level 20



### 1.4.8
Fix for Maw And Claw (Claw) natural weapons vanishing - replacing with toggle as game likes to do
Added Ancestral Scorn feat

1.4.7
### 1.4.7
Burst Of Radiance has been returned to spell lists from the Shadow Realm?
Price Fixes for some horribly overpriced act 1 items - expect further changes here
Option to replace Dragonkind 1: Red with Chains Of Fire for Oracle Flames Mystery as proxy for Fire Seeds
Expand Down Expand Up @@ -370,8 +379,6 @@ Mountain Witch Patron

Witch Unique Patrons

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

Seasonal Witch archetype

Banishing Warden Paladin Archetype
Expand Down
13 changes: 13 additions & 0 deletions TomeOfTheFirebird/Bugfixes/AI Fixes/WrongDefaultAttack.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TomeOfTheFirebird.Bugfixes.AI_Fixes
{
class WrongDefaultAttack
{
//Daeran At Party: Use Divine Zap, not crossbow
}
}
9 changes: 7 additions & 2 deletions TomeOfTheFirebird/Bugfixes/FixExtraHitsOnProcs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ namespace TomeOfTheFirebird.Bugfixes
{
public static class FixExtraHitsOnProcs
{
public static void FixHellfireCharge()
{
//f88081f3d2ed69c429736051f2fb80ae
}

public static void FixFirebrand()
{
if (Settings.IsEnabled("FixExtraHitsFirebrand"))
Expand Down Expand Up @@ -137,7 +142,7 @@ public static void FixElementalStrikes()
BonusValue = ContextValues.Constant(0)
};
}).Configure();//Elect strikes before 20
}).Configure();//Acid strikes before 20

FeatureConfigurator.For("d37a8f6f5df057a4ea50b2c065288263").RemoveComponents(x => x is AddInitiatorAttackWithWeaponTrigger).AddComponent<ContextDamageValueEnergyDamageDice>(x =>
{
Expand All @@ -149,7 +154,7 @@ public static void FixElementalStrikes()
BonusValue = ContextValues.Constant(0)
};
}).Configure();//Elect strikes at 20
}).Configure();//Acid strikes at 20


}
Expand Down
24 changes: 22 additions & 2 deletions TomeOfTheFirebird/BuildContent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@
using TomeOfTheFirebird.Modified_Content.Feats;
using TomeOfTheFirebird.New_Content.Archetypes;
using BlueprintCore.Blueprints.Configurators.Root;
using Kingmaker.Blueprints;
using Kingmaker.Utility;
using Kingmaker.Blueprints.Classes;
using BlueprintCore.Utils;
using Kingmaker.Blueprints.Classes.Selection;
using System.Linq;
using UnityEngine;

namespace TomeOfTheFirebird
{
Expand Down Expand Up @@ -71,6 +78,8 @@ static void Postfix()

BurstOfRadiance.Make();

Fly.Make();

//Build Feats
ProdigiousTWF.AddProdigiousTWF();
SunderingStrike.Build();
Expand Down Expand Up @@ -127,10 +136,12 @@ static void Postfix()
//FighterCombatBoosts.Setup();

PheonixBloodline.MakePheonixBloodline();
//BloodlineMutations.Setup();



EldritchScionSage.Make();
//BloodHavoc.Make();

Modified_Content.Archetypes.Witch.ReturnAccursedPatrons();
Modified_Content.Classes.Witch.AllPatronFixes();
Expand All @@ -150,12 +161,17 @@ static void Postfix()

TomeOfTheFirebird.New_Content.RacialOptions.Tiefling.Make();
ArmorOfThePit.Make();


}
catch (Exception e)
{
Main.TotFContext.Logger.LogError(e, $"Error caught in early patch");
}
}



}


Expand Down Expand Up @@ -190,6 +206,7 @@ static void Postfix()
FixExtraHitsOnProcs.FixClawsOfSacredBeast();
FixExtraHitsOnProcs.FixElementalStrikes();

ElementalStrikesUpgrade.Do();

CavalierFixes.FixOrderAbilityDisplays();
CavalierFixes.FixOrderOfTheStarChannelAssistance();
Expand All @@ -207,8 +224,7 @@ static void Postfix()
New_Content.RagePowers.ElementalStance.Finish();
New_Content.RagePowers.RageStanceMastery.Finish();
//EldritchScion.AddSorcBonusFeatsToList();



RootConfigurator.ConfigureDelayedBlueprints();


Expand All @@ -232,10 +248,14 @@ static void Postfix()
Main.TotFContext.Logger.LogError(e, $"Error caught in Fighter Combat Boosts");
}
}



}

[HarmonyPriority(Priority.Last)]
[HarmonyPatch(typeof(StartGameLoader), "LoadAllJson")]

static class StartGameLoader_LoadAllJson
{
private static bool Run = false;
Expand Down
6 changes: 5 additions & 1 deletion TomeOfTheFirebird/Config/Blueprints.json
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,11 @@
"AdoptedPipefoxFeature": "8e9fc535-4775-4512-a08a-68962f87a6d1",
"AncestralScorn": "30fb3bc6-c7d4-4609-b68a-bc47f6831f83",
"ClawTieflingRacialBuff": "f122ff39-1c07-4cf5-b1b3-4b4c5caa8c11",
"ClawTieflingRacialToggle": "032a6ce2-8492-41b9-9a48-b0ce6079a2fb"
"ClawTieflingRacialToggle": "032a6ce2-8492-41b9-9a48-b0ce6079a2fb",
"ElementalStrikesAcidBurstBuff": "db73ded7-381c-40fe-a2ba-5d5995f30345",
"ElementalStrikesColdBurstBuff": "c666499d-1fa9-45df-bf10-175b2b3de2c4",
"ElementalStrikesElectricityBurstBuff": "9821cbbd-dee1-464a-baa7-002c4786294e",
"ElementalStrikesFireBurstBuff": "e66ad7ba-fe84-43db-b9bc-f2f762c13bea"


},
Expand Down
51 changes: 51 additions & 0 deletions TomeOfTheFirebird/Helpers/InteropHelpers.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
using BlueprintCore.Blueprints.CustomConfigurators.UnitLogic.Abilities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Kingmaker.Armies.TacticalCombat.Grid.TacticalCombatGrid;

namespace TomeOfTheFirebird.Helpers
{
internal static class InteropHelpers
{
public static AbilityConfigurator AddSpellToMedium(this AbilityConfigurator spell, int level)
{
if (Settings.IsMediumMpdEnabled())
{
spell.AddToSpellList(level, "ff3e034659b64d21ac57dc0d9e893bdb", true);
}

return spell;
}

public static AbilityConfigurator AddSpellToSummoner(this AbilityConfigurator spell, int level)
{


return spell;
}

public static AbilityConfigurator AddSpellToPsychic(this AbilityConfigurator spell, int level)
{


return spell;
}

public static AbilityConfigurator AddSpellToOccultist(this AbilityConfigurator spell, int level)
{


return spell;
}

public static AbilityConfigurator AddSpellToSpiritualist(this AbilityConfigurator spell, int level)
{


return spell;
}
}
}
15 changes: 10 additions & 5 deletions TomeOfTheFirebird/Helpers/MakerTools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ public static WeaponEnchantmentConfigurator MakeWeaponEnchant(string systemName,
return enchant;
}



public static AbilityConfigurator MakeAbility(string systemName, string displayName, string description, Sprite icon, LocalizedString savestring, LocalizedString durationString)
{
Main.TotFContext.Logger.Log($"Building New Spell: {systemName}");
Expand All @@ -202,7 +204,7 @@ public static AbilityConfigurator MakeAbility(string systemName, string displayN
}



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


Expand Down Expand Up @@ -231,7 +233,9 @@ public static AbilityConfigurator MakeSpell(string systemName, string displayNam



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

Expand All @@ -241,7 +245,7 @@ public static AbilityConfigurator MakeSpell(string systemName, string displayNam
}


public static ActivatableAbilityConfigurator MakeToggle(string systemName, string displayName, string description, Sprite icon)
public static ActivatableAbilityConfigurator MakeToggle(string systemName, string displayName, string description, Sprite icon = null)
{
Main.TotFContext.Logger.Log($"Building New Toggle: {systemName}");
Kingmaker.Blueprints.BlueprintGuid guid = Main.TotFContext.Blueprints.GetGUID(systemName);
Expand All @@ -250,8 +254,9 @@ public static ActivatableAbilityConfigurator MakeToggle(string systemName, strin



ActivatableAbilityConfigurator made = ActivatableAbilityConfigurator.New(systemName, guid.ToString()).SetDisplayName(name).SetDescription(desc).SetIcon(icon);

ActivatableAbilityConfigurator made = ActivatableAbilityConfigurator.New(systemName, guid.ToString()).SetDisplayName(name).SetDescription(desc);
if (icon != null)
made.SetIcon(icon);

return made;
}
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.8",
"Version": "1.4.9",
"ManagerVersion": "0.21.3",
"AssemblyName": "TomeOfTheFirebird.dll",
"EntryMethod": "TomeOfTheFirebird.Main.Load",
Expand Down
39 changes: 39 additions & 0 deletions TomeOfTheFirebird/Localization/Spells.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[
{
"Key": "FieryRunes.Name",

"enGB": "Fiery Runes"
},
{
"Key": "FieryRunes.Desc",

"enGB": "You charge a ally with a magic rune of fire. \n When the wielder of the weapon successfully strikes a foe in melee with the weapon, the wielder can discharge the rune as a swift action to deal 1d4+1 points of fire damage to the target.This damage isn’t multiplied on a critical hit. If the target has spell resistance, you attempt a caster level check (1d20 + caster level) against that spell resistance when the rune is discharged.If the rune is successfully resisted, the rune is expended and does no damage; otherwise, the rune deals damage normally.\n For every 2 caster levels beyond 3rd the caster possesses, the rune deals an additional 1d4+1 points of fire damage(2d4+2 at caster level 5th, 3d4+3 at 7th, and so on) to a maximum of 5d4+5 points of fire damage at caster level 11th."


},
{
"Key": "FieryRuneArray.Name",

"enGB": "Fiery Rune Array"
},
{
"Key": "FieryRuneArray.Desc",

"enGB": "You charge a ally with magic runes of fire. \n When the wielder of the weapon successfully strikes a foe in melee with the weapon, the wielder can discharge a rune as a swift action to deal 1d4+1 points of fire damage to the target.This damage isn’t multiplied on a critical hit. If the target has spell resistance, you attempt a caster level check (1d20 + caster level) against that spell resistance when the rune is discharged. If the rune is successfully resisted, a rune is expended and does no damage; otherwise, the rune deals damage normally.\n For every 2 caster levels beyond 3rd the caster possesses, the rune deals an additional 1d4+1 points of fire damage(2d4+2 at caster level 5th, 3d4+3 at 7th, and so on) to a maximum of 5d4+5 points of fire damage at caster level 11th.\n The spell creates 1 rune, plus 1 per 5 caster levels, to a maximum of 5 at level 20."
},

{
"Key": "Fly.Name",
"ProcessTemplates": false,
"enGB": "Fly"
},
{
"Key": "Fly.Desc",
"ProcessTemplates": false,
"enGB": "The subject gains flight, increasing their speed by ten feet, ignoring ground effects, and gaining a +3 dodge bonus to AC against melee attacks"
}




]
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public static void AddSorcBonusFeatsToList()

FeatureSelectionConfigurator.For("66befe7b24c42dd458952e3c47c93563").AddToAllFeatures("3a60f0c0442acfb419b0c03b584e1394").Configure();
var sorcFeat = FeatureSelectionConfigurator.For("3a60f0c0442acfb419b0c03b584e1394").AddPrerequisiteArchetypeLevel("d078b2ef073f2814c9e338a789d97b73", "45a4607686d96a1498891b3286121780", false, group: Kingmaker.Blueprints.Classes.Prerequisites.Prerequisite.GroupType.Any, level: 1);
if (Settings.IsEnabled("EldritchScionSage") && PheonixBloodline.BloodlineRequisiteFeature != null)
if (Settings.IsEnabled("EldritchScionSage") && TotFBloodlineTools.BloodlineRequisiteFeature != null)
{
sorcFeat.AddPrerequisiteArchetypeLevel("EldritchScionSageArchetype", "45a4607686d96a1498891b3286121780", false, group: Kingmaker.Blueprints.Classes.Prerequisites.Prerequisite.GroupType.Any, level: 1);
}
Expand Down
Loading

0 comments on commit 5ddceea

Please sign in to comment.