feature: add object level and master level to live map - #881
Merged
Conversation
sven-n
reviewed
Aug 16, 2026
sven-n
left a comment
Member
There was a problem hiding this comment.
Reviewed the change end to end — it's correct and cleanly scoped, no blocking issues. The comments below are minor.
What I verified:
MapPlayerListrows key offplayer.IdfromConcurrentDictionary<int, Player>, which is the samelocateable.Idwritten intoMapObject.Idand used as the key in the Three.jsworld.objectsmap — soselectObject(objectId)resolves the right mesh.- Blazor JS interop serializes with camelCase, so
Level/MasterLevelarrive asdata.level/data.masterLevel, matching the launcher. - Neither
GetLevelnorGetMasterLevelcan throw or NRE for a player without a selected character (Player.Levelis null-guarded;MonsterAttributeHolder.GetValueOfAttributefalls through to 0). WorldObjectPickerkeeps no "last picked" state, so drivingonObjectPickedfrom outside the picker can't desync it — a later canvas click still behaves correctly.- The committed
MUnique.OpenMU.Web.Map.jsdiff matches the TypeScript change exactly, with no unrelated bundle drift, andMapPlayerList.razor.cssfits the CSS-isolation setup already used byMap.razor.css/LiveMap.razor.cssin this library.
One thing not covered by an inline comment: the info card was moved above the player list, which is a visible layout change the description doesn't mention. It looks intentional, just worth calling out.
Generated by Claude Code
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.
Live map: select players from the list & show level info
Improves the live-map overview in the AdminPanel.
What changed
that player's object on the map, exactly like clicking the object itself
(highlight + info card).
OnSelectPlayercallback fromMapPlayerList→Map→ newSelectMapObject(...)JS interop →MapApp.selectObject(objectId).stopPropagation, so they nolonger trigger row selection; rows get a pointer cursor.
MapObject,CreateMapObject, and theObjectData/PlayerDatatypes.MUnique.OpenMU.Web.Map.js(+ sourcemap) from TypeScript sources.