fix(inventory): sequence secondary wield blockers
Preserve retail AmmoType from CreateObject and port BlocksUseOfShield so bow, caster, and two-handed switches remove incompatible shields, while mismatched missile ammo is also returned to the pack. Each blocker remains server-confirmed before AutoWield re-enters. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
17b5712d53
commit
815ce0dec4
14 changed files with 206 additions and 16 deletions
|
|
@ -64,6 +64,13 @@ auto_wield(item):
|
|||
send PutItemInContainer(blocker.id, player.id, placement = 0)
|
||||
return true
|
||||
|
||||
if BlocksUseOfShield(item) and a shield is equipped:
|
||||
begin the same confirmed blocker transaction for the shield
|
||||
|
||||
if item.ammoType is not AMMO_NONE
|
||||
and equipped ammo has a different ammoType:
|
||||
begin the same confirmed blocker transaction for the ammo
|
||||
|
||||
send_wield(item, desiredMask)
|
||||
return true
|
||||
|
||||
|
|
@ -101,8 +108,8 @@ render paths consume the server events.
|
|||
|
||||
## Known remaining retail surface
|
||||
|
||||
This port covers the primary weapon-ready group requested here. Retail
|
||||
`AutoWield` also has extra blocker logic for incompatible shields and missile
|
||||
ammo, plus its full `AutoWieldIsLegal` requirement checks. Those pre-existing
|
||||
paperdoll/auto-wield gaps remain tracked by divergence row AP-108 rather than
|
||||
being guessed from incomplete item properties.
|
||||
This port covers the primary weapon-ready group plus retail's secondary
|
||||
incompatible-shield and mismatched-ammo blockers. `CreateObject` now retains
|
||||
the exact `AmmoType` needed for those decisions. Full `AutoWieldIsLegal`,
|
||||
Aetheria, and dual-wield/off-hand rules remain tracked by divergence row
|
||||
AP-108.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue