From 854de76467e71f890e9497c909560bcf8cf19f13 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sat, 27 Apr 2024 18:06:41 -0400 Subject: [PATCH] Improve handling of variant data overrides for mixed animated mode --- src/battle-scene.ts | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 512a196b1..3954e4878 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -531,10 +531,23 @@ export default class BattleScene extends SceneBase { .then(v => { Object.keys(v).forEach(k => variantData[k] = v[k]); if (this.experimentalSprites) { - const expTree = variantData['exp']; - Object.keys(expTree).forEach(ek => { - variantData[ek] = expTree[ek]; - }); + const expVariantData = variantData['exp']; + const traverseVariantData = (keys: string[]) => { + let variantTree = variantData; + let expTree = expVariantData; + keys.map((k: string, i: integer) => { + if (i < keys.length - 1) { + variantTree = variantTree[k]; + expTree = expTree[k]; + } else if (variantTree.hasOwnProperty(k) && expTree.hasOwnProperty(k)) { + if ([ 'back', 'female' ].includes(k)) + traverseVariantData(keys.concat(k)); + else + variantTree[k] = expTree[k]; + } + }); + }; + Object.keys(expVariantData).forEach(ek => traverseVariantData([ ek ])); } Promise.resolve(); });