Change the damage text message message.
This commit is contained in:
parent
4c37d8b937
commit
49723892fc
7 changed files with 38 additions and 41 deletions
|
|
@ -185,9 +185,10 @@
|
||||||
<string name="roll_history__item__difficulty">Difficulté</string>
|
<string name="roll_history__item__difficulty">Difficulté</string>
|
||||||
|
|
||||||
<string name="chat__diminished_change">%1$s passe à %2$d d'état diminuée</string>
|
<string name="chat__diminished_change">%1$s passe à %2$d d'état diminuée</string>
|
||||||
<string name="chat__characteristic_change">%1$s passe à %2$d %3$s</string>
|
<string name="chat__characteristic_change__hp_down">%1$s subit %2$d point(s) de dommage</string>
|
||||||
<string name="chat__characteristic__hp">Hp</string>
|
<string name="chat__characteristic_change__hp_up">%1$s récupère %2$d point(s) de vie</string>
|
||||||
<string name="chat__characteristic__pp">Pp</string>
|
<string name="chat__characteristic_change__pp_down">%1$s utilise %2$d point(s) de pouvoir</string>
|
||||||
|
<string name="chat__characteristic_change__pp_up">%1$s récupère %2$d point(s) de pouvoir</string>
|
||||||
|
|
||||||
<string name="settings__title">Paramètres de l'application</string>
|
<string name="settings__title">Paramètres de l'application</string>
|
||||||
<string name="settings__reset_action">Paramètres par défault</string>
|
<string name="settings__reset_action">Paramètres par défault</string>
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ class CampaignStore(
|
||||||
is CampaignMessage.UpdateCharacteristic -> updateCharacteristic(
|
is CampaignMessage.UpdateCharacteristic -> updateCharacteristic(
|
||||||
characterInstanceId = instanceId,
|
characterInstanceId = instanceId,
|
||||||
characteristic = factory.convertFromJson(json = message.characteristic),
|
characteristic = factory.convertFromJson(json = message.characteristic),
|
||||||
value = message.value,
|
value = message.newValue,
|
||||||
)
|
)
|
||||||
|
|
||||||
is CampaignMessage.UpdateDiminished -> updateDiminished(
|
is CampaignMessage.UpdateDiminished -> updateDiminished(
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@ import com.pixelized.shared.lwa.model.AlteredCharacterSheetFactory
|
||||||
import com.pixelized.shared.lwa.model.alteration.FieldAlteration
|
import com.pixelized.shared.lwa.model.alteration.FieldAlteration
|
||||||
import com.pixelized.shared.lwa.model.campaign.Campaign
|
import com.pixelized.shared.lwa.model.campaign.Campaign
|
||||||
import com.pixelized.shared.lwa.model.campaign.Campaign.CharacterInstance.Characteristic
|
import com.pixelized.shared.lwa.model.campaign.Campaign.CharacterInstance.Characteristic
|
||||||
|
import com.pixelized.shared.lwa.model.campaign.damage
|
||||||
import com.pixelized.shared.lwa.model.campaign.factory.CampaignJsonFactory
|
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.model.characterSheet.CharacterSheet
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||||
|
|
||||||
|
|
@ -65,6 +67,9 @@ class CharacterDetailCharacteristicDialogViewModel(
|
||||||
val sheet = characterSheetRepository.characterDetail(
|
val sheet = characterSheetRepository.characterDetail(
|
||||||
characterSheetId = characterInstanceId.characterSheetId,
|
characterSheetId = characterInstanceId.characterSheetId,
|
||||||
) ?: return
|
) ?: return
|
||||||
|
val characterInstance = campaignRepository.instance(
|
||||||
|
characterInstanceId = characterInstanceId,
|
||||||
|
)
|
||||||
val alterations = alterationRepository.alterations(
|
val alterations = alterationRepository.alterations(
|
||||||
characterInstanceId = characterInstanceId,
|
characterInstanceId = characterInstanceId,
|
||||||
)
|
)
|
||||||
|
|
@ -85,7 +90,11 @@ class CharacterDetailCharacteristicDialogViewModel(
|
||||||
characterSheetId = characterInstanceId.characterSheetId,
|
characterSheetId = characterInstanceId.characterSheetId,
|
||||||
instanceId = characterInstanceId.instanceId,
|
instanceId = characterInstanceId.instanceId,
|
||||||
characteristic = characteristicJson,
|
characteristic = characteristicJson,
|
||||||
value = when (characteristic) {
|
oldValue = when (characteristic) {
|
||||||
|
Characteristic.Damage -> characterInstance.damage
|
||||||
|
Characteristic.Power -> characterInstance.power
|
||||||
|
},
|
||||||
|
newValue = when (characteristic) {
|
||||||
Characteristic.Damage -> alteredSheet.maxHp - value
|
Characteristic.Damage -> alteredSheet.maxHp - value
|
||||||
Characteristic.Power -> alteredSheet.maxPp - value
|
Characteristic.Power -> alteredSheet.maxPp - value
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,21 +7,22 @@ import com.pixelized.desktop.lwa.ui.screen.campaign.text.messages.DiminishedText
|
||||||
import com.pixelized.desktop.lwa.ui.screen.campaign.text.messages.RollTextMessageUio
|
import com.pixelized.desktop.lwa.ui.screen.campaign.text.messages.RollTextMessageUio
|
||||||
import com.pixelized.desktop.lwa.ui.screen.campaign.text.messages.TextMessage
|
import com.pixelized.desktop.lwa.ui.screen.campaign.text.messages.TextMessage
|
||||||
import com.pixelized.shared.lwa.model.AlteredCharacterSheetFactory
|
import com.pixelized.shared.lwa.model.AlteredCharacterSheetFactory
|
||||||
import com.pixelized.shared.lwa.model.campaign.Campaign
|
|
||||||
import com.pixelized.shared.lwa.model.campaign.CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1.Damage
|
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.model.campaign.CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1.Power
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.SocketMessage
|
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.GameMasterEvent
|
import com.pixelized.shared.lwa.protocol.websocket.GameMasterEvent
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.RestSynchronisation
|
import com.pixelized.shared.lwa.protocol.websocket.RestSynchronisation
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.RollMessage
|
import com.pixelized.shared.lwa.protocol.websocket.RollMessage
|
||||||
|
import com.pixelized.shared.lwa.protocol.websocket.SocketMessage
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.ToggleActiveAlteration
|
import com.pixelized.shared.lwa.protocol.websocket.ToggleActiveAlteration
|
||||||
import com.pixelized.shared.lwa.protocol.websocket.UpdateSkillUsageMessage
|
import com.pixelized.shared.lwa.protocol.websocket.UpdateSkillUsageMessage
|
||||||
import lwacharactersheet.composeapp.generated.resources.Res
|
import lwacharactersheet.composeapp.generated.resources.Res
|
||||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic__hp
|
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change__hp_down
|
||||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic__pp
|
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change__hp_up
|
||||||
import org.jetbrains.compose.resources.getString
|
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change__pp_down
|
||||||
|
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change__pp_up
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
class TextMessageFactory(
|
class TextMessageFactory(
|
||||||
private val characterSheetRepository: CharacterSheetRepository,
|
private val characterSheetRepository: CharacterSheetRepository,
|
||||||
|
|
@ -80,30 +81,21 @@ class TextMessageFactory(
|
||||||
val sheet = characterSheetRepository.characterDetail(
|
val sheet = characterSheetRepository.characterDetail(
|
||||||
characterSheetId = message.characterSheetId,
|
characterSheetId = message.characterSheetId,
|
||||||
) ?: return null
|
) ?: return null
|
||||||
val characterInstanceId = Campaign.CharacterInstance.Id(
|
|
||||||
prefix = message.prefix,
|
// We are talking about damage / consumption there so old value have to be put first.
|
||||||
characterSheetId = message.characterSheetId,
|
val value = message.oldValue - message.newValue
|
||||||
instanceId = message.instanceId,
|
|
||||||
)
|
|
||||||
val alterations = alterationRepository.alterations(
|
|
||||||
characterInstanceId = characterInstanceId,
|
|
||||||
)
|
|
||||||
val alteredSheet = alteredCharacterSheetFactory.sheet(
|
|
||||||
characterSheet = sheet,
|
|
||||||
alterations = alterations,
|
|
||||||
)
|
|
||||||
CharacteristicTextMessageUio(
|
CharacteristicTextMessageUio(
|
||||||
id = "${message.timestamp}-$id-Characteristic",
|
id = "${message.timestamp}-$id-Characteristic",
|
||||||
timestamp = formatTime.format(time),
|
timestamp = formatTime.format(time),
|
||||||
|
label = when {
|
||||||
|
message.characteristic == Damage && value < 0 -> Res.string.chat__characteristic_change__hp_down
|
||||||
|
message.characteristic == Damage -> Res.string.chat__characteristic_change__hp_up
|
||||||
|
message.characteristic == Power && value < 0 -> Res.string.chat__characteristic_change__pp_down
|
||||||
|
else -> Res.string.chat__characteristic_change__pp_up
|
||||||
|
},
|
||||||
character = sheet.name,
|
character = sheet.name,
|
||||||
value = when (message.characteristic) {
|
value = abs(value),
|
||||||
Damage -> alteredSheet.maxHp - message.value
|
|
||||||
Power -> alteredSheet.maxPp - message.value
|
|
||||||
},
|
|
||||||
characteristic = when (message.characteristic) {
|
|
||||||
Damage -> getString(Res.string.chat__characteristic__hp)
|
|
||||||
Power -> getString(Res.string.chat__characteristic__pp)
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,17 +11,16 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.pixelized.desktop.lwa.ui.theme.lwa
|
import com.pixelized.desktop.lwa.ui.theme.lwa
|
||||||
import lwacharactersheet.composeapp.generated.resources.Res
|
import org.jetbrains.compose.resources.StringResource
|
||||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change
|
|
||||||
import org.jetbrains.compose.resources.stringResource
|
import org.jetbrains.compose.resources.stringResource
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
data class CharacteristicTextMessageUio(
|
data class CharacteristicTextMessageUio(
|
||||||
override val id: String,
|
override val id: String,
|
||||||
override val timestamp: String,
|
override val timestamp: String,
|
||||||
|
val label: StringResource,
|
||||||
val character: String,
|
val character: String,
|
||||||
val value: Int,
|
val value: Int,
|
||||||
val characteristic: String,
|
|
||||||
) : TextMessage
|
) : TextMessage
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
@ -53,12 +52,7 @@ fun CharacteristicTextMessage(
|
||||||
style = MaterialTheme.lwa.typography.chat.text,
|
style = MaterialTheme.lwa.typography.chat.text,
|
||||||
overflow = TextOverflow.Ellipsis,
|
overflow = TextOverflow.Ellipsis,
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
text = stringResource(
|
text = stringResource(message.label, message.character, message.value),
|
||||||
Res.string.chat__characteristic_change,
|
|
||||||
message.character,
|
|
||||||
message.value,
|
|
||||||
message.characteristic,
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -37,7 +37,7 @@ class Engine(
|
||||||
is CampaignMessage.UpdateCharacteristic -> campaignService.updateCharacteristic(
|
is CampaignMessage.UpdateCharacteristic -> campaignService.updateCharacteristic(
|
||||||
characterInstanceId = instanceId,
|
characterInstanceId = instanceId,
|
||||||
characteristic = campaignJsonFactory.convertFromJson(json = message.characteristic),
|
characteristic = campaignJsonFactory.convertFromJson(json = message.characteristic),
|
||||||
value = message.value,
|
value = message.newValue,
|
||||||
)
|
)
|
||||||
|
|
||||||
is CampaignMessage.UpdateDiminished -> campaignService.updateDiminished(
|
is CampaignMessage.UpdateDiminished -> campaignService.updateDiminished(
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@ sealed interface CampaignMessage : SocketMessage, CharacterInstanceIdMessage {
|
||||||
override val characterSheetId: String,
|
override val characterSheetId: String,
|
||||||
override val instanceId: Int,
|
override val instanceId: Int,
|
||||||
val characteristic: CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1,
|
val characteristic: CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1,
|
||||||
val value: Int,
|
val oldValue: Int,
|
||||||
|
val newValue: Int,
|
||||||
) : CampaignMessage
|
) : CampaignMessage
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue