Skip to content

Commit 7e6e841

Browse files
feat: Task 3 - Implement break tracking in turn advancement
- Increment turnsSinceBreak when turn advances - Trigger break when turnsSinceBreak >= breakInterval - Add triggerBreak() to start break mode - Add completeBreak() to reset state after break - Add skipBreak() for UI skip button Plan: PLAN-002a Co-authored-by: Amp <amp@ampcode.com> Amp-Thread-ID: https://ampcode.com/threads/T-019c1b2a-05c7-715f-b973-97ee1499dc73
1 parent b72a1bd commit 7e6e841

5 files changed

Lines changed: 45 additions & 3 deletions

File tree

.agents/plans/in-progress/PLAN-002a-break-system.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Implement break intervals with configurable timing, visual progress indicator, a
3939

4040
### Break Logic
4141

42-
- [ ] **Task 3: Implement break tracking in turn advancement**
42+
- [x] **Task 3: Implement break tracking in turn advancement**
4343
- Scope: `MobCrew/MobCrew/Core/AppState.swift`
4444
- Depends on: Task 1
4545
- Acceptance:

.agents/plans/in-progress/PLAN-002a-break-system.progress.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,13 @@
1818
- Persistence methods already added in Task 1
1919
- Added 4 tests in PersistenceServiceTests for break settings
2020
- **Tests**: ✅ All 11 persistence tests pass
21+
22+
### Iteration 3 - Task 3 Complete
23+
- **Task**: Task 3: Implement break tracking in turn advancement
24+
- **Status**: Complete
25+
- **Changes**:
26+
- Modified handleTimerComplete() to increment turnsSinceBreak
27+
- Added triggerBreak() method when turnsSinceBreak >= breakInterval
28+
- Added completeBreak() to reset turnsSinceBreak after break
29+
- Added skipBreak() method for UI skip button
30+
- **Build**: ✅ Succeeded

MobCrew/MobCrew/Core/AppState.swift

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,39 @@ final class AppState {
5656
}
5757

5858
private func handleTimerComplete() {
59-
roster.advanceTurn()
59+
if isOnBreak {
60+
completeBreak()
61+
} else {
62+
roster.advanceTurn()
63+
turnsSinceBreak += 1
64+
65+
if turnsSinceBreak >= breakInterval {
66+
triggerBreak()
67+
} else {
68+
timerEngine.reset(duration: timerDuration)
69+
}
70+
}
71+
}
72+
73+
func triggerBreak() {
74+
isOnBreak = true
75+
breakSecondsRemaining = breakDuration
76+
timerEngine.reset(duration: breakDuration)
77+
timerEngine.start()
78+
}
79+
80+
private func completeBreak() {
81+
isOnBreak = false
82+
turnsSinceBreak = 0
83+
breakSecondsRemaining = 0
6084
timerEngine.reset(duration: timerDuration)
6185
}
6286

87+
func skipBreak() {
88+
timerEngine.stop()
89+
completeBreak()
90+
}
91+
6392
func saveRoster() {
6493
persistenceService.saveRoster(roster)
6594
}

docs/assets/images/logo.png

20.5 KB
Loading

docs/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@
3434
<!-- Header -->
3535
<header class="container mx-auto px-6 py-6">
3636
<nav class="flex items-center justify-between">
37-
<div class="text-xl font-bold">MobCrew</div>
37+
<div class="flex items-center gap-2">
38+
<img src="assets/images/logo.png" alt="MobCrew" class="w-8 h-8 rounded-lg">
39+
<span class="text-xl font-bold">MobCrew</span>
40+
</div>
3841
<div class="flex items-center gap-6">
3942
<a href="https://github.com/colmarius/mobcrew" class="text-gray-400 hover:text-white transition-colors">GitHub</a>
4043
<a href="https://github.com/colmarius/mobcrew/releases" class="bg-mob-blue hover:bg-blue-600 text-white px-4 py-2 rounded-lg font-medium transition-colors">Download</a>

0 commit comments

Comments
 (0)