Fix avanzamento quarto basket e regia senza cronometro.
Normalizza il periodo nel backend quando l'app invia "Q1" via cable, così advance_period aggiorna regia e overlay; rimuove i controlli cronometro dalla regia e rende più tollerante il decode iOS al resume sessione. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -28,6 +28,7 @@ module Scoring
|
||||
def ensure_period_data(score)
|
||||
data = period_data(score)
|
||||
default_data.each { |k, v| data[k] = v unless data.key?(k) }
|
||||
PeriodData.normalize_hash!(data)
|
||||
data
|
||||
end
|
||||
|
||||
@@ -43,7 +44,7 @@ module Scoring
|
||||
end
|
||||
|
||||
def period_label(data)
|
||||
period = data["period"].to_i
|
||||
period = PeriodData.number_from(data["period"]) || 1
|
||||
return "OT" if data["overtime"]
|
||||
|
||||
board = @match.effective_board_type
|
||||
@@ -63,15 +64,17 @@ module Scoring
|
||||
rules = period_rules
|
||||
max_periods = rules.periods
|
||||
|
||||
current = PeriodData.number_from(data["period"]) || 1
|
||||
|
||||
if data["overtime"]
|
||||
data["period"] = data["period"].to_i + 1
|
||||
data["period"] = current + 1
|
||||
data["clock_secs"] = rules.overtime_duration_secs
|
||||
elsif data["period"].to_i >= max_periods
|
||||
elsif current >= max_periods
|
||||
data["overtime"] = true
|
||||
data["period"] = max_periods + 1
|
||||
data["clock_secs"] = rules.overtime_duration_secs
|
||||
else
|
||||
data["period"] = data["period"].to_i + 1
|
||||
data["period"] = current + 1
|
||||
data["clock_secs"] = rules.period_duration_secs
|
||||
end
|
||||
data["clock_running"] = false
|
||||
@@ -109,7 +112,14 @@ module Scoring
|
||||
score = ensure_score(session)
|
||||
data = ensure_period_data(score)
|
||||
%w[period clock_secs clock_running home_score away_score overtime].each do |key|
|
||||
data[key] = payload[key] if payload.key?(key)
|
||||
next unless payload.key?(key)
|
||||
|
||||
if key == "period"
|
||||
period = PeriodData.number_from(payload[key])
|
||||
data["period"] = period if period&.positive?
|
||||
else
|
||||
data[key] = payload[key]
|
||||
end
|
||||
end
|
||||
save_period_score!(score, data)
|
||||
score
|
||||
|
||||
Reference in New Issue
Block a user