Skip to content

Commit 05e8e6e

Browse files
committed
Add Chronicles: Battle for Greece civs
1 parent 8140ebb commit 05e8e6e

26 files changed

+125
-15
lines changed
21.7 KB
Loading
22.3 KB
Loading

public/images/civemblems/spartans.png

21.7 KB
Loading

public/images/civs/achaemenids.png

38.8 KB
Loading

public/images/civs/athenians.png

26.1 KB
Loading

public/images/civs/spartans.png

35.9 KB
Loading
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

src/__tests__/models/CivilisationEncoder.test.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ it('vikings only yields 2^30', () => {
1919
expect(encoded).toEqual('40000000');
2020
});
2121

22-
it('all 45+1 civs yield 2^46-1', () => {
22+
it('all 45+1+3 civs yield 2^49-1', () => {
2323
const encoded = CivilisationEncoder.encodeCivilisationArray(Civilisation.ALL);
24-
expect(Civilisation.ALL.length).toEqual(45+1);
24+
expect(Civilisation.ALL.length).toEqual(45+1+3);
2525
expect(Civilisation.ALL_ACTIVE.length).toEqual(45);
26-
expect(encoded).toEqual(CivilisationEncoder.toHexString(Math.pow(2, 46) - 1));
27-
expect(encoded).toEqual('3fffffffffff');
26+
expect(encoded).toEqual(CivilisationEncoder.toHexString(Math.pow(2, 49) - 1));
27+
expect(encoded).toEqual('1ffffffffffff');
2828
});
2929

3030
it('decode 0 yields empty array', () => {
@@ -44,8 +44,8 @@ it('decode 2^30 yields vikings', () => {
4444

4545
});
4646

47-
it('decode 2^46-1 yields all civs', () => {
48-
const decoded = CivilisationEncoder.decodeCivilisationArray('3fffffffffff');
47+
it('decode 2^49-1 yields all civs', () => {
48+
const decoded = CivilisationEncoder.decodeCivilisationArray('1ffffffffffff');
4949
expect(decoded).toEqual([...Civilisation.ALL].sort((a, b) => a.name.localeCompare(b.name)));
5050
});
5151

@@ -68,6 +68,7 @@ describe('The decoding shortcut does not lie', () => {
6868
${'7ffffffefff'} | ${42}
6969
${'fffffffefff'} | ${43}
7070
${'3fffffffefff'} | ${45}
71+
${'1ffffffffefff'} | ${48}
7172
`('$civilisationArray', ({civilisationArray, expectedLength}) => {
7273
const decoded = CivilisationEncoder.decodeCivilisationArray(civilisationArray);
7374
expect(decoded.length).toEqual(expectedLength);

src/__tests__/models/__snapshots__/CivilisationEncoder.test.tsx.snap

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,5 +600,44 @@ Array [
600600
},
601601
"name": "Georgians",
602602
},
603+
Civilisation {
604+
"category": "default",
605+
"gameVersion": 12,
606+
"i18nPrefix": "civs.",
607+
"id": "Achemenids",
608+
"imageUrls": Object {
609+
"animated_left": "/images/units-animated/achemenids-left.apng",
610+
"animated_right": "/images/units-animated/achemenids-right.apng",
611+
"emblem": "/images/civemblems/achemenids.png",
612+
"unit": "/images/civs/achemenids.png",
613+
},
614+
"name": "Achemenids",
615+
},
616+
Civilisation {
617+
"category": "default",
618+
"gameVersion": 12,
619+
"i18nPrefix": "civs.",
620+
"id": "Athenians",
621+
"imageUrls": Object {
622+
"animated_left": "/images/units-animated/athenians-left.apng",
623+
"animated_right": "/images/units-animated/athenians-right.apng",
624+
"emblem": "/images/civemblems/athenians.png",
625+
"unit": "/images/civs/athenians.png",
626+
},
627+
"name": "Athenians",
628+
},
629+
Civilisation {
630+
"category": "default",
631+
"gameVersion": 12,
632+
"i18nPrefix": "civs.",
633+
"id": "Spartans",
634+
"imageUrls": Object {
635+
"animated_left": "/images/units-animated/spartans-left.apng",
636+
"animated_right": "/images/units-animated/spartans-right.apng",
637+
"emblem": "/images/civemblems/spartans.png",
638+
"unit": "/images/civs/spartans.png",
639+
},
640+
"name": "Spartans",
641+
},
603642
]
604643
`;

src/__tests__/models/__snapshots__/NameGenerator.test.tsx.snap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
exports[`NameGenerator yields deterministic results 1`] = `
44
Array [
55
"King Alfonso",
6-
"Yaroslav the Wise",
7-
"Lothair II",
6+
"Vasco da Gama",
7+
"Frederick Barbarossa",
88
"King Alfonso",
9-
"Henry Bolingbroke",
10-
"Nasiruddin Mahmud Shah",
11-
"Waterlily Jaguar",
12-
"Maxixca",
13-
"Avitus",
14-
"Frumentius",
9+
"Charles the Bold",
10+
"Babur",
11+
"Bleda the Hun",
12+
"Ahuitzotol",
13+
"Giorgi the Brilliant",
14+
"Ouali Keita",
1515
]
1616
`;

src/constants/GameVersion.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ enum GameVersion {
1111
DYNASTIES_OF_INDIA,
1212
RETURN_OF_ROME,
1313
THE_MOUNTAIN_ROYALS,
14+
CHRONICLES_BATTLE_FOR_GREECE,
1415
}
1516

1617
export default GameVersion;

src/languages/de_DE.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "Römer",
4747
"Armenians": "Armenier",
4848
"Georgians": "Georgier",
49+
"Achaemenids": "Achämeniden",
50+
"Athenians": "Athener",
51+
"Spartans": "Spartaner",
4952
"HIDDEN_PICK": "",
5053
"HIDDEN_BAN": "",
5154
"HIDDEN_SNIPE": "",

src/languages/en_GB.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "Romans",
4747
"Armenians": "Armenians",
4848
"Georgians": "Georgians",
49+
"Achaemenids": "Achaemenids",
50+
"Athenians": "Athenians",
51+
"Spartans": "Spartans",
4952
"HIDDEN_PICK": "",
5053
"HIDDEN_BAN": "",
5154
"HIDDEN_SNIPE": "",

src/languages/es_ES.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "Romanos",
4747
"Armenians": "Armenios",
4848
"Georgians": "Georgianos",
49+
"Achaemenids": "Aqueménidas",
50+
"Athenians": "Atenienses",
51+
"Spartans": "Espartanos",
4952
"HIDDEN_PICK": "",
5053
"HIDDEN_BAN": "",
5154
"HIDDEN_SNIPE": "",

src/languages/fr_FR.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "Romains",
4747
"Armenians": "Arméniens",
4848
"Georgians": "Géorgiens",
49+
"Achaemenids": "Achéménides",
50+
"Athenians": "Athéniens",
51+
"Spartans": "Spartiates",
4952
"HIDDEN_PICK": "",
5053
"HIDDEN_BAN": "",
5154
"HIDDEN_SNIPE": "",

src/languages/pl_PL.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "Rzymianie",
4747
"Armenians": "Ormianie",
4848
"Georgians": "Gruzini",
49+
"Achaemenids": "Achemenidzi",
50+
"Athenians": "Ateńczycy",
51+
"Spartans": "Spartanie",
4952
"HIDDEN_PICK": "Ukryty Wybór",
5053
"HIDDEN_BAN": "Ukryty Ban",
5154
"HIDDEN_SNIPE": "Ukryty Odrzut",

src/languages/pt_BR.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "Romanos",
4747
"Armenians": "Armênios",
4848
"Georgians": "Georgianos",
49+
"Achaemenids": "Aquemênidas",
50+
"Athenians": "Atenienses",
51+
"Spartans": "Espartanos",
4952
"HIDDEN_PICK": "",
5053
"HIDDEN_BAN": "",
5154
"HIDDEN_SNIPE": "",

src/languages/zh_CN.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "罗马",
4747
"Armenians": "亚美尼亚",
4848
"Georgians": "格鲁吉亚",
49+
"Achaemenids": "阿契美尼德",
50+
"Athenians": "雅典",
51+
"Spartans": "斯巴达",
4952
"HIDDEN_PICK": "",
5053
"HIDDEN_BAN": "",
5154
"HIDDEN_SNIPE": "",

src/languages/zh_TW.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"Romans": "羅馬",
4747
"Armenians": "亞美尼亞",
4848
"Georgians": "喬治亞",
49+
"Achaemenids": "阿契美尼",
50+
"Athenians": "雅典",
51+
"Spartans": "斯巴達",
4952
"HIDDEN_PICK": "",
5053
"HIDDEN_BAN": "",
5154
"HIDDEN_SNIPE": "",

src/models/Civilisation.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ enum Name {
5858

5959
ARMENIANS = "Armenians",
6060
GEORGIANS = "Georgians",
61+
62+
ACHAEMENIDS = "Achaemenids",
63+
ATHENIANS = "Athenians",
64+
SPARTANS = "Spartans",
6165
}
6266

6367
class Civilisation extends DraftOption {
@@ -119,6 +123,10 @@ class Civilisation extends DraftOption {
119123
public static readonly ARMENIANS: Civilisation = new Civilisation(Name.ARMENIANS, GameVersion.THE_MOUNTAIN_ROYALS);
120124
public static readonly GEORGIANS: Civilisation = new Civilisation(Name.GEORGIANS, GameVersion.THE_MOUNTAIN_ROYALS);
121125

126+
public static readonly ACHAEMENIDS: Civilisation = new Civilisation(Name.ACHAEMENIDS, GameVersion.CHRONICLES_BATTLE_FOR_GREECE);
127+
public static readonly ATHENIANS: Civilisation = new Civilisation(Name.ATHENIANS, GameVersion.CHRONICLES_BATTLE_FOR_GREECE);
128+
public static readonly SPARTANS: Civilisation = new Civilisation(Name.SPARTANS, GameVersion.CHRONICLES_BATTLE_FOR_GREECE);
129+
122130

123131
// DO NOT CHANGE THE ORDER OF ELEMENTS IN THIS ARRAY!!!
124132
// ONLY APPEND NEW CIVILISATIONS AT THE END!!!
@@ -169,9 +177,13 @@ class Civilisation extends DraftOption {
169177
Civilisation.ROMANS,
170178
Civilisation.ARMENIANS,
171179
Civilisation.GEORGIANS,
180+
Civilisation.ACHAEMENIDS,
181+
Civilisation.ATHENIANS,
182+
Civilisation.SPARTANS,
172183
];
173184

174-
public static readonly ALL_ACTIVE = Civilisation.ALL.filter(value => value.name !== Name.INDIANS);
185+
public static readonly ALL_ACTIVE = Civilisation.ALL.filter(value => value.name !== Name.INDIANS
186+
&& value.gameVersion != GameVersion.CHRONICLES_BATTLE_FOR_GREECE);
175187

176188
public readonly gameVersion: GameVersion;
177189

src/util/NameGenerator.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,39 @@ class NameGenerator {
649649
"Michael I",
650650
"Alexander I",
651651
"Constantine",
652+
//Achaemenids
653+
"Darius",
654+
"Datis",
655+
"Artaphernes",
656+
"Cyrus",
657+
"Cambyses",
658+
"Xerxes",
659+
"Artaxerxes",
660+
"Mardonius",
661+
"Boges",
662+
"Tissaphernes",
663+
//Athenians
664+
"Themistocles",
665+
"Aristides",
666+
"Pericles",
667+
"Miltiades",
668+
"Cleon",
669+
"Nicias",
670+
"Cimon",
671+
"Demosthenes",
672+
"Thucydides",
673+
"Iphicrates",
674+
//Spartans
675+
"Leonidas",
676+
"Lysander",
677+
"Brasidas",
678+
"Pausanias",
679+
"Agis",
680+
"Gylippus",
681+
"Archidamus",
682+
"Cleomenes",
683+
"Pleistoanax",
684+
"Clearchus",
652685
];
653686

654687
private seed: number;

0 commit comments

Comments
 (0)