Repository navigation
Zul'Farrak: the plan carries the pyramid stairs event to the run leader (holds with a value, Velratha stands, exporter) - #278
Merged
Conversation
The zf-full-19z16 run stopped at the four-mob pack on the west road: the lead stood at 1629 1099, the foot of the pool stairs, which is a navmesh island, and three followers plus the healer went up to z 31-46.8 and took six minutes to gather back. Give the last two packs approach points on the lower floor west of the stair mouth so the run leader's party stays there. Pin the real Gong of Zul'Farrak (141832) in a test, not the Turtle decoration copy 20901. Record where the Mallet comes from: item 9240 is made by using 9241, and 9241 drops only from Qiaga the Keeper (7996) on map 0, so no bot run can acquire it and the leg stays optional. Note the missing pyramid phase gate (instance data 1, value 7): the plan format has no instance-data wait, so the stairs leg keeps its Nekrum-seen proxy.
…irs event to the run leader The exported Zul'Farrak rows ended before the stairs leg: its Weegli wait and the stairs_top Nekrum wait are unit waits, which the TortoiseBots run leader has no step for. The run leader can do the event itself: its loader takes a hold done by instance data with flag 8 alone and any param, and ends it when the data reads that value (DungeonPlanPolicy.h NormalizePlanStep, DungeonRunPolicy.h HoldDoneNote). The pyramid phase is instance data 1 (tortoise-wow zulfarrak.h). Plan format: - hold.value: the instance data value that ends the event, read as a script value (flags 8, param value); without it the encounter DONE as before (40, 3). - wait_for.hold: the wait's run leader form. plan-export writes the hold row in place of the wait; the agent's driver still runs the wait as written. zulfarrak.json: the cage leg's Weegli wait holds the stairs top to phase 3 (WAVE_1; phase 2 lasts one instance update), stairs_top's Nekrum wait holds it to phase 7 (WAVE_3: wave 2 dead, wave 3 up). Wave entries 7787 7788 7789 8876 8877. Notes say what a module run needs (key 8444 to the lead bot as a fallback, no Mallet: the gahzrilla leg stays optional and out of the rows). Export: 14 legs, 122 steps through stairs_base (Nekrum, Sezz'ziz, the foot clear); cut before weegli_door (a unit wait with no hold, then a gossip). Validate takes a hold param above 4 only without the encounter flag. The run leader reach check counts a wait hold's spot as a stand. A wait with a hold is listed among the attributes the rows do not carry (its own condition). Tests: TestWaitHoldIsTheRowAndValueIsAScriptValue, TestValidateHoldParamByFlags, TestZulfarrakStairsEventRows, TestZulfarrakIsCutAfterStairsBase (was ...AfterZumrah), TestWaitForHoldAndHoldValueParse, TestRunLeaderReachCountsAWaitHoldSpot; seven mutations (each change reverted on its own) each fail at least one of them.
…lue only on a wait, never 0 Cold review of f11df6d (2026-10-21): - The last approach points of velratha pull groups 4 and 5 stood inside their packs' reach: 1582 1070 was 10.8 yd from the Witch Doctor 81609, 1593.6 1089.9 16.6 yd from the Shadowhunter 81606, so the walk there pulled the pack before the Polymorph (the STUCK #1 situation). New: group 4 1603 1043 9.8 (44.0 yd or more from every member's spawn, 29.3 yd or more from each waypoint of the 81587 patrol less the 5.3 yd follower offset, 45 yd from the Witch Doctor, a complete 21 yd navmesh path from 1584 1050); group 5 1584 1088 9.1 (24.1 yd or more from the four). TestZulfarrakPoolStairsApproach checks the last point against every member of the group in the world export (spawn less wander) and the patrol's creature_movement waypoints (less the follower offset), at least 20 yd. - hold.value is refused on a pull group's or a boss's hold and when it is 0 (the value instance data starts at: the hold would end at once): TestHoldValueIsRefusedWhereItCannotWork. - README: the pyramid phase paragraph says what the plan carries now, and a compatibility note: an agent built before f11df6d refuses this zulfarrak.json (unknown fields); the format version stays 1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan format: a hold can carry a value (written as param with flags 8 and no encounter flag) and a wait_for can carry a hold, which plan-export writes in place of the wait; the agent's own driver still runs the wait as written. zulfarrak.json: the Weegli wait holds the stairs top until instance data 1 reads 3 (90 s), the Nekrum wait until it reads 7 (600 s); Velratha pull groups 4 and 5 get approach stands on the lower floor (>= 24 yd from every pack member, spawn and patrol data; the lone Shadowhunter 81610 is 12.9 yd from the group 4 stand but is pulled at the earlier hop). Plan reader refuses a hold value of 0 and a value on a pull or boss hold. Exporter accepts hold params above 4 when the encounter flag is off. The exported plan goes from 86 to 122 steps (14 legs). Compatibility: an agent binary built before this change refuses this zulfarrak.json (unknown fields hold and value). Reviews: Opus cold review two rounds (FIX FIRST on the approach points, then SHIP); Codex not run. Tests: 11 mutations fail a test, go test ./... with the map 209 navmeshes green. Not verified: no run under the run leader yet (module side: TortoiseBots feat/zf-plan-extended); the first run tests legs 0-8 of a changed route (71 steps, not the proven 86).