Jump to content

[bg, bg2, iwd] Miscellaneous fixes from Luke


CamDawg

Recommended Posts

Luke sent over a number of nice fixes via pull request; I wanted to post them in the forum to make sure they get some visibility:

  • [sod] The Mutated Crawler attacks bare-handed since it references a non-existent weapon file (it now has the generic Carrion Crawler attack)
  • [bg] Magma Mephit also lacks an attack item, so one is created to match their BG2 attack
  • [bg2] Lizardmen in BP2 are set as race: yuan-ti instead of race: lizardman
  • Multiple files have misindexed effects:
    • [bg] Potion of Power, Charm (via Erinyes),
    • [bg2[ Dwarven Thrower +3, generic staff, special versions of Remove Magic and Fireball
  • [bg, bg2] Mimic Glue shouldn't set the GREASE stat
  • [iwd] Grease doesn't set the GREASE stat, has wrong visuals
  • [iwd] Chill Touch permanently removes undead's immunity to panic
  • [bg, bg2] Neera's Staff is incorrectly applying its fire damage (see notes below)
  • [bg] The Night Club could end up applying its extra +1 thac0 bonus at night repeatedly or not at all, depending
  • [bg, bg2, iwd] Power fixes for Spirit Fire
  • [bg, bg2, iwd] Nature's Beauty would cause permanent blindness (changed timing to limited but with an effectively unlimited duration) and was gated to only affect humanoids

Most of these are pretty straightforward (and @Luke, feel free to correct me if I've misunderstood something). I think there are two we may want to discuss.

First is Nature's Beauty, specifically, making it work only on general = humanoid.

And while Neera's staff is not working as described, there's some ambiguity in the description:

Quote

– When the staff strikes a target, there is a 10% chance that either the target or the wielder will take 1 point of fire damage.

Currently the staff gives both Neera and her target an extra point of damage on 10% of hits, which runs contrary to the either/or of the description.

One interpretation is that on 10% of all hits there's an extra point of fire damage, so Neera gets hit 5% of the time and her target 5% (so 0-4 for Neera, 5-9 for the target, 10-99 for nothing). Another is that 10% of hits will get Neera a point of fire damage, and then a separate 10% for the target to get hit (so 0-9 for Neera, 10-19 for the target, 20-99 for nothing).

Link to comment
39 minutes ago, CamDawg said:

One interpretation is that on 10% of all hits there's an extra point of fire damage, so Neera gets hit 5% of the time and her target 5% (so 0-4 for Neera, 5-9 for the target, 10-99 for nothing).

Personally, I interpret it as this one.

Link to comment
3 hours ago, CamDawg said:

First is Nature's Beauty, specifically, making it work only on general = humanoid.

I think the case for this is fairly strong. The spell is clearly intentionally gated to affect only humanoids, even though that's not explicit in the description; nothing in the description suggests that death and blindness work differently; the thematic reason is fairly clear; in oBG2 there's no very straightforward way to gate blindness behind a general check so it's not that surprising it was omitted.

Link to comment
13 hours ago, CamDawg said:

One interpretation is that on 10% of all hits there's an extra point of fire damage, so Neera gets hit 5% of the time and her target 5% (so 0-4 for Neera, 5-9 for the target, 10-99 for nothing). Another is that 10% of hits will get Neera a point of fire damage, and then a separate 10% for the target to get hit (so 0-9 for Neera, 10-19 for the target, 20-99 for nothing).

Good to know.

Feel free to change it to 0-4, 5-9 if that's indeed more appropriate... Let us wait for additional feedback from other people for the time being...

In any case, we shouldn't probably fix the probability range (the 1% off) here, that should be done in "6037_probabilities.tph" (so that we do not lose track of this item...)

Link to comment
15 hours ago, CamDawg said:

First is Nature's Beauty, specifically, making it work only on general = humanoid.

Pretty much what DavidW said...

I mean, op55 (Slay) targets HUMANOID and there are a lot of unnatural (non-HUMANOID) creatures that are immune it (see for instance the following creature skins: "ring95.itm", "vamp.itm", "wight.itm", "wraith1.itm", "bdplant.itm", "bdspirit.itm", ...)

Link to comment
15 hours ago, CamDawg said:

One interpretation is that on 10% of all hits there's an extra point of fire damage, so Neera gets hit 5% of the time and her target 5% (so 0-4 for Neera, 5-9 for the target, 10-99 for nothing).

This!

15 hours ago, CamDawg said:

First is Nature's Beauty, specifically, making it work only on general = humanoid.

I'm not so sure if this counts as a fix or rather a tweak. There may be mods relying on the original behavior which would now have to consider this change for the EE games.

It's also worth considering whether certain giant humanoids should be affected as well (e.g. (half-)ogres, ogrillons, trolls).

Link to comment
5 hours ago, Luke said:

Pretty much what DavidW said...

I mean, op55 (Slay) targets HUMANOID and there are a lot of unnatural (non-HUMANOID) creatures that are immune it (see for instance the following creature skins: "ring95.itm", "vamp.itm", "wight.itm", "wraith1.itm", "bdplant.itm", "bdspirit.itm", ...)

To be honest that weakens my confidence, if anything. If the developers were marking up some creatures as specifically immune to NB, that means they could have made other creatures immune too but chose not to.

 

Link to comment

Some more fixes

Spoiler

[bg, bg2]

  • [bg] add missing spell.ids entries.
  • [sod] Make sure plants are properly flagged as such
  • Chill Touch – better feedback for the player when attacking Golems or Undead
  • Shocking Grasp – should not interact with spell protections
  • Ghoul Touch – should not interact with spell protections
  • Melf's Minute Meteors – should not interact with spell protections
  • Black Blade of Disaster – should not interact with spell protections and Magic Resistance
  • Energy Blade – should not interact with spell protections
  • Hamatula, Barbed Defense – Suppress misleading "One of the spell has failed" message
  • Lesser Fire Spirit – Suppress misleading "One of the spell has failed" message
  • Shield of Barnassus: The Suncatcher – Suppress misleading "One of the spell has failed" message
  • Grease – Remove duplicate op321 effect
  • Blindness – op74 naturally provides the "Blind" portrait icon
  • Magic Missile – provide better feedback for the player when you cast it at someone protected by WIZARD_SHIELD
  • Chromatic Orb
    • op74 naturally provides the "Blind" portrait icon
    • op45 naturally provides the "Stun" portrait icon
  • Larloch's Minor Drain
    • power levels fixes
    • subspell should not play casting graphics and casting sound
  • Chill Touch – should not interact with spell protections
  • Detect Evil
    • should not interact with spell protections
    • creatures flagged as STATE_NONDETECTION (see f.i. "Cloak of Non-Detection: Whispers of Silence") should not be immune to it
  • Stinking Cloud
    • op39 can automatically display a portrait icon, there's no need to apply a separate op142 effect
    • remove the "Bypass Mirror Image" flag (it's only relevant for opcode #12 and opcode #25)
    • provide better feedback for the player when attacking Golems or Undead
  • Chaos Shield – remove duplicate op328 effect
  • Deafness
    • should not bypass Magic Resistance
    • should be dispellable
  • Glitterdust – op74 naturally provides the "Blind" portrait icon
  • Darkness, 15' Radius – op74 naturally provides the "Blind" portrait icon
  • Flame Arrow – op12 effects should have a duration of 0 (this is probably irrelevant, but just in case...)
  • Haste – op16 naturally provides the "Haste" portrait icon
  • Slow – op40 naturally provides the "Slow" portrait icon
  • Lightning Bolt – remove duplicate op318 effect
  • Protection From Normal Missiles – remove duplicate op328 effect
  • Vampiric Touch
    • subspell's effects should have power=0
    • subspell should not play casting graphics and casting sound
    • subspell's type should match its parent (to maintain casting level!)
  • Wraithform – make sure all limited effects are dispellable
  • Minor Spell Deflection – remove duplicate op328 / op233 effects
  • Improved Invisibility – Applying "Improved" Invisibility will cause the effect to be duplicated, with the duplicate using "Normal" invisibility
  • Op78 can automatically display a portrait icon, there's no need to apply a separate op142 effect
  • Emotion, Hopelessness
    • Op39 can automatically display a portrait icon, there's no need to apply a separate op142 effect
  • Cloudkill
    • Remove the "Bypass Mirror Image" flag from op55 / op215 / op174 (it's only relevant for opcode #12)
  • Shadow Door
    • Applying "Improved" Invisibility will cause the effect to be duplicated, with the duplicate using "Normal" invisibility.
  • Feeblemind – make sure it is truly permanent (until dispelled or character death)
  • Protection From Normal Weapons – remove duplicate op328 effect
  • Minor Spell Turning – remove duplicate op328 / op233 effects
  • Improved Haste
    • make sure all effects bypass Magic Resistance
    • op16 naturally provides the "Improved Haste" portrait icon
    • add missing protection against Ranger Haste
  • Spell Deflection – remove duplicate op328 / op233 effects
  • Stone to Flesh – make sure all effects bypass Magic Resistance
  • Spell Turning – remove duplicate op328 / op233 effects
  • Sphere of Chaos – make sure all effects are subjected to Magic Resistance
  • Prismatic Spray – op74 naturally provides the "Blind" portrait icon
  • Mass Invisibility
    • Applying "Improved" Invisibility will cause the effect to be duplicated, with the duplicate using "Normal" invisibility.
    • "Improved" Invisibility naturally provides a bonus of 4 to all saves, there's no need for separate op33-37 effects.
  • Power Word, Blind – op74 naturally provides the "Blind" portrait icon
  • Symbol, Stun – op45 naturally provides the "Stun" portrait icon
  • Spell Trap – remove duplicate op328 / op282 effects
  • Energy Drain – provide better feedback for the player
  • Ice Storm should last 4 rounds (not 3)

 

Link to comment

More fixes / tweaks:

Spoiler

The following fixes and tweaks apply to both `bg` and `bg2` (unless otherwise specified)

Cause / Cure Wounds

  • Make sure "Range: Touch" (i.e., `range=0`)

Lesser / Greater Restoration

  • Make sure "Range: Touch" (i.e., `range=0`)

Lay on Hands

  • Make sure "Range: Touch" (i.e., `range=0`)

Slay Living

  • Make sure "Range: Touch" (i.e., `range=0`)
  • Make sure all effects do not bypass Magic Resistance

Remove redundant portrait icons

  • `op25, op78, op16/317, op40, op98, op175, op45, op74` naturally provides a portrait icon, there's no need to apply a separate `op142` effect

splprot.2da

  • the newly added (v2.6) header descriptions are incorrect for the alignment rows

Longtooth: The Grave Binder

  • Unusually large dagger, depicted as a Short Sword => make sure `range=1`

Paralytic Bolt +1 [sod]

  • `Save vs. Paralysis` negates (was `Save vs. Spell`)
  • `Weight` should be `0` (was `1`)
  • Hit target is stunned for `5 rounds` (was `6 rounds`)
  • `resist_dispel` should be `0` (effects should not be dispellable and should ignore MR)

Paralytic Bolt [bg2]

  • Rename as "Paralytic Bolt +1" (the item's name should state its enchantment level)
  • `resist_dispel` should be `0` (effects should not be dispellable and should ignore MR)

Flame Blade

  • should not interact with level-based spell protections

Fire Seed

  • should not interact with level-based spell protections

Searing Orb

  • should not interact with level-based spell protections
  • recode from scratch so as to use `op326` effects instead of messy `op177` effects

Command

  • Creatures with `37` or more Hit Dice (or experience levels) should not be immune to it

Armor of Faith

  • remove duplicate `op328` effect(s)

Barkskin

  • Instantaneous effects should have a duration of `0` (this is probably irrelevant, but just in case...)

Slow Poison

  • Make sure it truly slows poison (so as to match `IWDEE` and spell description/name)

Summon Insects, Insect Plague

  • remove duplicate `op233` effect(s)

Poison

  • Make sure `duration=60 // 1 turn` (instead of `62`)
  • Use multiple `op25` effects instead of `spwi411[a-e].eff` (so as to make it work with `CLERIC_SLOW_POISON`)
    • As far as I know, `op329` cannot slow poison if `op25` is applied via `op177`...

Chaotic Commands

  • remove duplicate `op328` effect(s)

Blade Barrier

  • Make sure `duration=60 // 1 turn` (instead of `62`)

Dolorous Decay

  • Make sure all poison-related effects have a duration of `50` (instead of `56`)
  • Make sure the "Decaying" portrait icon does not bypass Magic Resistance
  • Make sure the delayed `op174` effect (the one related with Poison) offers a Save vs. Poison @ -2

Physical Mirror

  • remove duplicate `op328` / `op233` effects

Shield of the Archons

  • remove duplicate `op328` / `op233` effects

Sunray

  • recode from scratch so as to use `op326` effects instead of messy `op177` effects
  • its insta-death effect against `UNDEAD` is now blocked by `"%CLERIC_DEATH_WARD%"` and the like

Holy / Unholy Word

  • recode from scratch so as to use `op324` magic instead of messy `op177` effects
  • make sure it causes arcane spell failure (not just divine spell failure)

Creeping Doom [bg2]

  • remove duplicate `op233` effect(s)
  • subspell's `Primary/Secondary type` should match parent `SPL` file
  • subspell's effects should bypass Magic Resistance (since MR is already checked on the parent file)
  • do not use the same projectile as "Insect Plague" (since that is supposed to affect up to 6 creatures)

Creeping Doom [bg]

  • remove duplicate `op233` effect(s)
  • "For each round the victim remains inside the cloud, <PRO_HESHE> must make a Save vs. Spell at -2 or run away in fear for one round." => match `BG2EE` implementation
    • `op272` is unreliable and can trigger under unintended circumstances...

Summon Insects (Black Dragon)

  • use same projectile as `"%CLERIC_CREEPING_DOOM%"`

Absorb Health (Blackguard)

  • should not bypass Magic Resistance
  • subspell should scale up to level `40` (`BG2` level cap)
  • subspell's Primary/Secondary type should match parent `SPL` file
  • subspell should not play a casting sound

Insect Plague (projectile)

  • make sure it affects up to `6` creatures (as per spell description)

Spirit Fire

  • "Spirits, fey creatures, elementals, and spectral undead take double damage." => make sure this double damage bypasses Mirror Image (since the parent `SPL` file is an AoE spell)

 

Edited by Luke
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...