Skip to content

Commit

Permalink
Collated v35.17 updates
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidMWWallace committed May 21, 2024
1 parent 16d7210 commit 77426a2
Show file tree
Hide file tree
Showing 29 changed files with 454 additions and 134 deletions.
2 changes: 1 addition & 1 deletion stratagems/caster_shared/triggers/trigger.2da
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ PROTECTION_FROM_MAGIC_WEAPONS SHADOW_DOOR SPELL_IMMUNITY_DIVINA
SECRET_WORD BREACH POWER_WORD_SILENCE * all * * * * dsp
DISPEL_MAGIC GREATER_MALISON DEATH_SPELL * all * * * * dsp
LOWER_RESISTANCE LOWER_RESISTANCE LOWER_RESISTANCE * all * * * * dsp
SUN_FIRE CLOUDKILL CLOUDKILL * invoker|fighter_mage * * lich|rakshasa * o
SUN_FIRE CLOUDKILL CLOUDKILL * invoker|fighter_mage * * lich|rakshasa * o
CHAIN_LIGHTNING CHAIN_LIGHTNING CHAIN_LIGHTNING * invoker|fighter_mage|air * * * * o
CHAIN_LIGHTNING CHAIN_LIGHTNING CHAOS * conjurer|fighter_mage|air * * * * o
CONE_OF_COLD CONE_OF_COLD CONE_OF_COLD * invoker|fighter_mage|water * * * * o
Expand Down
18 changes: 17 additions & 1 deletion stratagems/doc/readme-stratagems.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ <h1>Sword Coast Stratagems</h1>
<div class="section">
<p><strong><a href="http://www.gibberlings3.net/">A Gibberlings Three Mod</a><br /> </strong>
Author: </strong><a href="http://www.gibberlings3.net/forums/index.php?showuser=1067">DavidW</a></p>
<p><strong>Version 35.16</strong><br />
<p><strong>Version 35.17</strong><br />
<strong> Languages:</strong> English, French, German, Italian, Polish, Russian, Spanish, and Traditional Chinese.<br />
<strong>Platforms: </strong>Windows, Linux (Enhanced Edition only), Mac OS X (Enhanced Edition only)</p>
<p>Sword Coast Stratagems (<acronym title="Sword Coast Stratagems">SCS
Expand Down Expand Up @@ -2404,6 +2404,22 @@ <h3>Override files</h3>

</ul>
</li>
<li>Version 35.17 (21st May 2024)
<ul>
<li>Allied spellcasters no longer use Teleport Field.</li>
<li>NPC Customization and Management correctly skips certain characters (notably Hexxat and Caelar) who shouldn't be set to level zero.</li>
<li>Under-the-hood change: changed the function that handles area-effect spells bypassing Mirror Image (used on oBG2 installs) so it runs much faster (5 seconds rather than a couple of minutes).</li>
<li>Fixed a rather subtle bug that was messing with creatures' ability to see when an enemy is unaffected by their spells. The bug probably also caused occasional oBG2 crashes.</li>
<li>NPC Customization and Management correctly skips certain characters (notably Hexxat and Caelar) who shouldn't be set to level zero.</li>
<li>NPC Customization and Management now correctly displays the extra thief skill points you get when advancing to first level.</li>
<li>NPC Customization and Management now populates the spellbooks of generalist mages (including multi-classed and dual-classed mages) and wild mages.</li>
<li>NPC Customization and Management no longer removes character-specific innates (e.g. Minsc's Berserk ability).</li>
<li>Fixed some cosmetic issues in the descriptions of the new arcane spells.</li>
<li>Fixed some cosmetic issues in the changes to spell descriptions in the spell tweaks components.</li>
<li>New spell tweak: Otiluke's Freezing Sphere does half damage on a successful save.</li>
<li>New spell tweak: Gylph of Warding does half damage on a successful save (BG/BG2 only; this is already true on IWD).</li>
</ul>
</li>
</ul>
</div>

Expand Down
18 changes: 12 additions & 6 deletions stratagems/doc/subdocuments_dw/changes_by_spell.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,6 @@ <h1>Stratagems of Mystra: Changes by Spell</h1>
<p><strong>Flame Blade</strong></p>
<p>The spell now does +1d4 fire damage rather than +2 (IWDEE; <a href="spell_tweaks.html#use_hybrid_flame_blade">source</a>)</p>

<p><strong>Slow Poison</strong></p>
<p>The spell now genuinely slows the effect of poison (reducing the speed of its effect by 90%) instead of neutralising it altogether. (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions; <a href="spell_tweaks.html#use_iwd_slow_poison">source</a>)</p>


</div><div class="ribbon_rectangle_h2"><h2><a name="SPPR-3" id="SPPR-3"></a>Level 3 priest</h2></div><div class="ribbon_triangle_h2-l"></div><div class="ribbon_triangle_h2-r"></div>
<div class="section">
Expand All @@ -73,6 +70,12 @@ <h1>Stratagems of Mystra: Changes by Spell</h1>
<p><strong>Cure Medium Wounds</strong></p>
<p>The spell now heals 15 hit points, plus 1 per level to a maximum of 15. (not Spell Revisions; <a href="spell_tweaks.html#enhance_cure_cause">source</a>)</p>

<p><strong>Favor of the Martyr</strong></p>
<p>This spell has been renamed from 'Favor of Ilmater' to 'Favor of the Martyr'. (<a href="spell_tweaks.html#ilmater_rename">source</a>)</p>

<p><strong>Glyph of Warding</strong></p>
<p>The glyph does half damage (rather than no damage) on a successful save. (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions; <a href="spell_tweaks.html#glyph_save_for_half">source</a>)</p>

<p><strong>Holy Smite</strong></p>
<p>The spell now does 1d4 damage per level, rather than 1d6 per two levels with a cap at 5d6. (IWDEE; <a href="spell_tweaks.html#use_bg_holy_smite_unholy_blight">source</a>)</p>

Expand Down Expand Up @@ -136,7 +139,7 @@ <h1>Stratagems of Mystra: Changes by Spell</h1>
<p>The spell inflicts 150 hit points of damage, but leaves its target with at least 1 hit point. (not Spell Revisions; <a href="spell_tweaks.html#harm">source</a>)</p>

<p><strong>Sol's Searing Orb</strong></p>
<p>Sol's Searing Orb does 6d6 damage, not 3d6, and does not require a hit roll. (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions; <a href="spell_tweaks.html#use_iwd_sols_searing_orb">source</a>)</p>
<p>Sol's Searing Orb does 6d12 damage, not 3d6, and does not require a hit roll. (BG1TUTU,BG2EE,BGEE,BGT,EET; not Spell Revisions; <a href="spell_tweaks.html#use_iwd_sols_searing_orb">source</a>)</p>


</div><div class="ribbon_rectangle_h2"><h2><a name="SPPR-7" id="SPPR-7"></a>Level 7 priest</h2></div><div class="ribbon_triangle_h2-l"></div><div class="ribbon_triangle_h2-r"></div>
Expand Down Expand Up @@ -301,6 +304,9 @@ <h1>Stratagems of Mystra: Changes by Spell</h1>
<p><strong>Improved Haste</strong></p>
<p>Haste is cancelled by Slow. (BG2EE,BGEE,EET,IWDEE; not Spell Revisions; <a href="spell_tweaks.html#haste_cancels_slow">source</a>)</p>

<p><strong>Otiluke's Freezing Sphere</strong></p>
<p>The sphere does half damage (rather than no damage) on a successful save. (<a href="spell_tweaks.html#otiluke_save_for_half">source</a>)</p>

<p><strong>Pierce Magic</strong></p>
<p>This spell may be used to remove magical protections even from creatures which could not normally be targetted by spells because they are invisible. (<a href="spell_tweaks.html#antimagic_penetrates_ii">source</a>)</p>

Expand Down Expand Up @@ -344,13 +350,13 @@ <h1>Stratagems of Mystra: Changes by Spell</h1>
</div><div class="ribbon_rectangle_h2"><h2><a name="SPWI-8" id="SPWI-8"></a>Level 8 wizard</h2></div><div class="ribbon_triangle_h2-l"></div><div class="ribbon_triangle_h2-r"></div>
<div class="section">
<p><strong>Abi-Dalzim's Horrid Wilting</strong></p>
<p>The spell no longer affects earth/air/fire elementals, undead, constructs, and the like. (not Spell Revisions; <a href="spell_tweaks.html#restrict_abi_dalzim">source</a>)</p>
<p>The spell no longer affects earth/air/fire elementals, undead, constructs, and the like. (BG2EE,BGEE,EET,IWDEE; not Spell Revisions; <a href="spell_tweaks.html#restrict_abi_dalzim">source</a>)</p>

<p><strong>Improved Mantle</strong></p>
<p>The spell protects against weapons of +4 or lesser enchantment. (not Spell Revisions; <a href="spell_tweaks.html#mantle">source</a>)</p>

<p><strong>Iron Body</strong></p>
<p>The physical damage protection increases to 75% and the spell now imposes a -2 casting time penalty rather than blocking spellcasting outright. (<a href="spell_tweaks.html#iron_body">source</a>)</p>
<p>The physical damage protection increases to 75% and the spell now imposes a -2 casting time penalty rather than blocking spellcasting outright. (BG2EE,BGEE,EET,IWDEE; <a href="spell_tweaks.html#iron_body">source</a>)</p>

<p><strong>Pierce Shield</strong></p>
<p>This spell may be used to remove magical protections even from creatures which could not normally be targetted by spells because they are invisible. (<a href="spell_tweaks.html#antimagic_penetrates_ii">source</a>)</p>
Expand Down
14 changes: 9 additions & 5 deletions stratagems/doc/subdocuments_dw/spell_tweaks.html
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ <h1>Stratagems of Mystra: Changes by Category</h1>
<p>This tweak removes the automatic killing of summoned creatures from Death Fog and Death Spell, following Icewind Dale's model. Note that since Death Spell kills any creature of 8th level or below without a saving throw, the great majority of summons will still be killed by the spell. The swords summoned by Mordenkainen's Sword and the bears summoned by Conjure Animals have been slightly adjusted so as to be low enough level to be killed by Death Spell.</p>
<p><a name="use_iwd_defensive_harmony"></a><strong>Defensive Harmony increases AC by +4 instead of +2 (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
<p></p>
<p><a name="glyph_save_for_half"></a><strong>Glyph of Warding does half damage on a successful save (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
<p>This component causes a Glyph of Warding to do half damage if the target saves vs. spells, rather than completely avoiding damage.</p>
<p><a name="use_iwd_lower_resistance"></a><strong>Lower Resistance decreases resistance by 30% + 1%/level, not 10% + 1%/level (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
<p></p>
<p><a name="use_iwd_magical_stone_damage"></a><strong>Magical Stone does 3d4 damage (6d4 vs undead), rather than 1d4 (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
Expand All @@ -105,9 +107,7 @@ <h1>Stratagems of Mystra: Changes by Category</h1>
<p></p>
<p><a name="use_iwd_slay_living_targeting"></a><strong>Slay Living no longer requires a successful melee attack (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
<p></p>
<p><a name="use_iwd_slow_poison"></a><strong>Slow Poison now genuinely slows the effect of poison (reducing the speed of its effect by 90%) instead of neutralizing it altogether (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
<p></p>
<p><a name="use_iwd_sols_searing_orb"></a><strong>Sol's Searing Orb does 6d6 damage, not 3d6, and does not require a hit roll (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
<p><a name="use_iwd_sols_searing_orb"></a><strong>Sol's Searing Orb does 6d12 damage, not 3d6, and does not require a hit roll (BG1TUTU,BG2EE,BGEE,BGT,EET; not Spell Revisions)</strong></p>
<p></p>
<p><a name="use_iwd_strength_duration"></a><strong>Strength has a duration of 1 hour per level rather than 1 turn per level (BG1TUTU,BG2EE,BGEE,BGT,EET,SoA,ToB; not Spell Revisions)</strong></p>
<p></p>
Expand All @@ -121,7 +121,7 @@ <h1>Stratagems of Mystra: Changes by Category</h1>
</div><div class="ribbon_rectangle_h2"><h2><a name="rebalance" id="rebalance"></a>Rebalancings of slightly-too-powerful spells</h2></div><div class="ribbon_triangle_h2-l"></div><div class="ribbon_triangle_h2-r"></div>
<div class="section">
<p>Tweaks in this section rebalance various slightly too-powerful spells. The enemy AI in Sword Coast Stratagems will sometimes behave a little oddly if this component is not installed.</p>
<p><a name="restrict_abi_dalzim"></a><strong>Abi-Dalzim's Horrid Wilting does not affect undead, constructs, and (non-water) elementals (not Spell Revisions)</strong></p>
<p><a name="restrict_abi_dalzim"></a><strong>Abi-Dalzim's Horrid Wilting does not affect undead, constructs, and (non-water) elementals (BG2EE,BGEE,EET,IWDEE; not Spell Revisions)</strong></p>
<p>From its description, Horrid Wilting ought not to affect creatures with no moisture in their bodies. The actual spell, as implemented, affects basically everything (the IWD version does not affect undead). This component restricts the spell so as not to affect earth/air/fire elementals, undead, constructs and the like</p><p>Note that the 'Telekinetic Storm' spell, introduced by the New Arcane Spells component, does affect all these creatures, at the cost of doing slightly less damage (1d6 per level, not 1d8). This should help fill the tactical hole left by this component's restrictions.</p>
<p><a name="skull_trap"></a><strong>Cap damage done by Skull Trap at <acronym title="12 rolls of a six-sided die">12d6</acronym> (not Spell Revisions)</strong></p>
<p>Skull Trap, like the other Level 3 spells Fireball and Lightning Bolt, does <acronym title="1 roll of a six-sided die">1d6</acronym> damage per level. Unlike those spells, though (and, I suspect, via an oversight on the developers' part, though I could be wrong) Skull Trap's damage is not capped at <acronym title="10 rolls of a six-sided die">10d6</acronym>, which makes it extremely lethal for a third level spell by the later part of the game. This component caps the damage of Skull Trap at <acronym title="12 rolls of a six-sided die">12d6</acronym> (the slightly higher cap reflects the much shorter range of Skull Trap compared to Fireball.</p>
Expand Down Expand Up @@ -187,8 +187,12 @@ <h1>Stratagems of Mystra: Changes by Category</h1>
<p>The Cure and Cause Wounds families are very weak, especially at higher levels - it really isn't worth (e.g.) using a fourth-level cleric slot to heal 14 hit points or do the same amount of damage. This component increases the effectiveness of these spells somewhat (roughly following 3rd edition D&D): they heal (or cause) 5 hit points per level of the spell, plus a bonus amount equal to 1 per level of the caster but no more than 5 per level of the spell (so a maximum of 5 for Cure Light Wounds, but 20 for Cure Serious Wounds). For lore reasons, this is capped at 20th level on Baldur's Gate and Baldur's Gate II. (The exact amount of enhancement can be customized; see the main readme.)</p>
<p><a name="larloch"></a><strong>Larloch's Minor Drain becomes more powerful at higher levels (not Spell Revisions)</strong></p>
<p>The necromantic spell 'Larloch's Minor Drain' drains 1d4 hit points (in IWD) or 4 hit points (in BG/BG2) from the target and gives them to the caster. That's minor but not useless at first level, but it quickly becomes worthless at higher levels. This component makes the drain level-dependent: 1d4 at first level, increasing by 1d4 every two levels to a maximum of 5d4. That makes it roughly competitive with Magic Missile (the benefit that it heals the caster is offset against the slightly lower damage and the fact that it doesn't work on undead.)</p>
<p><a name="iron_body"></a><strong>Modified version of the Iron Body spell (does not prevent spellcasting)</strong></p>
<p><a name="iron_body"></a><strong>Modified version of the Iron Body spell (does not prevent spellcasting) (BG2EE,BGEE,EET,IWDEE)</strong></p>
<p>Iron Body (an 8th level wizard spell introduced in IWD) is thematically cool but in practice not that useful: it gives moderately nice defensive boosts but they're not that exciting, and it shuts down spellcasting, making it useless to single-class wizards in most circumstances. This component improves the physical damage protection (to 75%) and replaces the outright block on spellcasting with a -2 casting speed penalty. This should make the spell a fairly powerful defensive choice - but it is 8th level, so that seems apposite.</p>
<p><a name="otiluke_save_for_half"></a><strong>Otiluke's Freezing Sphere does half damage on a successful save</strong></p>
<p>This component causes the Freezing Sphere spell to do half damage if the target saves vs. spells, rather than completely dodging the sphere.</p>
<p><a name="ilmater_rename"></a><strong>Rename 'Favor of Ilmater' to 'Favor of the Martyr'</strong></p>
<p>This is a purely cosmetic change, intended to remove mismatches between an in-game character's faith and their memorized spells.</p>
<p><a name="eldath_rename"></a><strong>Rename 'Mist of Eldath' to 'Healing Mist'</strong></p>
<p>This is a purely cosmetic change, intended to remove mismatches between an in-game character's faith and their memorized spells.</p>
<p><a name="rebalance_lathander"></a><strong>Rename and tweak Shield of Lathander</strong></p>
Expand Down
4 changes: 2 additions & 2 deletions stratagems/initial/initial.tpa
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,8 @@ DEFINE_ACTION_FUNCTION initial BEGIN
LAF detectable_spells INT_VAR skip_legacy=1 END // core DS - copy of the SoD version, adapted for SCS
END
CLEAR_IDS_MAP // make sure any DS changes to splstate/stats are logged
LAF detectable_items END

LAF detectable_items END
LAF run STR_VAR file=detectcloud END
LAF general_creature_patch END
LAF run STR_VAR file=sim_compat END
Expand Down
19 changes: 14 additions & 5 deletions stratagems/initial/item_labels.tpa
Original file line number Diff line number Diff line change
Expand Up @@ -87,28 +87,37 @@ BEGIN
END

BUT_ONLY

ACTION_PHP_EACH item_ds_array AS resref=>discard BEGIN
COPY_EXISTING "%resref%" override
LPF CLONE_EFFECT INT_VAR silent=1 STR_VAR match_function=match_ds_entry function=patch_ds_entry END
END
END

LAF array_echo STR_VAR array=opcodelist END
LAF array_read STR_VAR file="see_protection_spells.2da" path="%MOD_FOLDER%/ds" RET_ARRAY protection_spell_array=array END
ACTION_PHP_EACH protection_spell_array AS spell=>discard BEGIN
spl.edit[%spell%|allow_missing:i=1]
ACTION_PHP_EACH protection_spell_array AS protection_spell=>discard BEGIN
ACTION_IF VARIABLE_IS_SET "%protection_spell%" BEGIN
OUTER_SPRINT protection_spell "%%protection_spell%%"
END ELSE
ACTION_IF VARIABLE_IS_SET "WIZARD_%protection_spell%" BEGIN
OUTER_SPRINT protection_spell "%WIZARD_%protection_spell%%"
END ELSE
ACTION_IF VARIABLE_IS_SET "CLERIC_%protection_spell%" BEGIN
OUTER_SPRINT protection_spell "%CLERIC_%protection_spell%%"
END
spl.edit[%protection_spell%|allow_missing:i=1]
[
IF {enhanced_edition}
{{
m.ab_fx.clone{LPF ds_item STR_VAR arguments="%s_opcode%" RET s_parameter2=value END s_opcode=328 s_target=2 s_timing=0 s_duration=144 s_special=1 s_parameter1=1|match="VARIABLE_IS_SET $opcodelist(~%s_opcode%~)"}
}}
ELSE
{{
m.ab_fx.clone{LPF ds_item STR_VAR arguments="%s_opcode%" RET s_parameter2a=value END s_parameter2b=1 s_opcode=328 s_target=2 s_timing=0 s_duration=144 s_parameter1=1|match="VARIABLE_IS_SET $opcodelist(~%s_opcode%~)"}
m.ab_fx.clone{LPF ds_item STR_VAR arguments="%s_opcode%" RET s_parameter2a=value END s_parameter2b=1 s_opcode=318 s_target=2 s_timing=0 s_duration=144 s_parameter1=1|match="VARIABLE_IS_SET $opcodelist(~%s_opcode%~)"}

}}
]
END

END


Expand Down
Loading

0 comments on commit 77426a2

Please sign in to comment.