From b779427b62cc85c39fac3d9436349772095b0961 Mon Sep 17 00:00:00 2001 From: Adam Goldsmith Date: Tue, 7 Sep 2021 22:53:27 -0400 Subject: [PATCH] Initial Commit --- strange_eons_to_arkhamdb.js | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 strange_eons_to_arkhamdb.js diff --git a/strange_eons_to_arkhamdb.js b/strange_eons_to_arkhamdb.js new file mode 100644 index 0000000..678f3f4 --- /dev/null +++ b/strange_eons_to_arkhamdb.js @@ -0,0 +1,85 @@ +// TODO: should be defined in strange eons somewhere +const pack_code = "420"; +var code = pack_code + Component.settings.get('CollectionNumber'); + +var skills = { + Agility: 0, + Intellect: 0, + Combat: 0, + Willpower: 0, + Wild: 0, + None: 0, +}; +for (var i = 1; i<=6; i++) { + skills[Component.settings.get('Skill' + i)] += 1; +} + +function renameSlot(slot) { + if (slot.startsWith('1 ')) { + return slot.slice(2); + } + else if (slot.startsWith('2 ')) { + return slot.slice(2) + ' x2'; + } + else { + return slot; + } +} + +var slot = renameSlot(Component.settings.get('Slot')); +if (Component.settings.get('Slot2') != 'None') { + slot += '. ' + renameSlot(Component.settings.get('Slot2')); +} + +var card_name = Component.getName(); +if (Component.settings.get('Subtitle') != '') { + card_name += ': ' + Component.settings.get('Subtitle'); +} + +// TODO: handle investigator cards +const card_types = { + "AHLCG-Event-Default": "event", + "AHLCG-Skill-Default": "skill", + "AHLCG-Asset-Default": "asset", + // TODO: actually handle enemy weaknesses + "AHLCG-WeaknessEnemy-Default": "enemy", + "AHLCG-WeaknessTreachery-Default": "treachery", +}; + +var card_data = { + agility: skills["Agility"], + code: String(code), + cost: String(Component.settings.get('ResourceCost')), + // TODO: could be derived? + deck_limit: 2, + faction_code: String(Component.settings.get('CardClass')).toLowerCase(), + faction2_code: String(Component.settings.get('CardClass2')).toLowerCase(), + flavor: String(Component.settings.get('Flavor')), + health: parseInt(Component.settings.get('Stamina')) || null, + illustrator: String(Component.settings.get('Artist')), + is_unique: Component.settings.getBoolean('Unique'), + lore: skills["Intellect"], + name: String(card_name), + pack_code: pack_code, + position: parseInt(Component.settings.get('CollectionNumber')) || null, + // TODO + quantity: 2, + // TODO + restrictions: null, + sanity: parseInt(Component.settings.get('Sanity')) || null, + slot: String(slot), + strength: skills["Combat"], + text: String(Component.settings.get('Rules')), + traits: String(Component.settings.get('Traits')), + type_code: card_types[Component.getFrontTemplateKey()], + wild: skills["Wild"], + will: skills["Willpower"], +}; + +if (card_types[Component.getFrontTemplateKey()] == 'enemy') { + // TODO: "weakness" or "basicweakness" + card_data.subtype_code = "basicweakness"; +} + + +println(JSON.stringify(card_data, null, 4));