Feat: Alliance and betrayal hotkeys#3110
Conversation
WalkthroughAdds alliance request and break-alliance actions: new keybinds, input events, client handlers that validate target ownership and permissions, intent events emitted, event display logging, and localization/UI entries for the new strings and keybinds. Changes
Sequence DiagramsequenceDiagram
participant Player as Player (Input)
participant InputHandler as InputHandler
participant Runner as ClientGameRunner
participant Intents as Intent Events
participant EventsDisplay as EventsDisplay
Player->>InputHandler: Press K (request) or L (break)
InputHandler->>InputHandler: Emit DoRequestAllianceEvent / DoBreakAllianceEvent
InputHandler->>Runner: Dispatch DoRequestAllianceEvent / DoBreakAllianceEvent
Runner->>Runner: Resolve tile under cursor
Runner->>Runner: Verify tile owner is a player
Runner->>Runner: Check canSendAllianceRequest / canBreakAlliance
Runner->>Intents: Emit SendAllianceRequestIntentEvent / SendBreakAllianceIntentEvent
Intents->>EventsDisplay: Intent event received
EventsDisplay->>EventsDisplay: Append ALLIANCE_REQUEST event (with recipient, tick)
EventsDisplay->>Player: Display confirmation message
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
|
please run |
|
looks like there are some conflicts |
Original Feature request by @FloPinguin #3077
Description:
Adds hotkeys for Requesting alliances and breaking alliances. This allows for players to send or break alliances whose tile is under the cursor, without opening the radial menu.
Keybinds:
New "Ally Keybinds" section in Settings -> Keybinds
Request alliance: Default: K - sends an alliance request to the player/bot/nation under the cursor
Break alliance: Default: L - breaks the alliance with the player at the cursor
Behavior:
Screenshots:
Keybind menu:


In game logs:
Please complete the following:
Discord username:
Dave9595