Queenstown stage - #615
Conversation
WalkthroughRenames a field property to PerformanceEndTick and updates its serialization; adds MaxPerformanceDuration constant; refactors PerformanceStageManager to depend on FieldManager and adds StartPerformance/EndPerformance/IsCurrentPerformer/Update APIs; calls PerformanceStage?.Update() per tick and simplifies InstrumentHandler start/end calls. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Player as GameSession
participant IH as InstrumentHandler
participant PSM as PerformanceStageManager
participant FM as FieldManager
participant Field as Field/Properties
rect rgba(225,245,254,0.6)
Player->>IH: StartPerform
IH->>PSM: StartPerformance(session)
PSM->>PSM: ensure no active performance
PSM->>FM: use FieldManager to access field
PSM->>PSM: set owner, endTick = now + MaxPerformanceDuration
PSM->>Field: apply FieldPropertyMusicConcert(PerformanceEndTick)
PSM-->>IH: Started/ignored
end
sequenceDiagram
autonumber
participant Tick as TickLoop
participant PSM as PerformanceStageManager
participant Field as Field/Properties
rect rgba(232,245,233,0.6)
loop each field tick
Tick->>PSM: Update()
alt time expired OR owner absent/disconnected
PSM->>Field: remove FieldPropertyMusicConcert
PSM->>PSM: clear owner/endTick
else active
PSM-->>PSM: maintain state
end
end
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🧰 Additional context used🧬 Code graph analysis (2)Maple2.Server.Game/Trigger/TriggerContext.Player.cs (2)
Maple2.Server.Game/Manager/Field/FieldManager/FieldManager.cs (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
🔇 Additional comments (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
New Features
Bug Fixes