diff --git a/backend/internal/handler/admin.go b/backend/internal/handler/admin.go index 05a026b..4ecf806 100644 --- a/backend/internal/handler/admin.go +++ b/backend/internal/handler/admin.go @@ -87,6 +87,7 @@ type adminHeroDetailResponse struct { model.Hero TownPause *model.TownPausePersisted `json:"townPause,omitempty"` AdminLiveMovement *adminLiveMovementJSON `json:"adminLiveMovement,omitempty"` + HeroMovement *game.HeroMovement `json:"heroMovement,omitempty"` } // adminWSSnapshot is the admin live WebSocket payload: hero detail + last hero_move (client WS) sample. @@ -160,6 +161,9 @@ func (h *AdminHandler) buildAdminHeroDetail(hero *model.Hero) (adminHeroDetailRe out.Hero.RefreshDerivedCombatStats(now) out.TownPause = hm.Hero.TownPause out.AdminLiveMovement = buildAdminLiveMovementSnap(hm) + out.HeroMovement = hm + } else if rg := h.engine.RoadGraph(); rg != nil { + out.HeroMovement = game.NewHeroMovement(hero, rg, now) } return out, nil }