8 | ) => {
9 | const setup = state.SelectedPlayerCount.variations[action.payload]
10 |
11 | if (!setup) return state
12 |
13 | const newState = {
14 | ...state,
15 | SelectedSetup: setup,
16 | }
17 |
18 | return newStateWithDBWrite(newState)
19 | }
20 |
--------------------------------------------------------------------------------
/src/Redux/__test__/helpers/createArrayWithDefaultValues.test.ts:
--------------------------------------------------------------------------------
1 | import { createArrayWithDefaultValues } from '../../helpers'
2 |
3 | describe('createArrayWithDefaultValues()', () => {
4 | test.each([
5 | [1, 'noop', ['noop']],
6 | [2, { foo: 'bar' }, [{ foo: 'bar' }, { foo: 'bar' }]],
7 | [3, 'EMPTY', ['EMPTY', 'EMPTY', 'EMPTY']],
8 | ])('createArrayWithDefaultValues(%d, %o)', (size, defaultValue, expected) => {
9 | expect(createArrayWithDefaultValues(size, defaultValue)).toEqual(expected)
10 | })
11 | })
12 |
--------------------------------------------------------------------------------
/src/aer-data/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aer-data",
3 | "version": "3.10.1-fixup",
4 | "description": "Data for aeons-end-randomizer",
5 | "main": "dist/cjs/index.js",
6 | "module": "dist/index.js",
7 | "repository": "https://github.com/on3iro/aer-data",
8 | "author": "Theo Salzmann",
9 | "license": "MIT",
10 | "private": false,
11 | "scripts": {
12 | "tsc": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json"
13 | },
14 | "keywords": [
15 | "aeons-end-ranzomizer",
16 | "aer",
17 | "data"
18 | ],
19 | "devDependencies": {}
20 | }
21 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/aeonsEnd/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const aeonsEndData: IExpansion = {
9 | id: 'AE',
10 | name: 'Aeons End',
11 | wave: 'W1-BA - Aeons End',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/buriedSecrets/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const buriedSecretsData: IExpansion = {
9 | id: 'BS',
10 | name: 'Gefährliches Wissen',
11 | wave: 'W3-E1 - Legacy',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/buriedSecrets/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/buriedSecrets/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/intoTheWild/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const intoTheWildData: IExpansion = {
9 | id: 'IW',
10 | name: 'In die Wildnis',
11 | wave: 'W4 - Ein neues Zeitalter',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/intoTheWild/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'IW',
6 | name: 'Nekroschwarm',
7 | id: 'Necroswarm',
8 | health: 70,
9 | difficulty: 7,
10 | expeditionRating: 4,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/legacy/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const legacyData: IExpansion = {
9 | id: 'Legacy',
10 | name: 'Legacy',
11 | wave: 'W3 - Legacy',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/outerDark/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const outerDarkData: IExpansion = {
9 | id: 'OD',
10 | name: 'Hinter der Finsternis',
11 | wave: 'W2-E1 - Für die Ewigkeit',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/outerDark/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'OD',
6 | name: 'Dreimaltoter Prophet',
7 | id: 'ThriceDeadProphet',
8 | health: 40,
9 | difficulty: 5,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'OD',
15 | name: 'Traum-Händler',
16 | id: 'Wraithmonger',
17 | health: 70,
18 | difficulty: 6,
19 | expeditionRating: 4,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/promos/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/promos/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/shatteredDreams/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const shatteredDreamsData: IExpansion = {
9 | id: 'SD',
10 | name: 'Zerschmetterte Hoffnung',
11 | wave: 'W4 - Ein neues Zeitalter',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/shatteredDreams/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'SD',
6 | name: 'Donnerkreisch',
7 | id: 'TheWailing',
8 | health: 50,
9 | difficulty: 6,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theAncients/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 | import { upgradedBasicNemesisCards } from './upgradedBasicNemesisCards'
8 |
9 | export const theAncientsData: IExpansion = {
10 | id: 'TA',
11 | name: 'Die Zeitlosen',
12 | wave: 'W4 - Ein neues Zeitalter',
13 | type: 'mini',
14 | nemeses,
15 | mages,
16 | cards,
17 | treasures,
18 | upgradedBasicNemesisCards,
19 | }
20 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theAncients/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TA',
6 | name: 'Der Wanderer',
7 | id: 'TheWanderer',
8 | health: 40,
9 | difficulty: 5,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theDepths/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theDepthsData: IExpansion = {
8 | id: 'Depths',
9 | name: 'Aus den Tiefen',
10 | wave: 'W1-E1 - Aeons End',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theDepths/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Depths',
6 | name: 'Horden-Muhme',
7 | id: 'HordeCrone',
8 | health: 60,
9 | difficulty: 6,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theNameless/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theNamelessData: IExpansion = {
8 | id: 'Nameless',
9 | name: 'Das Namenlose',
10 | wave: 'W1-E2 - Aeons End',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theNameless/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Nameless',
6 | name: 'Lord des Verderbens',
7 | id: 'BlightLord',
8 | health: 70,
9 | difficulty: 4,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'Nameless',
15 | name: 'Der Wegbereiter',
16 | id: 'WaywardOne',
17 | health: 60,
18 | difficulty: 7,
19 | expeditionRating: 3,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theVoid/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theVoidData: IExpansion = {
8 | id: 'TV',
9 | name: 'Die Leere',
10 | wave: 'W2-E2 - Für die Ewigkeit',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/theVoid/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TV',
6 | name: 'Ritter des Schreckens',
7 | id: 'KnightOfShackles',
8 | health: 70,
9 | difficulty: 4,
10 | expeditionRating: 1,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'TV',
15 | name: 'Dornen-Maid',
16 | id: 'MaidenOfThorns',
17 | health: 80,
18 | difficulty: 4,
19 | expeditionRating: 3,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/DE/warEternal/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const warEternalData: IExpansion = {
9 | id: 'WE',
10 | name: 'Für die Ewigkeit',
11 | wave: 'W2-BA - Für die Ewigkeit',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/PFPromos/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { cards } from './cards'
4 | import { treasures } from './treasures'
5 | import { upgradedBasicNemesisCards } from './upgradedBasicNemesisCards'
6 |
7 | export const pastAndFuturePromosData: IExpansion = {
8 | id: 'PFPromo',
9 | name: 'Promos for Past and Future',
10 | wave: 'W7 - Past And Future',
11 | type: 'promo',
12 | mages: [],
13 | nemeses: [],
14 | cards,
15 | treasures,
16 | upgradedBasicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/TDPromos/banners.ts:
--------------------------------------------------------------------------------
1 | import { ICard } from '../../../../aer-types/types'
2 |
3 | export const banners: ICard[] = [
4 | {
5 | name: 'Banner of Vitality',
6 | id: 'BannerOfVitality',
7 | type: 'Gem',
8 | cost: 0,
9 | expansion: 'TDPromo',
10 | keywords: [],
11 | effect: `
12 |
13 | Gain 1 Æ .
14 | OR
15 | You may suffer 1 damage. If you do,
16 | shuffle the friend's turn order card in the
17 | discard pile into the turn order deck.
18 |
19 | `,
20 | },
21 | ]
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/TDPromos/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { cards } from './cards'
4 | import { treasures } from './treasures'
5 | import { banners } from './banners'
6 |
7 | export const theDescentPromosData: IExpansion = {
8 | id: 'TDPromo',
9 | name: 'Promos for The Descent',
10 | wave: 'W8 - The Descent',
11 | type: 'promo',
12 | mages: [],
13 | nemeses: [],
14 | cards,
15 | treasures,
16 | banners,
17 | }
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/aeonsEnd/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const aeonsEndData: IExpansion = {
9 | id: 'AE',
10 | name: 'Aeons End',
11 | wave: 'W1 - Aeons End',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/buriedSecrets/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const buriedSecretsData: IExpansion = {
9 | id: 'BS',
10 | name: 'Buried Secrets',
11 | wave: 'W3 - Legacy',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/buriedSecrets/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/buriedSecrets/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/community/cards.ts:
--------------------------------------------------------------------------------
1 | import { ICard } from '../../../../aer-types/types'
2 |
3 | export const cards: ICard[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/community/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const communityData: IExpansion = {
8 | id: 'community',
9 | name: 'Community',
10 | wave: 'Others',
11 | type: 'promo',
12 | mages,
13 | nemeses,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/community/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/evolutions/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const evolutionsData: IExpansion = {
9 | id: 'EVO',
10 | name: 'Evolution',
11 | wave: 'W7 - Past And Future',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/evolutions/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'EVO',
6 | name: 'Clouded Mesmer',
7 | id: 'CloudedMesmer',
8 | health: 60,
9 | difficulty: 7,
10 | expeditionRating: 4,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/intoTheWild/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const intoTheWildData: IExpansion = {
9 | id: 'IW',
10 | name: 'Into The Wild',
11 | wave: 'W4 - The New Age',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/intoTheWild/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'IW',
6 | name: 'Necroswarm',
7 | id: 'Necroswarm',
8 | health: 70,
9 | difficulty: 7,
10 | expeditionRating: 4,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/legacy/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const legacyData: IExpansion = {
9 | id: 'Legacy',
10 | name: 'Legacy',
11 | wave: 'W3 - Legacy',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/origins/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const originsData: IExpansion = {
9 | id: 'ORI',
10 | name: 'Origins',
11 | wave: 'W7 - Past and Future',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/origins/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'ORI',
6 | name: 'The Endless Decay',
7 | id: 'TheEndlessDecay',
8 | health: 70,
9 | difficulty: 5,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/outerDark/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const outerDarkData: IExpansion = {
9 | id: 'OD',
10 | name: 'Outer Dark',
11 | wave: 'W2 - War Eternal',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/outerDark/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'OD',
6 | name: 'Thrice Dead Prophet',
7 | id: 'ThriceDeadProphet',
8 | health: 40,
9 | difficulty: 5,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'OD',
15 | name: 'Wraithmonger',
16 | id: 'Wraithmonger',
17 | health: 70,
18 | difficulty: 6,
19 | expeditionRating: 4,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/pastAndFuture/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const pastAndFutureData: IExpansion = {
9 | id: 'PAF',
10 | name: 'Past And Future',
11 | wave: 'W7 - Past And Future',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/promos/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/promos/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/returnToGravehold/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const returnToGraveholdData: IExpansion = {
9 | id: 'RTG',
10 | name: 'Return To Gravehold',
11 | wave: 'W5 - Outcasts',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/returnToGravehold/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'RTG',
6 | name: 'Burrower',
7 | id: 'Burrower',
8 | health: 80,
9 | difficulty: 8,
10 | expeditionRating: 4,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'RTG',
15 | name: 'Fortress',
16 | id: 'Fortress',
17 | health: 90,
18 | difficulty: 5,
19 | expeditionRating: 2,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/shatteredDreams/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const shatteredDreamsData: IExpansion = {
9 | id: 'SD',
10 | name: 'Shattered Dreams',
11 | wave: 'W4 - The New Age',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/shatteredDreams/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'SD',
6 | name: 'The Wailing',
7 | id: 'TheWailing',
8 | health: 50,
9 | difficulty: 6,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/southernVillage/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const southernVillageData: IExpansion = {
9 | id: 'SV',
10 | name: 'Southern Village',
11 | wave: 'W5 - Outcasts',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/southernVillage/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'SV',
6 | name: 'The Burning Kor',
7 | id: 'TheBurningKor',
8 | health: 60,
9 | difficulty: 7,
10 | expeditionRating: 4,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/talesOfOldGravehold/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const talesOfOldGraveholdData: IExpansion = {
8 | id: 'TOG',
9 | name: 'Tales of Old Gravehold',
10 | wave: 'W8 - The Descent',
11 | type: 'mini',
12 | mages,
13 | cards,
14 | nemeses,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/talesOfOldGravehold/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theAbyss/banners.ts:
--------------------------------------------------------------------------------
1 | import { ICard } from '../../../../aer-types/types'
2 |
3 | export const banners: ICard[] = [
4 | {
5 | name: 'Banner of Transference',
6 | id: 'BannerOfTransference',
7 | type: 'Gem',
8 | cost: 0,
9 | expansion: 'AB',
10 | keywords: [],
11 | effect: `
12 |
13 | Gain 1 Æ .
14 | OR
15 | You may suffer 1 damage. If you
16 | do, the friend gains 2 charges.
17 |
18 | `,
19 | },
20 | ]
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theAbyss/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 | import { friends } from './friends'
8 | import { foes } from './foes'
9 | import { banners } from './banners'
10 |
11 | export const theAbyssData: IExpansion = {
12 | id: 'AB',
13 | name: 'The Abyss',
14 | wave: 'W8 - The Descent',
15 | type: 'mini',
16 | nemeses,
17 | mages,
18 | cards,
19 | treasures,
20 | friends,
21 | foes,
22 | banners,
23 | }
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theAbyss/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'AB',
6 | name: 'The Reliquary',
7 | id: 'TheReliquary',
8 | health: 70,
9 | difficulty: 6,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theAncients/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 | import { upgradedBasicNemesisCards } from './upgradedBasicNemesisCards'
8 |
9 | export const theAncientsData: IExpansion = {
10 | id: 'TA',
11 | name: 'The Ancients',
12 | wave: 'W4 - The New Age',
13 | type: 'mini',
14 | nemeses,
15 | mages,
16 | cards,
17 | treasures,
18 | upgradedBasicNemesisCards,
19 | }
20 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theAncients/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TA',
6 | name: 'The Wanderer',
7 | id: 'TheWanderer',
8 | health: 40,
9 | difficulty: 5,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theCaverns/banners.ts:
--------------------------------------------------------------------------------
1 | import { ICard } from '../../../../aer-types/types'
2 |
3 | export const banners: ICard[] = [
4 | {
5 | name: 'Banner of Overcharge',
6 | id: 'BannerOfOvercharge',
7 | type: 'Spell',
8 | cost: 0,
9 | expansion: 'TC',
10 | keywords: [],
11 | effect: `
12 |
13 | While prepped, once per turn,
14 | you may discard a card in hand. If
15 | you do, the friend gains 1 charge.
16 | Cast: Deal 1 damage.
17 |
18 | `,
19 | },
20 | ]
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theCaverns/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TC',
6 | name: 'Absorbing Wraith',
7 | id: 'AbsorbingWraith',
8 | health: 85,
9 | difficulty: 8,
10 | expeditionRating: 4,
11 | additionalInfo: '',
12 | },
13 | ]
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theDepths/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theDepthsData: IExpansion = {
8 | id: 'Depths',
9 | name: 'The Depths',
10 | wave: 'W1 - Aeons End',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theDepths/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Depths',
6 | name: 'Horde-Crone',
7 | id: 'HordeCrone',
8 | health: 60,
9 | difficulty: 6,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theNameless/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theNamelessData: IExpansion = {
8 | id: 'Nameless',
9 | name: 'The Nameless',
10 | wave: 'W1 - Aeons End',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theNameless/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Nameless',
6 | name: 'Blight Lord',
7 | id: 'BlightLord',
8 | health: 70,
9 | difficulty: 4,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'Nameless',
15 | name: 'Wayward One',
16 | id: 'WaywardOne',
17 | health: 60,
18 | difficulty: 7,
19 | expeditionRating: 3,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theRuins/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theRuinsData: IExpansion = {
8 | id: 'RU',
9 | name: 'The Ruins',
10 | wave: 'W6 - The Legacy of Gravehold',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theRuins/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theRuins/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theVoid/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theVoidData: IExpansion = {
8 | id: 'TV',
9 | name: 'The Void',
10 | wave: 'W2 - War Eternal',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/theVoid/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TV',
6 | name: 'Knight Of Shackles',
7 | id: 'KnightOfShackles',
8 | health: 70,
9 | difficulty: 4,
10 | expeditionRating: 1,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'TV',
15 | name: 'Maiden Of Thorns',
16 | id: 'MaidenOfThorns',
17 | health: 80,
18 | difficulty: 4,
19 | expeditionRating: 3,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/ENG/warEternal/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const warEternalData: IExpansion = {
9 | id: 'WE',
10 | name: 'War Eternal',
11 | wave: 'W2 - War Eternal',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/aeonsEnd/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const aeData: IExpansion = {
9 | id: 'AE',
10 | name: "Aeon's End",
11 | wave: "W1 - Aeon's End",
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/buriedSecrets/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const buriedSecretsData: IExpansion = {
9 | id: 'BS',
10 | name: 'Secrets Enfouis',
11 | wave: 'W3 - Legacy',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/buriedSecrets/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/buriedSecrets/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/legacy/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const legacyData: IExpansion = {
9 | id: 'Legacy',
10 | name: 'Legacy',
11 | wave: 'W3 - Legacy',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/outerDark/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const outerDarkData: IExpansion = {
9 | id: 'OD',
10 | name: 'Ténèbres d\'Ailleurs',
11 | wave: 'W2 - Guerre éternelle',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/outerDark/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'OD',
6 | name: 'Prophète aux Trois Trépas',
7 | id: 'ThriceDeadProphet',
8 | health: 40,
9 | difficulty: 5,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'OD',
15 | name: 'Maître des Spectres',
16 | id: 'Wraithmonger',
17 | health: 70,
18 | difficulty: 6,
19 | expeditionRating: 4,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/shatteredDreams/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const shatteredDreamsData: IExpansion = {
9 | id: 'SD',
10 | name: 'Rêves brisés',
11 | wave: 'W4 - Une Ére Nouvelle',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/shatteredDreams/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'SD',
6 | name: 'La Lamentation',
7 | id: 'TheWailing',
8 | health: 50,
9 | difficulty: 6,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theDepths/basicNemesisCards.ts:
--------------------------------------------------------------------------------
1 | import { BasicNemesisCard } from '../../../../aer-types/types'
2 |
3 | export const basicNemesisCards: BasicNemesisCard[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theDepths/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const depthsData: IExpansion = {
9 | id: 'Depths',
10 | name: 'Les Profondeurs',
11 | wave: "W1 - Aeon's End",
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theDepths/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Depths',
6 | name: 'La Mégère',
7 | id: 'HordeCrone',
8 | health: 60,
9 | difficulty: 6,
10 | additionalInfo: '',
11 | expeditionRating: 2,
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theNameless/basicNemesisCards.ts:
--------------------------------------------------------------------------------
1 | import { BasicNemesisCard } from '../../../../aer-types/types'
2 |
3 | export const basicNemesisCards: BasicNemesisCard[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theNameless/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const namelessData: IExpansion = {
9 | id: 'Nameless',
10 | name: 'Les Sans-Noms',
11 | wave: "W1 - Aeon's End",
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theNameless/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Nameless',
6 | name: 'Seigneur de la Désolation',
7 | id: 'BlightLord',
8 | health: 70,
9 | difficulty: 4,
10 | additionalInfo: '',
11 | expeditionRating: 2,
12 | },
13 | {
14 | expansion: 'Nameless',
15 | name: "L'Egaré",
16 | id: 'WaywardOne',
17 | health: 60,
18 | difficulty: 7,
19 | additionalInfo: '',
20 | expeditionRating: 3,
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theVoid/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theVoidData: IExpansion = {
8 | id: 'TV',
9 | name: 'Le Vide',
10 | wave: 'W2 - Guerre éternelle',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/theVoid/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TV',
6 | name: 'Chevalier des Entraves',
7 | id: 'KnightOfShackles',
8 | health: 70,
9 | difficulty: 4,
10 | expeditionRating: 1,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'TV',
15 | name: 'Demoiselle des Épines',
16 | id: 'MaidenOfThorns',
17 | health: 80,
18 | difficulty: 4,
19 | expeditionRating: 3,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/warEternal/basicNemesisCards.ts:
--------------------------------------------------------------------------------
1 | import { BasicNemesisCard } from '../../../../aer-types/types'
2 |
3 | export const basicNemesisCards: BasicNemesisCard[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/warEternal/cards.ts:
--------------------------------------------------------------------------------
1 | import { ICard } from '../../../../aer-types/types'
2 |
3 | export const cards: ICard[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/warEternal/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const weData: IExpansion = {
9 | id: 'WE',
10 | name: 'Guerre éternelle',
11 | wave: 'W2 - Guerre éternelle',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/warEternal/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/FR/warEternal/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/aeonsEnd/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const aeonsEndData: IExpansion = {
9 | id: 'AE',
10 | name: 'Aeons End',
11 | wave: 'W1 - Aeons End',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/buriedSecrets/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const buriedSecretsData: IExpansion = {
9 | id: 'BS',
10 | name: 'Pogrzebane Sekrety',
11 | wave: 'W3 - Legacy',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/buriedSecrets/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/buriedSecrets/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/intoTheWild/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const intoTheWildData: IExpansion = {
9 | id: 'IW',
10 | name: 'Tajemnica Dziczy',
11 | wave: 'W4 - Nowy Początek',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/intoTheWild/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'IW',
6 | name: 'Zgorzelec',
7 | id: 'Necroswarm',
8 | health: 70,
9 | difficulty: 7,
10 | expeditionRating: 4,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/legacy/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const legacyData: IExpansion = {
9 | id: 'Legacy',
10 | name: 'Legacy',
11 | wave: 'W3 - Legacy',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/outerDark/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const outerDarkData: IExpansion = {
9 | id: 'OD',
10 | name: 'Niezbadany Mrok',
11 | wave: 'W2 - Wieczna Wojna',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/outerDark/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'OD',
6 | name: 'Trzykroć-Martwy Prorok',
7 | id: 'ThriceDeadProphet',
8 | health: 40,
9 | difficulty: 5,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'OD',
15 | name: 'Snopijca',
16 | id: 'Wraithmonger',
17 | health: 70,
18 | difficulty: 6,
19 | expeditionRating: 4,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/promos/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 | import { basicNemesisCards } from './basicNemesisCards'
8 |
9 | export const promosData: IExpansion = {
10 | id: 'promos',
11 | name: 'Promos',
12 | wave: 'Dalej',
13 | type: 'promo',
14 | mages,
15 | nemeses,
16 | cards,
17 | treasures,
18 | basicNemesisCards,
19 | }
20 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/promos/mages.ts:
--------------------------------------------------------------------------------
1 | import { Mage } from '../../../../aer-types/types'
2 |
3 | export const mages: Mage[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/promos/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = []
4 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/shatteredDreams/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 |
8 | export const shatteredDreamsData: IExpansion = {
9 | id: 'SD',
10 | name: 'Strzaskane Marzenia',
11 | wave: 'W4 - Nowy Początek',
12 | type: 'mini',
13 | nemeses,
14 | mages,
15 | cards,
16 | treasures,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/shatteredDreams/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'SD',
6 | name: 'Onyksowy Wrzaskacz',
7 | id: 'TheWailing',
8 | health: 50,
9 | difficulty: 6,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theAncients/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { treasures } from './treasures'
7 | import { upgradedBasicNemesisCards } from './upgradedBasicNemesisCards'
8 |
9 | export const theAncientsData: IExpansion = {
10 | id: 'TA',
11 | name: 'Starożytni',
12 | wave: 'W4 - Nowy Początek',
13 | type: 'mini',
14 | nemeses,
15 | mages,
16 | cards,
17 | treasures,
18 | upgradedBasicNemesisCards,
19 | }
20 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theAncients/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TA',
6 | name: 'Tułacz',
7 | id: 'TheWanderer',
8 | health: 40,
9 | difficulty: 5,
10 | expeditionRating: 3,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theDepths/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theDepthsData: IExpansion = {
8 | id: 'Depths',
9 | name: 'Czeluście',
10 | wave: 'W1 - Aeons End',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theDepths/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Depths',
6 | name: 'Wiedźma Hordy',
7 | id: 'HordeCrone',
8 | health: 60,
9 | difficulty: 6,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | ]
14 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theNameless/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theNamelessData: IExpansion = {
8 | id: 'Nameless',
9 | name: 'Bezimienni',
10 | wave: 'W1 - Aeons End',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theNameless/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'Nameless',
6 | name: 'Władca Plagi',
7 | id: 'BlightLord',
8 | health: 70,
9 | difficulty: 4,
10 | expeditionRating: 2,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'Nameless',
15 | name: 'Marnotrawny',
16 | id: 'WaywardOne',
17 | health: 60,
18 | difficulty: 7,
19 | expeditionRating: 3,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theVoid/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 |
7 | export const theVoidData: IExpansion = {
8 | id: 'TV',
9 | name: 'Otchłań',
10 | wave: 'W2 - Wieczna Wojna',
11 | type: 'mini',
12 | nemeses,
13 | mages,
14 | cards,
15 | }
16 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/theVoid/nemeses.ts:
--------------------------------------------------------------------------------
1 | import { Nemesis } from '../../../../aer-types/types'
2 |
3 | export const nemeses: Nemesis[] = [
4 | {
5 | expansion: 'TV',
6 | name: 'Rycerz Kajdan',
7 | id: 'KnightOfShackles',
8 | health: 70,
9 | difficulty: 4,
10 | expeditionRating: 1,
11 | additionalInfo: '',
12 | },
13 | {
14 | expansion: 'TV',
15 | name: 'Panna Cierni',
16 | id: 'MaidenOfThorns',
17 | health: 80,
18 | difficulty: 4,
19 | expeditionRating: 3,
20 | additionalInfo: '',
21 | },
22 | ]
23 |
--------------------------------------------------------------------------------
/src/aer-data/src/PL/warEternal/index.ts:
--------------------------------------------------------------------------------
1 | import { IExpansion } from '../../../../aer-types/types'
2 |
3 | import { nemeses } from './nemeses'
4 | import { mages } from './mages'
5 | import { cards } from './cards'
6 | import { basicNemesisCards } from './basicNemesisCards'
7 |
8 | export const warEternalData: IExpansion = {
9 | id: 'WE',
10 | name: 'Wieczna Wojna',
11 | wave: 'W2 - Wieczna Wojna',
12 | type: 'standalone',
13 | nemeses,
14 | mages,
15 | cards,
16 | basicNemesisCards,
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-data/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "CommonJS",
5 | "outDir": "./dist/cjs"
6 | },
7 | "references": [{ "path": "../aer-types/" }]
8 | }
9 |
--------------------------------------------------------------------------------
/src/aer-data/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/aer-types/README.md:
--------------------------------------------------------------------------------
1 | # aer-types
2 |
3 | Type definitions for https://github.com/on3iro/aeons-end-randomizer
4 |
5 | ## Installation
6 |
7 | ```bash
8 | yarn add aer-types
9 | ```
10 |
--------------------------------------------------------------------------------
/src/aer-types/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aer-types",
3 | "version": "3.10.0",
4 | "description": "",
5 | "main": "dist/index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "tsc": "tsc -p tsconfig.standalone.json"
9 | },
10 | "keywords": [
11 | "aeons-end-ranzomizer",
12 | "aer",
13 | "types"
14 | ],
15 | "author": "Theo Salzmann",
16 | "license": "MIT"
17 | }
18 |
--------------------------------------------------------------------------------
/src/aer-types/tsconfig.standalone.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "composite": false
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/aer-types/types/settings.ts:
--------------------------------------------------------------------------------
1 | export type ToggleType = 'select' | 'deselect'
2 |
--------------------------------------------------------------------------------
/src/components/App/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const Wrapper = styled('div')`
4 | height: 100%;
5 | padding-bottom: 72px;
6 | `
7 |
8 | export default Wrapper
9 |
--------------------------------------------------------------------------------
/src/components/atoms/A.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Link } from 'react-router-dom'
3 |
4 | const A = styled(Link)`
5 | text-decoration: none;
6 | `
7 |
8 | export default A
9 |
--------------------------------------------------------------------------------
/src/components/atoms/Button.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components'
3 | import MuiButton from '@material-ui/core/Button'
4 |
5 | const Button = styled(MuiButton)``
6 |
7 | export default React.memo(Button)
8 |
--------------------------------------------------------------------------------
/src/components/atoms/Card.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import MuiCard from '@material-ui/core/Card'
3 |
4 | const Card = styled(MuiCard)`
5 | margin-top: 24px;
6 | `
7 |
8 | export default Card
9 |
--------------------------------------------------------------------------------
/src/components/atoms/H1.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | import Typography from '@material-ui/core/Typography'
4 |
5 | const H1 = styled(Typography)`
6 | font-size: 1.6rem;
7 | `
8 |
9 | export default H1
10 |
--------------------------------------------------------------------------------
/src/components/atoms/H2.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | import Typography from '@material-ui/core/Typography'
4 |
5 | const H2 = styled(Typography)`
6 | font-size: 1.4rem;
7 | `
8 |
9 | export default H2
10 |
--------------------------------------------------------------------------------
/src/components/atoms/Heading.tsx:
--------------------------------------------------------------------------------
1 | import Typography from '@material-ui/core/Typography'
2 | import styled from 'styled-components/macro'
3 |
4 | const Heading = styled(Typography)`
5 | font-size: ${props => props.theme.heading.fontSize};
6 | `
7 |
8 | export default Heading
9 |
--------------------------------------------------------------------------------
/src/components/atoms/IconButton.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import MuiIconButton from '@material-ui/core/IconButton'
3 |
4 | const IconButton = styled(MuiIconButton)``
5 |
6 | export default IconButton
7 |
--------------------------------------------------------------------------------
/src/components/atoms/Keywords.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components'
3 |
4 | type Props = {
5 | inCheckboxList?: boolean
6 | }
7 |
8 | // TODO refactor
9 | // we should probably have a keywords molecule instead which would also take care
10 | // of the rendering of keywords. This component here would then just be its wrapper
11 | // div.
12 | const Keywords = styled(({ inCheckboxList, ...rest }) =>
)<
13 | Props
14 | >`
15 | margin: ${props => (props.inCheckboxList ? '0 -4px 16px 28px' : '16px -4px')};
16 | `
17 |
18 | export default Keywords
19 |
--------------------------------------------------------------------------------
/src/components/atoms/Li.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | import Typography from '@material-ui/core/Typography'
4 |
5 | const Li = styled(Typography)`
6 | font-size: 1rem;
7 | `
8 |
9 | export default Li
10 |
--------------------------------------------------------------------------------
/src/components/atoms/ModalBodyWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | type Props = {
4 | hasFooter?: boolean
5 | }
6 |
7 | const ModalBodyWrapper = styled('div')`
8 | margin: auto;
9 | height: ${props => (props.hasFooter ? 'calc(100% - 64px)' : '100%')};
10 | width: 100%;
11 | padding: 24px;
12 | position: relative;
13 | overflow-y: auto;
14 |
15 | > *:first-child {
16 | margin-top: 0;
17 | }
18 | `
19 |
20 | export default ModalBodyWrapper
21 |
--------------------------------------------------------------------------------
/src/components/atoms/ModalFooterWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const ModalFooterWrapper = styled('div')`
4 | margin: auto;
5 | height: 64px;
6 | width: 100%;
7 | padding: 0 24px;
8 | position: relative;
9 | display: flex;
10 | justify-content: flex-end;
11 | align-items: center;
12 | border-top: 1px solid rgba(0, 0, 0, 0.1);
13 | margin-top: -1px;
14 |
15 | button {
16 | width: 100%;
17 | }
18 |
19 | button + button {
20 | margin-left: 16px;
21 | }
22 | `
23 |
24 | export default ModalFooterWrapper
25 |
--------------------------------------------------------------------------------
/src/components/atoms/P.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | import Typography from '@material-ui/core/Typography'
4 |
5 | const P = styled(Typography)`
6 | margin: 10px 0;
7 | font-size: 1rem;
8 | `
9 |
10 | export default P
11 |
--------------------------------------------------------------------------------
/src/components/atoms/SectionHeadline.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components'
3 | import H2 from './H2'
4 |
5 | type Props = {
6 | themeColor: string
7 | }
8 |
9 | const SectionHeadline = styled(({ themeColor, ...rest }) => )<
10 | Props
11 | >`
12 | color: ${props => props.themeColor};
13 | font-weight: 300;
14 | margin: 16px 0 8px;
15 |
16 | + div {
17 | margin-top: 0;
18 | }
19 | `
20 |
21 | export default SectionHeadline
22 |
--------------------------------------------------------------------------------
/src/components/atoms/SelectField.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components'
3 | import MuiSelect from '@material-ui/core/Select'
4 | import MuiFormControl from '@material-ui/core/FormControl'
5 |
6 | export const Wrapper = styled(MuiFormControl)`
7 | width: 50%;
8 | `
9 |
10 | export const Select = styled(MuiSelect)`
11 | margin: 0 8px 16px;
12 | `
13 |
14 | const SelectField = (props: any) => (
15 |
16 |
17 |
18 | )
19 |
20 | export default React.memo(SelectField)
21 |
--------------------------------------------------------------------------------
/src/components/atoms/ShuffleButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components/macro'
3 | import Fab from '@material-ui/core/Fab'
4 |
5 | type Props = {
6 | withBottomNav?: boolean
7 | }
8 |
9 | const ShuffleButton = styled(({ withBottomNav, ...rest }) => )<
10 | Props
11 | >`
12 | position: fixed;
13 | bottom: ${props => (props.withBottomNav ? '80px' : '24px')};
14 | right: 24px;
15 | z-index: 10;
16 | `
17 |
18 | ShuffleButton.displayName = 'ShuffleButton'
19 |
20 | export default ShuffleButton
21 |
--------------------------------------------------------------------------------
/src/components/molecules/AdditionalInfo.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const AdditionalInfo = styled('span')`
4 | color: #888;
5 | `
6 |
7 | export default AdditionalInfo
8 |
--------------------------------------------------------------------------------
/src/components/molecules/BackLink/Link.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import A from '../../atoms/A'
3 |
4 | const Link = styled(A)`
5 | display: flex;
6 | align-items: center;
7 | color: ${props => props.theme.colors.primary.main};
8 | font-size: 0.875rem;
9 | font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;
10 | font-weight: 400;
11 | line-height: 1.5;
12 | letter-spacing: 0.01071em;
13 | margin-left: -6px;
14 |
15 | &:hover {
16 | color: ${props => props.theme.colors.primary.light};
17 | }
18 | `
19 |
20 | export default Link
21 |
--------------------------------------------------------------------------------
/src/components/molecules/BackLink/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import Link from './Link'
4 |
5 | import ChevronLeftIcon from '@material-ui/icons/ChevronLeft'
6 |
7 | type Props = {
8 | to: string
9 | label: string
10 | }
11 |
12 | const BackLink = ({ to, label, ...rest }: Props) => (
13 |
14 | {label}
15 |
16 | )
17 |
18 | export default React.memo(BackLink)
19 |
--------------------------------------------------------------------------------
/src/components/molecules/BottomNavigation/Link.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import StyledLink from './StyledLink'
4 |
5 | type Props = {
6 | to: string
7 | label: string
8 | icon: string
9 | }
10 |
11 | const Link = ({ to, label, icon }: Props) => (
12 | (match ? true : false)}>
13 |
14 | {label}
15 |
16 | )
17 |
18 | export default React.memo(Link)
19 |
--------------------------------------------------------------------------------
/src/components/molecules/BottomNavigation/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import { withTheme } from 'styled-components/macro'
4 |
5 | const Wrapper = styled('div')`
6 | position: fixed;
7 | z-index: 10;
8 | bottom: 0;
9 | left: 0;
10 | padding: 0;
11 | background: ${props => props.theme.colors.white};
12 | width: 100%;
13 | display: flex;
14 | align-items: center;
15 | justify-content: space-around;
16 | height: 56px;
17 | border-top: 2px solid #e6e6e6;
18 | `
19 |
20 | export default withTheme(Wrapper)
21 |
--------------------------------------------------------------------------------
/src/components/molecules/CopyButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import CopyIcon from '@material-ui/icons/FileCopy'
3 |
4 | import IconButton from 'components/atoms/IconButton'
5 |
6 | type Props = {
7 | onClick: (...args: any) => void
8 | className?: string
9 | }
10 |
11 | const CopyButton = ({ onClick, className, ...rest }: Props) => (
12 |
19 |
20 |
21 | )
22 |
23 | export default React.memo(CopyButton)
24 |
--------------------------------------------------------------------------------
/src/components/molecules/DeleteButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import IconButton from 'components/atoms/IconButton'
3 | import DeleteIcon from '@material-ui/icons/Delete'
4 |
5 | type Props = {
6 | onClick: (...args: any) => void
7 | className?: string
8 | }
9 |
10 | const DeleteButton = ({ onClick, className, ...rest }: Props) => (
11 |
18 |
19 |
20 | )
21 |
22 | export default React.memo(DeleteButton)
23 |
--------------------------------------------------------------------------------
/src/components/molecules/EditButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import IconButton from 'components/atoms/IconButton'
3 | import EditIcon from '@material-ui/icons/Edit'
4 |
5 | type Props = {
6 | onClick: (...args: any) => void
7 | }
8 |
9 | const EditButton = ({ onClick, ...rest }: Props) => (
10 |
11 |
12 |
13 | )
14 |
15 | export default React.memo(EditButton)
16 |
--------------------------------------------------------------------------------
/src/components/molecules/ExpansionPanel/ExpansionPanelDetails.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import MuiExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'
4 |
5 | const ExpansionPanelDetails = ({
6 | children,
7 | ...rest
8 | }: {
9 | children: React.ReactNode
10 | }) => {children}
11 |
12 | export default React.memo(ExpansionPanelDetails)
13 |
--------------------------------------------------------------------------------
/src/components/molecules/ExpansionPanel/StyledExpansionPanelSummary.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'
3 |
4 | const StyledExpansionPanelSummary = styled(ExpansionPanelSummary)`
5 | min-height: 48px;
6 | `
7 |
8 | export default StyledExpansionPanelSummary
9 |
--------------------------------------------------------------------------------
/src/components/molecules/FriendOrFoeAttackTile/Body.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import { FriendOrFoeAttack } from 'aer-types/types'
4 | import Effect from '../../atoms/Effect'
5 |
6 | import Name from './Name'
7 |
8 | type Props = {
9 | card: FriendOrFoeAttack
10 | }
11 |
12 | const Body = ({ card }: Props) => (
13 |
14 | {card.name}
15 |
16 |
17 | )
18 |
19 | export default React.memo(Body)
20 |
--------------------------------------------------------------------------------
/src/components/molecules/FriendOrFoeAttackTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | font-weight: bold;
6 | `
7 |
8 | export default Name
9 |
--------------------------------------------------------------------------------
/src/components/molecules/FriendOrFoeAttackTile/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Grid from '@material-ui/core/Grid'
3 |
4 | import TileWrapper from '../Tile/Wrapper'
5 |
6 | const Wrapper = styled(Grid)`
7 | ${TileWrapper} {
8 | min-height: 148px;
9 | min-width: 30px;
10 | height: 100%;
11 | }
12 | `
13 |
14 | export default Wrapper
15 |
--------------------------------------------------------------------------------
/src/components/molecules/InfoItem/Info.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Info = styled(Typography)`
5 | display: inline-block;
6 | `
7 |
8 | export default Info
9 |
--------------------------------------------------------------------------------
/src/components/molecules/InfoItem/InfoLabel.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const InfoLabel = styled(Typography)`
5 | margin-right: 8px;
6 | display: inline-block;
7 | `
8 |
9 | export default InfoLabel
10 |
--------------------------------------------------------------------------------
/src/components/molecules/InfoItem/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import ListItem from '@material-ui/core/ListItem'
3 |
4 | const Wrapper = styled(ListItem)`
5 | padding: 0;
6 | display: flex;
7 | flex-flow: row wrap;
8 | `
9 |
10 | export default Wrapper
11 |
--------------------------------------------------------------------------------
/src/components/molecules/InfoItem/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import Wrapper from './Wrapper'
4 | import Info from './Info'
5 | import InfoLabel from './InfoLabel'
6 |
7 | type Props = {
8 | label: string
9 | info: string
10 | }
11 |
12 | const InfoItem = ({ label, info, ...rest }: Props) => (
13 |
14 | {label}:
15 | {info}
16 |
17 | )
18 |
19 | export default React.memo(InfoItem)
20 |
--------------------------------------------------------------------------------
/src/components/molecules/Label.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import AdditionalInfo from './AdditionalInfo'
4 |
5 | type Props = {
6 | label: string
7 | additionalInfo: string
8 | }
9 |
10 | const Label = ({ label, additionalInfo }: Props) => {
11 | return (
12 | <>
13 | {label}
14 | {additionalInfo}
15 | >
16 | )
17 | }
18 |
19 | export default React.memo(Label)
20 |
--------------------------------------------------------------------------------
/src/components/molecules/LockButton/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Button from './Button'
3 |
4 | import LockOpenIcon from '@material-ui/icons/LockOpen'
5 | import { Lock } from '@material-ui/icons'
6 |
7 | type Props = {
8 | lock: (e: Event) => void
9 | isLocked?: boolean
10 | theme: any
11 | }
12 |
13 | const LockButton = ({ lock, theme, isLocked = false }: Props) => (
14 |
15 | {isLocked ? : }
16 |
17 | )
18 |
19 | export default React.memo(LockButton)
20 |
--------------------------------------------------------------------------------
/src/components/molecules/MageList/MageGridWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const MageGridWrapper = styled('div')`
4 | margin-top: 24px;
5 | width: 100%;
6 | `
7 |
8 | export default MageGridWrapper
9 |
--------------------------------------------------------------------------------
/src/components/molecules/MageList/MageTile/ExpansionName.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const ExpansionName = styled(Typography)`
5 | color: #fff;
6 | `
7 |
8 | export default ExpansionName
9 |
--------------------------------------------------------------------------------
/src/components/molecules/MageList/MageTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | color: #fff;
6 | `
7 |
8 | export default Name
9 |
--------------------------------------------------------------------------------
/src/components/molecules/MageList/MageTile/NameLine.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const NameLine = styled.div`
4 | display: flex;
5 | align-items: center;
6 | `
7 |
8 | export default NameLine
9 |
--------------------------------------------------------------------------------
/src/components/molecules/MageList/MageTile/Title.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Title = styled(Typography)`
5 | color: #fff;
6 | height: 1em;
7 | `
8 |
9 | export default Title
10 |
--------------------------------------------------------------------------------
/src/components/molecules/MageList/MageTile/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Grid from '@material-ui/core/Grid'
3 |
4 | const Wrapper = styled(Grid)``
5 |
6 | export default Wrapper
7 |
--------------------------------------------------------------------------------
/src/components/molecules/MarketSelect/MarketOptionsWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const MarketOptionsWrapper = styled('div')`
4 | margin: 0 -8px;
5 | display: flex;
6 | flex-wrap: wrap;
7 | `
8 |
9 | export default MarketOptionsWrapper
10 |
--------------------------------------------------------------------------------
/src/components/molecules/MarketTile/CostOperation.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const CostOperation = styled(Typography)``
5 |
6 | export default CostOperation
7 |
--------------------------------------------------------------------------------
/src/components/molecules/MarketTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | font-weight: bold;
6 | `
7 |
8 | export default Name
9 |
--------------------------------------------------------------------------------
/src/components/molecules/MarketTile/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Grid from '@material-ui/core/Grid'
3 |
4 | import { default as TileWrapper } from '../Tile/Wrapper'
5 |
6 | const Wrapper = styled(Grid)`
7 | ${TileWrapper} {
8 | min-height: 148px;
9 | min-width: 30px;
10 | height: 100%;
11 | }
12 | `
13 |
14 | export default Wrapper
15 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/Backdrop.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Backdrop = styled('div')`
4 | position: fixed;
5 | top: 0;
6 | left: 0;
7 | height: 100%;
8 | width: 100%;
9 | background: rgb(0, 0, 0, 0.3);
10 | `
11 |
12 | export default Backdrop
13 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/Body.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Body = styled('div')`
4 | height: calc(100% - 64px);
5 | `
6 |
7 | export default Body
8 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/CloseButton.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import IconButton from '@material-ui/core/IconButton'
3 |
4 | const CloseButton = styled(IconButton)`
5 | position: absolute;
6 | top: 8px;
7 | right: 8px;
8 | `
9 |
10 | export default CloseButton
11 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/Content.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Content = styled('div')`
4 | margin: auto;
5 | height: 100%;
6 | width: 100%;
7 | background: #fff;
8 | box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.2);
9 | border-radius: 8px;
10 | position: relative;
11 | `
12 |
13 | export default Content
14 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/Footer.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Footer = styled('div')`
4 | margin: auto;
5 | height: 64px;
6 | width: 100%;
7 | padding: 0 24px;
8 | position: relative;
9 | display: flex;
10 | justify-content: flex-end;
11 | align-items: center;
12 | border-top: 1px solid rgba(0, 0, 0, 0.1);
13 | margin-top: -1px;
14 | `
15 |
16 | export default Footer
17 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/Header.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Header = styled('div')`
4 | margin: auto;
5 | height: 64px;
6 | width: 100%;
7 | padding: 0 24px;
8 | position: relative;
9 | overflow: hidden;
10 | display: flex;
11 | align-items: center;
12 | border-bottom: 1px solid rgba(0, 0, 0, 0.1);
13 | `
14 |
15 | export default Header
16 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/Title.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components'
3 |
4 | import H1 from '../../atoms/H1'
5 |
6 | type Props = {
7 | themeColor: string
8 | }
9 |
10 | // NOTE: we need to take away additional props, so that they are not passed
11 | // to DOM elements by MUI Components (we really should get rid of MUI...)
12 | const Title = styled(({ themeColor, ...rest }) => )`
13 | color: ${props => props.themeColor};
14 | `
15 |
16 | export default Title
17 |
--------------------------------------------------------------------------------
/src/components/molecules/Modal/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Wrapper = styled('div')`
4 | height: 100%;
5 | width: 100%;
6 | position: fixed;
7 | top: 0;
8 | left: 0;
9 | z-index: 10000;
10 | padding: 24px;
11 | `
12 |
13 | export default Wrapper
14 |
--------------------------------------------------------------------------------
/src/components/molecules/NemesisCardTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | font-weight: bold;
6 | `
7 |
8 | export default Name
9 |
--------------------------------------------------------------------------------
/src/components/molecules/NemesisCardTile/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Grid from '@material-ui/core/Grid'
3 |
4 | import TileWrapper from '../Tile/Wrapper'
5 |
6 | const Wrapper = styled(Grid)`
7 | ${TileWrapper} {
8 | min-height: 148px;
9 | min-width: 30px;
10 | height: 100%;
11 | }
12 | `
13 |
14 | export default Wrapper
15 |
--------------------------------------------------------------------------------
/src/components/molecules/NemesisInformation/AdditionalInfo.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const AdditionalInfo = styled('div')`
4 | font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;
5 |
6 | p {
7 | color: rgba(0, 0, 0, 0.87);
8 | font-size: 0.875rem;
9 | font-weight: 400;
10 | line-height: 1.5;
11 | letter-spacing: 0.01071em;
12 | }
13 | `
14 |
15 | export default AdditionalInfo
16 |
--------------------------------------------------------------------------------
/src/components/molecules/NoSelectedExpansions.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | import A from '../atoms/A'
5 |
6 | const NoSelectedExpansions = () => (
7 |
8 | There is currently no standalone set selected. Please activate at least one
9 | standalone set in the settings.{' '}
10 | Click here to go to the settings .
11 |
12 | )
13 |
14 | export default React.memo(NoSelectedExpansions)
15 |
--------------------------------------------------------------------------------
/src/components/molecules/ShareButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import IconButton from 'components/atoms/IconButton'
3 | import ShareIcon from '@material-ui/icons/Share'
4 |
5 | type Props = {
6 | onClick: (...args: any) => void
7 | className?: string
8 | }
9 |
10 | const ShareButton = ({ onClick, className, ...rest }: Props) => (
11 |
18 |
19 |
20 | )
21 |
22 | export default React.memo(ShareButton)
23 |
--------------------------------------------------------------------------------
/src/components/molecules/ShowDetailsButton/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Button from './Button'
3 |
4 | import VisibilityOutlinedIcon from '@material-ui/icons/VisibilityOutlined'
5 |
6 | type Props = {
7 | showDetails: (e: Event) => void
8 | theme: any
9 | }
10 |
11 | const ShowDetailsButton = ({ showDetails, theme }: Props) => (
12 |
13 | Show details
14 |
15 | )
16 |
17 | export default React.memo(ShowDetailsButton)
18 |
--------------------------------------------------------------------------------
/src/components/molecules/Snackbars/__styled__/CloseButton.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const CloseButton = styled('button')`
4 | position: absolute;
5 | top: 0;
6 | right: 0;
7 | width: 48px;
8 | height: 48px;
9 | background: transparent;
10 | border: none;
11 | cursor: pointer;
12 | transition: color 0.2s ease;
13 | outline: 0;
14 | color: inherit;
15 | `
16 |
17 | export default CloseButton
18 |
--------------------------------------------------------------------------------
/src/components/molecules/Snackbars/__styled__/Content.tsx:
--------------------------------------------------------------------------------
1 | import P from 'components/atoms/P'
2 | import styled from 'styled-components/macro'
3 |
4 | const Content = styled(P)`
5 | width: 80%;
6 | color: inherit;
7 | `
8 |
9 | export default Content
10 |
--------------------------------------------------------------------------------
/src/components/molecules/SupplyList/ListWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const ListWrapper = styled('div')`
4 | margin-top: 24px;
5 | width: 100%;
6 | `
7 |
8 | export default ListWrapper
9 |
--------------------------------------------------------------------------------
/src/components/molecules/SupplyPreview/SupplyName.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | import Typography from '@material-ui/core/Typography'
4 |
5 | type Props = {
6 | selected: boolean
7 | }
8 |
9 | const SupplyName = styled(Typography)`
10 | color: ${props =>
11 | props.selected
12 | ? props.theme.colors.secondary.main
13 | : props.theme.colors.text.secondary};
14 | `
15 |
16 | export default SupplyName
17 |
--------------------------------------------------------------------------------
/src/components/molecules/SupplyPreview/TileList.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const TileList = styled('ul')`
4 | margin: 0 -4px;
5 | list-style: none;
6 | padding: 0;
7 | display: flex;
8 | flex-wrap: wrap;
9 | width: calc(100% + 8px);
10 | `
11 |
12 | export default TileList
13 |
--------------------------------------------------------------------------------
/src/components/molecules/SupplyPreview/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | type Props = {
4 | selected: boolean
5 | }
6 |
7 | const Wrapper = styled('div')`
8 | border: 1px solid
9 | ${props =>
10 | props.selected
11 | ? props.theme.colors.secondary.main
12 | : 'rgba(0, 0, 0, 0.12)'};
13 | padding: 4px 8px;
14 | display: inline-block;
15 | width: calc(100% - 16px);
16 | margin: 24px 8px 0;
17 | cursor: pointer;
18 |
19 | &:first-child {
20 | margin-top: 0;
21 | }
22 | `
23 |
24 | export default Wrapper
25 |
--------------------------------------------------------------------------------
/src/components/molecules/SupplySelection/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | import TileWrapper from '../Tile/Wrapper'
4 |
5 | const Wrapper = styled('div')`
6 | > p {
7 | margin-top: 0;
8 | }
9 |
10 | ${TileWrapper} {
11 | border: 2px solid transparent;
12 |
13 | &:hover {
14 | border-color: ${props => props.theme.colors.primary.main};
15 | }
16 | }
17 | `
18 |
19 | export default Wrapper
20 |
--------------------------------------------------------------------------------
/src/components/molecules/Tile/Content.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import MuiCardContent from '@material-ui/core/CardContent'
3 |
4 | const Content = styled(MuiCardContent)`
5 | position: relative;
6 | z-index: 1;
7 | `
8 |
9 | export default Content
10 |
--------------------------------------------------------------------------------
/src/components/molecules/Tile/Icon.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | type Props = {
4 | iconColor: string
5 | }
6 |
7 | const Icon = styled('i')`
8 | position: absolute;
9 | right: 8px;
10 | bottom: -8px;
11 | font-size: 120px;
12 | z-index: 0;
13 | opacity: 0.2;
14 |
15 | color: ${props => props.iconColor};
16 | `
17 |
18 | export default Icon
19 |
--------------------------------------------------------------------------------
/src/components/molecules/Tile/TypeIcon.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import Icon from './Icon'
4 |
5 | type Props = {
6 | icon: string
7 | iconColor: string
8 | }
9 |
10 | const TypeIcon = ({ icon, iconColor }: Props) => (
11 |
12 | )
13 |
14 | export default React.memo(TypeIcon)
15 |
--------------------------------------------------------------------------------
/src/components/molecules/TreasureList/TreasureGridWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const TreasureGridWrapper = styled('div')`
4 | margin-top: 24px;
5 | `
6 |
7 | export default TreasureGridWrapper
8 |
--------------------------------------------------------------------------------
/src/components/molecules/TreasureList/TreasureTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | font-weight: bold;
6 | `
7 |
8 | export default Name
9 |
--------------------------------------------------------------------------------
/src/components/molecules/TreasureList/TreasureTile/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Grid from '@material-ui/core/Grid'
3 |
4 | import TileWrapper from '../../Tile/Wrapper'
5 |
6 | const Wrapper = styled(Grid)`
7 | ${TileWrapper} {
8 | min-height: 148px;
9 | min-width: 30px;
10 | height: 100%;
11 | }
12 | `
13 |
14 | export default Wrapper
15 |
--------------------------------------------------------------------------------
/src/components/molecules/UniqueStarter/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | font-weight: bold;
6 | `
7 |
8 | export default Name
9 |
--------------------------------------------------------------------------------
/src/components/molecules/UniqueStarter/UniqueStartersWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Grid from '@material-ui/core/Grid'
3 |
4 | const UniqueStartersWrapper = styled(Grid)``
5 |
6 | export default UniqueStartersWrapper
7 |
--------------------------------------------------------------------------------
/src/components/molecules/UpgradedBasicNemesisCardList/UpgradedBasicNemesisCardGridWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const UpgradedBasicNemesisCardGridWrapper = styled('div')`
4 | margin-top: 24px;
5 | width: 100%;
6 | `
7 |
8 | export default UpgradedBasicNemesisCardGridWrapper
9 |
--------------------------------------------------------------------------------
/src/components/organisms/Content/HeaderPlaceholder.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const HeaderPlaceholder = styled('div')`
4 | display: flex;
5 | align-items: center;
6 | padding: 0 8px;
7 | justify-content: flex-end;
8 |
9 | min-height: 56px;
10 |
11 | @media (min-width: 0px) and (orientation: landscape) {
12 | min-height: 48px;
13 | }
14 |
15 | @media (min-width: 600px) {
16 | min-height: 64px;
17 | }
18 | `
19 |
20 | export default HeaderPlaceholder
21 |
--------------------------------------------------------------------------------
/src/components/organisms/Content/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | type Props = {
4 | isLoading: boolean
5 | }
6 |
7 | const Wrapper = styled('div')`
8 | padding: ${props => props.theme.spacing.unit * 3}px;
9 |
10 | ${props =>
11 | props.isLoading
12 | ? `
13 | text-align: center;
14 | padding-top: 150px;
15 | `
16 | : ''}
17 | `
18 |
19 | export default Wrapper
20 |
--------------------------------------------------------------------------------
/src/components/organisms/Content/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import CircularProgress from '@material-ui/core/CircularProgress'
4 |
5 | import HeaderPlaceholder from './HeaderPlaceholder'
6 | import Wrapper from './Wrapper'
7 |
8 | import Routing from './Routing'
9 |
10 | type Props = {
11 | isLoading: boolean
12 | }
13 |
14 | const Content = ({ isLoading }: Props) => (
15 |
16 |
17 | {isLoading ? : }
18 |
19 | )
20 |
21 | export default React.memo(Content)
22 |
--------------------------------------------------------------------------------
/src/components/organisms/DrawerMenu/AppInfo.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const AppInfo = styled(Typography)`
5 | margin: ${props => props.theme.spacing.unit * 2}px;
6 | `
7 |
8 | export default AppInfo
9 |
--------------------------------------------------------------------------------
/src/components/organisms/DrawerMenu/Drawer.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import MuiDrawer from '@material-ui/core/Drawer'
3 | import { withStyles } from '@material-ui/core/styles'
4 |
5 | const Drawer = styled(MuiDrawer)`
6 | width: 240px;
7 | `
8 |
9 | // FIXME remove withStyles call
10 | export default withStyles({
11 | paper: {
12 | width: 240,
13 | },
14 | })(Drawer)
15 |
--------------------------------------------------------------------------------
/src/components/organisms/DrawerMenu/GitHubLink.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Link from '@material-ui/core/Link'
3 |
4 | const GithHubLink = styled(Link)`
5 | display: block;
6 | line-height: 24px;
7 | margin-top: ${props => props.theme.spacing.unit * 2}px;
8 | `
9 |
10 | export default GithHubLink
11 |
--------------------------------------------------------------------------------
/src/components/organisms/DrawerMenu/GitHubLogo.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const GitHubLogo = styled('img')`
4 | width: 24px;
5 | display: inline-block;
6 | vertical-align: middle;
7 | margin-right: ${props => props.theme.spacing.unit}px;
8 | `
9 |
10 | export default GitHubLogo
11 |
--------------------------------------------------------------------------------
/src/components/organisms/DrawerMenu/Header.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const Header = styled('div')`
4 | display: flex;
5 | align-items: center;
6 | padding: 0 8px;
7 | justify-content: flex-end;
8 |
9 | min-height: 56px;
10 |
11 | @media (min-width: 0px) and (orientation: landscape) {
12 | min-height: 48px;
13 | }
14 |
15 | @media (min-width: 600px) {
16 | min-height: 64px;
17 | }
18 | `
19 |
20 | export default Header
21 |
--------------------------------------------------------------------------------
/src/components/organisms/TopBar/AppBar.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import MuiAppBar from '@material-ui/core/AppBar'
3 |
4 | // eslint-disable-next-line no-unexpected-multiline
5 | const AppBar = styled(MuiAppBar)`
6 | position: fixed;
7 | `
8 |
9 | export default AppBar
10 |
--------------------------------------------------------------------------------
/src/components/organisms/TopBar/Title.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | import Typography from '@material-ui/core/Typography'
4 |
5 | const Title = styled(Typography)``
6 |
7 | export default Title
8 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Controls.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Controls = styled('div')`
4 | position: absolute;
5 | top: 0;
6 | right: 0;
7 |
8 | display: flex;
9 | flex-flow: column nowrap;
10 |
11 | margin: 10px;
12 | width: 50px;
13 | `
14 |
15 | export default Controls
16 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Copy.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import CopyButton from 'components/molecules/CopyButton'
4 |
5 | const Copy = styled(CopyButton)`
6 | z-index: 1;
7 | `
8 | export default Copy
9 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/CreationDialog/ConfigImport/ConfigTextField.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const ConfigTextField = styled('textarea')`
4 | resize: none;
5 | min-width: 100%;
6 | min-height: 100px;
7 |
8 | margin-top: 10px;
9 | padding: 10px;
10 |
11 | @media screen and (min-width: 600px) {
12 | & {
13 | min-height: 210px;
14 | }
15 | }
16 |
17 | @media screen and (min-width: 900px) {
18 | & {
19 | min-height: 300px;
20 | }
21 | }
22 | `
23 |
24 | export default ConfigTextField
25 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/CreationDialog/ConfigImport/ContentWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const ContentWrapper = styled('div')`
4 | display: flex;
5 | justify-content: space-between;
6 | flex-flow: column nowrap;
7 |
8 | width: 100%;
9 | `
10 |
11 | export default ContentWrapper
12 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/CreationDialog/ConfigImport/FileUpload.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import Input from '@material-ui/core/Input'
4 |
5 | const FileUpload = styled(Input)`
6 | margin: 15px 0 30px;
7 | `
8 |
9 | export default FileUpload
10 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/CreationDialog/ConfigImport/ImportButton.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import Button from 'components/atoms/Button'
4 |
5 | const ImportButton = styled(Button)``
6 |
7 | export default ImportButton
8 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/CreationDialog/CreateButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import Button from '@material-ui/core/Button'
4 |
5 | type Props = {
6 | handleExpeditionCreation: () => void
7 | }
8 |
9 | const CreateButton = ({ handleExpeditionCreation, ...rest }: Props) => {
10 | return (
11 |
18 | Create Expedition
19 |
20 | )
21 | }
22 |
23 | export default React.memo(CreateButton)
24 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/CreationDialog/FormLabel.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import MuiFormLabel from '@material-ui/core/FormLabel'
4 |
5 | const FormLabel = styled(MuiFormLabel)`
6 | display: block;
7 | margin-bottom: 15px;
8 | `
9 |
10 | export default FormLabel
11 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Delete.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import DeleteButton from 'components/molecules/DeleteButton'
4 |
5 | const Delete = styled(DeleteButton)`
6 | z-index: 1;
7 | `
8 | export default Delete
9 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Battle/BattleStarted/BattleLostButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import Button from '@material-ui/core/Button'
4 |
5 | type Props = {
6 | handleLoss: () => void
7 | }
8 |
9 | const BattleLostButton = ({ handleLoss }: Props) => {
10 | return (
11 |
18 | Battle lost
19 |
20 | )
21 | }
22 |
23 | export default React.memo(BattleLostButton)
24 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Battle/BattleStarted/BattleWonButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import Button from '@material-ui/core/Button'
4 |
5 | type Props = {
6 | handleWin: () => void
7 | }
8 |
9 | const BattleWonButton = ({ handleWin }: Props) => {
10 | return (
11 |
18 | Battle won
19 |
20 | )
21 | }
22 |
23 | export default React.memo(BattleWonButton)
24 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Battle/BattleTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)``
5 |
6 | Name.displayName = 'Name'
7 |
8 | export default Name
9 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Battle/BattleTile/Unlocked.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import UnlockedBase from '../../Unlocked'
4 |
5 | const Unlocked = styled(UnlockedBase)`
6 | background: ${(props) => props.theme.colors.turnOrderCards.nemesis.normal};
7 | `
8 |
9 | export default Unlocked
10 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Battle/SpecialRules.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import SectionHeadline from 'components/atoms/SectionHeadline'
3 | import Li from 'components/atoms/Li'
4 |
5 | const SpecialRules = ({ rules }: { rules: string[] }) => {
6 | return (
7 | <>
8 | Special rules:
9 |
10 | {rules.map(rule => (
11 | {rule}
12 | ))}
13 |
14 | >
15 | )
16 | }
17 |
18 | export default SpecialRules
19 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Battle/useStateModals.ts:
--------------------------------------------------------------------------------
1 | import { useModal } from 'hooks/useModal'
2 |
3 | export const useStateModals = () => {
4 | const beforeBattle = useModal()
5 | const battleStarted = useModal()
6 | const battleLost = useModal()
7 | const battleWon = useModal()
8 | const expeditionComplete = useModal()
9 |
10 | return {
11 | beforeBattle,
12 | battleStarted,
13 | battleLost,
14 | battleWon,
15 | expeditionComplete,
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/BranchWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const BranchWrapper = styled('button')`
4 | background: transparent;
5 | border: 0;
6 | display: block;
7 | width: 100%;
8 | padding: 0;
9 | text-align: left;
10 | margin: 16px 0;
11 | position: relative;
12 | cursor: pointer;
13 | outline: 0;
14 |
15 | &:disabled {
16 | cursor: default;
17 | }
18 | `
19 |
20 | export default BranchWrapper
21 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/ExpeditionFinished/FinishExpeditionButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Button from '@material-ui/core/Button'
3 |
4 | type Props = {
5 | handleFinish: () => void
6 | }
7 |
8 | const FinishExpeditionButton = ({ handleFinish }: Props) => {
9 | return (
10 |
16 | Finish Expedition
17 |
18 | )
19 | }
20 |
21 | export default React.memo(FinishExpeditionButton)
22 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/ExpeditionFinished/WinOverview.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import InfoItem from 'components/molecules/InfoItem'
4 | import P from 'components/atoms/P'
5 |
6 | type Props = {
7 | info: string
8 | }
9 |
10 | const WinOverview = ({ info }: Props) => {
11 | return (
12 | <>
13 | Expedition complete!
14 |
15 | >
16 | )
17 | }
18 |
19 | export default React.memo(WinOverview)
20 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Locked.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Locked = styled('div')`
4 | background: #dadada;
5 | position: relative;
6 | top: -16px;
7 | left: -16px;
8 | width: calc(100% + 32px);
9 | display: flex;
10 | min-height: 150px;
11 | margin-bottom: -48px;
12 | border-radius: 4px;
13 | justify-content: center;
14 | align-items: center;
15 |
16 | svg {
17 | font-size: 72px;
18 | }
19 | `
20 |
21 | export default Locked
22 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Narrative/NarrativeTile/Unlocked.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Status } from 'aer-types/types'
3 |
4 | import UnlockedBase from '../../Unlocked'
5 |
6 | type Props = {
7 | status: Status
8 | }
9 |
10 | const Unlocked = styled(UnlockedBase)`
11 | background: ${(props) =>
12 | props.status === 'unlocked'
13 | ? props.theme.colors.turnOrderCards.player3.normal
14 | : props.theme.colors.turnOrderCards.player3.light};
15 | `
16 |
17 | export default Unlocked
18 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Narrative/NarrativeTile/UnlockedIcon.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const UnlockedIcon = styled('i')`
4 | margin-left: 25px;
5 | margin-bottom: 10px;
6 | font-size: 75px;
7 | color: #fff;
8 | `
9 |
10 | export default UnlockedIcon
11 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Narrative/NarrativeUnlocked/Text.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Text = styled(Typography)``
5 |
6 | export default Text
7 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Reward/RewardTile/Unlocked.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Status } from 'aer-types/types'
3 |
4 | import UnlockedBase from '../../Unlocked'
5 |
6 | type Props = {
7 | status: Status
8 | }
9 |
10 | const Unlocked = styled(UnlockedBase)`
11 | background: ${(props) =>
12 | props.status === 'unlocked'
13 | ? props.theme.colors.cards.treasure3.normal
14 | : props.theme.colors.cards.treasure3.light};
15 | `
16 |
17 | export default Unlocked
18 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Reward/RewardTile/UnlockedIcon.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const UnlockedIcon = styled('i')`
4 | margin-bottom: 10px;
5 | font-size: 75px;
6 | color: #fff;
7 | `
8 |
9 | export default UnlockedIcon
10 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Branch/Unlocked.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Unlocked = styled('div')`
4 | background: #dadada;
5 | position: relative;
6 | top: -16px;
7 | left: -16px;
8 | width: calc(100% + 32px);
9 | display: flex;
10 | min-height: 150px;
11 | margin-bottom: -48px;
12 | border-radius: 4px;
13 | justify-content: center;
14 | align-items: center;
15 |
16 | p {
17 | font-size: 72px;
18 | color: ${(props) => props.theme.colors.white};
19 | }
20 | `
21 |
22 | export default Unlocked
23 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Header/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Wrapper = styled('div')`
4 | margin: 16px 0 24px;
5 | `
6 |
7 | export default Wrapper
8 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Expedition/Header/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import H2 from '../../../../atoms/H2'
4 | import P from '../../../../atoms/P'
5 |
6 | import Wrapper from './Wrapper'
7 |
8 | type Props = {
9 | title: string
10 | score: number
11 | }
12 |
13 | const Header = ({ title, score }: Props) => (
14 |
15 | Expedition {title}
16 |
17 | Current Score: {score}
18 |
19 |
20 | )
21 |
22 | export default React.memo(Header)
23 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/ExpeditionTile/List.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import MuiList from '@material-ui/core/List'
4 |
5 | const List = styled(MuiList)`
6 | margin-right: 50px;
7 | `
8 |
9 | export default List
10 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/ExpeditionTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | padding-right: 48px;
6 | `
7 |
8 | Name.displayName = 'Name'
9 |
10 | export default Name
11 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/FormControl.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import MuiFormControl from '@material-ui/core/FormControl'
4 |
5 | const FormControl = styled(MuiFormControl)`
6 | margin-bottom: 16px;
7 | display: block;
8 | `
9 |
10 | export default FormControl
11 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Input.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { TextField } from '@material-ui/core'
3 |
4 | const Input = styled(TextField)`
5 | margin-top: 0;
6 | margin-bottom: 16px;
7 | width: 100%;
8 | `
9 |
10 | export default Input
11 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/List.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const List = styled('ul')`
4 | padding: 0;
5 | margin: 0;
6 | list-style: none;
7 | `
8 |
9 | export default List
10 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/ListItem.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const ListItem = styled('li')`
4 | position: relative;
5 | margin-bottom: 16px;
6 | `
7 |
8 | export default ListItem
9 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Select.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import MuiSelect from '@material-ui/core/Select'
3 |
4 | const Select = styled(MuiSelect)`
5 | width: 100%;
6 | `
7 |
8 | export default Select
9 |
--------------------------------------------------------------------------------
/src/components/pages/Expeditions/Share.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import ShareButton from 'components/molecules/ShareButton'
4 |
5 | const Share = styled(ShareButton)`
6 | z-index: 1;
7 | `
8 | export default Share
9 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/BasicNemesisCards/BasicNemesisCardList/BasicNemesisCardGridWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const BasicNemesisCardGridWrapper = styled('div')`
4 | margin-top: 24px;
5 | width: 100%;
6 | `
7 |
8 | export default BasicNemesisCardGridWrapper
9 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/BasicNemesisCards/EmptyHint.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const EmptyHint = styled(Typography)`
5 | margin-top: 24px;
6 | `
7 |
8 | export default EmptyHint
9 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/FriendFoe/EmptyHint.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const EmptyHint = styled(Typography)`
5 | margin-top: 24px;
6 | `
7 |
8 | export default EmptyHint
9 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/FriendFoe/NoSelectedFriendFoeModuleMaterial.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | import A from 'components/atoms/A'
5 |
6 | const NoSelectedFriendFoeModuleMaterial = () => (
7 |
8 | There are currently no selected cards from the Friends & Foes module.{' '}
9 | Click here to go to the settings .
10 |
11 | )
12 |
13 | export default React.memo(NoSelectedFriendFoeModuleMaterial)
14 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/Mages/EmptyMageListHint.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const EmptyMageListHint = styled(Typography)`
5 | margin-top: 24px;
6 | `
7 |
8 | EmptyMageListHint.displayName = 'EmptyMageListHint'
9 |
10 | export default EmptyMageListHint
11 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/Mages/MageCountPicker.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import AmountPicker from 'components/molecules/AmountPicker'
4 |
5 | type Props = {
6 | selectedValue: string
7 | handleAmountChange: (e: React.ChangeEvent) => void
8 | }
9 |
10 | const MageCountPicker = ({ selectedValue, handleAmountChange }: Props) => (
11 |
17 | )
18 |
19 | export default React.memo(MageCountPicker)
20 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/Nemeses/EmptyNemesisHint.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const EmptyNemesisHint = styled(Typography)``
5 |
6 | EmptyNemesisHint.displayName = 'EmptyNemesisHint'
7 |
8 | export default EmptyNemesisHint
9 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/Nemeses/NemesisTile/ExpansionName.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const ExpansionName = styled(Typography)`
5 | color: #fff;
6 | `
7 |
8 | ExpansionName.displayName = 'ExpansionName'
9 |
10 | export default ExpansionName
11 |
--------------------------------------------------------------------------------
/src/components/pages/Randomizer/Nemeses/NemesisTile/Name.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | const Name = styled(Typography)`
5 | color: #fff;
6 | `
7 |
8 | Name.displayName = 'Name'
9 |
10 | export default Name
11 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Expansions/ActiveSets/DeselectByKeyword/helpers.ts:
--------------------------------------------------------------------------------
1 | import { ICard } from '../../../../../../aer-types/types'
2 |
3 | export const allKeywords = (cards: ICard[]) => {
4 | const result = new Set()
5 | cards.forEach((card) => card.keywords.forEach((keyword) => result.add(keyword)));
6 | return result
7 | }
8 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Expansions/ActiveSets/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import { Select } from 'components/atoms/SelectField'
4 |
5 | const Wrapper = styled('div')`
6 | ${Select} {
7 | margin: 16px 0 0;
8 | }
9 | `
10 |
11 | export default Wrapper
12 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Expansions/ActiveSets/helpers.ts:
--------------------------------------------------------------------------------
1 | import * as types from 'aer-types/types'
2 |
3 | export const expansionsToItems = (
4 | expansions: ReadonlyArray
5 | ) =>
6 | expansions.map((expansion) => ({
7 | name: expansion.name,
8 | id: expansion.id,
9 | label: expansion.name,
10 | checked: expansion.selected,
11 | }))
12 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Expansions/ContentCustomization/SelectWithTooltipWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import { Wrapper } from 'components/atoms/SelectField'
4 | import IconButton from 'components/atoms/IconButton'
5 |
6 | const SelectWithTooltipWrapper = styled('div')`
7 | display: flex;
8 | margin-bottom: 32px;
9 | align-items: center;
10 |
11 | ${Wrapper} {
12 | width: 100%;
13 | }
14 |
15 | ${IconButton} {
16 | margin-left: 16px;
17 | }
18 | `
19 |
20 | export default SelectWithTooltipWrapper
21 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Language/GameLanguageSelection/GameLanguageSelection.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { connect } from 'react-redux'
3 | import { Typography } from '@material-ui/core'
4 |
5 | const GameLanguageSelection = () => (
6 |
7 | To select a language, go to the Expansion tab above and use the edit button
8 | to select the language for each Expansion.
9 |
10 | )
11 |
12 | export default connect()(React.memo(GameLanguageSelection))
13 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CheckboxWithPreview/PreviewWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | import SupplyPreview from '../../../../molecules/SupplyPreview'
4 |
5 | const PreviewWrapper = styled(SupplyPreview)`
6 | width: 100%;
7 | margin: 0;
8 | `
9 |
10 | export default PreviewWrapper
11 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CheckboxWithPreview/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Wrapper = styled('div')`
4 | margin-top: 8px;
5 |
6 | &:first-child {
7 | margin-top: 0;
8 | }
9 | `
10 |
11 | export default Wrapper
12 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CustomSetupEdit/InputField.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { TextField } from '@material-ui/core'
3 |
4 | const InputField = styled(TextField)`
5 | margin-top: 0;
6 | margin-bottom: 24px;
7 | `
8 |
9 | export default InputField
10 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CustomSetupEdit/ListWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const ListWrapper = styled('div')`
4 | display: flex;
5 | flex-direction: column;
6 | `
7 |
8 | export default ListWrapper
9 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CustomSetupEdit/MainControlsWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const MainControlsWrapper = styled('div')`
4 | display: flex;
5 | align-items: baseline;
6 | `
7 |
8 | export default MainControlsWrapper
9 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CustomSetupEdit/SelectField.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components'
3 | import MuiSelect from '@material-ui/core/Select'
4 | import MuiFormControl from '@material-ui/core/FormControl'
5 |
6 | const Wrapper = styled(MuiFormControl)`
7 | width: 50%;
8 | `
9 |
10 | const Select = styled(MuiSelect)`
11 | margin: 0 8px 16px;
12 | `
13 |
14 | const SelectField = (props: any) => (
15 |
16 |
17 |
18 | )
19 |
20 | export default React.memo(SelectField)
21 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CustomSetupEdit/SelectFieldsWrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const SelectFieldsWrapper = styled('div')`
4 | display: flex;
5 | margin: 0 -8px;
6 | `
7 |
8 | export default SelectFieldsWrapper
9 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CustomSetupEdit/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Wrapper = styled.div`
4 | display: flex;
5 | flex-direction: column;
6 | justify-content: space-between;
7 | border: 1px solid rgba(0, 0, 0, 0.12);
8 |
9 | padding: 16px;
10 | margin: 8px 0;
11 | `
12 |
13 | export default Wrapper
14 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/CustomSetups/CheckboxWithPreviewControls.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const CheckboxWithPreviewControls = styled('div')`
4 | float: right;
5 | `
6 |
7 | export default CheckboxWithPreviewControls
8 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/Supply/SetupSelection/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import FormControl from '@material-ui/core/FormControl'
3 |
4 | const SetupSelectionWrapper = styled(FormControl)`
5 | width: 100%;
6 | `
7 |
8 | export default SetupSelectionWrapper
9 |
--------------------------------------------------------------------------------
/src/components/pages/Settings/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import Expansions from './Expansions'
4 | import Supply from './Supply'
5 | import Language from './Language'
6 |
7 | const Settings = () => (
8 |
9 |
10 |
11 |
12 |
13 | )
14 |
15 | export default React.memo(Settings)
16 |
--------------------------------------------------------------------------------
/src/components/pages/TurnOrder/ConfigurationCardDisplay.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import Typography from '@material-ui/core/Typography'
3 |
4 | import { TurnOrderCardType } from 'aer-types/types'
5 |
6 | type Props = {
7 | type: TurnOrderCardType
8 | }
9 |
10 | const ConfigurationCardDisplay = styled(Typography)`
11 | display: block;
12 | padding: 5px 10px;
13 | margin-bottom: 2px;
14 |
15 | color: #fff;
16 | background: ${(props) =>
17 | props.theme.colors.turnOrderCards[props.type].normal};
18 | `
19 |
20 | export default ConfigurationCardDisplay
21 |
--------------------------------------------------------------------------------
/src/components/pages/TurnOrder/DiscardTable/Cell.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import MuiTableCell from '@material-ui/core/TableCell'
3 |
4 | const Cell = styled(MuiTableCell)`
5 | padding: 4px 8px;
6 |
7 | &:first-child {
8 | padding-left: 16px;
9 | }
10 |
11 | &:last-child {
12 | padding-right: 8px;
13 | }
14 | `
15 |
16 | Cell.displayName = 'Cell'
17 |
18 | export default Cell
19 |
--------------------------------------------------------------------------------
/src/components/pages/TurnOrder/DiscardTable/Table.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 | import MuiTable from '@material-ui/core/Table'
3 |
4 | const Table = styled(MuiTable)`
5 | margin-top: 24px;
6 | border-collapse: collapse;
7 | `
8 |
9 | export default Table
10 |
--------------------------------------------------------------------------------
/src/components/pages/TurnOrder/RoundCount/Wrapper.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components/macro'
2 |
3 | const Wrapper = styled('div')`
4 | height: 42px;
5 | display: flex;
6 | align-items: center;
7 | float: right;
8 | `
9 |
10 | export default Wrapper
11 |
--------------------------------------------------------------------------------
/src/components/pages/TurnOrder/RoundCount/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import InfoItem from 'components/molecules/InfoItem'
4 | import Wrapper from './Wrapper'
5 |
6 | type Props = {
7 | count: number
8 | }
9 |
10 | const RoundCount = ({ count }: Props) => {
11 | return (
12 |
13 |
14 |
15 | )
16 | }
17 |
18 | export default React.memo(RoundCount)
19 |
--------------------------------------------------------------------------------
/src/fonts/Roboto-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/on3iro/aeons-end-randomizer/e9ac3328e3c86323150766444fcd67f0ab04b243/src/fonts/Roboto-Regular.woff2
--------------------------------------------------------------------------------
/src/global.d.ts:
--------------------------------------------------------------------------------
1 | type ShareData = {
2 | title?: string
3 | text?: string
4 | url?: string
5 | }
6 |
7 | interface Navigator {
8 | share?: (data?: ShareData) => Promise
9 | }
10 |
--------------------------------------------------------------------------------
/src/globalstyles.ts:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components/macro'
2 |
3 | // @ts-ignore
4 | import RobotoWoff2 from './fonts/Roboto/Roboto-Regular.woff2'
5 |
6 | const GlobalStyles = createGlobalStyle`
7 |
8 | @font-face {
9 | font-family: 'Roboto';
10 | src: url(${RobotoWoff2}) format('woff2');
11 | }
12 | `
13 |
14 | export default GlobalStyles
15 |
--------------------------------------------------------------------------------
/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------