fix: correct score display and selection logic in FarkelGame
- Fix turn score display to show kept dice separately from selected dice - Update selection scoring to only evaluate currently selected dice, not combined with set aside dice - Add validation check for empty selections
This commit is contained in:
parent
d34ab83b39
commit
d82a8d676f
|
|
@ -425,7 +425,9 @@ export default class FarkelGame extends Phaser.Scene {
|
|||
const hasPending = this.gs.turn.kept > 0 || (this.gs.phase === 'awaitPick' && this.selectionScore() > 0);
|
||||
const showTurn = (seat === cur && !isGameOver(this.gs) && hasPending);
|
||||
if (showTurn) {
|
||||
const total = (this.gs.phase === 'awaitPick') ? this.selectionScore() : this.gs.turn.kept;
|
||||
const total = (this.gs.phase === 'awaitPick')
|
||||
? this.gs.turn.kept + this.selectionScore()
|
||||
: this.gs.turn.kept;
|
||||
row.score.setText(`${p.score} +${total}`);
|
||||
} else {
|
||||
row.score.setText(String(p.score));
|
||||
|
|
@ -499,13 +501,14 @@ export default class FarkelGame extends Phaser.Scene {
|
|||
// ── selection helpers ─────────────────────────────────────────────────────────
|
||||
selectionValues() { return [...this.selected].map((i) => this.gs.turn.rolled[i]); }
|
||||
selectionValid() {
|
||||
const combined = [...this.gs.turn.setAsideDice, ...this.selectionValues()];
|
||||
return scoreSelection(combined).valid;
|
||||
const values = this.selectionValues();
|
||||
if (values.length === 0) return false;
|
||||
return scoreSelection(values).valid;
|
||||
}
|
||||
selectionScore() {
|
||||
const combined = [...this.gs.turn.setAsideDice, ...this.selectionValues()];
|
||||
if (combined.length === 0) return 0;
|
||||
const r = scoreSelection(combined);
|
||||
const values = this.selectionValues();
|
||||
if (values.length === 0) return 0;
|
||||
const r = scoreSelection(values);
|
||||
return r.valid ? r.points : 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue