From 3722bcf8c852a9fe0606c534563718a30c7cd0c0 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 9 Jan 2026 09:31:33 +0100 Subject: [PATCH] Enhance parameter extraction in MessagesDialog component for money and effect changes - Added extraction of money_change_absolute and money_change_percent from value to parameters. - Updated effects handling to include money_change, storage_damage, production_quality_change, transport_speed_change, and storage_capacity_change types. - Improved logic to prevent overwriting parameters already extracted from value, ensuring accurate data representation. --- .../components/falukant/MessagesDialog.vue | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) 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; + } } } }