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="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__hp">Hp</string>
|
||||
<string name="chat__characteristic__pp">Pp</string>
|
||||
<string name="chat__characteristic_change__hp_down">%1$s subit %2$d point(s) de dommage</string>
|
||||
<string name="chat__characteristic_change__hp_up">%1$s récupère %2$d point(s) de vie</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__reset_action">Paramètres par défault</string>
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ class CampaignStore(
|
|||
is CampaignMessage.UpdateCharacteristic -> updateCharacteristic(
|
||||
characterInstanceId = instanceId,
|
||||
characteristic = factory.convertFromJson(json = message.characteristic),
|
||||
value = message.value,
|
||||
value = message.newValue,
|
||||
)
|
||||
|
||||
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.campaign.Campaign
|
||||
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.power
|
||||
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||
|
||||
|
|
@ -65,6 +67,9 @@ class CharacterDetailCharacteristicDialogViewModel(
|
|||
val sheet = characterSheetRepository.characterDetail(
|
||||
characterSheetId = characterInstanceId.characterSheetId,
|
||||
) ?: return
|
||||
val characterInstance = campaignRepository.instance(
|
||||
characterInstanceId = characterInstanceId,
|
||||
)
|
||||
val alterations = alterationRepository.alterations(
|
||||
characterInstanceId = characterInstanceId,
|
||||
)
|
||||
|
|
@ -85,7 +90,11 @@ class CharacterDetailCharacteristicDialogViewModel(
|
|||
characterSheetId = characterInstanceId.characterSheetId,
|
||||
instanceId = characterInstanceId.instanceId,
|
||||
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.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.TextMessage
|
||||
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.Power
|
||||
import com.pixelized.shared.lwa.protocol.websocket.SocketMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.CampaignMessage
|
||||
import com.pixelized.shared.lwa.protocol.websocket.GameMasterEvent
|
||||
import com.pixelized.shared.lwa.protocol.websocket.RestSynchronisation
|
||||
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.UpdateSkillUsageMessage
|
||||
import lwacharactersheet.composeapp.generated.resources.Res
|
||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic__hp
|
||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic__pp
|
||||
import org.jetbrains.compose.resources.getString
|
||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change__hp_down
|
||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change__hp_up
|
||||
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 kotlin.math.abs
|
||||
|
||||
class TextMessageFactory(
|
||||
private val characterSheetRepository: CharacterSheetRepository,
|
||||
|
|
@ -80,30 +81,21 @@ class TextMessageFactory(
|
|||
val sheet = characterSheetRepository.characterDetail(
|
||||
characterSheetId = message.characterSheetId,
|
||||
) ?: return null
|
||||
val characterInstanceId = Campaign.CharacterInstance.Id(
|
||||
prefix = message.prefix,
|
||||
characterSheetId = message.characterSheetId,
|
||||
instanceId = message.instanceId,
|
||||
)
|
||||
val alterations = alterationRepository.alterations(
|
||||
characterInstanceId = characterInstanceId,
|
||||
)
|
||||
val alteredSheet = alteredCharacterSheetFactory.sheet(
|
||||
characterSheet = sheet,
|
||||
alterations = alterations,
|
||||
)
|
||||
|
||||
// We are talking about damage / consumption there so old value have to be put first.
|
||||
val value = message.oldValue - message.newValue
|
||||
|
||||
CharacteristicTextMessageUio(
|
||||
id = "${message.timestamp}-$id-Characteristic",
|
||||
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,
|
||||
value = when (message.characteristic) {
|
||||
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)
|
||||
},
|
||||
value = abs(value),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,17 +11,16 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.pixelized.desktop.lwa.ui.theme.lwa
|
||||
import lwacharactersheet.composeapp.generated.resources.Res
|
||||
import lwacharactersheet.composeapp.generated.resources.chat__characteristic_change
|
||||
import org.jetbrains.compose.resources.StringResource
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
|
||||
@Stable
|
||||
data class CharacteristicTextMessageUio(
|
||||
override val id: String,
|
||||
override val timestamp: String,
|
||||
val label: StringResource,
|
||||
val character: String,
|
||||
val value: Int,
|
||||
val characteristic: String,
|
||||
) : TextMessage
|
||||
|
||||
@Composable
|
||||
|
|
@ -53,12 +52,7 @@ fun CharacteristicTextMessage(
|
|||
style = MaterialTheme.lwa.typography.chat.text,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
maxLines = 1,
|
||||
text = stringResource(
|
||||
Res.string.chat__characteristic_change,
|
||||
message.character,
|
||||
message.value,
|
||||
message.characteristic,
|
||||
),
|
||||
text = stringResource(message.label, message.character, message.value),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -37,7 +37,7 @@ class Engine(
|
|||
is CampaignMessage.UpdateCharacteristic -> campaignService.updateCharacteristic(
|
||||
characterInstanceId = instanceId,
|
||||
characteristic = campaignJsonFactory.convertFromJson(json = message.characteristic),
|
||||
value = message.value,
|
||||
value = message.newValue,
|
||||
)
|
||||
|
||||
is CampaignMessage.UpdateDiminished -> campaignService.updateDiminished(
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ sealed interface CampaignMessage : SocketMessage, CharacterInstanceIdMessage {
|
|||
override val characterSheetId: String,
|
||||
override val instanceId: Int,
|
||||
val characteristic: CampaignJsonV1.CharacterInstanceJsonV1.CharacteristicV1,
|
||||
val value: Int,
|
||||
val oldValue: Int,
|
||||
val newValue: Int,
|
||||
) : CampaignMessage
|
||||
|
||||
@Serializable
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue