diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/agsl/DancingColor.kt b/app/src/main/java/com/pixelized/rplexicon/ui/agsl/DancingColor.kt index e67d763..18cf38d 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/agsl/DancingColor.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/agsl/DancingColor.kt @@ -5,6 +5,8 @@ import android.os.Build import androidx.annotation.RequiresApi import androidx.compose.foundation.Image import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.Text +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.mutableFloatStateOf @@ -20,6 +22,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import com.pixelized.rplexicon.R +import com.pixelized.rplexicon.ui.theme.LexiconTheme import org.intellij.lang.annotations.Language @Language("AGSL") @@ -83,4 +86,22 @@ private fun DancingColor() { contentScale = ContentScale.FillWidth, contentDescription = null, ) +} + +@RequiresApi(Build.VERSION_CODES.TIRAMISU) +@Composable +@Preview +private fun TextDancingColor() { + LexiconTheme { + + Text( + modifier = Modifier.dancingColor( + transition = remember { mutableFloatStateOf(1.0f) }, + time = rememberTimeState(), + default = Color.White, + ), + style = MaterialTheme.typography.displayLarge, + text = "20", + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt index cac42c2..cac2352 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/rolls/composable/ThrowsCard.kt @@ -4,6 +4,7 @@ import android.content.res.Configuration import androidx.annotation.DrawableRes import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateContentSize +import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -48,6 +49,8 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.pixelized.rplexicon.R +import com.pixelized.rplexicon.ui.agsl.dancingColor +import com.pixelized.rplexicon.ui.agsl.rememberTimeState import com.pixelized.rplexicon.ui.screens.rolls.composable.ThrowsCardUio.Throw.Type import com.pixelized.rplexicon.ui.theme.LexiconTheme import com.pixelized.rplexicon.utilitary.extentions.annotatedSpan @@ -170,7 +173,20 @@ fun ThrowsCard( text = "=", ) Text( - modifier = Modifier.widthIn(min = resultWidth), + modifier = Modifier + .widthIn(min = resultWidth) + .dancingColor( + transition = animateFloatAsState( + targetValue = if (throws.isCriticalSuccess) 1f else 0f, + label = "ShaderTransitionAnimation", + ), + time = rememberTimeState(), + default = when { + throws.isCriticalSuccess -> MaterialTheme.colorScheme.primary + throws.isCriticalFailure -> Color.Red + else -> MaterialTheme.colorScheme.onSurface + }, + ), style = MaterialTheme.typography.displaySmall, textAlign = TextAlign.Center, color = when {