Skip to content

Release: dev into main (racial mounts, Dungeons tab, raid quest rewards, empty gear slots) - #1105

Merged
Sagiroth merged 17 commits into
mainfrom
dev
Oct 19, 2026
Merged

Sagiroth merged 17 commits into
mainfrom
dev

Conversation

@Sagiroth

Copy link
Copy Markdown
Owner

Release batch from dev. Merge it with a merge commit.

Players

Operators and tools

  • Dashboard: new Dungeons tab (feat(dashboard): Dungeons tab with a live view of every dungeon run (#895) #1103). One row per dungeon or raid copy with bots in it; click it for a live map of that copy with the party, the real player marked apart, raids grouped by subgroup. Two groups in two copies of the same dungeon are two runs. Read-only. Real map pictures appear when TBDASH_MAP_DIR is set (same folder as the Commanders tab), otherwise the grid.
  • Telemetry protocol v12: additive instance and subgroup per unit. An older dashboard ignores them; with an older module the Dungeons tab shows one run per map.
  • AiPlayerbot.RandomBotShopMounts = 1 still restores every mount.

Testing

Closes #895

Enforce strict 100% own-race racial mount selection for random pool and
hired bots (disallowing cross-race mounts), while leaving player alts
ungated. Add explicit vendor mount lists for all 10 playable races,
enforce tier-based mount preference (epic > normal > turtle), and ensure
bots initializing at level 18+ receive proper racial mounts and riding
skills.
fix: bots ride their own race's mounts (goblin Rocket Cars/Shredders, epic only at 60)
…#895)

Protocol v12: BOT_BATCH carries 'instance' (Map::GetInstanceId(), 0 in the
open world) and 'subgroup' (raid subgroup) per unit, additive; an older
module omits them and the daemon falls back to one run per map.

Daemon: internal/state/dungeons.go groups the roster into runs — one per
(map, instance) copy of a dungeon or raid with at least one bot in it;
open world and battlegrounds are never runs, a player alone in an
instance is neither. GET /api/v1/dungeons serves the runs with members
(bots and real players), first-seen per game-server session.

Dashboard: new read-only Dungeons tab — list of runs (dungeon name +
copy number, player or 'no player', bots, down, short state, seen-for)
and a live view per run reusing the Commanders card and map renderer;
the real player is marked apart (gold dot ring, badge). Raid runs read
as compact subgroup blocks of 5. The world map's 'in instances' line
and a bot profile link to the bot's run.
The normal pass rejects every candidate for some slots, and the old
backstop only covered level < 30 and eight slots, skipping the item-level
cap. Trinkets with class restriction had zero stat weight because the
no-stat rule compared the AllowableClass bitmask to a class id.

A slot still empty after the normal pass now takes the best candidate that
passes the same hard gates (level, item-level cap, quality band, fresh-seed
provenance, paired duplicate, game equip check). Shirt and tabard are left
alone.
Chain propagation now comes from quests on a raid map or started by a
raid-exclusive item. Raid-type and raid-scale quests stay raid themselves
but no longer taint their successors. Standalone test updated.
…tance

Chain sources are quests on a raid map, quests started by a raid-exclusive
item, and raid-type quests whose zone is not a non-raid instance area. Raid-scale
quests stay raid but do not taint successors.
…-weight cache

The backstop only saw items with a non-zero stat weight for the spec (equipCache), so a fresh level-5 tank ended with no head, neck, shoulders or second ring while the DB held qualifying items. RandomItemMgr now keeps a per-slot index of every item info cache entry (ring and trinket items under each slot they occupy). The backstop tries weighted candidates for the spec first, then the index. Same hard gates and ranking as before.
fix: no raid quest rewards on pool bots, and fill empty gear slots when a fitting item exists
feat(dashboard): Dungeons tab with a live view of every dungeon run (#895)
@Sagiroth
Sagiroth marked this pull request as ready for review October 19, 2026 12:49
@Sagiroth
Sagiroth merged commit e889574 into main Oct 19, 2026
12 checks passed
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.

[feature][dashboard]: Live dungeon map view and agent run maps

1 participant