Add GM & NPC (UI) support. Change the Id system.
This commit is contained in:
parent
6b86a6c075
commit
27dba5438e
54 changed files with 816 additions and 426 deletions
|
|
@ -10,9 +10,25 @@ data class Campaign(
|
|||
val diminished: Int,
|
||||
) {
|
||||
data class Id(
|
||||
val prefix: Char,
|
||||
val characterSheetId: String,
|
||||
val instanceId: Int,
|
||||
)
|
||||
) {
|
||||
fun equals(
|
||||
prefix: Char,
|
||||
characterSheetId: String?,
|
||||
instanceId: Int?,
|
||||
): Boolean {
|
||||
return this.prefix == prefix &&
|
||||
this.characterSheetId == characterSheetId &&
|
||||
this.instanceId == instanceId
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val PLAYER = 'c'
|
||||
const val NPC = 'n'
|
||||
}
|
||||
}
|
||||
|
||||
enum class Characteristic {
|
||||
Damage,
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ class CampaignJsonFactory(
|
|||
fun convertToJson(
|
||||
id: Campaign.CharacterInstance.Id,
|
||||
): String {
|
||||
return "${String.format("%03d", id.instanceId)}-${id.characterSheetId}"
|
||||
return "${id.prefix}-${String.format("%03d", id.instanceId)}-${id.characterSheetId}"
|
||||
}
|
||||
|
||||
fun convertToJson(
|
||||
|
|
|
|||
|
|
@ -33,8 +33,9 @@ class CampaignJsonV1Factory {
|
|||
characterInstanceIdJson: String,
|
||||
): Campaign.CharacterInstance.Id {
|
||||
return Campaign.CharacterInstance.Id(
|
||||
characterSheetId = characterInstanceIdJson.drop(4), // drop first 3 number then the -
|
||||
instanceId = characterInstanceIdJson.take(3).toIntOrNull() ?: 0,
|
||||
prefix = characterInstanceIdJson.take(1)[0],
|
||||
characterSheetId = characterInstanceIdJson.drop(2 + 4), // drop the char then the - then the first 3 number then the -
|
||||
instanceId = characterInstanceIdJson.drop(2).take(3).toIntOrNull() ?: 0,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,11 +5,13 @@ import kotlinx.serialization.Serializable
|
|||
|
||||
@Serializable
|
||||
sealed interface CampaignMessage : MessagePayload {
|
||||
val prefix: Char
|
||||
val characterSheetId: String
|
||||
val instanceId: Int
|
||||
|
||||
@Serializable
|
||||
data class UpdateCharacteristic(
|
||||
override val prefix: Char,
|
||||
override val characterSheetId: String,
|
||||
override val instanceId: Int,
|
||||
val characteristic: CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1,
|
||||
|
|
@ -18,6 +20,7 @@ sealed interface CampaignMessage : MessagePayload {
|
|||
|
||||
@Serializable
|
||||
data class UpdateDiminished(
|
||||
override val prefix: Char,
|
||||
override val characterSheetId: String,
|
||||
override val instanceId: Int,
|
||||
val diminished: Int,
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ import java.util.UUID
|
|||
@Serializable
|
||||
data class RollMessage(
|
||||
val id: RollId,
|
||||
val prefix: Char,
|
||||
val characterSheetId: String,
|
||||
val instanceId: Int?,
|
||||
val skillLabel: String,
|
||||
val rollValue: Int,
|
||||
val resultLabel: String? = null,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue