Skip to content

Commit

Permalink
Added support for more spellcasting classes
Browse files Browse the repository at this point in the history
  • Loading branch information
Vek17 committed Oct 28, 2021
1 parent ce5f109 commit 534d515
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 12 deletions.
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## Version 1.9.5
* Loremaster now supports Hunter, Skald, and Warpriest

## Version 1.9.4
* Updated handling of nested activatable abilities
* Fixed issue where additional spell selections from spell blending/loremaster were not actually applying
Expand All @@ -6,7 +9,7 @@
* Steel Headbutt should now more correctly use armor enchantment values
* Aeon Bane is now a swift action instead of a free
* Aeon Gaze is now a free action instead of a swift
* Updated Diety favored weapon mechanics to fix proficency not being granted properly in some cases
* Updated Deity favored weapon mechanics to fix proficiency not being granted properly in some cases

## Version 1.9.3a
* Fixed issue with Oracle curse progression moving at the wrong rate
Expand Down
9 changes: 9 additions & 0 deletions TabletopTweaks/Config/Blueprints.json
Original file line number Diff line number Diff line change
Expand Up @@ -267,29 +267,35 @@
"LoremasterClericSecretBard_TTT": "92265d68-63cc-4d4a-ab6d-b4c35cc5791c",
"LoremasterClericSecretBloodrager_TTT": "55ca8409-5848-43c0-bbe2-0f0596b9c64f",
"LoremasterClericSecretDruid_TTT": "a8fc95c3-3732-49da-8726-9a1f02edc520",
"LoremasterClericSecretHunter_TTT": "f3bef0b4-ec3b-4a39-a998-0df10bfcde74",
"LoremasterClericSecretInquisitor_TTT": "05ee79e6-3457-49ec-8c89-a78bff8c49e0",
"LoremasterClericSecretMagus_TTT": "2ace25ba-5ab0-4e19-9c8f-a8b36ca5141d",
"LoremasterClericSecretOracle_TTT": "06b97975-5e71-43a6-9db9-096914273cde",
"LoremasterClericSecretPaladin_TTT": "37727412-4c1e-44df-af02-597e8560b31d",
"LoremasterClericSecretRanger_TTT": "de63b000-3335-434f-8521-a23df913cb68",
"LoremasterClericSecretRogue_TTT": "28a509f7-ae4a-48d7-a45b-76abcc315b0c",
"LoremasterClericSecretShaman_TTT": "be35c1fd-8a1d-41fc-baea-e3fb22f3ad6e",
"LoremasterClericSecretSkald_TTT": "0bdad457-cb91-4860-b700-9fa4b3ee2092",
"LoremasterClericSecretSorcerer_TTT": "4533fc02-cecc-4d49-99da-8c051568ec55",
"LoremasterClericSecretWarpriest_TTT": "7b5f4ae0-a377-40dd-ba2d-5db66b4f69f6",
"LoremasterClericSecretWitch_TTT": "bf411659-1712-4528-a578-43affcf796d3",
"LoremasterClericSecretWizard_TTT": "6091d904-697e-4ef7-ba6d-e25b31cd9bef",
"LoremasterClericSpellSecret_TTT": "54734d2f-5954-42e8-ab61-a9a3e3c3c558",
"LoremasterDruidSecretArcanist_TTT": "6f020da7-1857-427f-9905-e04486f36e08",
"LoremasterDruidSecretBard_TTT": "121f16ed-4759-4b2e-a051-d1b14f2e5603",
"LoremasterDruidSecretBloodrager_TTT": "4e2eeb73-a846-4f34-b970-4223ba8cc60f",
"LoremasterDruidSecretCleric_TTT": "7889d930-2737-451f-a623-e0588f028aa4",
"LoremasterDruidSecretHunter_TTT": "c749d924-5bc2-45a2-ab2b-7f9e2de4684c",
"LoremasterDruidSecretInquisitor_TTT": "57320b4a-7bd4-4582-9a35-eaab3e6897b7",
"LoremasterDruidSecretMagus_TTT": "e8432582-f83a-438b-94db-b93971c0c3b5",
"LoremasterDruidSecretOracle_TTT": "94e08b7c-0b52-4535-be19-93f1f91d2dea",
"LoremasterDruidSecretPaladin_TTT": "2db6e5a9-883d-403b-a793-464752e55952",
"LoremasterDruidSecretRanger_TTT": "24a826b3-2cbe-405f-b1af-b4a228131fcf",
"LoremasterDruidSecretRogue_TTT": "a8b7df14-706d-46db-91bc-dac786b07530",
"LoremasterDruidSecretShaman_TTT": "93a45667-bc9d-40f1-8b70-f7311e4dc3b0",
"LoremasterDruidSecretSkald_TTT": "5cb4495c-110c-4e64-9aa2-5b3c5bf31bc8",
"LoremasterDruidSecretSorcerer_TTT": "4610b770-8d26-4b8f-953c-8d9e92f7d4f0",
"LoremasterDruidSecretWarpriest_TTT": "86dd868f-ecbd-4f76-9470-0f9d84a2e5a3",
"LoremasterDruidSecretWitch_TTT": "0139fa7a-aa3e-4e39-a77f-7ed621addd95",
"LoremasterDruidSecretWizard_TTT": "df97e431-fc0a-456c-923d-ef6c43c7606b",
"LoremasterDruidSpellSecret_TTT": "a3e76f85-766b-44c9-968f-2be6f9c8b7ea",
Expand Down Expand Up @@ -341,13 +347,16 @@
"LoremasterWizardSecretCleric_TTT": "eb457257-c899-4c4a-9c0b-bbcad79a04c7",
"LoremasterWizardSecretDruid_TTT": "6b375d60-570e-4595-8eda-57f2667f6a6c",
"LoremasterWizardSecretInquisitor_TTT": "65d34997-52d8-4480-b040-166f579de531",
"LoremasterWizardSecretHunter_TTT": "4179ef91-5aee-406c-a04c-d2a066460958",
"LoremasterWizardSecretMagus_TTT": "b8cb3d4d-ee18-499f-9bf7-027705a2ab82",
"LoremasterWizardSecretOracle_TTT": "ea7792e5-76d2-41a4-822d-c5ed0c559574",
"LoremasterWizardSecretPaladin_TTT": "940a2204-102d-4b81-9476-90a8eac28b8b",
"LoremasterWizardSecretRanger_TTT": "3c5fc0db-68ae-4859-99b8-8a9ec7baf709",
"LoremasterWizardSecretRogue_TTT": "007d694e-13fd-4b24-bc07-6603a587ff3d",
"LoremasterWizardSecretShaman_TTT": "9317e0cd-f7fa-4e2f-9cee-c229f927dc31",
"LoremasterWizardSecretSkald_TTT": "3613d1ce-2f15-47f5-a3d8-fb6d45e7f0d4",
"LoremasterWizardSecretSorcerer_TTT": "a96a42de-5a3f-4bf1-ad45-9042eb6d93e9",
"LoremasterWizardSecretWarpriest_TTT": "c73e95f6-5551-4ba5-bd74-4659195c1e3c",
"LoremasterWizardSecretWitch_TTT": "6566b6e9-3e1a-41f6-a2af-ecc0f1a7245c",
"LoremasterWizardSecretWizard_TTT": "e6c0fee8-d24c-4d36-ab94-88c57ebd22c5",
"LoremasterWizardSpellSecret_TTT": "c7078426-a721-4da2-a864-61ccc1ba135e",
Expand Down
22 changes: 11 additions & 11 deletions TabletopTweaks/NewContent/Classes/Loremaster.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Kingmaker.Utility;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using TabletopTweaks.Extensions;
using TabletopTweaks.NewComponents;
using TabletopTweaks.NewComponents.Prerequisites;
Expand Down Expand Up @@ -41,33 +42,32 @@ void CreateSpellSecretSelection(BlueprintFeatureSelection secret) {
spellSecret.AddFeatures(CreateSpellSecretClasses(secret));
}
BlueprintFeature[] CreateSpellSecretClasses(BlueprintFeatureSelection secretSelection) {
return secretSelection.m_AllFeatures.Select(feature => {
var secret = feature.Get() as BlueprintParametrizedFeature;
var name = $"{secret.name}_TTT";
var secret = secretSelection.m_AllFeatures.First().Get() as BlueprintParametrizedFeature;
return SpellTools.SpellCastingClasses.AllClasses.Select(castingClass => {
var name = $"{secretSelection.name.Replace("Selection", "").Replace("Spell","")}{castingClass.Name}_TTT";
if (Regex.Matches(name, "Cleric").Count > 1 || Regex.Matches(name, "Druid").Count > 1) {
return null;
}
var spellSecret = Helpers.CreateBlueprint<BlueprintFeature>(name, bp => {
bp.SetName($"{secretSelection.Name}{secret.Name}");
bp.SetName($"{secretSelection.Name}{castingClass.Name}");
bp.m_Description = secretSelection.m_Description;
bp.IsClassFeature = true;
bp.Groups = secret.Groups;
bp.HideNotAvailibleInUI = true;
bp.AddComponent<AdditionalSpellSelection>(c => {
c.m_SpellCastingClass = secret.m_SpellcasterClass;
c.m_SpellCastingClass = castingClass.ToReference<BlueprintCharacterClassReference>();
c.m_SpellList = secret.m_SpellList;
c.UseOffset = true;
c.Count = 1;
});
bp.AddComponent<PrerequisiteClassSpellLevel>(c => {
c.m_CharacterClass = secret.GetComponent<PrerequisiteFeaturesFromList>()
.m_Features
.First().Get()
.GetComponent<PrerequisiteClassSpellLevel>()
.m_CharacterClass; ;
c.m_CharacterClass = castingClass.ToReference<BlueprintCharacterClassReference>();
c.RequiredSpellLevel = 1;
c.HideInUI = true;
});
});
return spellSecret;
}).ToArray();
}).Where(secret => secret != null).ToArray();
}

void CreateSpellbookSelection() {
Expand Down

0 comments on commit 534d515

Please sign in to comment.