From d41c9dd1eb42e9a2e5d86c35cb6b9986c54e8330 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Fri, 25 Nov 2022 21:24:16 +0200 Subject: [PATCH] add player point edit support --- src/App.svelte | 23 ++++++++++++++++++++++- src/lib/State.ts | 15 +++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/App.svelte b/src/App.svelte index 2c5f3a5..8ffba21 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -280,6 +280,17 @@ state = undo_stack_push(s); } + function ui_player_edit_points(pid: number, amount: number): void { + let s: State = state.deepcopy(); + + if (state.can_player_edit_points(pid, amount)) + s.player_edit_points(pid, amount); + else + return; + + state = undo_stack_push(s); + } + function ui_new_frame(): void { if (!state.can_new_frame()) return; @@ -617,7 +628,10 @@ {:else}
({player.last_break})
{/if} -
+
+
ui_player_edit_points(player.pid, -1)}>-
+
ui_player_edit_points(player.pid, 1)}>+
+
{/each}
@@ -695,6 +709,13 @@ grid-template-rows: 1fr 1fr 3fr 1fr 1fr; } + .double-button { + display: grid; + grid-template-columns: 50% 50%; + grid-template-rows: 100%; + border-radius: inherit; + } + .info-card { display: grid; grid-template-columns: 1fr; diff --git a/src/lib/State.ts b/src/lib/State.ts index c0598a6..d6af1fb 100644 --- a/src/lib/State.ts +++ b/src/lib/State.ts @@ -523,6 +523,21 @@ class State { // Note: No end turn! } + + can_player_edit_points(pid: number, amount: number): boolean { + let p: Player = this._get_player_by_pid(pid); + + return p.points + amount >= 0; + } + + player_edit_points(pid: number, amount: number): void { + console.assert(this.can_player_edit_points(pid, amount)); + + let p: Player = this._get_player_by_pid(pid); + + // FIXME: maybe don't adjust player points here directly + p.points = p.points + amount; + } } export default State;