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.
This commit is contained in:
Torsten Schulz (local)
2026-01-09 09:31:33 +01:00
parent 0372d213c0
commit 3722bcf8c8

View File

@@ -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;
}
}
}
}