M app/build.gradle.kts => app/build.gradle.kts +1 -1
@@ 15,7 15,7 @@ android {
minSdk = 28
targetSdk = 35
versionCode = 1
- versionName = "Alpha 0.6.1"
+ versionName = "Alpha 0.6.2"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt +6 -4
@@ 9,13 9,11 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.produceState
import androidx.compose.runtime.remember
-import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ 30,7 28,6 @@ import com.github.nacabaro.vbhelper.navigation.NavigationItems
import com.github.nacabaro.vbhelper.source.StorageRepository
import com.github.nacabaro.vbhelper.utils.BitmapData
import kotlinx.coroutines.delay
-import kotlinx.coroutines.launch
import java.time.Instant
@Composable
@@ 46,6 43,9 @@ fun AdventureScreen(
var obtainedItem by remember {
mutableStateOf<ItemDtos.PurchasedItem?>(null)
}
+ var obtainedCurrency by remember {
+ mutableStateOf(0)
+ }
val currentTime by produceState(initialValue = Instant.now().epochSecond) {
while (true) {
@@ 94,8 94,9 @@ fun AdventureScreen(
onClick = {
if (it.finishesAdventure < currentTime) {
storageScreenController
- .getItemFromAdventure(it.id) { adventureResult ->
+ .getItemFromAdventure(it.id) { adventureResult, generatedCurrency ->
obtainedItem = adventureResult
+ obtainedCurrency = generatedCurrency
}
} else {
cancelAdventureDialog = it
@@ 110,6 111,7 @@ fun AdventureScreen(
if (obtainedItem != null) {
ObtainedItemDialog(
obtainedItem = obtainedItem!!,
+ obtainedCurrency = obtainedCurrency,
onClickDismiss = {
obtainedItem = null
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenController.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenController.kt +1 -1
@@ 4,6 4,6 @@ import com.github.nacabaro.vbhelper.dtos.ItemDtos
interface AdventureScreenController {
fun sendCharacterToAdventure(characterId: Long, timeInMinutes: Long)
- fun getItemFromAdventure(characterId: Long, onResult: (ItemDtos.PurchasedItem) -> Unit)
+ fun getItemFromAdventure(characterId: Long, onResult: (ItemDtos.PurchasedItem, Int) -> Unit)
fun cancelAdventure(characterId: Long, onResult: () -> Unit)
}=
\ No newline at end of file
M app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenControllerImpl.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenControllerImpl.kt +12 -2
@@ 38,19 38,29 @@ class AdventureScreenControllerImpl(
override fun getItemFromAdventure(
characterId: Long,
- onResult: (ItemDtos.PurchasedItem) -> Unit
+ onResult: (ItemDtos.PurchasedItem, Int) -> Unit
) {
componentActivity.lifecycleScope.launch(Dispatchers.IO) {
database
.adventureDao()
.deleteAdventure(characterId)
+ val generatedCurrency = generateRandomCurrency()
+
val generatedItem = generateItem(characterId)
- onResult(generatedItem)
+ onResult(generatedItem, generatedCurrency)
}
}
+ private suspend fun generateRandomCurrency(): Int {
+ val currentValue = application.container.currencyRepository.currencyValue.first()
+ val random = (2..6).random() * 1000
+ application.container.currencyRepository.setCurrencyValue(currentValue + random)
+
+ return random
+ }
+
override fun cancelAdventure(characterId: Long, onResult: () -> Unit) {
componentActivity.lifecycleScope.launch(Dispatchers.IO) {
database
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt +5 -1
@@ 55,6 55,7 @@ fun HomeScreen(
var adventureMissionsFinished by rememberSaveable { mutableStateOf(false) }
var betaWarning by rememberSaveable { mutableStateOf(true) }
var collectedItem by remember { mutableStateOf<ItemDtos.PurchasedItem?>(null) }
+ var collectedCurrency by remember { mutableStateOf<Int?>(null) }
LaunchedEffect(storageRepository, activeMon, collectedItem) {
withContext(Dispatchers.IO) {
@@ 123,8 124,9 @@ fun HomeScreen(
contentPadding = contentPadding,
specialMissions = vbSpecialMissions.value,
homeScreenController = homeScreenController,
- onClickCollect = { item ->
+ onClickCollect = { item, currency ->
collectedItem = item
+ collectedCurrency = currency
}
)
}
@@ 134,8 136,10 @@ fun HomeScreen(
if (collectedItem != null) {
ObtainedItemDialog(
obtainedItem = collectedItem!!,
+ obtainedCurrency = collectedCurrency!!,
onClickDismiss = {
collectedItem = null
+ collectedCurrency = null
}
)
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt +1 -1
@@ 5,5 5,5 @@ import com.github.nacabaro.vbhelper.dtos.ItemDtos
interface HomeScreenController {
fun didAdventureMissionsFinish(onCompletion: (Boolean) -> Unit)
- fun clearSpecialMission(missionId: Long, missionCompletion: SpecialMission.Status, onCleared: (ItemDtos.PurchasedItem?) -> Unit)
+ fun clearSpecialMission(missionId: Long, missionCompletion: SpecialMission.Status, onCleared: (ItemDtos.PurchasedItem?, Int?) -> Unit)
}=
\ No newline at end of file
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt +7 -3
@@ 33,7 33,7 @@ class HomeScreenControllerImpl(
}
}
- override fun clearSpecialMission(missionId: Long, missionCompletion: SpecialMission.Status, onCleared: (ItemDtos.PurchasedItem?) -> Unit) {
+ override fun clearSpecialMission(missionId: Long, missionCompletion: SpecialMission.Status, onCleared: (ItemDtos.PurchasedItem?, Int?) -> Unit) {
componentActivity.lifecycleScope.launch {
database
.specialMissionDao()
@@ 65,9 65,13 @@ class HomeScreenControllerImpl(
itemType = randomItem.itemType
)
- onCleared(purchasedItem)
+ val randomAmount = (2..6).random() * 1000
+ val currentCurrency = application.container.currencyRepository.currencyValue.first()
+ application.container.currencyRepository.setCurrencyValue(currentCurrency + randomAmount)
+
+ onCleared(purchasedItem, randomAmount)
} else {
- onCleared(null)
+ onCleared(null, null)
}
}
M app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt +1 -1
@@ 34,7 34,7 @@ fun VBDiMHomeScreen(
homeScreenController: HomeScreenControllerImpl,
transformationHistory: List<CharacterDtos.TransformationHistory>,
contentPadding: PaddingValues,
- onClickCollect: (ItemDtos.PurchasedItem?) -> Unit
+ onClickCollect: (ItemDtos.PurchasedItem?, Int?) -> Unit
) {
Column(
modifier = Modifier
M app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt +11 -1
@@ 23,6 23,7 @@ import com.github.nacabaro.vbhelper.dtos.ItemDtos
@Composable
fun ObtainedItemDialog(
obtainedItem: ItemDtos.PurchasedItem,
+ obtainedCurrency: Int,
onClickDismiss: () -> Unit
) {
Dialog(
@@ 84,7 85,16 @@ fun ObtainedItemDialog(
text = "You have obtained ${obtainedItem.itemAmount} of this item",
modifier = Modifier
.fillMaxWidth()
- .padding(5.dp)
+ .padding(top = 4.dp)
+ )
+ Text(
+ textAlign = TextAlign.Center,
+ fontSize = MaterialTheme.typography.bodySmall.fontSize,
+ fontFamily = MaterialTheme.typography.bodySmall.fontFamily,
+ text = "You also got $obtainedCurrency credits",
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(bottom = 4.dp)
)
Button(
onClick = onClickDismiss,
M app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt +11 -2
@@ 12,7 12,8 @@ import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.lazy.grid.items
import androidx.compose.foundation.rememberScrollState
-import androidx.compose.material3.CardColors
+import androidx.compose.material3.CardDefaults
+import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@@ 99,7 100,15 @@ fun StorageScreen(
)
}
},
- cardColors = CardColors
+ cardColors = if (index.active) {
+ CardDefaults.cardColors(
+ containerColor = MaterialTheme.colorScheme.primary
+ )
+ } else {
+ CardDefaults.cardColors(
+ containerColor = MaterialTheme.colorScheme.surfaceContainerHighest
+ )
+ }
)
}