diff --git a/public/data/supply-events/global-americas/v5.3-21.12.02-da-battlesuit-expansion-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.02-da-battlesuit-expansion-supply.json new file mode 100644 index 00000000..64cdf319 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.02-da-battlesuit-expansion-supply.json @@ -0,0 +1,19 @@ +{ + "version": 5.3, + "verified": false, + "track": 3, + "name": "Dea Anchora Expansion Supply", + "type": "expansion-supply", + "token": "expansion-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "da" + } + ], + "extra": ["essentines"], + "duration": ["2021-12-02", "2021-12-17"], + "guarantees": [], + "mileages": [], + "drops": [] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.02-miracle-kissy-pillow-equipment-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.02-miracle-kissy-pillow-equipment-supply.json new file mode 100644 index 00000000..45a592e5 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.02-miracle-kissy-pillow-equipment-supply.json @@ -0,0 +1,296 @@ +{ + "version": 5.3, + "verified": true, + "track": 2, + "trackColor": "red", + "name": "Miracle Kissy Pillow Equipment Supply", + "type": "sp-equipment", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "miracle-kissy-pillow" + }, + { + "type": "stigmata", + "id": "paganini-top" + }, + { + "type": "stigmata", + "id": "paganini-mid" + }, + { + "type": "stigmata", + "id": "paganini-bot" + } + ], + "extra": [], + "duration": ["2021-12-02", "2021-12-31"], + "guarantees": [ + { + "count": 30, + "recurring": false, + "rewards": [ + { + "type": "weapon", + "id": "miracle-kissy-pillow", + "amount": 1 + }, + { + "type": "stigmata", + "id": "paganini-top", + "amount": 1 + }, + { + "type": "stigmata", + "id": "paganini-mid", + "amount": 1 + }, + { + "type": "stigmata", + "id": "paganini-bot", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "miracle-kissy-pillow", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "paganini-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "paganini-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "paganini-bot", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "thunder-kikaku", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "key-of-castigation", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "key-of-reason", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "nebulous-duality", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "path-to-acheron", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "hler-s-serenity", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "shattered-swords-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "shattered-swords-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "shattered-swords-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "holmes-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "holmes-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "holmes-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dickens-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dickens-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dickens-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.02-sns-battlesuit-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.02-sns-battlesuit-supply.json new file mode 100644 index 00000000..47cab272 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.02-sns-battlesuit-supply.json @@ -0,0 +1,141 @@ +{ + "version": 5.3, + "track": 1, + "verified": true, + "name": "Sweet 'n' Spicy Event Supply", + "type": "sp-battlesuit", + "token": "sp-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "sns" + } + ], + "extra": [], + "duration": ["2021-12-02", "2021-12-31"], + "guarantees": [ + { + "count": 25, + "recurring": false, + "rewards": [ + { + "type": "battlesuit", + "id": "sns", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "battlesuit", + "id": "random-a-rank", + "amount": 1 + } + ] + } + ], + "mileages": [ + { + "count": 10, + "type": "battlesuit-fragment", + "id": "sns", + "amount": 10 + }, + { + "count": 20, + "type": "battlesuit-fragment", + "id": "sns", + "amount": 10 + }, + { + "count": 40, + "type": "battlesuit-fragment", + "id": "sns", + "amount": 20 + }, + { + "count": 60, + "type": "battlesuit-fragment", + "id": "sns", + "amount": 20 + }, + { + "count": 80, + "type": "battlesuit-fragment", + "id": "sns", + "amount": 20 + }, + { + "count": 100, + "type": "battlesuit-fragment", + "id": "sns", + "amount": 20 + } + ], + "drops": [ + { + "rate": 7677, + "items": [ + { + "type": "battlesuit", + "id": "sns", + "amount": 1 + } + ] + }, + { + "rate": 14108, + "items": [ + { + "type": "battlesuit-fragment", + "id": "sns", + "amount": [5, 8] + } + ] + }, + { + "rate": 7677, + "items": [ + { "type": "battlesuit", "id": "random-a-rank", "amount": 1 }, + { + "type": "battlesuit-fragment", + "id": "sns", + "amount": 5 + } + ] + }, + { + "rate": 4703, + "items": [ + { + "type": "battlesuit-fragment", + "id": "random-a-rank", + "amount": [4, 6] + }, + { + "type": "battlesuit-fragment", + "id": "sns", + "amount": [2, 3] + } + ] + }, + { + "rate": 4703, + "items": [ + { + "type": "battlesuit-soul", + "id": "random-a-rank", + "amount": [5, 8] + }, + { + "type": "battlesuit-fragment", + "id": "sns", + "amount": [2, 3] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.02-tz-elf-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.02-tz-elf-supply.json new file mode 100644 index 00000000..c6644b79 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.02-tz-elf-supply.json @@ -0,0 +1,68 @@ +{ + "version": 5.3, + "track": 6, + "verified": true, + "name": "Tesla ZERO Elf Supply", + "type": "elf-supply", + "token": "elf-supply-card", + "featured": [ + { + "type": "elf", + "id": "tz" + } + ], + "extra": [], + "duration": ["2021-12-02", "2021-12-24"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "tz", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "tz", + "amount": 1 + }, + { + "type": "elf-part", + "id": "tz", + "amount": [2, 4] + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1510, + "items": [ + { + "type": "elf", + "id": "tz", + "amount": 1 + } + ] + }, + { + "rate": 12230, + "items": [ + { + "type": "elf-part", + "id": "tz", + "amount": [2, 4] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.03-starlance-prime-focused-supply-a copy 2.json b/public/data/supply-events/global-americas/v5.3-21.12.03-starlance-prime-focused-supply-a copy 2.json new file mode 100644 index 00000000..87fca99d --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.03-starlance-prime-focused-supply-a copy 2.json @@ -0,0 +1,269 @@ +{ + "version": 5.3, + "verified": true, + "track": 4, + "name": "Starlance Prime Focused Supply A", + "type": "focused-supply-a", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "starlance-prime" + }, + { + "type": "stigmata", + "id": "shakespeare-adrift-top" + }, + { + "type": "stigmata", + "id": "shakespeare-adrift-mid" + }, + { + "type": "stigmata", + "id": "shakespeare-adrift-bot" + } + ], + "extra": ["wishing-well"], + "duration": ["2021-12-2", "2021-12-10"], + "guarantees": [ + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "starlance-prime", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "shakespeare-adrift-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "shakespeare-adrift-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "shakespeare-adrift-bot", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "tranquil-arias", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "dark-star", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "swan-lake", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "nebulous-duality", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "undine-s-tale", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "hekate-s-gloom", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "nobel-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "nobel-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "nobel-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "benares-awakening-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "benares-awakening-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "benares-awakening-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "columbus-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "columbus-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "columbus-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "kafka-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "kafka-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "kafka-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.06-hekate-s-gloom-focused-supply-a copy.json b/public/data/supply-events/global-americas/v5.3-21.12.06-hekate-s-gloom-focused-supply-a copy.json new file mode 100644 index 00000000..06cee6c9 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.06-hekate-s-gloom-focused-supply-a copy.json @@ -0,0 +1,269 @@ +{ + "version": 5.3, + "verified": true, + "track": 5, + "name": "Hekate's Gloom Focused Supply B", + "type": "focused-supply-b", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "hekate-s-gloom" + }, + { + "type": "stigmata", + "id": "kafka-top" + }, + { + "type": "stigmata", + "id": "kafka-mid" + }, + { + "type": "stigmata", + "id": "kafka-bot" + } + ], + "extra": ["wishing-well"], + "duration": ["2021-12-06", "2021-12-13"], + "guarantees": [ + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "hekate-s-gloom", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "kafka-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "kafka-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "kafka-bot", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "mjolnir", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "key-of-reason", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "pledge-of-sakura", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "hyper-railguns", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "skadi-ondurgud", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "nue-of-the-shadow", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "thales-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "thales-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "thales-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "avogadro-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "avogadro-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "avogadro-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "michelangelo-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "michelangelo-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "michelangelo-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "monet-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "monet-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "monet-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.10-mitternachts-waltz-schicksal-arsenal.json b/public/data/supply-events/global-americas/v5.3-21.12.10-mitternachts-waltz-schicksal-arsenal.json new file mode 100644 index 00000000..2ec6b9db --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.10-mitternachts-waltz-schicksal-arsenal.json @@ -0,0 +1,284 @@ +{ + "version": 5.3, + "verified": true, + "track": 8, + "name": "Mitternachts Waltz Schicksal Arsenal", + "type": "sp-equipment", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "mitternachts-waltz" + }, + { + "type": "weapon", + "id": "might-of-an-utu" + }, + { + "type": "stigmata", + "id": "wang-zhenyi-top" + }, + { + "type": "stigmata", + "id": "wang-zhenyi-mid" + }, + { + "type": "stigmata", + "id": "wang-zhenyi-bot" + } + ], + "extra": [], + "duration": ["2021-12-10", "2021-12-24"], + "guarantees": [ + { + "count": 50, + "recurring": false, + "rewards": [ + { + "type": "weapon", + "id": "mitternachts-waltz", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1097, + "items": [ + { + "type": "weapon", + "id": "mitternachts-waltz", + "amount": 1 + } + ] + }, + { + "rate": 1097, + "items": [ + { + "type": "weapon", + "id": "might-of-an-utu", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "wang-zhenyi-top", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "wang-zhenyi-mid", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "wang-zhenyi-bot", + "amount": 1 + } + ] + }, + { + "rate": 1097, + "items": [ + { + "type": "weapon", + "id": "nue-of-the-shadow", + "amount": 1 + } + ] + }, + { + "rate": 1097, + "items": [ + { + "type": "weapon", + "id": "blood-dance", + "amount": 1 + } + ] + }, + { + "rate": 1097, + "items": [ + { + "type": "weapon", + "id": "zither-s-lament", + "amount": 1 + } + ] + }, + { + "rate": 1097, + "items": [ + { + "type": "weapon", + "id": "skadi-ondurgud", + "amount": 1 + } + ] + }, + { + "rate": 1097, + "items": [ + { + "type": "weapon", + "id": "starlance-prime", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "dirac-top", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "dirac-mid", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "dirac-bot", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "benares-awakening-top", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "benares-awakening-mid", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "benares-awakening-bot", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-top", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-mid", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-bot", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "avogadro-top", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "avogadro-mid", + "amount": 1 + } + ] + }, + { + "rate": 512, + "items": [ + { + "type": "stigmata", + "id": "avogadro-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.10-nuada-s-grief-focused-supply-a.json b/public/data/supply-events/global-americas/v5.3-21.12.10-nuada-s-grief-focused-supply-a.json new file mode 100644 index 00000000..e8ad865e --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.10-nuada-s-grief-focused-supply-a.json @@ -0,0 +1,269 @@ +{ + "version": 5.3, + "verified": true, + "track": 4, + "name": "Nuada's Grief Focused Supply A", + "type": "focused-supply-a", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "nuada-s-grief" + }, + { + "type": "stigmata", + "id": "ishikawa-goemon-top" + }, + { + "type": "stigmata", + "id": "ishikawa-goemon-mid" + }, + { + "type": "stigmata", + "id": "ishikawa-goemon-bot" + } + ], + "extra": ["wishing-well"], + "duration": ["2021-12-10", "2021-12-17"], + "guarantees": [ + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "nuada-s-grief", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "ishikawa-goemon-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "ishikawa-goemon-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "ishikawa-goemon-bot", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "thunder-kikaku", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "demonblade-florid-sakura", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "godslayer-surtr", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "11th-leitourgia", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "iris-of-the-dreams", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "star-shatterer-vikrant", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "sirin-ascendant-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "sirin-ascendant-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "sirin-ascendant-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dante-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dante-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dante-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dickens-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dickens-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dickens-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "beethoven-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "beethoven-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "beethoven-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.10-pv-battlesuit-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.10-pv-battlesuit-supply.json new file mode 100644 index 00000000..14a2acc8 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.10-pv-battlesuit-supply.json @@ -0,0 +1,104 @@ +{ + "version": 5.3, + "verified": true, + "track": 7, + "name": "Prinzessin der Veruteilung! Supply", + "type": "sp-battlesuit", + "token": "sp-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "pv" + } + ], + "extra": [], + "duration": ["2021-12-10", "2021-12-24"], + "guarantees": [ + { + "count": 25, + "recurring": false, + "rewards": [ + { + "type": "battlesuit", + "id": "pv", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "battlesuit", + "id": "random-a-rank", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 7677, + "items": [ + { + "type": "battlesuit", + "id": "pv", + "amount": 1 + } + ] + }, + { + "rate": 14108, + "items": [ + { + "type": "battlesuit-fragment", + "id": "pv", + "amount": [5, 8] + } + ] + }, + { + "rate": 7677, + "items": [ + { "type": "battlesuit", "id": "random-a-rank", "amount": 1 }, + { + "type": "battlesuit-fragment", + "id": "pv", + "amount": 5 + } + ] + }, + { + "rate": 4703, + "items": [ + { + "type": "battlesuit-fragment", + "id": "random-a-rank", + "amount": [4, 6] + }, + { + "type": "battlesuit-fragment", + "id": "pv", + "amount": [2, 3] + } + ] + }, + { + "rate": 4703, + "items": [ + { + "type": "battlesuit-soul", + "id": "random-a-rank", + "amount": [5, 8] + }, + { + "type": "battlesuit-fragment", + "id": "pv", + "amount": [2, 3] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.13-star-shatterer-vikrant-focused-supply-b.json b/public/data/supply-events/global-americas/v5.3-21.12.13-star-shatterer-vikrant-focused-supply-b.json new file mode 100644 index 00000000..2974f921 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.13-star-shatterer-vikrant-focused-supply-b.json @@ -0,0 +1,269 @@ +{ + "version": 5.3, + "verified": true, + "track": 5, + "name": "Star Shatterer Vikrant Focused Supply B", + "type": "focused-supply-b", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "star-shatterer-vikrant" + }, + { + "type": "stigmata", + "id": "beethoven-top" + }, + { + "type": "stigmata", + "id": "beethoven-mid" + }, + { + "type": "stigmata", + "id": "beethoven-bot" + } + ], + "extra": ["wishing-well"], + "duration": ["2021-12-13", "2021-12-20"], + "guarantees": [ + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "star-shatterer-vikrant", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "beethoven-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "beethoven-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "beethoven-bot", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "eos-gloria", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "ice-epiphyllum", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "briareus-pri", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "path-to-acheron", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "key-of-the-void", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "oath-of-judah", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "leeuwenhoek-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "leeuwenhoek-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "leeuwenhoek-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "ana-schariac-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "ana-schariac-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "ana-schariac-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "irene-adler-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "gustav-klimt-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "gustav-klimt-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "gustav-klimt-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.17-hos-battlesuit-expansion-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.17-hos-battlesuit-expansion-supply.json new file mode 100644 index 00000000..61365fdf --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.17-hos-battlesuit-expansion-supply.json @@ -0,0 +1,143 @@ +{ + "version": 5.3, + "verified": true, + "track": 3, + "name": "Herrscher of Sentience Expansion Supply", + "type": "expansion-supply", + "token": "expansion-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "hos" + } + ], + "extra": ["essentines"], + "duration": ["2021-12-17", "2021-12-24"], + "guarantees": [ + { + "count": 100, + "recurring": false, + "rewards": [ + { + "type": "battlesuit", + "id": "hos", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "battlesuit", + "id": "battlesuit-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1500, + "items": [ + { + "type": "battlesuit", + "id": "hos", + "amount": 1 + } + ] + }, + { + "rate": 2250, + "items": [ + { + "type": "battlesuit-soul", + "id": "hos", + "amount": [7, 9] + } + ] + }, + { + "rate": 4500, + "items": [ + { + "type": "battlesuit", + "id": "sr", + "amount": 1 + } + ] + }, + { + "rate": 15000, + "items": [ + { + "type": "battlesuit-soul", + "id": "sr", + "amount": [4, 6] + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit", + "id": "vt", + "amount": 1 + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit-fragment", + "id": "vt", + "amount": [4, 6] + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit", + "id": "sj", + "amount": 1 + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit-soul", + "id": "sj", + "amount": [5, 8] + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit", + "id": "sp", + "amount": 1 + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit-fragment", + "id": "sp", + "amount": [4, 6] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.17-key-of-oblivion-focused-supply-a.json b/public/data/supply-events/global-americas/v5.3-21.12.17-key-of-oblivion-focused-supply-a.json new file mode 100644 index 00000000..4f8edcbb --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.17-key-of-oblivion-focused-supply-a.json @@ -0,0 +1,269 @@ +{ + "version": 5.3, + "verified": true, + "track": 4, + "name": "Keys of Oblivion Focused Supply A", + "type": "focused-supply-a", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "keys-of-oblivion" + }, + { + "type": "stigmata", + "id": "shattered-swords-top" + }, + { + "type": "stigmata", + "id": "shattered-swords-mid" + }, + { + "type": "stigmata", + "id": "shattered-swords-bot" + } + ], + "extra": ["wishing-well"], + "duration": ["2021-12-17", "2021-12-24"], + "guarantees": [ + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "keys-of-oblivion", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "shattered-swords-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "shattered-swords-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "shattered-swords-bot", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "blooded-saints", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "key-of-castigation", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "flint-sanada", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "pledge-of-sakura", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "hler-s-serenity", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "nebulous-duality", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "jin-shengtan-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "jin-shengtan-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "jin-shengtan-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "thales-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "thales-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "thales-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "allan-poe-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "allan-poe-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "allan-poe-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "fu-hua-margrave-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "fu-hua-margrave-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "fu-hua-margrave-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.20-nebulous-duality-focused-supply-b.json b/public/data/supply-events/global-americas/v5.3-21.12.20-nebulous-duality-focused-supply-b.json new file mode 100644 index 00000000..894a3b48 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.20-nebulous-duality-focused-supply-b.json @@ -0,0 +1,269 @@ +{ + "version": 5.3, + "verified": true, + "track": 5, + "name": "Nebulous Duality Focused Supply B", + "type": "focused-supply-b", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "nebulous-duality" + }, + { + "type": "stigmata", + "id": "fu-hua-margrave-top" + }, + { + "type": "stigmata", + "id": "fu-hua-margrave-mid" + }, + { + "type": "stigmata", + "id": "fu-hua-margrave-bot" + } + ], + "extra": ["wishing-well"], + "duration": ["2021-12-20", "2021-12-24"], + "guarantees": [ + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "nebulous-duality", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "fu-hua-margrave-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "fu-hua-margrave-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "fu-hua-margrave-bot", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "hyper-railguns", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "mjolnir", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "nue-of-the-shadow", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "5th-sacred-relic", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "blood-embrace", + "amount": 1 + } + ] + }, + { + "rate": 413, + "items": [ + { + "type": "weapon", + "id": "aphrodite", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "isaac-newton-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "isaac-newton-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "isaac-newton-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "gustav-klimt-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "gustav-klimt-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "gustav-klimt-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "columbus-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "columbus-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "columbus-bot", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dante-top", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dante-mid", + "amount": 1 + } + ] + }, + { + "rate": 310, + "items": [ + { + "type": "stigmata", + "id": "dante-bot", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.24-expa-select-supply-round-1.json b/public/data/supply-events/global-americas/v5.3-21.12.24-expa-select-supply-round-1.json new file mode 100644 index 00000000..0c940c9d --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.24-expa-select-supply-round-1.json @@ -0,0 +1,156 @@ +{ + "version": 5.3, + "verified": true, + "track": 3, + "shortName": "EXPA #1", + "name": "EXPA Select Supply Round 1", + "type": "expa-select", + "token": "expansion-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "hfs" + }, + { + "type": "battlesuit", + "id": "hor" + }, + { + "type": "battlesuit", + "id": "ae" + }, + { + "type": "battlesuit", + "id": "sd" + } + ], + "extra": ["essentines"], + "duration": ["2021-12-24", "2021-12-27"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "battlesuit", + "id": "5star-battlesuit-in-featured", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "battlesuit", + "id": "battlesuit-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1500, + "items": [ + { + "type": "battlesuit", + "id": "hos", + "amount": 1 + } + ] + }, + { + "rate": 2250, + "items": [ + { + "type": "battlesuit-soul", + "id": "hos", + "amount": [7, 9] + } + ] + }, + { + "rate": 4500, + "items": [ + { + "type": "battlesuit", + "id": "sd", + "amount": 1 + } + ] + }, + { + "rate": 15000, + "items": [ + { + "type": "battlesuit-soul", + "id": "sd", + "amount": [4, 6] + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit", + "id": "dp", + "amount": 1 + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit-fragment", + "id": "dp", + "amount": [4, 6] + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit", + "id": "ns", + "amount": 1 + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit-soul", + "id": "ns", + "amount": [5, 8] + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit", + "id": "vg", + "amount": 1 + } + ] + }, + { + "rate": 3000, + "items": [ + { + "type": "battlesuit-fragment", + "id": "vg", + "amount": [4, 6] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.24-foca-select-supply-round-1.json b/public/data/supply-events/global-americas/v5.3-21.12.24-foca-select-supply-round-1.json new file mode 100644 index 00000000..01ca1a04 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.24-foca-select-supply-round-1.json @@ -0,0 +1,174 @@ +{ + "version": 5.3, + "verified": true, + "track": 4, + "shortName": "FOCA #1", + "name": "FOCA Select Supply Round 1", + "type": "foca-select", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "key-of-radiance" + }, + { + "type": "stigmata", + "id": "murata-himeko-top" + }, + { + "type": "stigmata", + "id": "murata-himeko-mid" + }, + { + "type": "stigmata", + "id": "murata-himeko-bot" + }, + { + "type": "weapon", + "id": "key-of-reason" + }, + { + "type": "stigmata", + "id": "welt-yang-top" + }, + { + "type": "stigmata", + "id": "welt-yang-mid" + }, + { + "type": "stigmata", + "id": "welt-yang-bot" + }, + { + "type": "weapon", + "id": "nebulous-duality" + }, + { + "type": "stigmata", + "id": "fu-hua-margrave-top" + }, + { + "type": "stigmata", + "id": "fu-hua-margrave-mid" + }, + { + "type": "stigmata", + "id": "fu-hua-margrave-bot" + }, + { + "type": "weapon", + "id": "blood-dance" + }, + { + "type": "stigmata", + "id": "avogadro-top" + }, + { + "type": "stigmata", + "id": "avogadro-mid" + }, + { + "type": "stigmata", + "id": "avogadro-bot" + }, + { + "type": "weapon", + "id": "zither-s-lament" + }, + { + "type": "stigmata", + "id": "shuijing-top" + }, + { + "type": "stigmata", + "id": "shuijing-mid" + }, + { + "type": "stigmata", + "id": "shuijing-bot" + } + ], + "extra": [], + "duration": ["2021-12-24", "2021-12-27"], + "guarantees": [ + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "stigmata", + "id": "4star-stigmata-in-drops", + "amount": 1 + }, + { + "type": "weapon", + "id": "4star-weapon-in-drops", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 2479, + "items": [ + { + "type": "weapon", + "id": "selected-weapon", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "selected-stigmata-top", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "selected-stigmata-mid", + "amount": 1 + } + ] + }, + { + "rate": 1240, + "items": [ + { + "type": "stigmata", + "id": "selected-stigmata-bot", + "amount": 1 + } + ] + }, + { + "rate": 2480, + "items": [ + { + "type": "weapon", + "id": "other-4star-weapon-in-featured", + "amount": 1 + } + ] + }, + { + "rate": 3720, + "items": [ + { + "type": "stigmata", + "id": "other-4star-stigmata-in-featured", + "amount": 1 + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.24-sa-battlesuit-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.24-sa-battlesuit-supply.json new file mode 100644 index 00000000..b1be862b --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.24-sa-battlesuit-supply.json @@ -0,0 +1,105 @@ +{ + "version": 5.3, + "verified": true, + "track": 7, + "shortName": "Starlit Astrologos", + "name": "Starlit Astrologos Supply", + "type": "sp-battlesuit", + "token": "sp-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "sa" + } + ], + "extra": [], + "duration": ["2021-12-24", "2022-01-07"], + "guarantees": [ + { + "count": 25, + "recurring": false, + "rewards": [ + { + "type": "battlesuit", + "id": "sa", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "battlesuit", + "id": "random-a-rank", + "amount": 1 + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 7677, + "items": [ + { + "type": "battlesuit", + "id": "sa", + "amount": 1 + } + ] + }, + { + "rate": 14108, + "items": [ + { + "type": "battlesuit-fragment", + "id": "sa", + "amount": [5, 8] + } + ] + }, + { + "rate": 7677, + "items": [ + { "type": "battlesuit", "id": "random-a-rank", "amount": 1 }, + { + "type": "battlesuit-fragment", + "id": "sa", + "amount": 5 + } + ] + }, + { + "rate": 4703, + "items": [ + { + "type": "battlesuit-fragment", + "id": "random-a-rank", + "amount": [4, 6] + }, + { + "type": "battlesuit-fragment", + "id": "sa", + "amount": [2, 3] + } + ] + }, + { + "rate": 4703, + "items": [ + { + "type": "battlesuit-soul", + "id": "random-a-rank", + "amount": [5, 8] + }, + { + "type": "battlesuit-fragment", + "id": "sa", + "amount": [2, 3] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.24-sr-elf-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.24-sr-elf-supply.json new file mode 100644 index 00000000..07040c06 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.24-sr-elf-supply.json @@ -0,0 +1,69 @@ +{ + "version": 5.3, + "verified": false, + "track": 6, + "shortName": "Sirin", + "name": "Sirin Elf Supply", + "type": "elf-supply", + "token": "elf-supply-card", + "featured": [ + { + "type": "elf", + "id": "sr" + } + ], + "extra": [], + "duration": ["2021-12-24", "2021-12-27"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "sr", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "sr", + "amount": 1 + }, + { + "type": "elf-part", + "id": "sr", + "amount": [2, 4] + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1510, + "items": [ + { + "type": "elf", + "id": "sr", + "amount": 1 + } + ] + }, + { + "rate": 12230, + "items": [ + { + "type": "elf-part", + "id": "sr", + "amount": [2, 4] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.27-bl-elf-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.27-bl-elf-supply.json new file mode 100644 index 00000000..ca809290 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.27-bl-elf-supply.json @@ -0,0 +1,69 @@ +{ + "version": 5.3, + "verified": false, + "track": 6, + "shortName": "Bella", + "name": "Bella Elf Supply", + "type": "elf-supply", + "token": "elf-supply-card", + "featured": [ + { + "type": "elf", + "id": "bl" + } + ], + "extra": [], + "duration": ["2021-12-27", "2021-12-29"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "bl", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "bl", + "amount": 1 + }, + { + "type": "elf-part", + "id": "bl", + "amount": [2, 4] + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1510, + "items": [ + { + "type": "elf", + "id": "bl", + "amount": 1 + } + ] + }, + { + "rate": 12230, + "items": [ + { + "type": "elf-part", + "id": "bl", + "amount": [2, 4] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.27-expa-select-supply-round-2.json b/public/data/supply-events/global-americas/v5.3-21.12.27-expa-select-supply-round-2.json new file mode 100644 index 00000000..93fad46c --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.27-expa-select-supply-round-2.json @@ -0,0 +1,32 @@ +{ + "version": 5.3, + "verified": false, + "track": 3, + "shortName": "EXPA #2", + "name": "EXPA Select Supply Round 2", + "type": "expansion-select-supply", + "token": "expansion-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "hot" + }, + { + "type": "battlesuit", + "id": "nyx" + }, + { + "type": "battlesuit", + "id": "sn" + }, + { + "type": "battlesuit", + "id": "bb" + } + ], + "extra": [], + "duration": ["2021-12-27", "2021-12-29"], + "guarantees": [], + "mileages": [], + "drops": [] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.27-foca-select-supply-round-2.json b/public/data/supply-events/global-americas/v5.3-21.12.27-foca-select-supply-round-2.json new file mode 100644 index 00000000..129c8aa3 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.27-foca-select-supply-round-2.json @@ -0,0 +1,96 @@ +{ + "version": 5.3, + "verified": false, + "track": 4, + "shortName": "FOCA #2", + "name": "FOCA Select Supply Round 2", + "type": "foca-select", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "key-of-castigation" + }, + { + "type": "stigmata", + "id": "benares-awakening-top" + }, + { + "type": "stigmata", + "id": "benares-awakening-mid" + }, + { + "type": "stigmata", + "id": "benares-awakening-bot" + }, + { + "type": "weapon", + "id": "sanguine-gaze" + }, + { + "type": "stigmata", + "id": "verne-top" + }, + { + "type": "stigmata", + "id": "verne-mid" + }, + { + "type": "stigmata", + "id": "verne-bot" + }, + { + "type": "weapon", + "id": "path-to-acheron" + }, + { + "type": "stigmata", + "id": "allan-poe-top" + }, + { + "type": "stigmata", + "id": "allan-poe-mid" + }, + { + "type": "stigmata", + "id": "allan-poe-bot" + }, + { + "type": "weapon", + "id": "dark-star" + }, + { + "type": "stigmata", + "id": "holmes-top" + }, + { + "type": "stigmata", + "id": "holmes-mid" + }, + { + "type": "stigmata", + "id": "holmes-bot" + }, + { + "type": "weapon", + "id": "nue-of-the-shadow" + }, + { + "type": "stigmata", + "id": "columbus-top" + }, + { + "type": "stigmata", + "id": "columbus-mid" + }, + { + "type": "stigmata", + "id": "columbus-bot" + } + ], + "extra": [], + "duration": ["2021-12-27", "2021-12-29"], + "guarantees": [], + "mileages": [], + "drops": [] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.29-expa-select-supply-round-3.json b/public/data/supply-events/global-americas/v5.3-21.12.29-expa-select-supply-round-3.json new file mode 100644 index 00000000..859e7ed6 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.29-expa-select-supply-round-3.json @@ -0,0 +1,32 @@ +{ + "version": 5.3, + "verified": false, + "track": 3, + "shortName": "EXPA #3", + "name": "EXPA Select Supply Round 3", + "type": "expansion-select-supply", + "token": "expansion-supply-card", + "featured": [ + { + "type": "battlesuit", + "id": "hos" + }, + { + "type": "battlesuit", + "id": "da" + }, + { + "type": "battlesuit", + "id": "fr" + }, + { + "type": "battlesuit", + "id": "sp" + } + ], + "extra": [], + "duration": ["2021-12-29", "2021-12-31"], + "guarantees": [], + "mileages": [], + "drops": [] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.29-foca-select-supply-round-3.json b/public/data/supply-events/global-americas/v5.3-21.12.29-foca-select-supply-round-3.json new file mode 100644 index 00000000..b4d69f95 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.29-foca-select-supply-round-3.json @@ -0,0 +1,96 @@ +{ + "version": 5.3, + "verified": false, + "track": 4, + "shortName": "FOCA #3", + "name": "FOCA Select Supply Round 3", + "type": "foca-select", + "token": "focused-supply-card", + "featured": [ + { + "type": "weapon", + "id": "keys-of-oblivion" + }, + { + "type": "stigmata", + "id": "shattered-swords-top" + }, + { + "type": "stigmata", + "id": "shattered-swords-mid" + }, + { + "type": "stigmata", + "id": "shattered-swords-bot" + }, + { + "type": "weapon", + "id": "starlance-prime" + }, + { + "type": "stigmata", + "id": "shakespeare-adrift-top" + }, + { + "type": "stigmata", + "id": "shakespeare-adrift-mid" + }, + { + "type": "stigmata", + "id": "shakespeare-adrift-bot" + }, + { + "type": "weapon", + "id": "iris-of-the-dreams" + }, + { + "type": "stigmata", + "id": "irene-adler-top" + }, + { + "type": "stigmata", + "id": "irene-adler-mid" + }, + { + "type": "stigmata", + "id": "irene-adler-bot" + }, + { + "type": "weapon", + "id": "skadi-ondurgud" + }, + { + "type": "stigmata", + "id": "ana-schariac-top" + }, + { + "type": "stigmata", + "id": "ana-schariac-mid" + }, + { + "type": "stigmata", + "id": "ana-schariac-bot" + }, + { + "type": "weapon", + "id": "sleeping-beauty" + }, + { + "type": "stigmata", + "id": "dickens-top" + }, + { + "type": "stigmata", + "id": "dickens-mid" + }, + { + "type": "stigmata", + "id": "dickens-bot" + } + ], + "extra": [], + "duration": ["2021-12-29", "2021-12-31"], + "guarantees": [], + "mileages": [], + "drops": [] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.29-tz-elf-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.29-tz-elf-supply.json new file mode 100644 index 00000000..052b0863 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.29-tz-elf-supply.json @@ -0,0 +1,69 @@ +{ + "version": 5.3, + "verified": false, + "track": 6, + "shortName": "Tesla ZERO", + "name": "Tesla ZERO Elf Supply", + "type": "elf-supply", + "token": "elf-supply-card", + "featured": [ + { + "type": "elf", + "id": "tz" + } + ], + "extra": [], + "duration": ["2021-12-29", "2021-12-31"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "tz", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "tz", + "amount": 1 + }, + { + "type": "elf-part", + "id": "tz", + "amount": [2, 4] + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1510, + "items": [ + { + "type": "elf", + "id": "tz", + "amount": 1 + } + ] + }, + { + "rate": 12230, + "items": [ + { + "type": "elf-part", + "id": "tz", + "amount": [2, 4] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-21.12.31-se-elf-supply.json b/public/data/supply-events/global-americas/v5.3-21.12.31-se-elf-supply.json new file mode 100644 index 00000000..69817626 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-21.12.31-se-elf-supply.json @@ -0,0 +1,69 @@ +{ + "version": 5.3, + "verified": false, + "track": 6, + "shortName": "Selune's Elegy", + "name": "Selune's Elegy Elf Supply", + "type": "elf-supply", + "token": "elf-supply-card", + "featured": [ + { + "type": "elf", + "id": "se" + } + ], + "extra": [], + "duration": ["2021-12-31", "2022-01-03"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "se", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "se", + "amount": 1 + }, + { + "type": "elf-part", + "id": "se", + "amount": [2, 4] + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1510, + "items": [ + { + "type": "elf", + "id": "se", + "amount": 1 + } + ] + }, + { + "rate": 12230, + "items": [ + { + "type": "elf-part", + "id": "se", + "amount": [2, 4] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-22.01.03-we-elf-supply.json b/public/data/supply-events/global-americas/v5.3-22.01.03-we-elf-supply.json new file mode 100644 index 00000000..eb851af2 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-22.01.03-we-elf-supply.json @@ -0,0 +1,69 @@ +{ + "version": 5.3, + "verified": false, + "track": 6, + "shortName": "Water's Edge", + "name": "Water's Edge Elf Supply", + "type": "elf-supply", + "token": "elf-supply-card", + "featured": [ + { + "type": "elf", + "id": "we" + } + ], + "extra": [], + "duration": ["2022-01-03", "2022-01-05"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "we", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "we", + "amount": 1 + }, + { + "type": "elf-part", + "id": "we", + "amount": [2, 4] + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1510, + "items": [ + { + "type": "elf", + "id": "we", + "amount": 1 + } + ] + }, + { + "rate": 12230, + "items": [ + { + "type": "elf-part", + "id": "we", + "amount": [2, 4] + } + ] + } + ] +} diff --git a/public/data/supply-events/global-americas/v5.3-22.01.05-bof-elf-supply.json b/public/data/supply-events/global-americas/v5.3-22.01.05-bof-elf-supply.json new file mode 100644 index 00000000..1bdae726 --- /dev/null +++ b/public/data/supply-events/global-americas/v5.3-22.01.05-bof-elf-supply.json @@ -0,0 +1,69 @@ +{ + "version": 5.3, + "verified": false, + "track": 6, + "shortName": "Book of Fuxi", + "name": "Book of Fuxi Elf Supply", + "type": "elf-supply", + "token": "elf-supply-card", + "featured": [ + { + "type": "elf", + "id": "bof" + } + ], + "extra": [], + "duration": ["2022-01-05", "2021-01-07"], + "guarantees": [ + { + "count": 100, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "bof", + "amount": 1 + } + ] + }, + { + "count": 10, + "recurring": true, + "rewards": [ + { + "type": "elf", + "id": "bof", + "amount": 1 + }, + { + "type": "elf-part", + "id": "bof", + "amount": [2, 4] + } + ] + } + ], + "mileages": [], + "drops": [ + { + "rate": 1510, + "items": [ + { + "type": "elf", + "id": "bof", + "amount": 1 + } + ] + }, + { + "rate": 12230, + "items": [ + { + "type": "elf-part", + "id": "bof", + "amount": [2, 4] + } + ] + } + ] +} diff --git a/src/components/atoms/SquareImageBox.tsx b/src/components/atoms/SquareImageBox.tsx new file mode 100644 index 00000000..61ba328c --- /dev/null +++ b/src/components/atoms/SquareImageBox.tsx @@ -0,0 +1,53 @@ +/** @jsxImportSource theme-ui */ +import { Box } from '@theme-ui/components' +import Image from 'next/image' + +interface SquareImageBoxProps { + size: number | string + src: string + alt?: string + m?: number | string + mt?: number | string + mb?: number | string + ml?: number | string + mr?: number | string + mx?: number | string + my?: number | string +} + +const SquareImageBox = ({ + size, + src, + alt, + m, + mx, + my, + mt, + mb, + ml, + mr, +}: SquareImageBoxProps) => { + return ( + + {alt} + + ) +} + +export default SquareImageBox diff --git a/src/data/honkai3rd/supply-events.ts b/src/data/honkai3rd/supply-events.ts new file mode 100644 index 00000000..81cff7bc --- /dev/null +++ b/src/data/honkai3rd/supply-events.ts @@ -0,0 +1,78 @@ +import { readdirSync, readJsonFileSync } from '../../lib/data' + +export interface SupplyEvent { + id: string + verified: boolean + track: number + name: string + type: string + token: string + featured: { + type: string + id: string + }[] + extra: string[] + version: number + duration: [string, string] + guarantees: { + count: number + recurring: boolean + rewards: { type: string; id: string; amount: number | [number, number] }[] + }[] + mileages: { + count: number + type: string + id: string + amount: number + }[] + drops: { + type: string + id: string + rate: number + amount: number | [number, number] + }[] +} + +const supplyEventFileNameList = readdirSync('supply-events/global-americas') +const supplyEventFileList = supplyEventFileNameList + .map((fileName) => { + const filePathname = 'supply-events/global-americas/' + fileName + const data = readJsonFileSync(filePathname) + + return { ...data, id: fileName.replace(/\.json/, '') } as SupplyEvent + }) + .sort((a, b) => { + return -a.id.localeCompare(b.id) + }) + +const supplyEventMap = supplyEventFileList.reduce((map, stigmata) => { + map.set(stigmata.id, stigmata) + return map +}, new Map()) + +const versionSupplyEventListMap = supplyEventFileList.reduce( + (map, supplyEvent) => { + let supplyEvents = map.get(supplyEvent.version) + if (supplyEvents == null) { + supplyEvents = [] + map.set(supplyEvent.version, supplyEvents) + } + + supplyEvents.push(supplyEvent) + + return map + }, + new Map() +) + +export function listSupplyEvents() { + return supplyEventFileList +} + +export function getSupplyEventById(id: string) { + return supplyEventMap.get(id) +} + +export function getSupplyEventListByVersion(version: number) { + return versionSupplyEventListMap.get(version) || [] +} diff --git a/src/pages/honkai3rd/supply-events/index.tsx b/src/pages/honkai3rd/supply-events/index.tsx new file mode 100644 index 00000000..26ec6ea2 --- /dev/null +++ b/src/pages/honkai3rd/supply-events/index.tsx @@ -0,0 +1,420 @@ +/** @jsxImportSource theme-ui */ +import { Text, Box, Heading, Link, Flex } from '@theme-ui/components' +import NextLink from 'next/link' +import Breadcrumb from '../../../components/organisms/Breadcrumb' +import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator' +import { pick, times } from 'ramda' +import { + listSupplyEvents, + SupplyEvent, +} from '../../../data/honkai3rd/supply-events' +import { getStigmataById, StigmataData } from '../../../data/honkai3rd/stigmata' +import { getWeaponById, WeaponData } from '../../../data/honkai3rd/weapons' +import { + BattlesuitData, + getBattlesuitById, +} from '../../../data/honkai3rd/battlesuits' +import { ElfData, getElfById } from '../../../data/honkai3rd/elfs' +import { + format as formatDate, + differenceInCalendarDays, + differenceInCalendarWeeks, + format, +} from 'date-fns' +import SquareImageBox from '../../../components/atoms/SquareImageBox' +import { useMemo } from 'react' + +type ObjectMap = { [key: string]: T } +type StigmataObjectMap = ObjectMap> +type WeaponObjectMap = ObjectMap> +type BattlesuitObjectMap = ObjectMap> +type ElfObjectMap = ObjectMap> + +interface SupplyEventListPageProps { + supplyEventList: Pick< + SupplyEvent, + 'id' | 'version' | 'name' | 'featured' | 'duration' | 'track' | 'verified' + >[] + stigmataObjectMap: StigmataObjectMap + weaponObjectMap: WeaponObjectMap + battlesuitObjectMap: BattlesuitObjectMap + elfObjectMap: ElfObjectMap +} + +const SupplyEventListPage = ({ + supplyEventList, + battlesuitObjectMap, + weaponObjectMap, + stigmataObjectMap, + elfObjectMap, +}: SupplyEventListPageProps) => { + const startDate = new Date('2021-12-02') + const endDate = new Date('2022-01-13') + const todayDate = new Date(formatDate(new Date(), 'yyyy-MM-dd')) + + const totalDays = differenceInCalendarDays(endDate, startDate) + const totalWeeks = differenceInCalendarWeeks(endDate, startDate) + + const totalRow = useMemo(() => { + return supplyEventList.reduce((max, supplyEvent) => { + return supplyEvent.track > max ? supplyEvent.track : max + }, 1) + }, []) + + return ( + + + + + + + + Supply Events + + + + + {times((index) => { + const weekNumber = index + 1 + return ( + + Week {weekNumber} + + ) + }, totalWeeks)} + + + {times((index) => { + return ( + + ) + }, totalDays)} + + + + Today ({format(todayDate, 'P')}) + + + {supplyEventList + .slice() + .reverse() + .map((supplyEvent) => { + const offset = + differenceInCalendarDays( + new Date(supplyEvent.duration[0]), + startDate + ) * 40 + const length = + differenceInCalendarDays( + new Date(supplyEvent.duration[1]), + new Date(supplyEvent.duration[0]) + ) * 40 + + const featuredIconProps = getIconPropsOfItem( + supplyEvent.featured[0], + { + battlesuitObjectMap, + weaponObjectMap, + stigmataObjectMap, + elfObjectMap, + } + ) + return ( + + {featuredIconProps != null && ( + + )} + + {supplyEvent.name} + {!supplyEvent.verified && ' (❓)'} + + + ) + })} + + + + {supplyEventList.map((supplyEvent) => { + return ( + + + + + + [{supplyEvent.version}] {supplyEvent.name} ( + {supplyEvent.duration.join(' ~ ')}) + + + + + + {supplyEvent.featured.map((item) => { + const props = getIconPropsOfItem(item, { + battlesuitObjectMap, + weaponObjectMap, + stigmataObjectMap, + elfObjectMap, + }) + if (props == null) { + return ( + + {item.type} : {item.id} + + ) + } + return ( + + ) + })} + + + + ) + })} + + + + ) +} + +export default SupplyEventListPage + +export async function getStaticProps() { + const supplyEventList = listSupplyEvents() + + const stigmataObjectMap: { + [key: string]: Pick + } = {} + const weaponObjectMap: { + [key: string]: Pick + } = {} + const battlesuitObjectMap: { + [key: string]: Pick + } = {} + const elfObjectMap: { + [key: string]: Pick + } = {} + + supplyEventList.forEach((supplyEvent) => { + supplyEvent.featured.forEach((item) => { + switch (item.type) { + case 'battlesuit': + const battlesuit = getBattlesuitById(item.id) + if (battlesuit != null) { + battlesuitObjectMap[battlesuit.id] = pick( + ['id', 'name'], + battlesuit + ) + } + break + case 'weapon': + const weapon = getWeaponById(item.id) + if (weapon != null) { + weaponObjectMap[weapon.id] = pick(['id', 'name'], weapon) + } + break + case 'stigmata': + const stigmata = getStigmataById(item.id) + if (stigmata != null) { + stigmataObjectMap[stigmata.id] = pick(['id', 'name'], stigmata) + } + break + case 'elf': + const elf = getElfById(item.id) + if (elf != null) { + elfObjectMap[elf.id] = pick(['id', 'name'], elf) + } + break + } + }) + }) + return { + props: { + supplyEventList: supplyEventList.map((supplyEvent) => { + return pick( + [ + 'id', + 'version', + 'name', + 'featured', + 'duration', + 'track', + 'verified', + ], + supplyEvent + ) + }), + battlesuitObjectMap, + weaponObjectMap, + stigmataObjectMap, + elfObjectMap, + }, + revalidate: true, + } +} + +function getIconPropsOfItem( + item: { type: string; id: string }, + { + battlesuitObjectMap, + weaponObjectMap, + stigmataObjectMap, + elfObjectMap, + }: { + stigmataObjectMap: StigmataObjectMap + weaponObjectMap: WeaponObjectMap + battlesuitObjectMap: BattlesuitObjectMap + elfObjectMap: ElfObjectMap + } +): { src: string; alt: string } | null { + switch (item.type) { + case 'battlesuit': + const battlesuit = battlesuitObjectMap[item.id] + if (battlesuit != null) { + return { + src: `/assets/honkai3rd/battlesuits/portrait-${battlesuit.id}.png`, + alt: battlesuit.name, + } + } + case 'weapon': + const weapon = weaponObjectMap[item.id] + if (weapon != null) { + return { + src: `/assets/honkai3rd/weapons/${weapon.id}.png`, + alt: weapon.name, + } + } + case 'stigmata': + const stigmata = stigmataObjectMap[item.id] + if (stigmata != null) { + return { + src: `/assets/honkai3rd/stigmata/icon-${stigmata.id}.png`, + alt: stigmata.name, + } + } + case 'elf': + const elf = elfObjectMap[item.id] + if (elf != null) { + return { + src: `/assets/honkai3rd/elfs/icon-${elf.id}.png`, + alt: elf.name, + } + } + } + return null +}