Spaces:
Running
Running
File size: 630 Bytes
414dc55 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | """Finalize an accusation into a scored, terminal GameState."""
from __future__ import annotations
from ..schemas.accusation import Accusation, Verdict
from ..schemas.case import CaseFile
from .game_state import GameState
from .scoring import score_accusation
def finalize_accusation(
state: GameState, case: CaseFile, accusation: Accusation
) -> tuple[GameState, Verdict]:
"""Score the accusation and return a new, solved GameState plus the verdict."""
verdict = score_accusation(case, accusation, state)
new_state = state.model_copy(update={"solved": True, "verdict": verdict})
return new_state, verdict
|