diff --git a/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/AddCreaturetoParty.lua b/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/AddCreaturetoParty.lua index da0a1285..b23370c8 100644 --- a/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/AddCreaturetoParty.lua +++ b/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/AddCreaturetoParty.lua @@ -44,6 +44,19 @@ local function GetAllPlayers() return players end +local function GetPartyFollowerRows() + if not Osi.DB_PartyFollowers or not Osi.DB_PartyFollowers.Get then + return nil + end + + local ok, rows = pcall(Osi.DB_PartyFollowers.Get, Osi.DB_PartyFollowers, nil, nil) + if not ok then + return nil + end + + return rows +end + local function HasRecruitStatus(target) if not target or target == "" then return false end @@ -64,7 +77,7 @@ end local function IsTrackedFollower(target) if not target or target == "" then return false end - local rows = SafeCall(Osi.DB_PartyFollowers.Get, Osi.DB_PartyFollowers, nil, nil) + local rows = GetPartyFollowerRows() if not rows then return false end for _, row in pairs(rows) do @@ -133,9 +146,9 @@ end local function RebuildOwnersFromPartyFollowers() Owner = {} - local rows = SafeCall(Osi.DB_PartyFollowers.Get, Osi.DB_PartyFollowers, nil, nil) + local rows = GetPartyFollowerRows() if not rows then - Ext.Utils.PrintError("[Recruit/Cleanup] Failed to read DB_PartyFollowers during rebuild.") + Ext.Utils.Print("[Recruit/Cleanup] DB_PartyFollowers unavailable during rebuild; skipping.") return end @@ -152,7 +165,7 @@ local function RebuildOwnersFromPartyFollowers() end local function CleanupInvalidFollowers() - local rows = SafeCall(Osi.DB_PartyFollowers.Get, Osi.DB_PartyFollowers, nil, nil) + local rows = GetPartyFollowerRows() if not rows then return end for _, row in pairs(rows) do diff --git a/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/JWL_ItemDistribution.lua b/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/JWL_ItemDistribution.lua index 17764182..0240b234 100644 --- a/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/JWL_ItemDistribution.lua +++ b/Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/JWL_ItemDistribution.lua @@ -32,7 +32,7 @@ local function OnSessionLoaded() npcMapKey = "67770922-5e0a-40c5-b3f0-67e8eb50493a", itemName = "Empowered Guardian Emblem", itemUUID = "68ae2a78-57fc-4a10-9271-afe10dcc50c0", - addEquip = true + addEquip = false }, { npcName = "Astral Prism Potion Pouch", diff --git a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BlazingFissure.DDS b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BlazingFissure.DDS index 009bb392..a34c0435 100644 Binary files a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BlazingFissure.DDS and b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BlazingFissure.DDS differ diff --git a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BloodVendetta.DDS b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BloodVendetta.DDS index 5aac611e..1b5ece43 100644 Binary files a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BloodVendetta.DDS and b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_BloodVendetta.DDS differ diff --git a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp.DDS b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp.DDS index d6f0e819..4a9073a6 100644 Binary files a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp.DDS and b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp.DDS differ diff --git a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp_Ranged.DDS b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp_Ranged.DDS index 4bcc85f4..aaa248d0 100644 Binary files a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp_Ranged.DDS and b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_2e_FlameWisp_Ranged.DDS differ diff --git a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_Evocation_SeveringEldritchBlast.DDS b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_Evocation_SeveringEldritchBlast.DDS index ccab57a5..e43b348a 100644 Binary files a/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_Evocation_SeveringEldritchBlast.DDS and b/Home Brew - Comprehensive Reworks/Public/Game/GUI/Assets/Tooltips/Icons/Spell_Evocation_SeveringEldritchBlast.DDS differ diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Cleric) - Spell_Target.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Cleric) - Spell_Target.txt index c80fb2f9..fc7899c8 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Cleric) - Spell_Target.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Cleric) - Spell_Target.txt @@ -74,14 +74,14 @@ data "Level" "0" data "SpellSchool" "Evocation" data "SpellProperties" "ApplyStatus(STRIKINGIRON_VFX,100,1);IF(HasPassive('BrazenEmbers', context.Source)):ApplyStatus(STRIKINGIRON_ADVANTAGE,100,3);IF(HasPassive('Smeltsong', context.Source)):ApplyStatus(BURNING_LAVA,100,3);GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(LevelMapValue(D8Cantrip),Fire,Magical);ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip),Fire,Magical);ExecuteWeaponFunctors(MainHand)" data "AreaRadius" "3" data "TargetConditions" "not Self() and not Dead() and not (HasPassive('SculptSpells', context.Source) and Ally() or HasPassive('Metamagic_Careful', context.Source) and Ally() or HasPassive('Dunesis', context.Source) and Ally() or HasPassive('AT_MeasuredArcana', context.Source) and Ally() or HasPassive('Summon_Dunesis', context.Source) and Ally())" data "Icon" "ForgeDomain_StrikingIron" data "DisplayName" "h695df0c5g7b1eg47a16se8f5e6f5e8f898z2;1" data "Description" "h3063c312g64f5g471a6sd5f2ef5d4fe5f2zb;2" data "DescriptionParams" "Distance(3)" -data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip),Fire)" data "TooltipPermanentWarnings" "57224a27-61e3-4986-861e-9f8efd235741" data "TooltipStatusApply" "ApplyStatus(STRIKINGIRON,100,1)" data "PrepareSound" "Spell_Prepare_Barbarian_ElementalCleaver_Fire" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Projectile.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Projectile.txt index d2d4a512..0c9484db 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Projectile.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Projectile.txt @@ -78,8 +78,8 @@ data "Icon" "GenericIcon_DamageType_Acid" data "DisplayName" "h2e8de670g9f71g4d53ga652ga2816de00z13;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c09c2100z1c;7" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Acid,Magical);GROUND:ExecuteWeaponFunctors(MainHand);GROUND:CreateSurface(3,3,Acid,false);TARGET:ApplyStatus(ACID,100,1)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Acid,Magical); ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Acid,Magical);GROUND:ExecuteWeaponFunctors(MainHand);GROUND:CreateSurface(3,3,Acid,false);TARGET:ApplyStatus(ACID,100,1)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Acid,Magical); ExecuteWeaponFunctors(MainHand)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Acid)" data "TooltipAttackSave" "RangedWeaponAttack" @@ -156,8 +156,8 @@ data "DisplayName" "h2e8de670g9f71g4d53ga652ga2816de00z33;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c09c2100z3c;1" data "DescriptionParams" "Distance(3)" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Fire,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Fire,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(SELF,MAG_FIRE_HEAT,100,3);ApplyStatus(SELF,MAG_FIRE_HEAT_DURATION_TECHNICAL,100,1)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Fire,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Fire,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(SELF,MAG_FIRE_HEAT,100,3);ApplyStatus(SELF,MAG_FIRE_HEAT_DURATION_TECHNICAL,100,1)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Fire)" data "TooltipStatusApply" "ApplyStatus(MAG_FIRE_HEAT,100,3)" @@ -242,8 +242,8 @@ data "Icon" "GenericIcon_DamageType_Poison" data "DisplayName" "h2e8de670g9f71g4d53ga652ga2816de00z73;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c09c2100z7c;1" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Poison,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Poison,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(POISONED,100,1)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Poison,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Poison,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(POISONED,100,1)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Poison)" data "TooltipStatusApply" "ApplyStatus(POISONED,100,1)" @@ -281,8 +281,8 @@ data "Icon" "GenericIcon_DamageType_Psychic" data "DisplayName" "h2e8de670g9f71g4d53ga652ga2816de00z83;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c09c2100z8c;1" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(DAZED,100,1)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(DAZED,100,1)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Psychic)" data "TooltipStatusApply" "ApplyStatus(DAZED,100,1)" @@ -322,8 +322,8 @@ data "Icon" "GenericIcon_DamageType_Radiant" data "DisplayName" "h2e8de670g9f71g4d53ga652ga2816de00z93;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c09c2100z9c;1" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Radiant,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true);IF(not Tagged('ABERRATION') and not Tagged('FEY') and not Tagged('FIEND') and not Tagged('UNDEAD')):DealDamage(LevelMapValue(D8Cantrip), Radiant,Magical);IF(Tagged('ABERRATION') or Tagged('FEY') or Tagged('FIEND') or Tagged('UNDEAD')):DealDamage(LevelMapValue(D8Cantrip)*2, Radiant,Magical);ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Radiant,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType);IF(not Tagged('ABERRATION') and not Tagged('FEY') and not Tagged('FIEND') and not Tagged('UNDEAD')):DealDamage(LevelMapValue(D8Cantrip), Radiant,Magical);IF(Tagged('ABERRATION') or Tagged('FEY') or Tagged('FIEND') or Tagged('UNDEAD')):DealDamage(LevelMapValue(D8Cantrip)*2, Radiant,Magical);ExecuteWeaponFunctors(MainHand)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Radiant)" data "TooltipAttackSave" "RangedWeaponAttack" @@ -363,8 +363,8 @@ data "DisplayName" "h2e8de670g9f71g4d53ga652ga2816de0z103;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c09c210z10c;1" data "DescriptionParams" "Distance(9)" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical); ExecuteWeaponFunctors(MainHand);Force(-9)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical); ExecuteWeaponFunctors(MainHand);Force(-9)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Thunder)" data "TooltipAttackSave" "RangedWeaponAttack" @@ -401,8 +401,8 @@ data "Icon" "GenericIcon_DamageType_Acid" data "DisplayName" "h2e8de670g9f71g4d53ga652ga28focused13;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c0focused1c;7" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Acid,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Acid,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(CORROSIVES_SPIT_DILOPHOSAURS_1,100,1)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Acid,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Acid,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(CORROSIVES_SPIT_DILOPHOSAURS_1,100,1)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Acid)" data "TooltipAttackSave" "RangedWeaponAttack" @@ -439,8 +439,8 @@ data "Icon" "GenericIcon_DamageType_Cold" data "DisplayName" "h2e8de670g9f71g4d53ga652ga28focused23;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c0focused2c;7" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D4Cantrip), Cold,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D4Cantrip), Cold,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(RAY_OF_FROST,100,1)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D4Cantrip), Cold,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D4Cantrip), Cold,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(RAY_OF_FROST,100,1)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D4Cantrip), Cold)" data "TooltipStatusApply" "ApplyStatus(RAY_OF_FROST,100,1)" @@ -482,8 +482,8 @@ data "DisplayName" "h2e8de670g9f71g4d53ga652ga28focused33;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c0focused3c;1" data "DescriptionParams" "Distance(3)" data "SpellRoll" "not SavingThrow(Ability.Dexterity, ManeuverSaveDC())" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D4Cantrip), Fire,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D4Cantrip), Fire,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(BURNING,100,3)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D4Cantrip), Fire,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D4Cantrip), Fire,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(BURNING,100,3)" data "SpellFail" "DealDamage((max(1,MainRangedWeapon))/2, MainRangedWeaponDamageType); DealDamage(LevelMapValue(D4Cantrip)/2, Fire,Magical); ExecuteWeaponFunctors(MainHand)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D4Cantrip), Fire)" @@ -524,8 +524,8 @@ data "DisplayName" "h2e8de670g9f71g4d53ga652ga2816de00z53;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c09c2100z5c;1" data "DescriptionParams" "Distance(18)" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical); ExecuteWeaponFunctors(MainHand);SpawnExtraProjectiles(Projectile_ElementalFletching_Lightning_Explosion)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical); ExecuteWeaponFunctors(MainHand);SpawnExtraProjectiles(Projectile_ElementalFletching_Lightning_Explosion)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Lightning)" data "TooltipAttackSave" "RangedWeaponAttack" @@ -607,8 +607,8 @@ data "Icon" "GenericIcon_DamageType_Poison" data "DisplayName" "h2e8de670g9f71g4d53ga652ga28focused73;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c0focused7c;1" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Poison,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Poison,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(CONTAGION_FLESH_ROT_COUNTDOWN,100,3)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Poison,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Poison,Magical); ExecuteWeaponFunctors(MainHand);ApplyStatus(CONTAGION_FLESH_ROT_COUNTDOWN,100,3)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Poison)" data "TooltipStatusApply" "ApplyStatus(CONTAGION_FLESH_ROT_COUNTDOWN,100,3)" @@ -682,8 +682,8 @@ data "DisplayName" "h2e8de670g9f71g4d53ga652ga28focused03;1" data "Description" "hf12dfcdfg3774g4f31g849cg8c0focused0c;1" data "DescriptionParams" "Distance(9)" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical); ExecuteWeaponFunctors(MainHand);Force(9)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Thunder,Magical); ExecuteWeaponFunctors(MainHand);Force(9)" data "ProjectileCount" "1" data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Thunder)" data "TooltipAttackSave" "RangedWeaponAttack" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Rush.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Rush.txt index bf2d8cf2..9a33c3bf 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Rush.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Rush.txt @@ -9,7 +9,7 @@ data "TargetRadius" "9" data "HitRadius" "1.5" data "MovementSpeed" "80000" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(LevelMapValue(D4Cantrip), Fire)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D4Cantrip), Fire)" data "TargetConditions" "not Self() and not Dead()" data "Icon" "Spell_2e_FlameWisp_Ranged" data "DisplayName" "h8df49fb1g13acg4b8asdfwe968f4s6e000z3;3" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Target.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Target.txt index 3e0b7fd8..36b7597e 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Target.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Target.txt @@ -5,7 +5,7 @@ type "SpellData" data "SpellType" "Target" data "Level" "0" data "SpellSchool" "Evocation" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);GROUND:ExecuteWeaponFunctors(MainHand);GROUND:TeleportSource()" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand);GROUND:TeleportSource()" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Fire)" data "TargetRadius" "9" @@ -44,7 +44,7 @@ using "Target_MainHandAttack" data "Level" "0" data "SpellSchool" "Evocation" data "TargetRadius" "MeleeMainWeaponRange" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D12Cantrip), Fire)" data "Icon" "Spell_2e_FlameWisp" @@ -332,7 +332,7 @@ data "SpellType" "Target" using "Target_MainHandAttack" data "TargetRadius" "MeleeMainWeaponRange" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand);IF(not Player(context.Source)):ApplyStatus(SELF,MANEUVER_BLOCKER,100,1)" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellSuccess" "IF(not SavingThrow(Ability.Wisdom, SourceSpellDC(),AdvantageOnFrightened(), DisadvantageOnFrightened())):ApplyStatus(FRIGHTENED,100,1);DealDamage(MainMeleeWeapon + LevelMapValue(SuperiorityDie), MainMeleeWeaponDamageType); ExecuteWeaponFunctors(MainHand)" data "TargetConditions" "not Self() and not Dead()" data "Icon" "Action_MenacingAttack_Melee" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Zone.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Zone.txt index 724aab6f..d62e8b0a 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Zone.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Zone.txt @@ -10,9 +10,9 @@ data "SurfaceLifetime" "0" data "SurfaceGrowStep" "5" data "SurfaceGrowInterval" "10" data "SpellRoll" "not SavingThrow(Ability.Dexterity, ManeuverSaveDC())" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical); ExecuteWeaponFunctors(MainHand)" -data "SpellFail" "DealDamage((max(1,MainRangedWeapon))/2, MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip)/2, Lightning,Magical); ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical); ExecuteWeaponFunctors(MainHand)" +data "SpellFail" "DealDamage((max(1,MainRangedWeapon))/2, MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip)/2, Lightning,Magical); ExecuteWeaponFunctors(MainHand)" data "TargetConditions" "not Dead() and not (HasPassive('SculptSpells', context.Source) and Ally() or HasPassive('Metamagic_Careful', context.Source) and Ally() or HasPassive('Dunesis', context.Source) and Ally() or HasPassive('AT_MeasuredArcana', context.Source) and Ally() or HasPassive('Summon_Dunesis', context.Source) and Ally())" data "Icon" "GenericIcon_DamageType_Lightning" data "DisplayName" "h2e8de670g9f71g4d53ga652ga28focused53;1" @@ -61,9 +61,9 @@ data "SurfaceLifetime" "0" data "SurfaceGrowStep" "5" data "SurfaceGrowInterval" "10" data "SpellRoll" "not SavingThrow(Ability.Intelligence, ManeuverSaveDC())" -data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" -data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical); ExecuteWeaponFunctors(MainHand)" -data "SpellFail" "DealDamage((max(1,MainRangedWeapon))/2, MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip)/2, Psychic,Magical); ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);GROUND:DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical); ExecuteWeaponFunctors(MainHand)" +data "SpellFail" "DealDamage((max(1,MainRangedWeapon))/2, MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip)/2, Psychic,Magical); ExecuteWeaponFunctors(MainHand)" data "TargetConditions" "not Dead() and not (HasPassive('SculptSpells', context.Source) and Ally() or HasPassive('Metamagic_Careful', context.Source) and Ally() or HasPassive('Dunesis', context.Source) and Ally() or HasPassive('AT_MeasuredArcana', context.Source) and Ally() or HasPassive('Summon_Dunesis', context.Source) and Ally())" data "Icon" "GenericIcon_DamageType_Psychic" data "DisplayName" "h2e8de670g9f71g4d53ga652ga28focused83;1" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Sorcerer) - Passive.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Sorcerer) - Passive.txt index f934d98d..ebdc447b 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Sorcerer) - Passive.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Sorcerer) - Passive.txt @@ -441,7 +441,7 @@ data "Icon" "Spell_2e_ImpeccableFlow" data "Properties" "Highlighted;ForceShowInCC" data "StatsFunctorContext" "OnDamage" data "Conditions" "Character() and not Self() and not Ally() and not HasStatus('MADNESS', context.Target) and not HasStatus('LOCKDOWN_CONDITION', context.Target)" -data "StatsFunctors" "IF(not SavingThrow(Ability.Wisdom, SourceSpellDC())):ApplyStatus(MADNESS,100,1)" +data "StatsFunctors" "IF(not SavingThrow(Ability.Wisdom, CalculateSpellDC(Ability.Charisma, context.Source))):ApplyStatus(MADNESS,100,1)" new entry "WinterHarvest" type "PassiveData" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Warlock) - Spell_Target.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Warlock) - Spell_Target.txt index 95af2562..d90018c1 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Warlock) - Spell_Target.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Warlock) - Spell_Target.txt @@ -1044,9 +1044,9 @@ using "Target_MainHandAttack" data "Level" "1" data "SpellSchool" "Evocation" data "TargetRadius" "1.5" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(1d12+8,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasPassive('EldritchOverflow', context.Source) and not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasPassive('EldritchSurge', context.Source) and not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasPassive('EldritchSurge', context.Source) and not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(1d12+8,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasPassive('EldritchOverflow', context.Source) and not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasPassive('EldritchSurge', context.Source) and not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasPassive('EldritchSurge', context.Source) and not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" data "TargetConditions" "not Self() and not Dead()" data "Icon" "Action_Mag_GoadingBlast" data "DisplayName" "hcbb02b50g75d3g468fgacb6gb7c74s56df2e;1" @@ -1075,8 +1075,8 @@ type "SpellData" data "SpellType" "Target" using "Target_EldritchStrike" data "Level" "2" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(2d12+16,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" -data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(2d12+16,Force)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(2d12+16,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(2d12+16,Force)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:2" data "RootSpellID" "Target_EldritchStrike" data "PowerLevel" "2" @@ -1087,8 +1087,8 @@ type "SpellData" data "SpellType" "Target" using "Target_EldritchStrike" data "Level" "3" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(3d12+24,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" -data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(3d12+24,Force)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(3d12+24,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(3d12+24,Force)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:3" data "RootSpellID" "Target_EldritchStrike" data "PowerLevel" "3" @@ -1099,8 +1099,8 @@ type "SpellData" data "SpellType" "Target" using "Target_EldritchStrike" data "Level" "4" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(4d12+32,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" -data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(4d12+32,Force)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(4d12+32,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(4d12+32,Force)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:4" data "RootSpellID" "Target_EldritchStrike" data "PowerLevel" "4" @@ -1111,8 +1111,8 @@ type "SpellData" data "SpellType" "Target" using "Target_EldritchStrike" data "Level" "5" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(5d12+40,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" -data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(5d12+40,Force)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(5d12+40,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(5d12+40,Force)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:5" data "RootSpellID" "Target_EldritchStrike" data "PowerLevel" "5" @@ -1123,8 +1123,8 @@ type "SpellData" data "SpellType" "Target" using "Target_EldritchStrike" data "Level" "6" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(6d12+48,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" -data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(6d12+48,Force)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(6d12+48,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(6d12+48,Force)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:6" data "RootSpellID" "Target_EldritchStrike" data "PowerLevel" "6" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Wizard) - Spell_Projectile.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Wizard) - Spell_Projectile.txt index 12c8d30c..79d3c48b 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Wizard) - Spell_Projectile.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Wizard) - Spell_Projectile.txt @@ -7,9 +7,9 @@ data "Level" "0" data "SpellSchool" "Evocation" data "TargetFloor" "-1" data "TargetRadius" "18" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(max(1,MainMeleeWeapon), MainMeleeWeaponDamageType,,,0,,true);ExecuteWeaponFunctors(MainHand)" +data "SpellSuccess" "DealDamage(max(1,MainMeleeWeapon), MainMeleeWeaponDamageType);ExecuteWeaponFunctors(MainHand)" data "TargetConditions" "not Self() and not Dead()" data "ProjectileCount" "1" data "CastTargetHitDelay" "100" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Feats Reworked - Spell_Target.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Feats Reworked - Spell_Target.txt index 21607164..0ef2316f 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Feats Reworked - Spell_Target.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Feats Reworked - Spell_Target.txt @@ -70,9 +70,9 @@ using "Target_MainHandAttack" data "Level" "0" data "SpellSchool" "Evocation" data "TargetRadius" "1.5" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical);SpawnExtraProjectiles(Projectile_WitchBolt_Galvanized)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip), Lightning,Magical);SpawnExtraProjectiles(Projectile_WitchBolt_Galvanized)" data "TargetConditions" "not Self() and not Dead()" data "Icon" "Spell_2e_DrawTheLightning" data "DisplayName" "hcbb02b50g75d3g468fgacb6gs6e54fe65f25;1" @@ -189,7 +189,7 @@ data "Level" "0" data "SpellSchool" "Evocation" data "TargetRadius" "1.5" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);ExecuteWeaponFunctors(MainHand);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0);DealDamage(LevelMapValue(D8Cantrip),Radiant,Magical); ApplyStatus(BURNING_HOLY, 100, -1)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);ExecuteWeaponFunctors(MainHand);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0);DealDamage(LevelMapValue(D8Cantrip),Radiant,Magical); ApplyStatus(BURNING_HOLY, 100, -1)" data "Icon" "Spell_Evocation_LunarSmite" data "DisplayName" "h4d353f31g6d0bg480fg9f83gf19c75e1217b;2" data "Description" "h90e2ebe0g1948g4e17g8f0fg70121c9fd858;2" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Projectile.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Projectile.txt index de45125c..e01cb570 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Projectile.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Projectile.txt @@ -2726,7 +2726,7 @@ data "TargetFloor" "-1" data "TargetRadius" "18" data "ExplodeRadius" "3" data "SpellRoll" "Attack(AttackType.RangedWeaponAttack)" -data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(1d6+4,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(1d6+4,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" +data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(1d6+4,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(1d6+4,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" data "TargetConditions" "not Dead() and not (HasPassive('SculptSpells', context.Source) and Ally() or HasPassive('Metamagic_Careful', context.Source) and Ally() or HasPassive('Dunesis', context.Source) and Ally() or HasPassive('AT_MeasuredArcana', context.Source) and Ally() or HasPassive('Summon_Dunesis', context.Source) and Ally())" data "ProjectileCount" "1" data "Trajectories" "512a30e4-8f8b-464a-b626-4428d1d1ec18" @@ -2764,8 +2764,8 @@ new entry "Projectile_LightningArrow_2" type "SpellData" data "SpellType" "Projectile" using "Projectile_LightningArrow" -data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(2d6+8,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(2d6+8,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" -data "TooltipDamageList" "DealDamage(2d6+8,Lightning)" +data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(2d6+8,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(2d6+8,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" +data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(2d6+8,Lightning)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:2" data "RootSpellID" "Projectile_LightningArrow" data "PowerLevel" "2" @@ -2775,8 +2775,8 @@ new entry "Projectile_LightningArrow_3" type "SpellData" data "SpellType" "Projectile" using "Projectile_LightningArrow" -data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(3d6+12,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(3d6+12,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" -data "TooltipDamageList" "DealDamage(3d6+12,Lightning)" +data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(3d6+12,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(3d6+12,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" +data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(3d6+12,Lightning)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:3" data "RootSpellID" "Projectile_LightningArrow" data "PowerLevel" "3" @@ -2786,8 +2786,8 @@ new entry "Projectile_LightningArrow_4" type "SpellData" data "SpellType" "Projectile" using "Projectile_LightningArrow" -data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(4d6+16,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(4d6+16,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" -data "TooltipDamageList" "DealDamage(4d6+16,Lightning)" +data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(4d6+16,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(4d6+16,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" +data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(4d6+16,Lightning)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:4" data "RootSpellID" "Projectile_LightningArrow" data "PowerLevel" "4" @@ -2797,8 +2797,8 @@ new entry "Projectile_LightningArrow_5" type "SpellData" data "SpellType" "Projectile" using "Projectile_LightningArrow" -data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(5d6+20,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(5d6+20,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" -data "TooltipDamageList" "DealDamage(5d6+20,Lightning)" +data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(5d6+20,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(5d6+20,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" +data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(5d6+20,Lightning)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:5" data "RootSpellID" "Projectile_LightningArrow" data "PowerLevel" "5" @@ -2808,8 +2808,8 @@ new entry "Projectile_LightningArrow_6" type "SpellData" data "SpellType" "Projectile" using "Projectile_LightningArrow" -data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(6d6+24,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(6d6+24,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" -data "TooltipDamageList" "DealDamage(6d6+24,Lightning)" +data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(6d6+24,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(6d6+24,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)" +data "TooltipDamageList" "DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);DealDamage(6d6+24,Lightning)" data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:6" data "RootSpellID" "Projectile_LightningArrow" data "PowerLevel" "6" diff --git a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Target.txt b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Target.txt index 79b35bcc..87350059 100644 --- a/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Target.txt +++ b/Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Target.txt @@ -516,9 +516,9 @@ using "Target_MainHandAttack" data "Level" "0" data "SpellSchool" "Evocation" data "TargetRadius" "1.5" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(LevelMapValue(D8Cantrip),Fire,Magical);SpawnExtraProjectiles(Projectile_GreenFlameBlade)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip),Fire,Magical);SpawnExtraProjectiles(Projectile_GreenFlameBlade)" data "Icon" "Spell_Evocation_GreenFlameBlade" data "DisplayName" "06ccff5b74f84871a26d66436d5da6d500006;1" data "Description" "aa20553d362b4ff6b5d95c70e4e37e590000f;1" @@ -945,9 +945,9 @@ using "Target_MainHandAttack" data "Level" "0" data "SpellSchool" "Evocation" data "TargetRadius" "1.5" -data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);GROUND:ExecuteWeaponFunctors(MainHand)" +data "SpellProperties" "GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)" data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)" -data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(LevelMapValue(D8Cantrip),Thunder,Magical);ApplyStatus(BOOMING_BLADE,100,1)" +data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip),Thunder,Magical);ApplyStatus(BOOMING_BLADE,100,1)" data "Icon" "Spell_Evocation_BoomingBlade" data "DisplayName" "06ccff5b74f84871a26d66436d5da6d500001;1" data "Description" "aa20553d362b4ff6b5d95c70e4e37e590000a;1" @@ -10909,6 +10909,7 @@ type "SpellData" data "SpellType" "Target" using "Target_EnsnaringStrike" data "SpellSuccess" "IF(not SavingThrow(Ability.Strength,SourceSpellDC(),AdvantageOnRestrained(),DisadvantageOnRestrained())):ApplyStatus(ENSNARING_STRIKE_5,100,3);DealDamage(MainMeleeWeapon,MainMeleeWeaponDamageType);ExecuteWeaponFunctors(MainHand)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType)" data "TooltipStatusApply" "ApplyStatus(ENSNARING_STRIKE_5,100,3)" data "RootSpellID" "Target_EnsnaringStrike" data "PowerLevel" "5" @@ -10920,6 +10921,7 @@ type "SpellData" data "SpellType" "Target" using "Target_EnsnaringStrike" data "SpellSuccess" "IF(not SavingThrow(Ability.Strength,SourceSpellDC(),AdvantageOnRestrained(),DisadvantageOnRestrained())):ApplyStatus(ENSNARING_STRIKE_6,100,3);DealDamage(MainMeleeWeapon,MainMeleeWeaponDamageType);ExecuteWeaponFunctors(MainHand)" +data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType)" data "TooltipStatusApply" "ApplyStatus(ENSNARING_STRIKE_6,100,3)" data "RootSpellID" "Target_EnsnaringStrike" data "PowerLevel" "6" diff --git a/OtherSuggestions.md b/OtherSuggestions.md new file mode 100644 index 00000000..06532087 --- /dev/null +++ b/OtherSuggestions.md @@ -0,0 +1,95 @@ +## Balance Feedback and Suggestions + +Several parts of the current balance ecosystem create dead choices: control builds cannot keep up with Mythic bonuses, several caster paths do not receive enough support, some Monk and Fighter subclasses have weak high-level features, and weapon itemization is uneven across acts. Please consider the points below as direct balance feedback for future revisions. + +## Main Points + +### 1. Control Builds + +**Problem:** Control builds are nonviable. Even a character stacked with strong gear, feats, and starting traits only reaches a save DC in the low teens, while a random Mythic enemy can have around +20. This makes many control-focused feats and items function like traps. + +**Suggestion:** Add more accessible late-game save DC scaling for control-focused builds, or reduce the gap between PC save DC and Mythic enemy saving throw bonuses. Another option is to give control feats/items partial effects on successful saves, so they still contribute when full control is resisted. + +### 2. Acid and Lightning Spellcasters + +**Problem:** Acid casters are weak, and Lightning Charges have become mostly a melee-support mechanic. Lightning spellcasters get very little value from Lightning Charges, which also makes Markoheshkir's lightning attunement awkward: it grants Lightning Charges when casting lightning spells, but those charges do not meaningfully improve lightning spellcasting. + +**Suggestion:** Give acid spellcasting a stronger identity, such as stronger debuffs, better item support, or improved scaling on acid damage spells. For Lightning Charges, add spellcaster-facing benefits, such as improving lightning spell attack rolls, lightning spell save DC, or lightning spell damage when charges are consumed. Markoheshkir's lightning attunement should directly reward lightning spellcasting, not mainly enable melee builds. + +### 3. Physical-Damage Spellcasters + +**Problem:** Physical-damage spellcasters have almost no class/build support, despite spells such as Blade Barrier and Cloud of Daggers dealing physical damage. + +**Suggestion:** Add explicit support for physical spell damage. Possible options include a feat, passive, or item line that improves spell-based Slashing/Piercing/Bludgeoning damage, allows physical spell damage to interact with relevant resistance-bypass tools, or gives physical spellcasters a dedicated debuff/control niche. + +### 4. Cleric Passive and Armour of Persistence + +**Problem:** The Cleric passive that grants permanent Guidance and Resistance is too low-impact, because Clerics can already keep those cantrips available constantly. A similar issue applies to Armour of Persistence in Act 3: permanent Resistance and Blade Ward are much less valuable in HB, making a vanilla endgame armor function like a blank heavy armor. + +**Suggestion:** Replace the Cleric passive with a stronger or more unique support effect, such as enhanced Guidance/Resistance values, an aura version, or a once-per-round defensive reaction. For Armour of Persistence, add a new late-game defensive identity, such as improved physical mitigation, saving throw reliability, temporary hit points, or a stronger Blade Ward variant. + +### 5. Armour of Agility and The Graceful Cloth + +**Problem:** Armour of Agility is weaker than The Graceful Cloth. Both effectively support high-Dexterity characters, but The Graceful Cloth is Light Armour and therefore enjoys full Dexterity-to-AC scaling, while Armour of Agility is Medium Armour and only meaningfully benefits characters who start with very low Dexterity. + +**Suggestion:** Rebalance Armour of Agility so it has a clear advantage over The Graceful Cloth. Options include making it Light Armour, allowing full Dexterity modifier to AC despite being Medium Armour, adding a stronger defensive passive, or giving it a distinct late-game role such as reaction defense, mobility, or saving throw support. + +### 6. Off-Turn Resistance/Immunity Bypass + +**Problem:** Effects such as Elemental Adept and Combat Mastery ignoring resistance/immunity do not trigger on off-turn attacks, which creates a bad play experience. One example is Eldritch Strike dealing 0 damage off-turn against an enemy with Shield. + +**Suggestion:** Make resistance/immunity bypass effects apply consistently to off-turn damage if the triggering attack or spell would qualify during the user's turn. If technical limitations prevent this, add specific off-turn-compatible variants for key reactions and subclass attacks. + +### 7. Fixed-Attribute Blue Items + +**Problem:** Some +2 fixed-attribute blue items that cap the attribute at 20 are too weak. + +**Suggestion:** Downgrade these items to green rarity, raise their cap to 22, and raise existing cap-22 versions to 24. This would make the item hierarchy clearer and prevent blue items from feeling obsolete before they matter. + +### 8. High-Level Subclass Features and Eldritch Knight + +**Problem:** Several high-level subclass features are underwhelming: Way of Shadow's level 11 silence-on-hit, Eldritch Knight's level 9 fear feature and level 11 spell-slot recovery, and Frontier Knight's level 11 bonus-action manoeuvre attack. For Eldritch Knight specifically, the level 3 spell-slot recovery is already sufficient, so repeating spell-slot recovery at level 11 is redundant. Its level 9 fear feature also lacks enough support, because the subclass does not have the save DC needed to reliably control enemies. + +**Suggestion:** Strengthen or redesign these high-level features so they serve as true late-game payoffs. For Frontier Knight, change the level 11 feature so Battle Manoeuvre damage is maximized. For Way of Shadow, consider adding extra damage, advantage, blindness, or a stronger anti-caster rider alongside silence. For Eldritch Knight, make the level 9 fear feature scale with a more reliable DC, trigger from weapon hits with a stronger rider, or apply a partial effect when enemies save. Replace the level 11 spell-slot recovery with a direct combat payoff, such as converting spell slots into weapon damage, empowering Eldritch Strike, or improving weapon/spell interplay. + +### 9. Monk Martial Arts Scaling + +**Problem:** Monk damage is the core problem across Monk builds. In the HB environment, keeping the vanilla Martial Arts die progression at 1d4 / 1d6 / 1d8 is too low. + +**Suggestion:** Increase Martial Arts die progression to 1d6 / 2d6 / 3d6. This would also support the Monk's crit-heavy direction, because more dice make critical hits more rewarding. + +### 10. Tavern Brawler for Monks + +**Problem:** Tavern Brawler is too weak for Monks. HB's Tavern Brawler gives Strength modifier to damage and Dexterity modifier to attack, but Monks also need Wisdom. Compared with Melee Expertise, at 20 Strength / 16 Dexterity Tavern Brawler gives about +5 damage and +3 hit, while Melee Expertise gives +6 to +8 damage plus physical resistance/immunity bypass. Once accuracy is solved, Melee Expertise is far stronger. Also, Melee Expertise does not require attribute investment. + +**Suggestion:** Either improve Tavern Brawler's Monk-specific value or reduce Melee Expertise's relative advantage for unarmed builds. Options include letting Tavern Brawler use the better of Strength or Wisdom for unarmed damage, adding a Monk-specific bonus when unarmed, or giving Tavern Brawler a unique non-damage payoff such as shove, prone, or extra resource generation. + +### 11. Way of the Tempered Steel and Mirage Blade + +**Problem:** For Way of the Tempered Steel, Mirage Blade should be able to target the same creature. The feature is being compared to Flurry of Blows; if Mirage Blade cannot focus one target, the subclass's own bonus-action attack can be worse than simply punching. Even if Way of the Tempered Steel can focus one target after Zen Recovery was heavily nerfed, level 9 only produces six single-target blade hits, with almost no damage scaling and no AoE, so this should not be too OP. + +**Suggestion:** Allow Mirage Blade to select the same target more than once, or add a focused-target mode that trades multi-target utility for stronger single-target damage. Also consider adding a modest scaling rider or AoE option at level 9 so Way of the Tempered Steel does not fall behind after Zen Recovery's nerf. + +### 12. Greatswords, Pikes, and Greatclubs + +**Problem:** Weapon-type balance is awkward because Greatswords, Pikes, and Greatclubs have innate resistance bypass, but almost every physical class can already bypass resistance now. If your intent is to let NPCs ignore party resistances and raise difficulty, that direction is very reasonable. However, it also reduces the identity/value of these weapon categories when used by the party, especially because these weapon types are already quite rare. + +**Suggestion:** Keep the NPC difficulty benefit if desired, but give Greatswords, Pikes, and Greatclubs more special abilities beyond resistance bypass. For example, Greatswords could focus on cleave, heavy critical damage, or overkill effects; Pikes could focus on reach control, reactions, advantage at max range, or anti-charge utility; and Greatclubs could focus on stagger, knockback, daze, or heavy single-hit disruption. + +### 13. Two-Handed Weapons + +**Problem:** Two-handed weapons already give up the benefits of an empty off-hand package, roughly +4 hit, +4 initiative, and one third of an action, while many two-handed weapons have plain effects and only a 1d12 damage profile. + +**Suggestion:** Add stronger baseline incentives for two-handed weapons, such as higher damage dice, stronger weapon-type passives, better scaling with Strength, improved critical effects, or unique two-handed-only reactions/actions. This would help compensate for giving up the empty off-hand package. + +### 14. Weapon Itemization Across Acts + +**Problem:** Itemization by weapon category is uneven. Shortbow, Glaive, and Halberd endgame choices are all in Act 1, while Scythes, Glaives, and Light Hammers have very few special options. There are only four special Glaives in the whole game: two in Act 1, one in Act 2, and one in Act 3. Shortswords, Daggers, and Longswords also have long gaps between meaningful special items. + +**Suggestion:** Add more meaningful weapon upgrades across Acts 2 and 3, especially for Scythes, Glaives, Light Hammers, Shortswords, Daggers, and Longswords. Ideally, every weapon category should have two or three meaningful options per act, with clear progression rather than having its best item appear too early. + +### 15. Instruments vs. Underfilled Weapon Categories + +**Problem:** The many new instruments are appreciated, but some weapon categories still have very few meaningful options. + +**Suggestion:** Continue supporting instruments, but allocate some future item work toward underfilled weapon categories. Prioritize categories with long progression gaps or no satisfying Act 3 upgrade path. \ No newline at end of file diff --git a/WeaponDR.md b/WeaponDR.md new file mode 100644 index 00000000..ec200886 --- /dev/null +++ b/WeaponDR.md @@ -0,0 +1,109 @@ +## Suggestion: Hybrid weapon spells should receive weapon bonuses once + +### Problem + +Some spell/cantrip-based weapon attacks currently sit between two bad outcomes: + +- With broad flat `DamageBonus(...)`, a two-part spell such as Green-Flame Blade can receive the same weapon bonus on both the weapon hit and the spell rider. +- With the current suppressed weapon damage form, the same ability may receive no weapon-related damage bonus at all. + +The tested case was `Target_GreenFlameBlade`. Changing only the actual `SpellSuccess` weapon hit from: + +```txt +DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true) +``` + +to: + +```txt +DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType) +``` + +made Green-Flame Blade receive weapon-related bonus damage once, on the weapon hit, while the separate fire rider did not receive that bonus. + +### Spell or ability entries + +Spell/cantrip-based weapon attacks need a real weapon hit in the actual `SpellSuccess`. This controls whether the spell ability itself can receive weapon-related bonuses once. + +For spell-based weapon attacks that are intended to count as weapon attacks, avoid suppressing the actual `SpellSuccess` weapon hit. + +Use this for melee weapon hits: + +```txt +DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType) +``` + +Use this for ranged weapon hits: + +```txt +DealDamage(MainRangedWeapon, MainRangedWeaponDamageType) +``` + +or, when the spell uses `TARGET:` scope: + +```txt +TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType) +``` + +Keep the spell rider as a separate damage instance, for example: + +```txt +DealDamage(LevelMapValue(D8Cantrip), Fire, Magical) +``` + +#### Spell or ability cases to review + +These are spell-based weapon attacks found in 9.0.2. The entries marked `suppressed` use `,,,0,,true` on the actual `SpellSuccess` weapon hit and should be reviewed first. + +##### Melee weapon spells with extra spell damage or riders + +| Entry | File | Current weapon hit | Notes | +| --- | --- | --- | --- | +| `Target_StrikingIron` | `Classes Reworked (Cleric) - Spell_Target.txt` | suppressed | Fire cantrip rider | +| `Rush_DraconicBlitz` | `Classes Reworked (Fighter) - Spell_Rush.txt` | suppressed | Fire cantrip rider | +| `Target_EldritchStrike` | `Classes Reworked (Warlock) - Spell_Target.txt` | suppressed | Force rider and Eldritch Blast projectiles | +| `Target_EldritchStrike_2` to `Target_EldritchStrike_6` | `Classes Reworked (Warlock) - Spell_Target.txt` | suppressed | upcast/scaling variants | +| `Target_GalvanizedStrike` | `Feats Reworked - Spell_Target.txt` | suppressed | Lightning rider/projectile | +| `CTarget_MOO_Nightsong_SearingSmite` | `Feats Reworked - Spell_Target.txt` | suppressed | Radiant rider and burn status | +| `Target_ThunderousStrike` | `Spells Reworked - Spell_Target.txt` | suppressed | Thunder rider and Booming Blade status | +| `Target_GreenFlameBlade` | `Spells Reworked - Spell_Target.txt` | suppressed | Fire rider | +| `Target_SkyboundDive` | `Classes Reworked (Fighter) - Spell_Target.txt` | normal | already behaves correctly | +| `Target_DraconicMaul` | `Classes Reworked (Fighter) - Spell_Target.txt` | normal | likely already behaves correctly | + +##### Ranged weapon spells with extra spell damage or riders + +| Entry | File | Current weapon hit | Notes | +| --- | --- | --- | --- | +| `Projectile_ElementalFletching_Acid` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Acid rider | +| `Projectile_ElementalFletching_Fire` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Fire rider | +| `Projectile_ElementalFletching_Poison` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Poison rider | +| `Projectile_ElementalFletching_Psychic` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Psychic rider | +| `Projectile_ElementalFletching_Radiant` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Radiant rider | +| `Projectile_ElementalFletching_Thunder` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Thunder rider | +| `Projectile_ElementalFletching_Acid_Focused` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Acid rider | +| `Projectile_ElementalFletching_Cold_Focused` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Cold rider | +| `Projectile_ElementalFletching_Fire_Focused` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Fire rider; uses a save roll, so review separately | +| `Projectile_ElementalFletching_Lightning_Focused` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Lightning rider and extra projectile | +| `Projectile_ElementalFletching_Poison_Focused` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Poison rider | +| `Projectile_ElementalFletching_Thunder_Focused` | `Classes Reworked (Fighter) - Spell_Projectile.txt` | suppressed | Thunder rider | +| `Zone_ElementalFletching_Lightning` | `Classes Reworked (Fighter) - Spell_Zone.txt` | suppressed | Lightning rider; uses a save roll, so review separately | +| `Zone_ElementalFletching_Psychic_Focused` | `Classes Reworked (Fighter) - Spell_Zone.txt` | suppressed | Psychic rider; uses a save roll, so review separately | +| `Projectile_LightningArrow` | `Spells Reworked - Spell_Projectile.txt` | suppressed | Lightning target rider and AoE rider | +| `Projectile_LightningArrow_2` to `Projectile_LightningArrow_6` | `Spells Reworked - Spell_Projectile.txt` | suppressed | upcast/scaling variants | + +##### Spell-based weapon attacks without an extra damage rider + +These do not appear to have the same double-dip risk, but they should still be consistent about whether their weapon hit is allowed to receive weapon bonuses. `normal` here only means the actual weapon hit is not suppressed. + +| Entry | File | Current weapon hit | Notes | +| --- | --- | --- | --- | +| `Projectile_SteelWindBeam` | `Classes Reworked (Wizard) - Spell_Projectile.txt` | suppressed | Arcane Warden / Steel Wind style weapon spell | +| `Projectile_SteelWindStrike` | `Classes Reworked (Wizard) - Spell_Target.txt` | normal | plain weapon hit | +| `Projectile_EnsnaringStrike` | `Spells Reworked - Spell_Projectile.txt` | normal | ranged weapon hit plus restrain status | +| `Target_EnsnaringStrike` | `Spells Reworked - Spell_Target.txt` | normal | melee weapon hit plus restrain status; variants `_2` to `_6` inherit it | +| `Projectile_HailOfThorns` | `Spells Reworked - Spell_Projectile.txt` | normal | ranged weapon hit plus separate thorn explosion | +| `Zone_ConjureBarrage_Melee` | `Spells Reworked - Spell_Zone.txt` | normal | melee container option; variants `_2` to `_6` inherit it | +| `Zone_ConjureBarrage_Ranged` | `Spells Reworked - Spell_Zone.txt` | normal | ranged container option; variants `_2` to `_6` inherit it | + +This should allow weapon-spell attacks to receive the bonus once, without letting the spell rider double-dip. It also works better than checking only Bludgeoning/Piercing/Slashing, because some weapons can have Force, Psychic, Radiant, or other non-physical base damage types. +