From 341496a03d9eb13142081eb018437aa68a1b080e Mon Sep 17 00:00:00 2001 From: JasonReed-2 Date: Wed, 6 Sep 2023 22:26:26 -0500 Subject: [PATCH] Refactored the scored battle data. --- src/renderer/model/battle/spads-battle.ts | 28 ++++++++ src/renderer/views/multiplayer/custom.vue | 80 ++++++++--------------- 2 files changed, 56 insertions(+), 52 deletions(-) diff --git a/src/renderer/model/battle/spads-battle.ts b/src/renderer/model/battle/spads-battle.ts index d0d479dc..e50f7d0e 100644 --- a/src/renderer/model/battle/spads-battle.ts +++ b/src/renderer/model/battle/spads-battle.ts @@ -13,11 +13,18 @@ type LobbyType = Static; type BattleType = Static; type LobbyResponseHandlers = { [K in keyof Required]: (data: Required) => void }; +interface SpadsScore { + score: number; + factors: { [factorName: string]: number }; + primaryFactor: string; +} + export class SpadsBattle extends AbstractBattle { public readonly currentVote: Ref = ref(null); public readonly founder: ComputedRef; public readonly isLockedOrPassworded: ComputedRef; public readonly myQueuePosition: ComputedRef; + public spadsScore: SpadsScore; protected responseHandlers: { [K in keyof Required]: (data: Required) => void } = { lobby: (data) => { @@ -218,6 +225,11 @@ export class SpadsBattle extends AbstractBattle { } return queuePosIndex + 1; }); + this.spadsScore = { + score: 0, + factors: {}, + primaryFactor: "", + }; } public handleServerResponse(battleUpdateResponse: Partial & { lobby?: Partial }>) { @@ -403,4 +415,20 @@ export class SpadsBattle extends AbstractBattle { client: { sync }, }); } + + public addScoreFactor(factorName: string, factorScore: number) { + this.spadsScore.score += factorScore; + this.spadsScore.factors[factorName] = factorScore; + if (!this.spadsScore.primaryFactor) { + this.spadsScore.primaryFactor = factorName; + } + } + + public clearScore() { + this.spadsScore = { + score: 0, + factors: {}, + primaryFactor: "", + }; + } } diff --git a/src/renderer/views/multiplayer/custom.vue b/src/renderer/views/multiplayer/custom.vue index 7a256601..e7106e6e 100644 --- a/src/renderer/views/multiplayer/custom.vue +++ b/src/renderer/views/multiplayer/custom.vue @@ -35,17 +35,17 @@ @row-select="onRowSelect" @row-dblclick="onDoubleClick" > - +