Jump to content

Shapeshifting inconsistencies


jmerry

Recommended Posts

1 hour ago, kjeron said:

STAT POLYMORPHED already exists, why waste spellstates for this.

True, but you can only set it via op135, p2=0 (Change into)... But that is bugged when you shapechange between two different non-natural forms...

Moreover, you cannot set it via op233 (it's not a weapon proficiency), nor via op282...

So basically either we add a new splstate or we need to avoid shapechanging between two different non-natural forms...

1 hour ago, kjeron said:

The numerous "Human/Natural Form" abilities need to go, condensed into a single ability.

True.

As you suggested, it should be attached to SLOT_FIST, so it's always available...

Link to comment

Let me make an alternative implementation proposal for the Adalon shapeshift. My assumptions are:

1) In-game text is pretty clear that you look like drow once Adalon has cast at you, and that you don't have the ability to do anything about it.

2) In-game text also makes clear that the drow see you looking like a drow. (A solo druid shapeshifted into a brown bear while in Ust Natha, for instance, looks problematic... albeit the game has this issue more generally in other contexts.)

3) Equally, Adalon is explicit that this is an illusion, not a physical transformation. So you ought still to look like a drow if you activate your shapeshift: mustard jelly ability, but nonetheless you're actually a mustard jelly.

4) As a general matter of game design, it's a bad idea to have a widespread, general feature like shapeshifting have to be restructured to allow for a specific one-off effect.

I think there is a way of reconciling all of these (I admit I haven't tested it). First, standardize on the shapeshifts-live-on-items model, where the shapeshift weapon grants all the physical changes (e.g. ability score modifications) and the 135 polymorph opcode is purely cosmetic. (I think that's the better design in any case.) Then, have Adalon's shapechange spell grant immunity to opcode 135. Then you can shapeshift to your heart's content while disguised as drow, but you'll still look like a drow. When the shapeshift gets removed, either by the Demon Lord, or Adalon, or by trying to leave, we can just use opcode 321 (or sectype magic if Cam wants to back-port this into the oBG2 fixpack) to remove the 135 immunity.

Link to comment
13 hours ago, Luke said:

True, but you can only set it via op135, p2=0 (Change into)... But that is bugged when you shapechange between two different non-natural forms...

But that is easily avoidable by ordering the effects as necessary. A 0-second delay (timing=4,duration=0) after removing the old before applying the new will avoid that bug.

For example, the unified natural form ability would contain:

  • op135, target=2, all other fields 0/empty (aside from probability1).  // Remove any existing p2=0 polymorph and any item in the magical weapon slot.
  • op321: resource=(???) // Remove slayer-change delayed damage effects. // if necessary
  • 2x op215: POLYFORM and POLYBACK // remove these effects from every other ability.
  • 2x op172: resource=Breathe Fireball, resource=Psionic Blast // optional - alternate method available with op335, but uses a spellstate.

Any given polymorph/shapechange ability would contain:

  • (global): op172, op171: resource=(this ability) // refresh ability, Polymoph Self and Shapechange, and any other unlimited/at-will abilities.
  • op146: timing=0, duration=0, saving throw(if hostile), resource=(unified natural form) // removes old polymorph, provides visual fx, removes form-specific innates.
  • op111: timing=4, duration=0, saving throw(if hostile), resource=(item) // if permanent duration.
  • op146: timing=4, duration=0, saving throw(if hostile), resource=(subspell with op111 and a duration) // if non-permanent duration.
5 hours ago, DavidW said:

I think there is a way of reconciling all of these (I admit I haven't tested it). First, standardize on the shapeshifts-live-on-items model

That's all you need.  As long as op135 is an equipped effect on the weapon, the drow illusion will override your appearance/animation but not the polymorph stats.

Edited by kjeron
Link to comment
16 hours ago, kjeron said:

The numerous "Human/Natural Form" abilities need to go, condensed into a single ability.

Yes and no. Some of them can be condensed, some of them shouldn't. In particular, Polymorph Self and Shapechange come with forced transformations back (SPWI489, SPIN150) when the duration expires. Those should be their own spells, with a spellstate block so they only apply if you're in a Polymorph Self/Shapechange form and don't accidentally override a magic weapon spell or a different transformation. Also, in the current model, the voluntary Natural Form abilities for Polymorph Self and Shapechange renew themselves when you use them; I don't see the need for that, but if we keep it then those abilities (SPWI490, SPIN151) need to be separate as well.

On the other hand, we don't really need to be using all of SPIN122, SPIN123, SPIN124, and SPINHUM (druid natural form abilities).

 

16 hours ago, kjeron said:

There's no reason for the voluntary Slayer Change to block other polymorph/shapechanges.  The involuntary Slayer Change already comes with losing player control, so there is no risk of canceling that.

The voluntary Slayer Change already blocks other polymorph/shapechanges (most of them, anyway), and there is a good mechanical reason. In particular, transforming out of that form - whether voluntarily or involuntarily - doesn't clear the delayed magic damage effects unless done explicitly. Without that immunity, a Polymorph Other could take you from slayer form to squirrel form, take away "End Slayer Change", and then you die a few rounds later to the delayed damage effects.

Just adding a 321 effect for SPIN823 to other shapeshifts ... now you've permanently removed the ability to turn into the Slayer at all, since restoring that was also one of the delayed effects. Much simpler to just keep the current model in which other effects that would take you out of the form don't work. In flavor terms, the Slayer form channels divine essence, and that's strong enough to override mortal shapeshifting magic.

And since the polymorphs we'd like to block include the likes of WAND09 and one tenth of WIZARD_SPHERE_OF_CHAOS, that needs to switch to a spellstate/324 model instead of a 206 model. And we keep "End Slayer Change" separate from "Shapeshift: Natural Form" even if most of what it does is the same.

...

The current model for shapeshift abilities has both voluntary and forced abilities applying a standard list of 172 abilities. Which includes an unnecessary three copies of SPIN160 as well as all the "Natural Form" abilities, and clearly has its origins in the BG2 fixpack. Then there's a 171 ability for the appropriate version of Natural Form, and for the unlimited shifts a 172/171 pair of the current shift.

How would the "natural form, then create weapon with delay zero" model for polymorphs work with effects that get a save? Never mind, I ran a quick test - looks like they get the same save as the spell's instant effects. At least, as long as pause shenanigans don't get involved. So that's not going to break on the hostile polymorphs.

Edited by jmerry
Link to comment
23 minutes ago, jmerry said:

Yes and no. Some of them can be condensed, some of them shouldn't. In particular, Polymorph Self and Shapechange come with forced transformations back (SPWI489, SPIN150) when the duration expires. Those should be their own spells, with a spellstate block so they only apply if you're in a Polymorph Self/Shapechange form and don't accidentally override a magic weapon spell or a different transformation.

Those two can easily be repurposed to achieve that.  Each of their polymorph weapons would be given an immunity effect (op318) with a resource (SubA) shared by all for that spell.

SPWI489/SPIN150 would be setup as such:

  • op177: resource = SubA (SubA EFF: op318, resource=SPWI489/SPIN150, parent = SubA)
  • op146: resource = (shared natural form)

If one of their items is equipped, the natural form ability is applied, otherwise it's not.  Both SPWI489/SPIN150 would require a different "SubA" EFF/resource name.

23 minutes ago, jmerry said:

Also, in the current model, the voluntary Natural Form abilities for Polymorph Self and Shapechange renew themselves when you use them; I don't see the need for that, but if we keep it then those abilities (SPWI490, SPIN151) need to be separate as well.

On the other hand, we don't really need to be using all of SPIN122, SPIN123, SPIN124, and SPINHUM (druid natural form abilities).

This is something a (single) spellstate could accomplish, using op335.  By giving every voluntary polymorph weapon the same 335 effect (same spellstate) with resource=(same natural form ability), the ability will automatically be given when you create the item & removed when you remove the weapon.  You would always and only have the natural form ability while polymorphed in any voluntary form.  The 0-second delay I referenced prior will also get around the issues op335 has regarding using the same spellstate.

23 minutes ago, jmerry said:

The voluntary Slayer Change does block other polymorph/shapechanges (most of them, anyway), and there is a good reason. In particular, transforming out of that form - whether voluntarily or involuntarily - doesn't clear the delayed magic damage effects.

If the shared natural form ability removes that damage, then there doesn't need to be a separate ability, nor does it need to block any other polymorph/shapechange ability, voluntary or hostile.

If the normal weapon-creation spells continue to cancel polymorphs (at least voluntary ones), they can cast (op326) the same natural form ability (if POLYMORPHED stat = 1), right before opcode 111, to remove those effects as well, with a momentary (0-duration) immunity to op135 so the newly created weapon doesn't get cleared.

Link to comment

If the shared natural form ability removes the Slayer Form damage, then it also removes the ability that restores SPIN822 SLAYER_START - they're both delayed effects from SPIN823 SLAYER_CHANGE_TWO. And that really breaks things. Unless you offload some things to a new subspell, adding a new layer of complication.

Honestly, it sounds like you have a good idea and you're trying to push it a lot farther than it needs to go. Despite the proliferation of Natural Form abilities, that part of the system mostly works already; there are just a few abilities that don't currently get the standard 172 package that need it.

The opcode 335 idea is a neat one, though. I definitely wouldn't have thought of that.

Link to comment

In the interest of keeping this all together, this was reported by @Dan_P for IWD over yonder.

On 4/17/2022 at 1:29 PM, Dan_P said:

Polymorph Self spell
- Winter Wolf, Polar Bear, and Boring Beetle forms have a Haste effect on their weapons. This is an obvious error, as the forms are supposed to be identical to the Druid forms and none of the other polymorphs are hasted. The descriptions are already identical to Druid, just without the mention of the 12 HP healing that Druids get.

Items affected: 
cdpolyww.itm
cdpolypb.itm
cdpolybb.itm

Note: I do think a movement speed increase could be considered for the Winter Wolf or Polar Bear forms (both Druid and Polymorph Self). Both forms are currently slower than the Boring Beetle and slower than in human form. In classic IWD, the bear is still super slow, but the wolf moves faster than in human form. In my mod, I used 180% movement for wolf forms and 250% for bear forms. At these speeds, they move slightly faster than in human form. At least for the wolf form, I think this could be considered a fix. Note that the BG2 animals, regular wolf and brown/black bear, also move much slower than in the BGEE games.

 

Shapechange spell
- Water Elemental: Weapon only does 1d8 damage (CDSHWELE.ITM). It should be 4d8, matching description as well as Druid form.
- Giant Troll: Description says 18/00 Strength. The form actually has only 18 Strength. I changed the form to 18/00, but either way works.

Descriptions:
- The descriptions don't all follow the same format. They should be changed to match the way the Druid descriptions are written. I do this already in my mod. Probably doesn't matter to most people, but seems better to me to have descriptions from the same spell follow the same format.
- Fire Elemental: 15% acid and electricity resist isn't mentioned. Druid version has correct info.
- Earth Elemental: Fire and cold resist should be 25%, not 20%. Druid version has correct info.
- Water Elemental: This currently uses the same strings as the Druid spell. Name should be changed to Shapechange: Water Elemental (instead of "Shapeshift"). Description should remove the mention of the 12 HP healing that Druids get.

Mind Flayer:
- Description for Psionic Blast says the stun duration is 5 rounds, but it's actually 10 rounds. I patched the spell to 5 rounds, but either way, the description should match the actual duration. BG2EE does this same thing.
- Mind Flayer description doesn't mention the Psionic Blast ability. Not technically a bug, but incomplete without it.

 

Link to comment

Going on the principle that cross-game consistency is to be preferred when that's a reasonable option...

The BG series uses 130% movement for bear shapeshifts and 150% for wolf shapeshifts.

The Giant Troll shapechange form has 18 strength in BG2EE. Both in the description, and the actual numbers.

Actual illithids in BG2EE use the same psionic blast as the player shapechange; as such, altering the description to match reality seems like a better idea to me.

Link to comment
1 hour ago, jmerry said:

Going on the principle that cross-game consistency is to be preferred when that's a reasonable option...

The BG series uses 130% movement for bear shapeshifts and 150% for wolf shapeshifts.

The Giant Troll shapechange form has 18 strength in BG2EE. Both in the description, and the actual numbers.

Actual illithids in BG2EE use the same psionic blast as the player shapechange; as such, altering the description to match reality seems like a better idea to me.

I generally also prefer consistency myself, when possible. I went with 18/00 for Troll, only because even with the increase, it's a useless shapeshift and also someone specifically changed the text to 18/00. I didn't consider illithid enemies. That's a good point (though there aren't any in unmodded IWDEE). I decided 5 rounds was fine since enemies are dead within 5 rounds of being stunned, so duration doesn't matter too much for just player usage.

With the movement speed, 150% and 130% are actually already used for the regular wolf and brown/black bear forms from the Polymorph Self spell. However, they are painfully slow still.  Actually, at 180 and 250 movement speed, they still move slower than the BG2EE versions. The 180% for all wolf forms just brings them  closer to the speed of the Winter Wolf shapeshift in classic IWD, which is what I was going for.

Edited by Dan_P
Link to comment
Guest Graion@Work

I'm with DavidW on this - IWD shapeshifting and BG shapeshifting are two different systems, fixing issues stemmed around edge cases/consistency with the actual descriptions are fine but normalizing one to the other one should be left for a mod.

Link to comment
11 hours ago, Awachi said:

I recall someone ( @subtledoctor?) saying that % changes to movement speeds get increasingly janky. Would it be better to set it based on animation speeds in the ini files? 

It just seems like not the best idea to use such fractional slivers of adjustment when the base number is less than 10 and the result rounds to an integer. For instance, there seems like there should be a meaningful difference  between a 150% increase and a 160% increase. But they both round to 14. Why bother with adjustments that result in non-integer values that the game can’t use? Just decide what final value you want and set it to that number. 

Edited by subtledoctor
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...