Repository navigation
Conversation
PullSizes returned early when the export had no eligible mobs (empty or friendly-only), so no pull row got its "no target" finding and the check could pass clean. The early return is gone: every pull row goes through pullTarget, and a row that finds no target gets its finding. Tests: one pull row with zero creatures gives one "no target" finding; checkFile with a header-only creatures.tsv warns without -strict and exits 1 with -strict.
A mob no row owns reads 0 from the owned map, which is also the route's first row index: the first row could pick a stranger. TestPullSizeTargetIgnoresUnownedMobAtRouteStart pins both sides.
Matches worldspawn.AggroRadius (0 for detection under a yard, like NO_AGGRO). pull_size keeps its own explicit mapping: its 0 means the export predates the column, read as 20 yd. TestNoDetectionRangeNeverWakes mirrors the worldspawn row.
pullMobs uses the route lint's filter (hostileMob, shared with RouteIntoLaterPacks, not a copy): no NPC flags, no ignored or friendly faction (35 is friendly to all, as in Check), no critters. Rows gated to the other team are not pulled by this run: routePoint carries the plan's team gate off the export flags and PullSizes skips those rows (no pull number consumed). No pinned count moves: the fixtures' counted rows are all hostile and ungated. TestPullSizeIgnoresFriendlySpawnsAndOtherTeamRows pins the friendly neighbour and the gate; TestPullSizeTargetIgnoresUnownedMobAtRouteStart pins the owned presence check.
Over-ceiling rows are warnings for a person; only -pull-size-strict opts into the ceiling. No-target rows and load errors still fail -strict. checkFile takes the ignore factions and the pull-size-strict flag, and the N warning(s) summary line is back. Tests: the committed uldaman plan passes -strict on its 58 over-ceiling warnings (its no-target row still fails it), and a synthetic over-ceiling row pins the strict matrix.
Pull 14 (the row over the G13/G16 terrace, export step 29) estimates 27 bodies; the neighbours 13, 16, 17 estimate the same set, 15 and 18 break away at 31. RingYd 10 drops pull 14 to 22 (red, then restored).
The pull lint dropped every npc_flags spawn and every faction-35 spawn, so the -awakened and -scripted entries (Uldaman's Stone Keepers, scripted gossip NPCs) never joined a pull. A pull row that owned only such a spawn reported "no target" instead of its body count. PullFilter now carries the check's awakened and scripted sets. A spawn of those entries bypasses the npc_flags, faction 35, friendly and ignore exclusions; the critter rule still applies. hostileMob is unchanged for the route lint. Test: four awakened Stone Keepers at one stand with ceiling 3 count 4 bodies, and the same for a scripted spawn with npc_flags.
Owner
Author
|
Combined into #401 |
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.
Part A of the camp-pull spec, turtle-agent side. The TortoiseBots side is feat/aggro-walk-ring.
What it adds
internal/aggroest: a port of TortoiseBots' own pull estimate. It counts:The walk is sampled along its whole length, with the endpoint kept.
Plan field
max_bodies: per pull group; a plan-widepull_ceilingis the fallback. It is exported in the pull row'sitemcolumn.pull_sizelint indungeongen -check:kill_firstfirst. A row with no valid target gets ano targetfinding.-strict.Current zul_gurub result: 95 pull_size findings. These are pulls that would wake more bodies than their ceiling, and they are the input for picking camp-pull and staged-pull points.
Reviews: three Codex rounds; all findings are fixed. Tests:
go test ./..., vet and gofmt are clean.