package dev.geekback.dopewars.ui import androidx.compose.foundation.layout.Column import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable import dev.geekback.dopewars.desktop.BorderedCard import dev.geekback.dopewars.shared.Location import dev.geekback.dopewars.shared.Market import dev.geekback.dopewars.shared.Player import kotlin.time.Instant class PlayerUi: DopeWarsModelUi { @Composable override fun view(model: Player) { BorderedCard(model.name) { Column { Text("ID: ${model.id}") Text("Cash: $${model.cash}") Text("Debt: $${model.debt}") Text("Health: ${model.health}") Text("Location: ${model.location.name}") // TODO: this is an ugly memory hack InventoryUi().view(model.inventory) // marketView(model.lastMarket ?: Market(location = Location("Unknown"), prices = mapOf())) val lastTime = Instant.fromEpochSeconds(model.lastActionTime) Text("Last Action: $lastTime") } } } @Composable override fun form( model: Player, onModelUpdate: (Player) -> Unit ) { BorderedCard("Player ${model.name}") { Button(onClick = { onModelUpdate(model) }) { Text("Update") } } } } @Composable fun playerView(player: Player) { }