Repository navigation
Add unlockable/equippable player titles - #2827
Closed
Yorudan210 wants to merge 67 commits into
Closed
Yorudan210 wants to merge 67 commits into
Yorudan210 wants to merge 67 commits into
Conversation
- TitleDescriptor shared model + resources/titles.json catalog (TitleManager) - Player: UnlockedTitleIds/EquippedTitleId (persisted), UnlockTitle/EquipTitle/RemoveTitle - Reuses the existing HeaderLabel mechanism for above-the-head display/sync - New packets: UnlockedTitlesPacket (server->client), EquipTitlePacket (client->server) - Admin console commands: unlocktitle, equiptitle - Client: Titles window (Y key) to equip/remove unlocked titles NOTE: not compiled (no NuGet access in this environment). An EF Core migration still needs to be generated for the new Player columns: dotnet ef migrations add AddPlayerTitles --project Intersect.Server
…fixes Titles - Titles are now game objects (Title Editor) instead of a JSON file; unlock/equip via console commands, titles window (Y), header label sync Pets - Pet game object + Pet Editor; "Change Pet" event command - Server-side Pet entity that follows its owner and fetches loot (passable, invulnerable, respects loot ownership) Dungeons - Dungeon game object + Dungeon Editor (entrance, access type, players, level, time limit, lives, cooldown, rewards) - Dungeon runs on dedicated shared map instances: shared lives, timer, objective banner, cooldowns, personal records, party invitations, end-of-run result screen; dungeons window (J) - Event commands: Enter/Complete/Fail Dungeon, Set Dungeon Objective - Condition: Is in Dungeon Instance variables - New variable type shared by everyone on a map instance (editor, Set Variable / Input Variable / conditions / event text, change trigger) Engine fixes - Texture eviction loop unloaded every texture each frame when free VRAM was under 1 GiB (missing break) -> huge FPS drop - Continuous tile movement (carry-over between tiles, chained move timer with a matching server rule) and smoothed camera Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…cross-PC dev Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Boss support: per-spell announcements (top alert) and phase announcements (center) for NPCs filed in a "Boss..." folder, phase change fallbacks, boss death event forwarding for player summons, dungeon completion despawns remaining NPCs. - Summon spells: ring placement (hit radius) and staggered "rain" mode (cast range) dropping pinned hazards on players one after the other; Static NPCs can cast; hostile AoE spares the caster's summon team. - Houses: Indoor / Indoor Door map attributes (roof layers hide, inside blocked except through doors), RoofLayers option, editor support. - Staff ranks [GM]/[M]/[G] before player names, new Guide access level. - Item tooltips show required level / stats from usage requirements. - Combat feel: spell queue, crit screen shake, hit sounds, double-click to start auto-attack. - Editor: spell editor tolerates Summon/Companion/PassiveBond types; item description guards against missing equipment slots. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Dungeons: three difficulties (Easy 10 / Normal 30 / Hard 60) scaling every monster of a run through SpawnNpc, scaled rewards, records/cooldown/leaderboard kept per dungeon and difficulty; procedural generation removed (server + editor). - UI: dungeon, titles and achievements windows rebuilt (docked layout, dark button lists, enlarged skins), item tooltip shows rune enchantment level. - Enchantment runes 1-10 stored on the weapon (ItemProperties.EnchantLevel), sent with the equipment packet, drawn as a flame aura from the weapon silhouette. - Combat: /level admin command, bullet-hell projectile patterns for the boss (rotating spirals via per-wave rotation), target marker, window skins. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…nd Professions window - 11 professions (5 gathering, 6 crafting), skill 1-300, max 2 crafting professions per player - Recipes: profession + orange/yellow/green/grey thresholds, trainable flag; profession recipes never fail - Player skills and known recipes persisted (hand-written Game/Player migrations) - ProfessionsPacket, Profession event command (editor form), recipe fields in the craft editor - Client: Professions window (key N), coloured recipe list in the crafting window Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…tigation - Narrated story intro before the main menu (skippable, remembered via registry preference) - Main menu redesigned: fullscreen background, top-left logo, vertical text list - Launcher: two-panel layout with patch notes and log - Server maintenance mode (admin-only login) and monster-vs-player level damage mitigation (bosses exempt) - Debug and Release builds now share the same Hail/Approval packet format - Longer release disconnect timeout (120s) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…shing Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
When the map exists but is not loaded yet (empty map cache), AddEvent silently dropped the event packets, so NPCs never appeared on first connection. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…awing Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…on, ingredient names, empty message Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…equirement, components, stats line) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…char per line) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ide the frame Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…items Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…t grid against zero columns Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e WoW-style changes" This reverts commit 830666f.
…ely on the hovered control staying the source slot) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…emove drag diagnostics Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e); migrate E off Attack/Interact once Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…eract control Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…y on visible pixels, bubble above the real top Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…g-sort]) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rol did not handle it (player client spells) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… weapon (client + server, with a warning) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rc next to the player) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ine of sight, diagonal corners), flee controlled only by the editor's Flee Health % Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ble-click auto-attack chases Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ability collisions and furniture, not only map Blocked attributes Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r cannot spin the thread and fill the disk Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ests, resources, tilesets and other editor definitions Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…by the pre-publish check) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
NOTE: not compiled (no NuGet access in this environment). An EF Core migration still needs to be generated for the new Player columns:
dotnet ef migrations add AddPlayerTitles --project Intersect.Server