Add personality-driven bots with 8 archetypes (Nit, TAG, LAG, Maniac, Calling Station, Loose Fish, Old Man, Monster TAG) across 5 skill levels. Includes: - Three-layer decision pipeline (base strategy → personality filter → skill noise) - Decision timer system with archetype-specific timeout defaults - Observation tracking engine (VPIP, PFR, Fold-to-CBet, WTSD, bet sizing, timing tells) - Player classification engine with weighted scoring and confidence scaling - Table setup UI with visual seat editor and quick presets - Info display system with 4 visibility levels - Teaching coach with post-hand analysis and real-time suggestions Archives bot-intelligence change and syncs all 8 delta specs to main specs.
3.2 KiB
3.2 KiB
Why
Bots currently make random coin-flip decisions, providing no strategic depth or learning value. Players need realistic bot opponents with distinct personalities, skill levels, and exploitable patterns — turning PokeR from a basic poker simulator into a player reading training ground.
What Changes
- Bot personality system: 8 distinct player archetypes (Nit, TAG, LAG, Maniac, Calling Station, Loose Fish, Old Man, Monster TAG) each with unique decision-making profiles
- Skill levels: 5 difficulty tiers (Novice, Beginner, Medium, Hard, Ultra) per archetype, with archetype-specific mistake libraries
- Table setup UI: Visual seat editor letting players assign bot types and skill levels, with quick presets (Fish Table, Regular Grind, High Stakes, Training Mix)
- Decision timer: Sequential action timer with configurable duration (5-30s), optional human timer, timeout defaults per archetype
- Observation engine: Tracks VPIP, PFR, Fold-to-CBet, WTSD, bet sizing patterns, and timing data per opponent
- Classification system: Weighted scoring algorithm that infers player types from observed stats with confidence percentages
- Info levels: 4 tiers (None, Hints, Stats, Full Reveal) controlling what the player sees about opponents
- Feedback system: 3 tiers (Off, Post-hand, Real-time) providing coaching at the player's chosen intensity
- Teaching moments: Pattern recognition confirmations when players successfully exploit identified bot types
- Timing tells: Decision time tracked per action; archetype-specific timing patterns that vary by skill level
Capabilities
New Capabilities
bot-personalities: 8 bot archetypes with personality-driven decision filters and archetype-specific mistake libraries across 5 skill levelstable-setup: Configurable table builder UI with seat-level bot type/skill selection, presets, and global settings (blinds, stack sizes)decision-timer: Sequential action timer system with configurable duration, timeout defaults per archetype, and optional human timerobservation-tracking: Per-bot stat tracking (VPIP, PFR, Fold-to-CBet, WTSD, bet sizing, timing) across hand historyplayer-classification: Weighted scoring algorithm that classifies observed bots into archetypes with confidence scoresinfo-display: Configurable info level system controlling what opponent data the player sees during gameplayteaching-coach: Context-sensitive coaching system with post-hand analysis, real-time suggestions, and pattern recognition confirmations
Modified Capabilities
gameplay-core: Bot decision flow changes from random coin-flip to personality × skill × GTO base pipeline; bot turn handling integrates with new timer system
Impact
- Affected files:
src/lib/types/player.ts(add personality/skill fields),src/lib/game/state.ts(observation tracking state),src/lib/game/actions.ts(bot decision integration),src/lib/game/turn.ts(timer integration) - New modules: Bot decision engine, observation tracker, classification algorithm, teaching coach, table setup component
- No external dependencies: All logic implemented in TypeScript within the existing SvelteKit project