diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4532721..7e4a241 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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" } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt index 6540999..d7511ae 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreen.kt @@ -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(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 } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenController.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenController.kt index 11d70f6..ed29746 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenController.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenController.kt @@ -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 diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenControllerImpl.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenControllerImpl.kt index 50c9605..1e9bb05 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenControllerImpl.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/adventureScreen/AdventureScreenControllerImpl.kt @@ -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 diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt index 53dd40f..7cd4515 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreen.kt @@ -55,6 +55,7 @@ fun HomeScreen( var adventureMissionsFinished by rememberSaveable { mutableStateOf(false) } var betaWarning by rememberSaveable { mutableStateOf(true) } var collectedItem by remember { mutableStateOf(null) } + var collectedCurrency by remember { mutableStateOf(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 } ) } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt index b24f8b2..1c0093b 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenController.kt @@ -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 diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt index 01856ca..e8824e8 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/HomeScreenControllerImpl.kt @@ -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) } } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt index 74dd98d..eeb9062 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/homeScreens/screens/VBDiMHomeScreen.kt @@ -34,7 +34,7 @@ fun VBDiMHomeScreen( homeScreenController: HomeScreenControllerImpl, transformationHistory: List, contentPadding: PaddingValues, - onClickCollect: (ItemDtos.PurchasedItem?) -> Unit + onClickCollect: (ItemDtos.PurchasedItem?, Int?) -> Unit ) { Column( modifier = Modifier diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt index c740018..9fbe416 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/itemsScreen/ObtainedItemDialog.kt @@ -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, diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt index da1c36a..9a7bde8 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/storageScreen/StorageScreen.kt @@ -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 + ) + } ) }