ReModel: remove the CharacterInstanceId: client

This commit is contained in:
Thomas Andres Gomez 2025-03-25 15:57:39 +01:00
parent a5adc61e90
commit 9cc6414648
67 changed files with 891 additions and 953 deletions

View file

@ -35,7 +35,7 @@ class AlteredCharacterSheetFactory(
sheetUseCase = sheetUseCase,
expressionUseCase = expressionUseCase,
sheet = characterSheet,
alterations = alterations,
fieldAlterations = alterations,
)
}
}
@ -44,7 +44,7 @@ class AlteredCharacterSheet(
private val sheetUseCase: CharacterSheetUseCase,
private val expressionUseCase: ExpressionUseCase,
private val sheet: CharacterSheet,
private val alterations: Map<String, List<FieldAlteration>>,
private val fieldAlterations: Map<String, List<FieldAlteration>>,
) {
val id: String = sheet.id
@ -53,56 +53,68 @@ class AlteredCharacterSheet(
val shouldLevelUp: Boolean = sheet.shouldLevelUp
val portrait: String?
get() = alterations[PORTRAIT]
get() = fieldAlterations[PORTRAIT]
?.firstNotNullOfOrNull { (it.expression as? Expression.UrlExpression)?.url }
?: sheet.portrait
val thumbnail: String?
get() = alterations[THUMBNAIL]
get() = fieldAlterations[THUMBNAIL]
?.firstNotNullOfOrNull { (it.expression as? Expression.UrlExpression)?.url }
?: sheet.thumbnail
val level: Int
get() = sheet.level + alterations[LVL].sum()
get() = sheet.level + fieldAlterations[LVL].sum()
val strength: Int
get() = sheet.strength + alterations[STR].sum()
get() = sheet.strength + fieldAlterations[STR].sum()
val dexterity: Int
get() = sheet.dexterity + alterations[DEX].sum()
get() = sheet.dexterity + fieldAlterations[DEX].sum()
val constitution: Int
get() = sheet.constitution + alterations[CON].sum()
get() = sheet.constitution + fieldAlterations[CON].sum()
val height: Int
get() = sheet.height + alterations[HEI].sum()
get() = sheet.height + fieldAlterations[HEI].sum()
val intelligence: Int
get() = sheet.intelligence + alterations[INT].sum()
get() = sheet.intelligence + fieldAlterations[INT].sum()
val power: Int
get() = sheet.power + alterations[POW].sum()
get() = sheet.power + fieldAlterations[POW].sum()
val charisma: Int
get() = sheet.charisma + alterations[CHA].sum()
get() = sheet.charisma + fieldAlterations[CHA].sum()
val movement: Int
get() = sheetUseCase.movement() + alterations[MOV].sum()
get() = sheetUseCase.movement() + fieldAlterations[MOV].sum()
val armor: Int
get() = sheetUseCase.armor() + alterations[ARMOR].sum()
get() = sheetUseCase.armor() + fieldAlterations[ARMOR].sum()
val maxHp: Int
get() = sheetUseCase.maxHp(
constitution = constitution,
height = height,
level = level,
) + alterations[HP].sum()
) + fieldAlterations[HP].sum()
val maxPp: Int
get() = sheetUseCase.maxPp(
power = power,
) + alterations[PP].sum()
) + fieldAlterations[PP].sum()
val damage: Int
get() = sheet.damage
val fatigue: Int
get() = sheet.fatigue
val diminished: Int
get() = sheet.diminished
val alterations: List<String>
get() = sheet.alterations
val damageBonus: String
get() {
@ -110,7 +122,7 @@ class AlteredCharacterSheet(
strength = strength,
height = height,
)
return alterations[DMG]
return fieldAlterations[DMG]
?.joinToString(separator = "+") { it.expression.toString() }
?.let { "$initial+$it" }
?: initial
@ -119,12 +131,12 @@ class AlteredCharacterSheet(
val learning: Int
get() = sheetUseCase.learning(
intelligence = intelligence
) + alterations[LB].sum()
) + fieldAlterations[LB].sum()
val hpGrow: Int
get() = sheetUseCase.hpGrow(
constitution = constitution,
) + alterations[GHP].sum()
) + fieldAlterations[GHP].sum()
// Helper method

View file

@ -9,6 +9,7 @@ sealed interface CampaignEvent : SocketMessage {
@Serializable
data class UpdateScene(
override val timestamp: Long,
val name: String,
) : CampaignEvent
@Serializable

View file

@ -9,6 +9,7 @@ sealed interface CharacterSheetEvent : SocketMessage, CharacterSheetIdMessage {
data class UpdateDamage(
override val characterSheetId: String,
override val timestamp: Long,
val oldValue: Int,
val damage: Int,
) : CharacterSheetEvent
@ -16,6 +17,7 @@ sealed interface CharacterSheetEvent : SocketMessage, CharacterSheetIdMessage {
data class UpdateFatigue(
override val characterSheetId: String,
override val timestamp: Long,
val oldValue: Int,
val fatigue: Int,
) : CharacterSheetEvent