Add characteristic + common / special / magic skill to detail panel.

This commit is contained in:
Thomas Andres Gomez 2025-02-27 00:14:10 +01:00
parent b6b135cd40
commit b6d02c21be
28 changed files with 633 additions and 135 deletions

View file

@ -4,6 +4,7 @@ import kotlinx.serialization.Serializable
@Serializable
data class UpdateSkillUsageMessage(
val characterId: String,
val characterSheetId: String,
val skillId: String,
val used: Boolean,
) : MessagePayload

View file

@ -89,16 +89,17 @@ class CharacterSheetUseCase {
fun updateSkillUsage(
character: CharacterSheet,
skillId: String,
used: Boolean,
): CharacterSheet {
return character.copy(
commonSkills = character.commonSkills.map { skill ->
skill.takeIf { skill.id == skillId }?.copy(used = skill.used.not()) ?: skill
skill.takeIf { skill.id == skillId }?.copy(used = used) ?: skill
},
specialSkills = character.specialSkills.map { skill ->
skill.takeIf { skill.id == skillId }?.copy(used = skill.used.not()) ?: skill
skill.takeIf { skill.id == skillId }?.copy(used = used) ?: skill
},
magicSkills = character.magicSkills.map { skill ->
skill.takeIf { skill.id == skillId }?.copy(used = skill.used.not()) ?: skill
skill.takeIf { skill.id == skillId }?.copy(used = used) ?: skill
},
)
}