From d402ead35abe4ec19d6abeb4b956a1479aa3aac8 Mon Sep 17 00:00:00 2001 From: legonzaur Date: Sun, 4 Aug 2024 18:33:49 +0200 Subject: [PATCH] fix : add faction to effects --- mongo-init.js | 53 ++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/mongo-init.js b/mongo-init.js index 4f10043..babd42b 100644 --- a/mongo-init.js +++ b/mongo-init.js @@ -53,33 +53,38 @@ function createEffectCondition(json, cardUUID) { return createdCondition; } -function createEffects(json, cardUUID) { - return json.map((e) => { - const createdEffect = { - card: cardUUID, - effect: e.effect, - amount: e.amount ?? 1, - subEffects: [], - times: e.times ?? 1, - per: e.per, - faction: e.faction, - }; - if (e.sub_effects) { - createdEffect.subEffects = createEffects(e.sub_effects, cardUUID); - } +function createEffects(card, cardUUID) { + if (card.effects) { + return card.effects.map((e) => { + const createdEffect = { + card: cardUUID, + effect: e.effect, + amount: e.amount ?? 1, + subEffects: [], + times: e.times ?? 1, + per: e.per, + faction: card.faction, + }; + if (e.sub_effects) { + createdEffect.subEffects = createEffects(e.sub_effects, cardUUID); + } - if (e.effect_type) { - createdEffect.condition = createEffectCondition(e.effect_type, cardUUID); - } + if (e.effect_type) { + createdEffect.condition = createEffectCondition( + e.effect_type, + cardUUID + ); + } - if (e.mutex) { - createdEffect.mutex = e.mutex.toString(); - } + if (e.mutex) { + createdEffect.mutex = e.mutex.toString(); + } - const { insertedId } = db.effects.insertOne(createdEffect); + const { insertedId } = db.effects.insertOne(createdEffect); - return insertedId; - }); + return insertedId; + }); + } } function createCard(json, pack, playerIndex) { @@ -111,7 +116,7 @@ function createCard(json, pack, playerIndex) { if (json.effects) { db.cards.updateOne( { _id: insertedId }, - { $set: { effects: createEffects(json.effects, insertedId) } } + { $set: { effects: createEffects(json, insertedId) } } ); } }