Skip to content

Fix Queen of the Forest movement speed suppression#1921

Closed
unrealdreamz wants to merge 1 commit into
PathOfBuildingCommunity:devfrom
unrealdreamz:fix/queen-of-the-forest-movement
Closed

Fix Queen of the Forest movement speed suppression#1921
unrealdreamz wants to merge 1 commit into
PathOfBuildingCommunity:devfrom
unrealdreamz:fix/queen-of-the-forest-movement

Conversation

@unrealdreamz
Copy link
Copy Markdown
Contributor

@unrealdreamz unrealdreamz commented May 19, 2026

Summary

Fixes #493.

Queen of the Forest now:

  • parses its evasion-scaling movement speed line for all 500/600/800 Evasion variants,
  • applies its "Other Modifiers to Movement Speed except for Sprinting do not apply" line,
  • preserves movement speed mods that are explicitly conditioned on Sprinting.

Root Cause

The Queen of the Forest movement-speed lines were present in unique data, but ModCache.lua showed them as unparsed (nil). As a result, the evasion-scaling value and the suppression line never reached the calc layer.

Movement speed was then calculated through the ordinary aggregate MovementSpeed path, so movement speed from boots, jewels, and passive sources still applied even though Queen of the Forest should suppress those sources.

Fix

  • Added parser support for the Queen of the Forest evasion-scaling movement speed line and the suppression line.
  • Added a narrow movement-speed calculation branch for the suppression flag.
  • Under that branch, the calculation includes:
    • Queen of the Forest's own evasion-derived movement speed,
    • only MovementSpeed modifiers explicitly tagged with Condition:Sprinting.
  • Updated the generated mod cache entries for the existing Queen of the Forest line variants.
  • Added a regression covering ordinary movement speed suppression and Sprinting preservation.

Validation

Passed:

git diff --check

Passed Lua syntax checks for touched Lua files with lupa:

PASS lua compile src/Modules/ModParser.lua
PASS lua compile src/Modules/CalcDefence.lua
PASS lua compile src/Data/ModCache.lua
PASS lua compile spec/System/TestItemMods_spec.lua

Not run locally:

busted --lua=luajit

Reason: this machine does not have lua, luajit, busted, docker, docker-compose, or docker compose available on PATH; each command returned "not recognized" in PowerShell. The regression spec is included for CI.

Risk / Rollback

Risk is limited to movement-speed calculations when the new suppression flag is present, plus the newly parsed Queen of the Forest movement-speed value. Ordinary movement-speed calculations continue using the existing path.

Rollback is straightforward: revert this commit to restore the previous parser cache and movement-speed calculation behavior.

@LocalIdentity
Copy link
Copy Markdown
Contributor

Overcomplicates the solution and does not adhere to existing mod formats
I'll implement this myself correctly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

QoTF Movement Speed penality is not applied

2 participants