diff --git a/cards-json b/cards-json index 78a7282..cc48d11 160000 --- a/cards-json +++ b/cards-json @@ -1 +1 @@ -Subproject commit 78a72827859f784583b120a515916e790e641f1d +Subproject commit cc48d11ea159396c60cca27a91e8c1c85db2319e diff --git a/mongo-init.js b/mongo-init.js index 18a96b0..e84153c 100644 --- a/mongo-init.js +++ b/mongo-init.js @@ -53,35 +53,33 @@ function createEffectCondition(json, card) { return createdCondition; } -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); - } +function createEffects(effects, card, cardUUID) { + return 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, card, cardUUID); + } - if (e.effect_type) { - createdEffect.condition = createEffectCondition(e.effect_type, card); - } + if (e.effect_type) { + createdEffect.condition = createEffectCondition(e.effect_type, card); + } - 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,10 +109,8 @@ function createCard(json, pack, playerIndex) { const { insertedId } = db.cards.insertOne(createdCard); if (json.effects) { - db.cards.updateOne( - { _id: insertedId }, - { $set: { effects: createEffects(json, insertedId) } } - ); + const effects = createEffects(json.effects, json, insertedId); + db.cards.updateOne({ _id: insertedId }, { $set: { effects } }); } }