Skip to content

Commit 5171a38

Browse files
author
Saurav Tripathi
committed
prepare dock for upcoming naval rework
1 parent 3fda527 commit 5171a38

File tree

2 files changed

+45
-165
lines changed

2 files changed

+45
-165
lines changed

js/main.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ function getHelpText(name, id, type) {
460460
let entitytype = getEntityType(type);
461461
const items = id.split('_', 1);
462462
id = id.substring(items[0].length + 1);
463+
if (id < 0) return '?';
463464
let text = data.strings[data.data[entitytype][id]['LanguageHelpId']];
464465
if (text === undefined) {
465466
return '?';

js/techtree.js

Lines changed: 44 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -113,20 +113,13 @@ const ARCHER = 4;
113113
const HAND_CANNONEER = 5;
114114
const ELITE_SKIRMISHER = 6;
115115
const SKIRMISHER = 7;
116-
const LONGBOWMAN = 8;
117-
const MANGUDAI = 11;
118116
const FISHING_SHIP = 13;
119117
const TRADE_COG = 17;
120118
const WAR_GALLEY = 21;
121119
const CROSSBOWMAN = 24;
122-
const TEUTONIC_KNIGHT = 25;
123120
const BOMBARD_CANNON = 36;
124121
const KNIGHT = 38;
125122
const CAVALRY_ARCHER = 39;
126-
const CATAPHRACT = 40;
127-
const HUSKARL = 41;
128-
const JANISSARY = 46;
129-
const CHU_KO_NU = 73;
130123
const MILITIA = 74;
131124
const MAN_AT_ARMS = 75;
132125
const LONG_SWORDSMAN = 77;
@@ -136,15 +129,10 @@ const MONK = 125;
136129
const TRADE_CART = 128;
137130
const SLINGER = 185;
138131
const IMPERIAL_CAMEL_RIDER = 207;
139-
const WOAD_RAIDER = 232;
140-
const WAR_ELEPHANT = 239;
141132
const LONGBOAT = 250;
142133
const SCORPION = 279;
143134
const MANGONEL = 280;
144-
const THROWING_AXEMAN = 281;
145-
const MAMELUKE = 282;
146135
const CAVALIER = 283;
147-
const SAMURAI = 291;
148136
const CAMEL_RIDER = 329;
149137
const HEAVY_CAMEL_RIDER = 330;
150138
const TREBUCHET = 331;
@@ -162,95 +150,37 @@ const ARBALESTER = 492;
162150
const DEMOLITION_SHIP = 527;
163151
const HEAVY_DEMO_SHIP = 528;
164152
const FIRE_SHIP = 529;
165-
const ELITE_LONGBOWMAN = 530;
166-
const ELITE_THROWING_AXEMAN = 531;
167153
const FAST_FIRE_SHIP = 532;
168154
const ELITE_LONGBOAT = 533;
169-
const ELITE_WOAD_RAIDER = 534;
170155
const GALLEY = 539;
171156
const HEAVY_SCORPION = 542;
172157
const TRANSPORT_SHIP = 545;
173158
const LIGHT_CAVALRY = 546;
174159
const SIEGE_RAM = 548;
175160
const ONAGER = 550;
176-
const ELITE_CATAPHRACT = 553;
177-
const ELITE_TEUTONIC_KNIGHT = 554;
178-
const ELITE_HUSKARL = 555;
179-
const ELITE_MAMELUKE = 556;
180-
const ELITE_JANISSARY = 557;
181-
const ELITE_WAR_ELEPHANT = 558;
182-
const ELITE_CHU_KO_NU = 559;
183-
const ELITE_SAMURAI = 560;
184-
const ELITE_MANGUDAI = 561;
185161
const CHAMPION = 567;
186162
const PALADIN = 569;
187163
const SIEGE_ONAGER = 588;
188164
const ELITE_CANNON_GALLEON = 691;
189-
const BERSERK = 692;
190-
const ELITE_BERSERK = 694;
191-
const JAGUAR_WARRIOR = 725;
192-
const ELITE_JAGUAR_WARRIOR = 726;
193165
const EAGLE_SCOUT = 751;
194166
const ELITE_EAGLE_WARRIOR = 752;
195167
const EAGLE_WARRIOR = 753;
196-
const TARKAN = 755;
197-
const ELITE_TARKAN = 757;
198-
const PLUMED_ARCHER = 763;
199-
const ELITE_PLUMED_ARCHER = 765;
200-
const CONQUISTADOR = 771;
201-
const ELITE_CONQUISTADOR = 773;
202168
const MISSIONARY = 775;
203-
const WAR_WAGON = 827;
204-
const ELITE_WAR_WAGON = 829;
205169
const TURTLE_SHIP = 831;
206170
const ELITE_TURTLE_SHIP = 832;
207-
const GENOESE_CROSSBOWMAN = 866;
208-
const ELITE_GENOESE_CROSSBOWMAN = 868;
209-
const MAGYAR_HUSZAR = 869;
210-
const ELITE_MAGYAR_HUSZAR = 871;
211171
const ELEPHANT_ARCHER = 873;
212172
const ELITE_ELEPHANT_ARCHER = 875;
213-
const BOYAR = 876;
214-
const ELITE_BOYAR = 878;
215-
const KAMAYUK = 879;
216-
const ELITE_KAMAYUK = 881;
217173
const CONDOTTIERO = 882;
218-
const ORGAN_GUN = 1001;
219-
const ELITE_ORGAN_GUN = 1003;
220174
const CARAVEL = 1004;
221175
const ELITE_CARAVEL = 1006;
222-
const CAMEL_ARCHER = 1007;
223-
const ELITE_CAMEL_ARCHER = 1009;
224176
const GENITOUR = 1010;
225177
const ELITE_GENITOUR = 1012;
226-
const GBETO = 1013;
227-
const ELITE_GBETO = 1015;
228-
const SHOTEL_WARRIOR = 1016;
229-
const ELITE_SHOTEL_WARRIOR = 1018;
230178
const FIRE_GALLEY = 1103;
231179
const DEMOLITION_RAFT = 1104;
232180
const SIEGE_TOWER = 1105;
233-
const BALLISTA_ELEPHANT = 1120;
234-
const ELITE_BALLISTA_ELEPHANT = 1122;
235-
const KARAMBIT_WARRIOR = 1123;
236-
const ELITE_KARAMBIT_WARRIOR = 1125;
237-
const ARAMBAI = 1126;
238-
const ELITE_ARAMBAI = 1128;
239-
const RATTAN_ARCHER = 1129;
240-
const ELITE_RATTAN_ARCHER = 1131;
241181
const BATTLE_ELEPHANT = 1132;
242182
const ELITE_BATTLE_ELEPHANT = 1134;
243183
const IMPERIAL_SKIRMISHER = 1155;
244-
const KONNIK = 1225;
245-
const ELITE_KONNIK = 1227;
246-
const KESHIK = 1228;
247-
const ELITE_KESHIK = 1230;
248-
const KIPCHAK = 1231;
249-
const ELITE_KIPCHAK = 1233;
250-
const LEITIS = 1234;
251-
const ELITE_LEITIS = 1236;
252-
const DISMOUNTED_KONNIK = 1252;
253-
const DISMOUNTED_ELITE_KONNIK = 1253;
254184
const KONNIK_2 = 1254;
255185
const ELITE_KONNIK_2 = 1255;
256186
const BATTERING_RAM = 1258;
@@ -259,17 +189,9 @@ const DRAGON_FIRE_SHIP = 1302;
259189
const STEPPE_LANCER = 1370;
260190
const ELITE_STEPPE_LANCER = 1372;
261191
const XOLOTL_WARRIOR = 1570;
262-
const COUSTILLIER = 1655;
263-
const ELITE_COUSTILLIER = 1657;
264-
const SERJEANT = 1658;
265-
const ELITE_SERJEANT = 1659;
266192
const DSERJEANT = 1660;
267193
const ELITE_DSERJEANT = 1661;
268194
const FLEMISHPIKEMAN = 1699;
269-
const OBUCH = 1701;
270-
const ELITE_OBUCH = 1703;
271-
const HUSSITE_WAGON = 1704;
272-
const ELITE_HUSSITE_WAGON = 1706;
273195
const WINGED_HUSSAR = 1707;
274196
const HOUFNICE = 1709;
275197
const FOLWARK = 1734;
@@ -305,38 +227,23 @@ const LIU_BEI = 1966;
305227
const JIAN_SWORDSMAN = 1974;
306228
const SUN_JIAN = 1978;
307229

308-
const YEOMEN = 3;
309-
const EL_DORADO = 4;
310-
const FUROR_CELTICA = 5;
311-
const DRILL = 6;
312-
const MAHOUTS = 7;
313230
const TOWN_WATCH = 8;
314-
const ZEALOTRY = 9;
315-
const ARTILLERY = 10;
316-
const CRENELLATIONS = 11;
317231
const CROP_ROTATION = 12;
318232
const HEAVY_PLOW = 13;
319233
const HORSE_COLLAR = 14;
320234
const GUILDS = 15;
321-
const ANARCHY = 16;
322235
const BANKING = 17;
323-
const ATHEISM = 21;
324236
const LOOM = 22;
325237
const COINAGE = 23;
326-
const GARLAND_WARS = 24;
327238
const HUSBANDRY = 39;
328239
const FAITH = 45;
329240
const DEVOTION = 46;
330241
const CHEMISTRY = 47;
331242
const CARAVAN = 48;
332-
const BERSERKERGANG = 49;
333243
const MASONRY = 50;
334244
const ARCHITECTURE = 51;
335-
const ROCKETRY = 52;
336245
const TREADMILL_CRANE = 54;
337246
const GOLD_MINING = 55;
338-
const KATAPARUTO = 59;
339-
const LOGISTICA = 61;
340247
const KEEP_TECH = 63;
341248
const BOMBARD_TOWER_TECH = 64;
342249
const GILLNETS = 65;
@@ -349,7 +256,6 @@ const PLATE_MAIL_ARMOR = 77;
349256
const PLATE_BARDING_ARMOR = 80;
350257
const SCALE_BARDING_ARMOR = 81;
351258
const CHAIN_BARDING_ARMOR = 82;
352-
const BEARDED_AXE = 83;
353259
const BALLISTICS = 93;
354260
const FEUDAL_AGE = 101;
355261
const CASTLE_AGE = 102;
@@ -393,73 +299,26 @@ const PARTHIAN_TACTICS = 436;
393299
const THUMB_RING = 437;
394300
const THEOCRACY = 438;
395301
const HERESY = 439;
396-
const SUPREMACY = 440;
397302
const HERBAL_MEDICINE = 441;
398-
const SHINKICHON = 445;
399-
const PERFUSION = 457;
400-
const ATLATL = 460;
401-
const WARWOLF = 461;
402-
const GREAT_WALL = 462;
403-
const CHIEFTAINS = 463;
404-
const GREEK_FIRE = 464;
405-
const STRONGHOLD = 482;
406-
const MARAUDERS = 483;
407-
const YASAMA = 484;
408-
const OBSIDIAN_ARROWS = 485;
409-
const PANOKSEON = 486;
410-
const NOMADS = 487;
411-
const KAMANDARAN = 488;
412-
const IRONCLAD = 489;
413-
const MADRASAH = 490;
414-
const SIPAHI = 491;
415-
const INQUISITION = 492;
416-
const CHIVALRY = 493;
417-
const PAVISE = 494;
418-
const SILK_ROAD = 499;
419-
const SULTANS = 506;
420-
const SHATAGNI = 507;
421-
const ORTHODOXY = 512;
422-
const DRUZHINA = 513;
423-
const CORVINIAN_ARMY = 514;
424-
const RECURVE_BOW = 515;
425-
const ANDEAN_SLING = 516;
426-
const FABRIC_SHIELDS = 517;
427-
const CARRACK = 572;
428-
const ARQUEBUS = 573;
429-
const ROYAL_HEIRS = 574;
430-
const TORSION_ENGINES = 575;
431-
const TIGUI = 576;
432-
const FARIMBA = 577;
433-
const KASBAH = 578;
434-
const MAGHRABI_CAMELS = 579;
435303
const ARSON = 602;
436304
const ARROWSLITS = 608;
437-
const TUSK_SWORDS = 622;
438-
const DOUBLE_CROSSBOW = 623;
439-
const THALASSOCRACY = 624;
440-
const FORCED_LEVY = 625;
441-
const HOWDAH = 626;
442-
const MANIPUR_CAVALRY = 627;
443-
const CHATRAS = 628;
444-
const PAPER_MONEY = 629;
445-
const STIRRUPS = 685;
446-
const BAGAINS = 686;
447-
const SILK_ARMOR = 687;
448-
const TIMURID_SIEGECRAFT = 688;
449-
const STEPPE_HUSBANDRY = 689;
450-
const CUMAN_MERCENARIES = 690;
451-
const HILL_FORTS = 691;
452-
const TOWER_SHIELDS = 692;
453-
const SUPPLIES = 716;
454-
const BURGUNDIAN_VINEYARDS = 754;
455-
const FLEMISH_REVOLUTION = 755;
456-
const FIRST_CRUSADE = 756;
457-
const SCUTAGE = 757;
458305
const GAMBESONS = 875;
459306
const DOMESTICATION = 1014;
460307
const PASTORALISM = 1013;
461308
const TRANSHUMANCE = 1012;
462309

310+
// placeholders for upcoming naval rework
311+
const FISHING_LINES = -1;
312+
const HULK = -2;
313+
const WAR_HULK = -3;
314+
const CARRACK = -4;
315+
const MEDIUM_WARSHIPS = -5;
316+
const HEAVY_WARSHIPS = -6;
317+
const CLINKER_CONSTRUCTION = -7;
318+
const CARVEL_HULL = -8;
319+
const SIPHONS = -9;
320+
const INCENDIARIES = -10;
321+
463322
const BUILDING_INDEX = [
464323
ARCHERY_RANGE,
465324
BARRACKS,
@@ -724,6 +583,7 @@ function getName(id, itemtype) {
724583
if(id.toString().startsWith('UNIQUE')){
725584
return id;
726585
}
586+
if (id < 0) return 'Placeholder';
727587
const languageNameId = data['data'][itemtype][id]['LanguageNameId'];
728588
return data['strings'][languageNameId];
729589
}
@@ -902,31 +762,34 @@ function getDefaultTree() {
902762
docklane.rows.dark_1.push(building(DOCK));
903763
docklane.rows.dark_2.push(unit(FISHING_SHIP));
904764
docklane.rows.dark_2.push(unit(TRANSPORT_SHIP));
765+
docklane.rows.feudal_1.push(tech(FISHING_LINES));
905766
docklane.rows.feudal_1.push(unit(FIRE_GALLEY));
906-
docklane.rows.feudal_1.push(unit(TRADE_COG));
907-
docklane.rows.feudal_1.push(unit(DEMOLITION_RAFT));
767+
docklane.rows.feudal_1.push(unit(HULK));
908768
docklane.rows.feudal_1.push(unit(GALLEY));
909-
docklane.rows.castle_1.push(unit(FIRE_SHIP));
769+
docklane.rows.feudal_1.push(unit(DEMOLITION_RAFT));
770+
docklane.rows.feudal_1.push(unit(TRADE_COG));
910771
docklane.rows.castle_1.push(tech(GILLNETS));
911-
docklane.rows.castle_1.push(unit(DEMOLITION_SHIP));
772+
docklane.rows.castle_1.push(unit(FIRE_SHIP));
773+
docklane.rows.castle_1.push(unit(WAR_HULK));
912774
docklane.rows.castle_1.push(unit(WAR_GALLEY));
775+
docklane.rows.castle_1.push(unit(DEMOLITION_SHIP));
913776
docklane.rows.castle_1.push(uniqueunit(TURTLE_SHIP));
914777
docklane.rows.castle_1.push(uniqueunit(LONGBOAT));
915778
docklane.rows.castle_1.push(uniqueunit(CARAVEL));
916-
docklane.rows.castle_1.push(tech(CAREENING));
917-
docklane.rows.imperial_1.push(unit(FAST_FIRE_SHIP));
779+
docklane.rows.castle_1.push(tech(MEDIUM_WARSHIPS));
918780
docklane.rows.imperial_1.push(uniqueunit(DRAGON_FIRE_SHIP));
919-
docklane.rows.imperial_1.push(unit(HEAVY_DEMO_SHIP));
781+
docklane.rows.imperial_1.push(unit(FAST_FIRE_SHIP));
782+
docklane.rows.imperial_1.push(unit(CARRACK));
920783
docklane.rows.imperial_1.push(unit(GALLEON));
784+
docklane.rows.imperial_1.push(unit(HEAVY_DEMO_SHIP));
921785
docklane.rows.imperial_1.push(unit(CANNON_GALLEON));
922786
docklane.rows.imperial_1.push(uniqueunit(ELITE_TURTLE_SHIP));
923787
docklane.rows.imperial_1.push(uniqueunit(ELITE_LONGBOAT));
924788
docklane.rows.imperial_1.push(uniqueunit(ELITE_CARAVEL));
925-
docklane.rows.imperial_1.push(tech(DRY_DOCK));
789+
docklane.rows.imperial_1.push(tech(HEAVY_WARSHIPS));
926790
docklane.rows.imperial_2.push(unit(DROMON));
927791
docklane.rows.imperial_2.push(uniqueunit(LOU_CHUAN));
928792
docklane.rows.imperial_2.push(uniqueunit(THIRISADAI));
929-
docklane.rows.imperial_2.push(tech(SHIPWRIGHT));
930793
docklane.rows.imperial_2.push(unit(ELITE_CANNON_GALLEON));
931794
tree.lanes.push(docklane);
932795

@@ -945,12 +808,19 @@ function getDefaultTree() {
945808
universitylane.rows.castle_2.push(tech(GUARD_TOWER_TECH));
946809
universitylane.rows.castle_2.push(tech(HEATED_SHOT));
947810
universitylane.rows.castle_2.push(tech(MURDER_HOLES));
811+
universitylane.rows.castle_2.push(tech(CAREENING));
812+
universitylane.rows.castle_2.push(tech(CLINKER_CONSTRUCTION));
813+
universitylane.rows.castle_2.push(tech(SIPHONS));
948814
universitylane.rows.castle_2.push(tech(TREADMILL_CRANE));
949815
universitylane.rows.imperial_1.push(tech(ARCHITECTURE));
950816
universitylane.rows.imperial_1.push(tech(CHEMISTRY));
951817
universitylane.rows.imperial_1.push(tech(SIEGE_ENGINEERS));
952818
universitylane.rows.imperial_1.push(tech(KEEP_TECH));
953819
universitylane.rows.imperial_1.push(tech(ARROWSLITS));
820+
universitylane.rows.imperial_1.push(tech(SHIPWRIGHT));
821+
universitylane.rows.imperial_1.push(tech(DRY_DOCK));
822+
universitylane.rows.imperial_1.push(tech(CARVEL_HULL));
823+
universitylane.rows.imperial_1.push(tech(INCENDIARIES));
954824
universitylane.rows.imperial_2.push(tech(BOMBARD_TOWER_TECH));
955825
tree.lanes.push(universitylane);
956826

@@ -1197,13 +1067,16 @@ function getConnections() {
11971067
[b(DOCK), u(GALLEY)],
11981068
[u(GALLEY), u(WAR_GALLEY)],
11991069
[u(WAR_GALLEY), u(GALLEON)],
1200-
[b(DOCK), t(CAREENING)],
1201-
[t(CAREENING), t(DRY_DOCK)],
12021070
[b(DOCK), b(FISH_TRAP)],
1071+
[t(FISHING_LINES), t(GILLNETS)],
1072+
[b(DOCK), u(HULK)],
1073+
[u(HULK), u(WAR_HULK)],
1074+
[u(WAR_HULK), u(CARRACK)],
12031075
[u(FIRE_GALLEY), u(FIRE_SHIP)],
12041076
[u(FIRE_SHIP), u(FAST_FIRE_SHIP)],
12051077
[u(FIRE_SHIP), u(DRAGON_FIRE_SHIP)],
1206-
[b(DOCK), u(CANNON_GALLEON)],
1078+
[b(DOCK), t(MEDIUM_WARSHIPS)],
1079+
[t(MEDIUM_WARSHIPS), t(HEAVY_WARSHIPS)],
12071080
[u(CANNON_GALLEON), u(ELITE_CANNON_GALLEON)],
12081081
[b(WATCH_TOWER), b(GUARD_TOWER)],
12091082
[b(GUARD_TOWER), b(KEEP)],
@@ -1285,6 +1158,12 @@ function getConnections() {
12851158
[t(GUARD_TOWER_TECH), t(KEEP_TECH)],
12861159
[b(UNIVERSITY), t(HEATED_SHOT)],
12871160
[b(UNIVERSITY), t(MURDER_HOLES)],
1161+
[b(UNIVERSITY), t(CAREENING)],
1162+
[t(CAREENING), t(DRY_DOCK)],
1163+
[b(UNIVERSITY), t(CLINKER_CONSTRUCTION)],
1164+
[t(CLINKER_CONSTRUCTION), t(CARVEL_HULL)],
1165+
[b(UNIVERSITY), t(SIPHONS)],
1166+
[t(SIPHONS), t(INCENDIARIES)],
12881167
[b(UNIVERSITY), t(TREADMILL_CRANE)],
12891168
[t(CHEMISTRY), t(BOMBARD_TOWER_TECH)],
12901169
[b(MINING_CAMP), t(STONE_MINING)],

0 commit comments

Comments
 (0)