midnight_mystery / backend /services /knowledge_gate.py
lcpizani's picture
Add full app: pages, assets, backend, config
811d960
Raw
History Blame Contribute Delete
690 Bytes
from backend.models.case import NPC, CaseFile, ClueState
def build_authorized_context(npc: NPC, case: CaseFile) -> list[str]:
"""Returns the facts the NPC is allowed to reference this turn."""
ctx: list[str] = list(npc.authorized_reveals.always)
if npc.emotional_state.anxiety > 50:
ctx.extend(npc.authorized_reveals.anxiety_gt_50)
if npc.emotional_state.anxiety > 75:
ctx.extend(npc.authorized_reveals.anxiety_gt_75)
discovered_ids = {c.id for c in case.clues if c.state != ClueState.hidden}
for clue_id, reveals in npc.authorized_reveals.clue_found.items():
if clue_id in discovered_ids:
ctx.extend(reveals)
return ctx