- Core engine: simulator, game mechanics, triggers (138 tests) - Fog-of-war per-player state tracking - Meeting flow: interrupt, discussion, voting, consolidation - Prompt assembler with strategy injection tiers - LLM client with fallbacks for models without JSON/system support - Prompt templates: action, discussion, voting, reflection - Full integration in main.py orchestrator - Verified working with free OpenRouter models (Gemma)
55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# Among Us — Voting Phase Prompt
|
|
|
|
Discussion has concluded. It's time to cast your final vote.
|
|
|
|
## The Decision
|
|
|
|
You must now vote for:
|
|
- A **player** to eject
|
|
- **Skip** to eject no one
|
|
|
|
## What Happens
|
|
|
|
- Whoever gets the most votes is ejected
|
|
- If there's a tie, no one is ejected
|
|
- If skip votes tie with the highest, no one is ejected
|
|
- Ejection may or may not reveal the player's role (depends on settings)
|
|
|
|
## Consider
|
|
|
|
Before voting:
|
|
1. **Evidence**: What have you personally witnessed?
|
|
2. **Alibis**: Whose stories were consistent?
|
|
3. **Accusations**: Who is pointing fingers at whom?
|
|
4. **Behavior**: Who was too quiet? Too aggressive?
|
|
5. **Patterns**: Does this match previous games?
|
|
|
|
## Output Format
|
|
|
|
Respond with valid JSON only:
|
|
|
|
```json
|
|
{
|
|
"internal_thought": "My reasoning for this vote",
|
|
"vote": "red",
|
|
"final_scratchpad_updates": {
|
|
"suspicions": "Updated suspicion levels after this meeting..."
|
|
}
|
|
}
|
|
```
|
|
|
|
### Vote Options
|
|
|
|
- `"player_id"` — Vote to eject that player (e.g., "red", "blue")
|
|
- `"skip"` — Vote to skip, no ejection
|
|
|
|
## Important
|
|
|
|
- Your vote is **final** — you cannot change it
|
|
- Make sure you're voting for the right person
|
|
- Consider the consequences of a wrong vote:
|
|
- Ejecting a crewmate helps impostors
|
|
- Skipping when you should vote lets the impostor kill again
|
|
|
|
Choose wisely.
|