~cytrogen/vbhelper

489e27b038f09fc5e1206ffb9642fc24b56348ce — nacabaro 5 months ago 6be167b
More things
- Active characters display different
- Adventure missions award credits (same as special missions)
- Clicking on about will open the github page
- Corrected from arean to arena
- Removed rename from the settings (it was not used)
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
                            )
                        }

                    )
                }