Optimizations, bug fixes and suggestions. - #27
Open
HIEROT wants to merge 10 commits into
Open
Conversation
…see WeaponDR.md for details. Please remove the doc after review.
…ther similar passives can be fixed similarly.
…but this change won't affect saves.
There was a problem hiding this comment.
Pull request overview
This pull request updates several “weapon-spell” entries to ensure weapon-related bonuses apply correctly (once) on hybrid weapon+spell attacks, alongside a few Lua/script adjustments and added balance/systems suggestion documentation.
Changes:
- Adjusted multiple weapon-spell
SpellSuccessfunctors to use non-suppressed weapon hits so weapon bonuses can apply (without double-dipping on riders). - Tweaked Script Extender Lua behavior for party-follower DB access and an item distribution equip flag.
- Added/updated markdown documentation capturing the weapon-spell bonus rationale and broader balance suggestions.
Reviewed changes
Copilot reviewed 4 out of 14 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| WeaponDR.md | Documents the recommended pattern for hybrid weapon spells receiving weapon bonuses once. |
| OtherSuggestions.md | Adds broader balance feedback/suggestions documentation. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Target.txt | Updates melee weapon-spell SpellSuccess weapon hit functors (e.g., Green-Flame Blade, Thunderous Strike). |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Projectile.txt | Updates Lightning Arrow weapon hit functors in SpellSuccess across upcast variants. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Feats Reworked - Spell_Target.txt | Updates weapon hit functors for feat-based weapon-spells with riders. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Wizard) - Spell_Projectile.txt | Updates weapon hit functor for a wizard weapon-spell projectile entry. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Warlock) - Spell_Target.txt | Updates Eldritch Strike weapon hit functors across scaling variants. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Sorcerer) - Passive.txt | Changes Frigid Madness save DC calculation to an explicit CalculateSpellDC(...). |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Zone.txt | Updates zone-based elemental fletching weapon hit functors on SpellSuccess. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Rush.txt | Updates Rush_DraconicBlitz weapon hit functor in SpellSuccess. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Projectile.txt | Updates multiple elemental fletching projectile entries to use non-suppressed weapon hits on SpellSuccess. |
| Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Cleric) - Spell_Target.txt | Updates Striking Iron weapon hit functor in SpellSuccess. |
| Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/JWL_ItemDistribution.lua | Changes one distribution entry to no longer auto-equip an item. |
| Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/AddCreaturetoParty.lua | Adds safer DB access helper for party followers and updates call sites. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 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 "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); 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 "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 "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,,,0,,true);DealDamage(2d12+16,Force)" |
| 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 "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,,,0,,true);DealDamage(3d12+24,Force)" |
| 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 "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(3d6+12,Lightning)" |
| 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 "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(4d6+16,Lightning)" |
| 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 "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(5d6+20,Lightning)" |
| 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 "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(6d6+24,Lightning)" |
| 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)" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Each category of changes are commited separately, please refer to each commit comment.