Add JailService with bustOut(), sendToJail(), releaseFromJail(), and
calculateBustOutChance() methods. Add two config keys (bust_out_stat_multiplier
and bust_out_max_chance) to the jail config block.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Consume nerve before energy in CrimeService so energy is never lost when nerve is insufficient
- Initialize nerve/max_nerve from config in CharacterController::store (same pattern as energy/health)
- Add nerve_cost to all CrimeSeeder entries proportional to difficulty (1-5 range)
- Remove nerve_regen_at from Character $fillable/$casts/@property — column exists but is not yet wired up
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add nerve chip to stats-bar showing current/max nerve with purple brain icon
- Add Gym link to sidebar navigation with muscle emoji and active state
- Add Nerve card to dashboard with progress bar, description, and Go to Gym link
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Create the gym training interface with stat cards showing current values,
sessions today/remaining, progress bars, and train buttons. Each stat card
includes conditional styling based on energy availability and daily cap status.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implements gym training logic with daily session tracking:
- GymSession model manages training sessions per stat per day
- TrainingService handles training validation, energy consumption, and stat gains
- Lazy daily reset: session count resets when reset_date is before today
- Validates: sufficient energy, daily cap (5 sessions per stat), valid stats
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add nerve system configuration to config/game.php with start_amount,
max, regen_rate, regen_interval, and midnight_refill settings. Add gym
configuration with energy_cost, daily_cap, and stat_gain. Add nerve
methods to Character model: hasNerve(), consumeNerve(), addNerve(), and
getNervePercentageAttribute(). Update levelUp() to increment max_nerve
by 2. Add nerve_cost to fillable arrays in Crime and CrimeAttempt models.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implement dark crime-themed redesign for three game pages using syndicate color
tokens and dark typography. Updated inventory grid, hospital recovery status
display, and jail sentence view with consistent styling.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace crimes index page with dark syndicate theme styling using:
- syndicate color tokens for backgrounds and borders
- crime color tokens for action buttons
- gold color tokens for reward displays
- Improved visual hierarchy and spacing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace light card classes with dark syndicate theme equivalents:
- All cards now use bg-syndicate-800 with border-syndicate-700
- Primary action buttons use crime-* colors
- Stats display uses gray text for labels, color-coded values
- Quick actions use syndicate-700 borders with crime-600 hover states
- Recent activity items in syndicate-700 background
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>