Commit Graph
16 Commits
Author SHA1 Message Date
Doar MihaiandClaude Sonnet 4.6 799f46a5f2 feat: add JailService and bust-out config keys
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>
2026-06-28 22:42:59 +03:00
Doar MihaiandClaude Sonnet 4.6 3e6a84503d fix: address final review findings — nerve consume ordering, character init, seeder costs, dead column
- 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>
2026-06-28 17:09:21 +03:00
Doar Mihai 2941426c4e feat: add GymController and gym routes 2026-06-28 16:45:24 +03:00
Doar Mihai 2b506c0086 fix: guard against null reset_date in getSessionsToday 2026-06-28 16:39:04 +03:00
Doar MihaiandClaude Sonnet 4.6 8dbcdfd70c feat: add GymSession model and TrainingService
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>
2026-06-28 16:35:42 +03:00
Doar MihaiandClaude Sonnet 4.6 310dfd4129 feat: wire nerve check and deduction into crime attempts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 16:25:32 +03:00
Doar Mihai 0e8ece64c3 fix: add PHPDoc blocks and remove unused import in nerve service/commands 2026-06-28 16:18:06 +03:00
Doar MihaiandClaude Sonnet 4.6 6e2ea7bcc7 feat: add NerveService and nerve regen scheduled commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 16:10:26 +03:00
Doar MihaiandClaude Sonnet 4.6 e7940d31f6 fix: correct nerve fields placement in Character $fillable array
Nerve fields should be positioned after 'max_energy' per spec, not after 'max_health'.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 16:07:15 +03:00
Doar Mihai c47f4f302e fix: add missing @property docblock entries for nerve fields 2026-06-28 16:02:32 +03:00
Doar MihaiandClaude Sonnet 4.6 6182563fa7 feat: add nerve config and Character nerve methods
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>
2026-06-28 15:52:41 +03:00
Doar Mihai a36b0b7612 some progress 2026-06-28 03:19:32 +03:00
Doar Mihai 435cef6beb fix: replace all bare latest() with latest('attempted_at') in CrimeService 2026-06-28 03:18:32 +03:00
Doar Mihai 1050d19fcc fix: pass crimeService to crimes index view 2026-06-28 03:13:20 +03:00
Doar Mihai 3b31f787a3 fix: order crime attempts by attempted_at instead of missing created_at 2026-06-28 03:10:44 +03:00
Doar Mihai 96d317480b first commit 2026-06-27 14:38:18 +03:00