From b29cc56abce8aa5c2d5a623fdd8ea95af1fd3fa1 Mon Sep 17 00:00:00 2001 From: falc <76709589+falcolnic@users.noreply.github.com> Date: Wed, 4 Jun 2025 00:54:54 +0200 Subject: [PATCH] added ratio controls (#963) ## Description: added custom controls for attack ration to user setting ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced - [x] I understand that submitting code with bugs that could have been caught through manual testing blocks releases and new features for all contributors ## Please put your Discord username so you can be contacted if a bug or regression is found: @qqkedsi ![Screenshot from 2025-05-31 01-18-30](https://github.com/user-attachments/assets/2460aab2-51ef-46d9-9d05-53e84dd57b29) Co-authored-by: evanpelle --- README.md | 6 ++++++ resources/lang/en.json | 5 +++++ src/client/InputHandler.ts | 10 ++++++---- src/client/UserSettingModal.ts | 22 ++++++++++++++++++++++ 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e4bd2aa27..f2081d255 100644 --- a/README.md +++ b/README.md @@ -97,10 +97,16 @@ npm run start:server-dev ``` - **Lint and fix code**: + ```bash npm run lint:fix ``` +- **Testing** + ```bash + npm test + ``` + ## 🏗️ Project Structure - `/src/client` - Frontend game client diff --git a/resources/lang/en.json b/resources/lang/en.json index d65dd52c0..58cf977c3 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -252,6 +252,11 @@ "view_options": "View Options", "toggle_view": "Toggle View", "toggle_view_desc": "Alternate view (terrain/countries)", + "attack_ratio_controls": "Attack Ratio Controls", + "attack_ratio_up": "Increase Attack Ratio", + "attack_ratio_up_desc": "Increase attack ratio by 10%", + "attack_ratio_down": "Decrease Attack Ratio", + "attack_ratio_down_desc": "Decrease attack ratio by 10%", "zoom_controls": "Zoom Controls", "zoom_out": "Zoom Out", "zoom_out_desc": "Zoom out the map", diff --git a/src/client/InputHandler.ts b/src/client/InputHandler.ts index aa6a225b6..47f57ae7a 100644 --- a/src/client/InputHandler.ts +++ b/src/client/InputHandler.ts @@ -122,6 +122,8 @@ export class InputHandler { moveRight: "KeyD", zoomOut: "KeyQ", zoomIn: "KeyE", + attackRatioDown: "Digit1", + attackRatioUp: "Digit2", ...JSON.parse(localStorage.getItem("settings.keybinds") ?? "{}"), }; this.canvas.addEventListener("pointerdown", (e) => this.onPointerDown(e)); @@ -218,8 +220,8 @@ export class InputHandler { "ArrowRight", "Minus", "Equal", - "Digit1", - "Digit2", + keybinds.attackRatioDown, + keybinds.attackRatioUp, keybinds.centerCamera, "ControlLeft", "ControlRight", @@ -240,12 +242,12 @@ export class InputHandler { this.eventBus.emit(new RefreshGraphicsEvent()); } - if (e.code === "Digit1") { + if (e.code === keybinds.attackRatioDown) { e.preventDefault(); this.eventBus.emit(new AttackRatioEvent(-10)); } - if (e.code === "Digit2") { + if (e.code === keybinds.attackRatioUp) { e.preventDefault(); this.eventBus.emit(new AttackRatioEvent(10)); } diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index cfd9d21c1..405e24145 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -345,6 +345,28 @@ export class UserSettingModal extends LitElement { @change=${this.handleKeybindChange} > +
+ ${translateText("user_setting.attack_ratio_controls")} +
+ + + + +
${translateText("user_setting.zoom_controls")}