ReModel: remove the CharacterInstanceId: server
This commit is contained in:
parent
a69f95e62d
commit
a5adc61e90
61 changed files with 1072 additions and 1038 deletions
|
|
@ -6,11 +6,9 @@ import com.pixelized.shared.lwa.model.campaign.Campaign
|
|||
import com.pixelized.shared.lwa.model.campaign.character
|
||||
import com.pixelized.shared.lwa.model.campaign.factory.CampaignJsonFactory
|
||||
import com.pixelized.shared.lwa.model.campaign.npc
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.GameMasterEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RestSynchronisation
|
||||
import com.pixelized.shared.lwa.protocol.websocket.SocketMessage
|
||||
import com.pixelized.shared.lwa.usecase.CampaignUseCase
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
|
|
@ -113,25 +111,25 @@ class CampaignStore(
|
|||
campaign(update = true)
|
||||
}
|
||||
|
||||
is CampaignMessage -> {
|
||||
is CampaignEvent -> {
|
||||
val instanceId = Campaign.CharacterInstance.Id(
|
||||
prefix = message.prefix,
|
||||
characterSheetId = message.characterSheetId,
|
||||
instanceId = message.instanceId,
|
||||
)
|
||||
when (message) {
|
||||
is CampaignMessage.UpdateCharacteristic -> updateCharacteristic(
|
||||
is CampaignEvent.UpdateCharacteristic -> updateCharacteristic(
|
||||
characterInstanceId = instanceId,
|
||||
characteristic = factory.convertFromJson(json = message.characteristic),
|
||||
value = message.newValue,
|
||||
)
|
||||
|
||||
is CampaignMessage.UpdateDiminished -> updateDiminished(
|
||||
is CampaignEvent.UpdateDiminished -> updateDiminished(
|
||||
characterInstanceId = instanceId,
|
||||
diminished = message.diminished,
|
||||
)
|
||||
|
||||
is CampaignMessage.ToggleActiveAlteration -> updateAlterations(
|
||||
is CampaignEvent.ToggleActiveAlteration -> updateAlterations(
|
||||
characterInstanceId = instanceId,
|
||||
alterationId = message.alterationId,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -3,10 +3,9 @@ package com.pixelized.desktop.lwa.repository.characterSheet
|
|||
import com.pixelized.desktop.lwa.network.LwaClient
|
||||
import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
||||
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet
|
||||
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheetJsonFactory
|
||||
import com.pixelized.shared.lwa.model.characterSheet.factory.CharacterSheetJsonFactory
|
||||
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheetPreview
|
||||
import com.pixelized.shared.lwa.protocol.websocket.SocketMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RestSynchronisation
|
||||
import com.pixelized.shared.lwa.protocol.websocket.UpdateSkillUsageMessage
|
||||
import com.pixelized.shared.lwa.usecase.CharacterSheetUseCase
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
package com.pixelized.desktop.lwa.repository.roll_history
|
||||
|
||||
import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RollMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RollEvent
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.SharedFlow
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.flow.filterIsInstance
|
||||
import kotlinx.coroutines.flow.mapNotNull
|
||||
import kotlinx.coroutines.flow.shareIn
|
||||
|
||||
class RollHistoryRepository(
|
||||
|
|
@ -16,8 +14,8 @@ class RollHistoryRepository(
|
|||
) {
|
||||
private val scope = CoroutineScope(Dispatchers.IO)
|
||||
|
||||
val rolls: SharedFlow<RollMessage> = network.data
|
||||
.filterIsInstance(RollMessage::class)
|
||||
val rolls: SharedFlow<RollEvent> = network.data
|
||||
.filterIsInstance(RollEvent::class)
|
||||
.shareIn(
|
||||
scope = scope,
|
||||
started = SharingStarted.Eagerly,
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import com.pixelized.shared.lwa.model.campaign.damage
|
|||
import com.pixelized.shared.lwa.model.campaign.factory.CampaignJsonFactory
|
||||
import com.pixelized.shared.lwa.model.campaign.power
|
||||
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignEvent
|
||||
|
||||
class CharacterDetailCharacteristicDialogViewModel(
|
||||
private val characterSheetRepository: CharacterSheetRepository,
|
||||
|
|
@ -84,7 +84,7 @@ class CharacterDetailCharacteristicDialogViewModel(
|
|||
)
|
||||
// share the data through the websocket.
|
||||
network.share(
|
||||
message = CampaignMessage.UpdateCharacteristic(
|
||||
message = CampaignEvent.UpdateCharacteristic(
|
||||
timestamp = System.currentTimeMillis(),
|
||||
prefix = characterInstanceId.prefix,
|
||||
characterSheetId = characterInstanceId.characterSheetId,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import androidx.lifecycle.viewModelScope
|
|||
import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetRepository
|
||||
import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
||||
import com.pixelized.desktop.lwa.repository.settings.SettingsRepository
|
||||
import com.pixelized.shared.lwa.protocol.websocket.GameEvent
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import com.pixelized.desktop.lwa.ui.overlay.roll.DifficultyUio.Difficulty
|
|||
import com.pixelized.desktop.lwa.ui.overlay.roll.RollAction.RollActionUio
|
||||
import com.pixelized.shared.lwa.model.AlteredCharacterSheet
|
||||
import com.pixelized.shared.lwa.model.AlteredCharacterSheetFactory
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RollMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RollEvent
|
||||
import com.pixelized.shared.lwa.usecase.ExpressionUseCase
|
||||
import com.pixelized.shared.lwa.usecase.SkillStepUseCase
|
||||
import kotlinx.coroutines.Job
|
||||
|
|
@ -278,7 +278,7 @@ class RollViewModel(
|
|||
) {
|
||||
val rollAction = rollAction ?: return
|
||||
|
||||
val payload = RollMessage(
|
||||
val payload = RollEvent(
|
||||
timestamp = System.currentTimeMillis(),
|
||||
uuid = UUID.randomUUID().toString(),
|
||||
prefix = rollAction.characterInstanceId.prefix,
|
||||
|
|
@ -297,11 +297,11 @@ class RollViewModel(
|
|||
rollSuccessLimit = rollStep?.success?.last,
|
||||
critical = rollStep?.let {
|
||||
when (roll) {
|
||||
in it.criticalSuccess -> RollMessage.Critical.CRITICAL_SUCCESS
|
||||
in it.specialSuccess -> RollMessage.Critical.SPECIAL_SUCCESS
|
||||
in it.success -> RollMessage.Critical.SUCCESS
|
||||
in it.failure -> RollMessage.Critical.FAILURE
|
||||
in it.criticalFailure -> RollMessage.Critical.CRITICAL_FAILURE
|
||||
in it.criticalSuccess -> RollEvent.Critical.CRITICAL_SUCCESS
|
||||
in it.specialSuccess -> RollEvent.Critical.SPECIAL_SUCCESS
|
||||
in it.success -> RollEvent.Critical.SUCCESS
|
||||
in it.failure -> RollEvent.Critical.FAILURE
|
||||
in it.criticalFailure -> RollEvent.Critical.CRITICAL_FAILURE
|
||||
else -> null
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import com.pixelized.desktop.lwa.repository.campaign.CampaignRepository
|
|||
import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
||||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.dialog.DiminishedStatDialogUio
|
||||
import com.pixelized.shared.lwa.model.campaign.Campaign
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignEvent
|
||||
import lwacharactersheet.composeapp.generated.resources.Res
|
||||
import lwacharactersheet.composeapp.generated.resources.character_sheet__diminished__label
|
||||
import org.jetbrains.compose.resources.getString
|
||||
|
|
@ -56,7 +56,7 @@ class CharacterDiminishedViewModel(
|
|||
) {
|
||||
val diminished = dialog.value().text.toIntOrNull() ?: 0
|
||||
networkRepository.share(
|
||||
message = CampaignMessage.UpdateDiminished(
|
||||
message = CampaignEvent.UpdateDiminished(
|
||||
timestamp = System.currentTimeMillis(),
|
||||
prefix = dialog.characterInstanceId.prefix,
|
||||
characterSheetId = dialog.characterInstanceId.characterSheetId,
|
||||
|
|
|
|||
|
|
@ -8,11 +8,9 @@ import com.pixelized.desktop.lwa.ui.screen.campaign.text.messages.RollTextMessag
|
|||
import com.pixelized.desktop.lwa.ui.screen.campaign.text.messages.TextMessage
|
||||
import com.pixelized.shared.lwa.model.campaign.CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1.Damage
|
||||
import com.pixelized.shared.lwa.model.campaign.CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1.Power
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.GameEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.GameMasterEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RestSynchronisation
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RollMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RollEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.SocketMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.UpdateSkillUsageMessage
|
||||
import lwacharactersheet.composeapp.generated.resources.Res
|
||||
|
|
@ -37,7 +35,7 @@ class TextMessageFactory(
|
|||
val id = formatId.format(time)
|
||||
|
||||
return when (message) {
|
||||
is RollMessage -> {
|
||||
is RollEvent -> {
|
||||
val sheetPreview = characterSheetRepository
|
||||
.characterPreview(characterId = message.characterSheetId)
|
||||
?: return null
|
||||
|
|
@ -54,18 +52,18 @@ class TextMessageFactory(
|
|||
rollSuccessLimit = takeIf { isGm }?.let { message.rollSuccessLimit },
|
||||
resultLabel = message.resultLabel,
|
||||
resultType = when (message.critical) {
|
||||
RollMessage.Critical.CRITICAL_SUCCESS -> RollTextMessageUio.Critical.CRITICAL_SUCCESS
|
||||
RollMessage.Critical.SPECIAL_SUCCESS -> RollTextMessageUio.Critical.SPECIAL_SUCCESS
|
||||
RollMessage.Critical.SUCCESS -> RollTextMessageUio.Critical.SUCCESS
|
||||
RollMessage.Critical.FAILURE -> RollTextMessageUio.Critical.FAILURE
|
||||
RollMessage.Critical.CRITICAL_FAILURE -> RollTextMessageUio.Critical.CRITICAL_FAILURE
|
||||
RollEvent.Critical.CRITICAL_SUCCESS -> RollTextMessageUio.Critical.CRITICAL_SUCCESS
|
||||
RollEvent.Critical.SPECIAL_SUCCESS -> RollTextMessageUio.Critical.SPECIAL_SUCCESS
|
||||
RollEvent.Critical.SUCCESS -> RollTextMessageUio.Critical.SUCCESS
|
||||
RollEvent.Critical.FAILURE -> RollTextMessageUio.Critical.FAILURE
|
||||
RollEvent.Critical.CRITICAL_FAILURE -> RollTextMessageUio.Critical.CRITICAL_FAILURE
|
||||
null -> null
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
is CampaignMessage -> when (message) {
|
||||
is CampaignMessage.UpdateDiminished -> {
|
||||
is CampaignEvent -> when (message) {
|
||||
is CampaignEvent.UpdateDiminished -> {
|
||||
val sheetPreview = characterSheetRepository
|
||||
.characterPreview(characterId = message.characterSheetId)
|
||||
?: return null
|
||||
|
|
@ -78,7 +76,7 @@ class TextMessageFactory(
|
|||
)
|
||||
}
|
||||
|
||||
is CampaignMessage.UpdateCharacteristic -> {
|
||||
is CampaignEvent.UpdateCharacteristic -> {
|
||||
val sheet = characterSheetRepository.characterDetail(
|
||||
characterSheetId = message.characterSheetId,
|
||||
) ?: return null
|
||||
|
|
@ -100,7 +98,7 @@ class TextMessageFactory(
|
|||
)
|
||||
}
|
||||
|
||||
is CampaignMessage.ToggleActiveAlteration -> null // TODO
|
||||
is CampaignEvent.ToggleActiveAlteration -> null // TODO
|
||||
}
|
||||
|
||||
is RestSynchronisation.Campaign -> null
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
|||
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.CharacterSheetDestination
|
||||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.dialog.CharacterSheetDeleteConfirmationDialogUio
|
||||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.detail.dialog.DiminishedStatDialogUio
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.UpdateSkillUsageMessage
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
|
@ -144,7 +144,7 @@ class CharacterSheetViewModel(
|
|||
suspend fun changeDiminished(dialog: DiminishedStatDialogUio) {
|
||||
val diminished = dialog.value().text.toIntOrNull() ?: 0
|
||||
network.share(
|
||||
message = CampaignMessage.UpdateDiminished(
|
||||
message = CampaignEvent.UpdateDiminished(
|
||||
timestamp = System.currentTimeMillis(),
|
||||
prefix = dialog.characterInstanceId.prefix,
|
||||
characterSheetId = dialog.characterInstanceId.characterSheetId,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package com.pixelized.desktop.lwa.ui.screen.gamemaster
|
|||
import com.pixelized.desktop.lwa.repository.campaign.CampaignRepository
|
||||
import com.pixelized.desktop.lwa.repository.network.NetworkRepository
|
||||
import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMCharacterUio.Action
|
||||
import com.pixelized.shared.lwa.protocol.websocket.GameEvent
|
||||
|
||||
class GameMasterActionUseCase(
|
||||
private val campaignRepository: CampaignRepository,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue