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:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user