diff --git a/frontend/src/components/falukant/MessagesDialog.vue b/frontend/src/components/falukant/MessagesDialog.vue index d5c64b0..a5019dc 100644 --- a/frontend/src/components/falukant/MessagesDialog.vue +++ b/frontend/src/components/falukant/MessagesDialog.vue @@ -293,6 +293,15 @@ export default { extractParamsFromValue(value, n) { const params = {}; + // Geldbeträge direkt aus value extrahieren (neue Struktur) + if (value.money_change_absolute !== undefined && value.money_change_absolute !== null) { + params.absolute = value.money_change_absolute; + params.amount = value.money_change_absolute; + } + if (value.money_change_percent !== undefined && value.money_change_percent !== null) { + params.percent = value.money_change_percent; + } + // Charakternamen aus value extrahieren if (value.character_first_name || value.character_last_name) { const firstName = value.character_first_name || ''; @@ -311,10 +320,19 @@ export default { params.regionName = value.regionName; } - // Parameter aus effects extrahieren + // Parameter aus effects extrahieren (falls nicht bereits aus value extrahiert) if (value.effects && Array.isArray(value.effects)) { for (const effect of value.effects) { - if (effect.type === 'character_health_change') { + if (effect.type === 'money_change') { + // Nur verwenden, wenn nicht bereits aus value extrahiert + if (params.absolute === undefined && effect.absolute !== undefined) { + params.absolute = effect.absolute; + params.amount = effect.absolute; + } + if (params.percent === undefined && effect.percent !== undefined) { + params.percent = effect.percent; + } + } else if (effect.type === 'character_health_change') { // Charakternamen aus Effect haben Vorrang if (effect.character_first_name || effect.character_last_name) { const firstName = effect.character_first_name || ''; @@ -337,6 +355,25 @@ export default { if (effect.character_id) { params.character_id = effect.character_id; } + } else if (effect.type === 'storage_damage') { + if (effect.inventory_damage_percent !== undefined) { + params.inventory_damage_percent = effect.inventory_damage_percent; + } + if (effect.storage_destruction_percent !== undefined) { + params.storage_destruction_percent = effect.storage_destruction_percent; + } + } else if (effect.type === 'production_quality_change') { + if (effect.change !== undefined) { + params.productionQualityChange = effect.change; + } + } else if (effect.type === 'transport_speed_change') { + if (effect.percent !== undefined) { + params.transportSpeedChangePercent = effect.percent; + } + } else if (effect.type === 'storage_capacity_change') { + if (effect.percent !== undefined) { + params.storageCapacityChangePercent = effect.percent; + } } } }