65 lines
2.2 KiB
Markdown
65 lines
2.2 KiB
Markdown
|
|
# Module: `end_condition.hybrid_clear_collapse`
|
|||
|
|
|
|||
|
|
| | |
|
|||
|
|
|---|---|
|
|||
|
|
| **aspect** | `end_condition` |
|
|||
|
|
| **module_id** | `end_condition.hybrid_clear_collapse` |
|
|||
|
|
| **role** | End on **board clear**, **group collapse**, or **max rounds** |
|
|||
|
|
| **status** | **ready-for-implement** (draft frozen for v0 kernel) |
|
|||
|
|
| **rules_delta** | [`rules_delta.yaml`](rules_delta.yaml) |
|
|||
|
|
| **design** | [history/260808-deal-end-sequences-design.md](../../../history/260808-deal-end-sequences-design.md) |
|
|||
|
|
|
|||
|
|
Independent of `problem_stress` / `problem_deal` / `attack_relief`. Measure
|
|||
|
|
**alone** first, then profile `scoped_plus_hybrid_end`.
|
|||
|
|
|
|||
|
|
## Frozen v0 rules
|
|||
|
|
|
|||
|
|
### END-CLEAR
|
|||
|
|
|
|||
|
|
After the **Solve** step: if **zero** unclaimed Problems remain in play →
|
|||
|
|
**end the game immediately**.
|
|||
|
|
|
|||
|
|
- Apply mode scoring as usual.
|
|||
|
|
- **Threshold:** if total claimed value ≥ scenario threshold for seat band →
|
|||
|
|
group success (SHARED mastery / semi-coalition personal winners as normal).
|
|||
|
|
- If claimed value < threshold but board is empty (should be rare) → group
|
|||
|
|
**failure** (nothing left to claim).
|
|||
|
|
|
|||
|
|
### END-COLLAPSE
|
|||
|
|
|
|||
|
|
After Round End stress clamp (and problem-stress ticks if any module active),
|
|||
|
|
before Lead rotation:
|
|||
|
|
|
|||
|
|
**Collapse** if **either**:
|
|||
|
|
|
|||
|
|
1. **No seat has Stress ≤ 3**, or
|
|||
|
|
2. **Majority** of seats are in an **active DARVO sequence** (stage ≠ OFF).
|
|||
|
|
|
|||
|
|
Effect:
|
|||
|
|
|
|||
|
|
- End the game.
|
|||
|
|
- **Group success = false** (SHARED fails).
|
|||
|
|
- Semi / coalition: **no personal / coalition winners** (table broke).
|
|||
|
|
|
|||
|
|
### END-CEILING
|
|||
|
|
|
|||
|
|
If Round **5** completes without CLEAR or COLLAPSE → end with current
|
|||
|
|
threshold + mode scoring (identical to baseline fixed-rounds behaviour).
|
|||
|
|
|
|||
|
|
Round max is **5** in v0 (same product length as r0). Changing max is a
|
|||
|
|
different module later if needed.
|
|||
|
|
|
|||
|
|
## Non-goals (v0)
|
|||
|
|
|
|||
|
|
- Soft collapse (one seat at 5 only).
|
|||
|
|
- Extending rounds when board not clear.
|
|||
|
|
- Mode-specific collapse exceptions.
|
|||
|
|
|
|||
|
|
## Success criteria (when clay-borg implements)
|
|||
|
|
|
|||
|
|
1. Alone on baseline content: some games end before round 5 (clear or collapse).
|
|||
|
|
2. Mean game length ≤ 5 rounds; no hangs.
|
|||
|
|
3. With `problem_stress.scoped`: collapse rate non-zero for unregulated policies;
|
|||
|
|
clear rate non-zero for greedy SHARED at 3–4p.
|
|||
|
|
4. Does not recreate H1-style 0% greedy wins solely via collapse spam.
|