Skip to content

Commit 19efc03

Browse files
committed
Completed runs on play button
1 parent db16875 commit 19efc03

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
@@ -134,6 +134,8 @@ fun battleLauncher(
134134
if (selectedConfigIndex > -1) {
135135
prefs.selectedBattleConfig = configs[selectedConfigIndex]
136136
}
137+
138+
prefs.updateCompletedRuns()
137139
}
138140
}
139141

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
@@ -169,6 +169,10 @@ class PreferencesImpl @Inject constructor(
169169

170170
override fun completedOnboarding() =
171171
prefs.onboardingCompletedVersion.set(PrefsCore.CURRENT_ONBOARDING_VERSION)
172+
173+
override fun updateCompletedRuns(runs: Int) {
174+
prefs.completedRuns.set(runs)
175+
}
172176

173177
override val support = object :
174178
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
@@ -148,4 +148,5 @@ class PrefsCore @Inject constructor(
148148

149149
val servantEnhancement = ServantEnhancementPrefsCore(maker)
150150

151+
var completedRuns = maker.int("completed_runs", 0)
151152
}

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
@@ -57,6 +57,8 @@ interface IPreferences {
5757
fun removeBattleConfig(id: String)
5858
fun isOnboardingRequired(): Boolean
5959
fun completedOnboarding()
60+
61+
fun updateCompletedRuns(runs: Int = 0)
6062
}
6163

6264
val IPreferences.wantsMediaProjectionToken get() = !useRootForScreenshots

0 commit comments

Comments
 (0)