Skip to content

Commit

Permalink
added tracker of the wave and turns for skill maker
Browse files Browse the repository at this point in the history
  • Loading branch information
ArthurKun21 committed Dec 30, 2023
1 parent 2bfc379 commit 324e51c
Show file tree
Hide file tree
Showing 12 changed files with 77 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign

@Composable
fun FGATitle(text: String) = Text(
fun FGATitle(
text: String,
modifier: Modifier = Modifier,
) = Text(
text,
textAlign = TextAlign.Center,
color = MaterialTheme.colorScheme.onSurface,
modifier = Modifier
modifier = modifier
.fillMaxWidth()
)
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import androidx.activity.viewModels
import androidx.compose.animation.Crossfade
import androidx.compose.animation.core.spring
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.res.stringResource
import androidx.core.view.WindowCompat
import dagger.hilt.android.AndroidEntryPoint
Expand Down Expand Up @@ -78,14 +79,19 @@ fun SkillMakerUI(

val (current, navigate) = vm.navigation

val turn by vm.turn
val wave by vm.wave

Crossfade(
current,
animationSpec = spring()
) { nav ->
when (nav) {
SkillMakerNav.Atk -> {
SkillMakerAtk(
onNextWave = { vm.nextStage(it) },
wave = wave,
turn = turn,
onNextWave = { vm.nextWave(it) },
onNextTurn = { vm.nextTurn(it) }
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package io.github.fate_grand_automata.ui.skill_maker

import androidx.annotation.StringRes
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight
Expand Down Expand Up @@ -129,6 +130,8 @@ private fun CardsBeforeNp(

@Composable
fun SkillMakerAtk(
wave: Int,
turn: Int,
onNextWave: (AutoSkillAction.Atk) -> Unit,
onNextTurn: (AutoSkillAction.Atk) -> Unit
) {
Expand All @@ -137,9 +140,25 @@ fun SkillMakerAtk(
.fillMaxHeight()
.padding(16.dp)
) {
FGATitle(
stringResource(R.string.skill_maker_atk_header)
)

Box(
modifier = Modifier
.fillMaxWidth()
){
FGATitle(
stringResource(R.string.skill_maker_atk_header),
modifier = Modifier.align(Alignment.Center)
)
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.align(Alignment.CenterEnd)
) {
Text(stringResource(R.string.skill_maker_main_wave, wave))

Text(stringResource(R.string.skill_maker_main_turn, turn))
}
}

var npSequence by rememberSaveable { mutableStateOf("") }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,16 @@ fun SkillMakerMain(
onSelectedChange = { vm.setEnemyTarget(it) }
)

val stage by vm.stage
Text(stringResource(R.string.skill_maker_main_battle, stage))
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
val wave by vm.wave
Text(stringResource(R.string.skill_maker_main_wave, wave))

val turn by vm.turn
Text(stringResource(R.string.skill_maker_main_turn, turn))
}
}

SkillHistory(vm)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import kotlinx.parcelize.Parcelize
data class SkillMakerSavedState(
val skillString: String? = null,
val enemyTarget: Int? = null,
val stage: Int = 1,
val wave: Int = 1,
val turn: Int = 1,
val currentSkill: Char = '0',
val currentIndex: Int = 0
) : Parcelable
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.github.fate_grand_automata.ui.skill_maker

import androidx.compose.runtime.State
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
Expand Down Expand Up @@ -47,13 +48,20 @@ class SkillMakerViewModel @Inject constructor(
m
}

private val _stage = mutableStateOf(
private val _wave = mutableIntStateOf(
if (state.skillString != null) {
state.stage
state.wave
} else {
model.skillCommand.count { it is SkillMakerEntry.Next.Wave } + 1
}
)
private val _turn = mutableIntStateOf(
if (state.skillString != null){
state.turn
} else {
model.skillCommand.count { it is SkillMakerEntry.Next } + 1
}
)

private val _currentIndex = mutableStateOf(
if (state.skillString != null) {
Expand All @@ -68,7 +76,8 @@ class SkillMakerViewModel @Inject constructor(
val saveState = SkillMakerSavedState(
skillString = model.toString(),
enemyTarget = enemyTarget.value,
stage = stage.value,
wave = wave.value,
turn = turn.value,
currentSkill = currentSkill,
currentIndex = currentIndex.value
)
Expand Down Expand Up @@ -144,8 +153,12 @@ class SkillMakerViewModel @Inject constructor(

fun unSelectTargets() = setEnemyTarget(null)

val stage: State<Int> = _stage
private fun prevStage() = --_stage.value
val wave: State<Int> = _wave
private fun prevStage() = --_wave.value

val turn: State<Int> = _turn

private fun prevTurn() = --_turn.value

fun initSkill(skill: Skill) {
currentSkill = skill.autoSkillCode
Expand Down Expand Up @@ -188,13 +201,16 @@ class SkillMakerViewModel @Inject constructor(
}

fun nextTurn(atk: AutoSkillAction.Atk) {
++_turn.value

add(SkillMakerEntry.Next.Turn(atk))

back()
}

fun nextStage(atk: AutoSkillAction.Atk) {
++_stage.value
fun nextWave(atk: AutoSkillAction.Atk) {
++_wave.value
++_turn.value

// Uncheck selected targets
unSelectTargets()
Expand Down Expand Up @@ -261,6 +277,10 @@ class SkillMakerViewModel @Inject constructor(
// Decrement Battle/Turn count
if (last is SkillMakerEntry.Next.Wave) {
prevStage()
prevTurn()
}
if (last is SkillMakerEntry.Next.Turn){
prevTurn()
}

// Undo the Battle/Turn change
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-b+zh+CN/localized.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
<string name="skill_maker_atk_next_turn">"下一回合
(同一波敌人)"</string>
<string name="skill_maker_main_enemy">"敌人 %d"</string>
<string name="skill_maker_main_battle">"战斗 %d"</string>
<string name="skill_maker_main_master_skills">"御主技能"</string>
<string name="skill_maker_main_undo">"复原"</string>
<string name="skill_maker_main_clear">"重设"</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-b+zh+TW/localized.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<string name="skill_maker_atk_next_turn">下一回合\n(同一波敵人)</string>

<string name="skill_maker_main_enemy">敵人 %d</string>
<string name="skill_maker_main_battle">BATTLE %d</string>
<string name="skill_maker_main_wave">BATTLE %d</string>
<string name="skill_maker_main_master_skills">御主技能</string>
<string name="skill_maker_main_undo">復原</string>
<string name="skill_maker_main_clear">重設</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-ja/localized.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<string name="skill_maker_atk_next_turn">"次のターン
同じウェーブ"</string>
<string name="skill_maker_main_enemy">"敵 %d"</string>
<string name="skill_maker_main_battle">"Battle: %d"</string>
<string name="skill_maker_main_wave">"Battle: %d"</string>
<string name="skill_maker_main_master_skills">"マスター
スキル"</string>
<string name="skill_maker_main_undo">"削除"</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ko/localized.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
<string name="skill_maker_atk_next_turn">"동일 웨이브 중
다음 턴"</string>
<string name="skill_maker_main_enemy">"적 %d"</string>
<string name="skill_maker_main_battle">"배틀: %d"</string>
<string name="skill_maker_main_master_skills">"마스터
스킬"</string>
<string name="skill_maker_main_undo">"되돌리기"</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-vi/localized.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ Bảo Khí"</string>
<string name="skill_maker_atk_next_wave">"Lượt tiếp theo"</string>
<string name="skill_maker_atk_next_turn">"Lượt tiếp treo trong một lượt quái"</string>
<string name="skill_maker_main_enemy">"Quái %d"</string>
<string name="skill_maker_main_battle">"Trận đấu: %d"</string>
<string name="skill_maker_main_master_skills">"Kĩ năng
Master"</string>
<string name="skill_maker_main_undo">"Làm lại"</string>
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/values/localized.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ NP"</string>
<string name="skill_maker_atk_next_turn">"Next Turn
in same wave"</string>
<string name="skill_maker_main_enemy">"Enemy %d"</string>
<string name="skill_maker_main_battle">"Battle: %d"</string>
<string name="skill_maker_main_wave">"Wave: %d"</string>
<string name="skill_maker_main_turn">"Turn: %d"</string>
<string name="skill_maker_main_master_skills">"Master
Skills"</string>
<string name="skill_maker_main_undo">"Undo"</string>
Expand Down

0 comments on commit 324e51c

Please sign in to comment.