ReModel of the ActiveAlteration system into the Campaign.
This commit is contained in:
parent
ecb0a6705f
commit
b314a28f82
22 changed files with 254 additions and 317 deletions
|
|
@ -6,8 +6,11 @@ data class Campaign(
|
|||
val scene: Scene,
|
||||
val options: Options,
|
||||
) {
|
||||
val instances = characters + npcs
|
||||
|
||||
data class CharacterInstance(
|
||||
val characteristic: Map<Characteristic, Int>,
|
||||
val alterations: List<String>,
|
||||
val diminished: Int,
|
||||
) {
|
||||
data class Id(
|
||||
|
|
@ -39,6 +42,7 @@ data class Campaign(
|
|||
companion object {
|
||||
fun empty() = CharacterInstance(
|
||||
characteristic = emptyMap(),
|
||||
alterations = emptyList(),
|
||||
diminished = 0,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ data class CampaignJsonV1(
|
|||
@Serializable
|
||||
data class CharacterInstanceJsonV1(
|
||||
val characteristic: Map<CharacteristicV1, Int>,
|
||||
val alterations: List<String>?,
|
||||
val diminished: Int?,
|
||||
) : CampaignJson.CharacterInstanceJson {
|
||||
enum class CharacteristicV1 : CampaignJson.CharacterInstanceJson.CharacteristicJson {
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ class CampaignJsonFactory(
|
|||
characteristic = data.characteristic
|
||||
.map { char -> convertToJson(characteristic = char.key) to char.value }
|
||||
.toMap(),
|
||||
alterations = data.alterations,
|
||||
diminished = data.diminished,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ class CampaignJsonV1Factory {
|
|||
characteristic = characterInstanceJson.characteristic
|
||||
.mapKeys { convertFromV1(characteristicJson = it.key) }
|
||||
.toMap(),
|
||||
alterations = characterInstanceJson.alterations ?: emptyList(),
|
||||
diminished = characterInstanceJson.diminished ?: 0,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,4 +28,14 @@ sealed interface CampaignMessage : SocketMessage, CharacterInstanceIdMessage {
|
|||
override val instanceId: Int,
|
||||
val diminished: Int,
|
||||
) : CampaignMessage
|
||||
|
||||
@Serializable
|
||||
data class ToggleActiveAlteration(
|
||||
override val timestamp: Long,
|
||||
override val characterSheetId: String,
|
||||
override val prefix: Char,
|
||||
override val instanceId: Int,
|
||||
val alterationId: String,
|
||||
val active: Boolean,
|
||||
) : CampaignMessage, CharacterInstanceIdMessage
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
package com.pixelized.shared.lwa.protocol.websocket
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class ToggleActiveAlteration(
|
||||
override val timestamp: Long,
|
||||
override val characterSheetId: String,
|
||||
override val prefix: Char,
|
||||
override val instanceId: Int,
|
||||
val alterationId: String,
|
||||
val active: Boolean,
|
||||
) : SocketMessage, CharacterInstanceIdMessage
|
||||
Loading…
Add table
Add a link
Reference in a new issue