Skip to content

Commit 229c655

Browse files
committed
Completed runs on play button
1 parent 8024c91 commit 229c655

File tree

6 files changed

+37
-13
lines changed

6 files changed

+37
-13
lines changed

app/src/main/java/io/github/fate_grand_automata/ui/launcher/BattleLauncher.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ fun battleLauncher(
142142
if (selectedConfigIndex > -1) {
143143
prefs.selectedBattleConfig = configs[selectedConfigIndex]
144144
}
145+
146+
prefs.updateCompletedRuns()
145147
}
146148
}
147149

app/src/main/java/io/github/fate_grand_automata/ui/runner/ScriptRunnerUI.kt

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ fun ScriptRunnerUI(
4040
val hidePlayButton by prefsCore.hidePlayButton.remember()
4141
val script by prefsCore.scriptMode.remember()
4242

43+
val completedRuns by prefsCore.completedRuns.remember()
44+
4345
FGATheme(
4446
darkTheme = true,
4547
background = Color.Transparent
@@ -87,19 +89,30 @@ fun ScriptRunnerUI(
8789
enabled = enabled,
8890
modifier = dragModifier
8991
) {
90-
Icon(
91-
painter = when (state) {
92-
ScriptRunnerUIState.Idle, is ScriptRunnerUIState.Paused -> painterResource(R.drawable.ic_play)
93-
ScriptRunnerUIState.Running -> painterResource(R.drawable.ic_pause)
94-
},
95-
contentDescription = when (state) {
96-
ScriptRunnerUIState.Idle -> "start"
97-
is ScriptRunnerUIState.Paused -> "resume"
98-
ScriptRunnerUIState.Running -> "pause"
99-
},
100-
modifier = Modifier
101-
.padding(18.dp, 10.dp)
102-
)
92+
if (script == ScriptModeEnum.Battle && state == ScriptRunnerUIState.Running) {
93+
Text(
94+
text = "$completedRuns",
95+
style = MaterialTheme.typography.bodyMedium,
96+
modifier = Modifier.padding(18.dp, 10.dp),
97+
textAlign = TextAlign.Center,
98+
maxLines = 1
99+
)
100+
} else {
101+
Icon(
102+
painter = when (state) {
103+
ScriptRunnerUIState.Idle, is ScriptRunnerUIState.Paused -> painterResource(R.drawable.ic_play)
104+
ScriptRunnerUIState.Running -> painterResource(R.drawable.ic_pause)
105+
},
106+
contentDescription = when (state) {
107+
ScriptRunnerUIState.Idle -> "start"
108+
is ScriptRunnerUIState.Paused -> "resume"
109+
ScriptRunnerUIState.Running -> "pause"
110+
},
111+
modifier = Modifier
112+
.padding(18.dp, 10.dp)
113+
)
114+
}
115+
103116
}
104117

105118
AnimatedVisibility(

prefs/src/main/java/io/github/fate_grand_automata/prefs/Preferences.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ class PreferencesImpl @Inject constructor(
171171

172172
override fun completedOnboarding() =
173173
prefs.onboardingCompletedVersion.set(PrefsCore.CURRENT_ONBOARDING_VERSION)
174+
175+
override fun updateCompletedRuns(runs: Int) {
176+
prefs.completedRuns.set(runs)
177+
}
174178

175179
override val support = object :
176180
ISupportPreferencesCommon {

prefs/src/main/java/io/github/fate_grand_automata/prefs/core/PrefsCore.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,5 @@ class PrefsCore @Inject constructor(
150150

151151
val servantEnhancement = ServantEnhancementPrefsCore(maker)
152152

153+
var completedRuns = maker.int("completed_runs", 0)
153154
}

scripts/src/main/java/io/github/fate_grand_automata/scripts/modules/Battle.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ class Battle @Inject constructor(
4040
state.nextRun()
4141

4242
servantTracker.nextRun()
43+
44+
prefs.updateCompletedRuns(state.runs)
4345
}
4446

4547
if (prefs.stopAfterThisRun) {

scripts/src/main/java/io/github/fate_grand_automata/scripts/prefs/IPreferences.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ interface IPreferences {
5959
fun removeBattleConfig(id: String)
6060
fun isOnboardingRequired(): Boolean
6161
fun completedOnboarding()
62+
63+
fun updateCompletedRuns(runs: Int = 0)
6264
}
6365

6466
val IPreferences.wantsMediaProjectionToken get() = !useRootForScreenshots

0 commit comments

Comments
 (0)