Page MenuHomeWildfire Games

[gameplay] separate camels from cavalry templates
Changes PlannedPublic

Authored by Nescio on Jul 22 2020, 2:05 PM.

Details

Reviewers
None
Group Reviewers
Balancing
Summary

This patch is similar to D1036/rP20682 (champion maceman) and D2595 (elephant archer).
This one creates separate generic templates for camels, independent of the cavalry templates. Their lines are mostly copied from the existing cavalry templates, with the following differences:

  • They have a Camel visible class instead of Cavalry, and as a consequences:
    • the Petra AI needs D2251 to be able to train them;
    • they no longer benefit from Cavalry technologies.
  • Gameplay stat tweaks:
    • <Armour/Hack>: 3 → 1
    • <Health/Max>: 100 → 140
    • <Loot/xp>: 130 → 140
    • <Promotion/RequiredXp>: 150 → 140
  • Footprints and status bar heights are taken from D2496, sounds from their specific children.

Furthermore, the two camel units (Blemmye javelineer for kush, Arab camel archer for kush) are renamed, and while at it, adding a suffix similar to those of cart mercenaries. Moreover, other civs can train Arab camels at captured ptol centres, since they don't have any camel units.

Test Plan

Check for completeness and correctness. Approve of the concept. Agree with the proposed changes.

Event Timeline

Nescio created this revision.Jul 22 2020, 2:05 PM
Owners added subscribers: Restricted Owners Package, Restricted Owners Package.Jul 22 2020, 2:05 PM
Nescio added a reviewer: Restricted Owners Package.Jul 22 2020, 2:06 PM

Successful build - Chance fights ever on the side of the prudent.

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 143| 143| 
| 144| 144| var mercenaryCampGuards = {
| 145| 145| 	"generic/temperate": [
| 146|    |-		{ "Template" : "structures/merc_camp_egyptian" },
|    | 146|+		{ "Template": "structures/merc_camp_egyptian" },
| 147| 147| 		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148| 148| 		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149| 149| 		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 144| 144| var mercenaryCampGuards = {
| 145| 145| 	"generic/temperate": [
| 146| 146| 		{ "Template" : "structures/merc_camp_egyptian" },
| 147|    |-		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
|    | 147|+		{ "Template": "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148| 148| 		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149| 149| 		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
| 150| 150| 		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 144| 144| var mercenaryCampGuards = {
| 145| 145| 	"generic/temperate": [
| 146| 146| 		{ "Template" : "structures/merc_camp_egyptian" },
| 147|    |-		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
|    | 147|+		{ "Template" : "units/mace_infantry_javelinist_b", "Count": 4 },
| 148| 148| 		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149| 149| 		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
| 150| 150| 		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 145| 145| 	"generic/temperate": [
| 146| 146| 		{ "Template" : "structures/merc_camp_egyptian" },
| 147| 147| 		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148|    |-		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
|    | 148|+		{ "Template": "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149| 149| 		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
| 150| 150| 		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
| 151| 151| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 145| 145| 	"generic/temperate": [
| 146| 146| 		{ "Template" : "structures/merc_camp_egyptian" },
| 147| 147| 		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148|    |-		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
|    | 148|+		{ "Template" : "units/mace_cavalry_spearman_e", "Count": 3 },
| 149| 149| 		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
| 150| 150| 		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
| 151| 151| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 146| 146| 		{ "Template" : "structures/merc_camp_egyptian" },
| 147| 147| 		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148| 148| 		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149|    |-		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
|    | 149|+		{ "Template": "units/mace_infantry_archer_a", "Count" : 4 },
| 150| 150| 		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
| 151| 151| 	],
| 152| 152| 	"generic/snowy": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 146| 146| 		{ "Template" : "structures/merc_camp_egyptian" },
| 147| 147| 		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148| 148| 		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149|    |-		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
|    | 149|+		{ "Template" : "units/mace_infantry_archer_a", "Count": 4 },
| 150| 150| 		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
| 151| 151| 	],
| 152| 152| 	"generic/snowy": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 147| 147| 		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148| 148| 		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149| 149| 		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
| 150|    |-		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
|    | 150|+		{ "Template": "units/mace_champion_infantry_a", "Count" : 3 }
| 151| 151| 	],
| 152| 152| 	"generic/snowy": [
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 147| 147| 		{ "Template" : "units/mace_infantry_javelinist_b", "Count" : 4 },
| 148| 148| 		{ "Template" : "units/mace_cavalry_spearman_e", "Count" : 3 },
| 149| 149| 		{ "Template" : "units/mace_infantry_archer_a", "Count" : 4 },
| 150|    |-		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
|    | 150|+		{ "Template" : "units/mace_champion_infantry_a", "Count": 3 }
| 151| 151| 	],
| 152| 152| 	"generic/snowy": [
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 150| 150| 		{ "Template" : "units/mace_champion_infantry_a", "Count" : 3 }
| 151| 151| 	],
| 152| 152| 	"generic/snowy": [
| 153|    |-		{ "Template" : "structures/ptol_mercenary_camp" },
|    | 153|+		{ "Template": "structures/ptol_mercenary_camp" },
| 154| 154| 		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155| 155| 		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156| 156| 		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 151| 151| 	],
| 152| 152| 	"generic/snowy": [
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 154|    |-		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
|    | 154|+		{ "Template": "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155| 155| 		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156| 156| 		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
| 157| 157| 		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 151| 151| 	],
| 152| 152| 	"generic/snowy": [
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 154|    |-		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
|    | 154|+		{ "Template" : "units/brit_infantry_javelinist_b", "Count": 4 },
| 155| 155| 		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156| 156| 		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
| 157| 157| 		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 152| 152| 	"generic/snowy": [
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 154| 154| 		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155|    |-		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
|    | 155|+		{ "Template": "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156| 156| 		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
| 157| 157| 		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
| 158| 158| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 152| 152| 	"generic/snowy": [
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 154| 154| 		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155|    |-		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
|    | 155|+		{ "Template" : "units/brit_cavalry_swordsman_e", "Count": 3 },
| 156| 156| 		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
| 157| 157| 		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
| 158| 158| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 154| 154| 		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155| 155| 		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156|    |-		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
|    | 156|+		{ "Template": "units/brit_infantry_slinger_a", "Count" : 4 },
| 157| 157| 		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
| 158| 158| 	],
| 159| 159| 	"generic/desert": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 153| 153| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 154| 154| 		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155| 155| 		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156|    |-		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
|    | 156|+		{ "Template" : "units/brit_infantry_slinger_a", "Count": 4 },
| 157| 157| 		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
| 158| 158| 	],
| 159| 159| 	"generic/desert": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 154| 154| 		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155| 155| 		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156| 156| 		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
| 157|    |-		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
|    | 157|+		{ "Template": "units/brit_champion_infantry", "Count" : 3 }
| 158| 158| 	],
| 159| 159| 	"generic/desert": [
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 154| 154| 		{ "Template" : "units/brit_infantry_javelinist_b", "Count" : 4 },
| 155| 155| 		{ "Template" : "units/brit_cavalry_swordsman_e", "Count" : 3 },
| 156| 156| 		{ "Template" : "units/brit_infantry_slinger_a", "Count" : 4 },
| 157|    |-		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
|    | 157|+		{ "Template" : "units/brit_champion_infantry", "Count": 3 }
| 158| 158| 	],
| 159| 159| 	"generic/desert": [
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 157| 157| 		{ "Template" : "units/brit_champion_infantry", "Count" : 3 }
| 158| 158| 	],
| 159| 159| 	"generic/desert": [
| 160|    |-		{ "Template" : "structures/ptol_mercenary_camp" },
|    | 160|+		{ "Template": "structures/ptol_mercenary_camp" },
| 161| 161| 		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162| 162| 		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163| 163| 		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 158| 158| 	],
| 159| 159| 	"generic/desert": [
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 161|    |-		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
|    | 161|+		{ "Template": "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162| 162| 		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163| 163| 		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
| 164| 164| 		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 158| 158| 	],
| 159| 159| 	"generic/desert": [
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 161|    |-		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
|    | 161|+		{ "Template" : "units/pers_infantry_javelinist_b", "Count": 4 },
| 162| 162| 		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163| 163| 		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
| 164| 164| 		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 159| 159| 	"generic/desert": [
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 161| 161| 		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162|    |-		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
|    | 162|+		{ "Template": "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163| 163| 		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
| 164| 164| 		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
| 165| 165| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 159| 159| 	"generic/desert": [
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 161| 161| 		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162|    |-		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
|    | 162|+		{ "Template" : "units/pers_cavalry_axeman_e", "Count": 3 },
| 163| 163| 		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
| 164| 164| 		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
| 165| 165| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 161| 161| 		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162| 162| 		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163|    |-		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
|    | 163|+		{ "Template": "units/pers_infantry_archer_a", "Count" : 4 },
| 164| 164| 		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
| 165| 165| 	],
| 166| 166| 	"generic/alpine": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 160| 160| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 161| 161| 		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162| 162| 		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163|    |-		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
|    | 163|+		{ "Template" : "units/pers_infantry_archer_a", "Count": 4 },
| 164| 164| 		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
| 165| 165| 	],
| 166| 166| 	"generic/alpine": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 161| 161| 		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162| 162| 		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163| 163| 		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
| 164|    |-		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
|    | 164|+		{ "Template": "units/pers_champion_infantry", "Count" : 3 }
| 165| 165| 	],
| 166| 166| 	"generic/alpine": [
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 161| 161| 		{ "Template" : "units/pers_infantry_javelinist_b", "Count" : 4 },
| 162| 162| 		{ "Template" : "units/pers_cavalry_axeman_e", "Count" : 3 },
| 163| 163| 		{ "Template" : "units/pers_infantry_archer_a", "Count" : 4 },
| 164|    |-		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
|    | 164|+		{ "Template" : "units/pers_champion_infantry", "Count": 3 }
| 165| 165| 	],
| 166| 166| 	"generic/alpine": [
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 164| 164| 		{ "Template" : "units/pers_champion_infantry", "Count" : 3 }
| 165| 165| 	],
| 166| 166| 	"generic/alpine": [
| 167|    |-		{ "Template" : "structures/ptol_mercenary_camp" },
|    | 167|+		{ "Template": "structures/ptol_mercenary_camp" },
| 168| 168| 		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169| 169| 		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170| 170| 		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 165| 165| 	],
| 166| 166| 	"generic/alpine": [
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 168|    |-		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
|    | 168|+		{ "Template": "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169| 169| 		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170| 170| 		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
| 171| 171| 		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 165| 165| 	],
| 166| 166| 	"generic/alpine": [
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 168|    |-		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
|    | 168|+		{ "Template" : "units/rome_infantry_swordsman_b", "Count": 4 },
| 169| 169| 		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170| 170| 		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
| 171| 171| 		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 166| 166| 	"generic/alpine": [
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 168| 168| 		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169|    |-		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
|    | 169|+		{ "Template": "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170| 170| 		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
| 171| 171| 		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
| 172| 172| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 166| 166| 	"generic/alpine": [
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 168| 168| 		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169|    |-		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
|    | 169|+		{ "Template" : "units/rome_cavalry_spearman_e", "Count": 3 },
| 170| 170| 		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
| 171| 171| 		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
| 172| 172| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 168| 168| 		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169| 169| 		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170|    |-		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
|    | 170|+		{ "Template": "units/rome_infantry_javelinist_a", "Count" : 4 },
| 171| 171| 		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
| 172| 172| 	],
| 173| 173| 	"generic/mediterranean": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 167| 167| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 168| 168| 		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169| 169| 		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170|    |-		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
|    | 170|+		{ "Template" : "units/rome_infantry_javelinist_a", "Count": 4 },
| 171| 171| 		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
| 172| 172| 	],
| 173| 173| 	"generic/mediterranean": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 168| 168| 		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169| 169| 		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170| 170| 		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
| 171|    |-		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
|    | 171|+		{ "Template": "units/rome_champion_infantry", "Count" : 3 }
| 172| 172| 	],
| 173| 173| 	"generic/mediterranean": [
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 168| 168| 		{ "Template" : "units/rome_infantry_swordsman_b", "Count" : 4 },
| 169| 169| 		{ "Template" : "units/rome_cavalry_spearman_e", "Count" : 3 },
| 170| 170| 		{ "Template" : "units/rome_infantry_javelinist_a", "Count" : 4 },
| 171|    |-		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
|    | 171|+		{ "Template" : "units/rome_champion_infantry", "Count": 3 }
| 172| 172| 	],
| 173| 173| 	"generic/mediterranean": [
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 171| 171| 		{ "Template" : "units/rome_champion_infantry", "Count" : 3 }
| 172| 172| 	],
| 173| 173| 	"generic/mediterranean": [
| 174|    |-		{ "Template" : "structures/merc_camp_egyptian" },
|    | 174|+		{ "Template": "structures/merc_camp_egyptian" },
| 175| 175| 		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176| 176| 		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177| 177| 		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 172| 172| 	],
| 173| 173| 	"generic/mediterranean": [
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
| 175|    |-		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
|    | 175|+		{ "Template": "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176| 176| 		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177| 177| 		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
| 178| 178| 		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 172| 172| 	],
| 173| 173| 	"generic/mediterranean": [
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
| 175|    |-		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
|    | 175|+		{ "Template" : "units/iber_infantry_javelinist_b", "Count": 4 },
| 176| 176| 		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177| 177| 		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
| 178| 178| 		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 173| 173| 	"generic/mediterranean": [
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
| 175| 175| 		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176|    |-		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
|    | 176|+		{ "Template": "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177| 177| 		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
| 178| 178| 		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
| 179| 179| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 173| 173| 	"generic/mediterranean": [
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
| 175| 175| 		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176|    |-		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
|    | 176|+		{ "Template" : "units/iber_cavalry_spearman_e", "Count": 3 },
| 177| 177| 		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
| 178| 178| 		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
| 179| 179| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
| 175| 175| 		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176| 176| 		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177|    |-		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
|    | 177|+		{ "Template": "units/iber_infantry_slinger_a", "Count" : 4 },
| 178| 178| 		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
| 179| 179| 	],
| 180| 180| 	"generic/savanna": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 174| 174| 		{ "Template" : "structures/merc_camp_egyptian" },
| 175| 175| 		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176| 176| 		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177|    |-		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
|    | 177|+		{ "Template" : "units/iber_infantry_slinger_a", "Count": 4 },
| 178| 178| 		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
| 179| 179| 	],
| 180| 180| 	"generic/savanna": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 175| 175| 		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176| 176| 		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177| 177| 		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
| 178|    |-		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
|    | 178|+		{ "Template": "units/iber_champion_infantry", "Count" : 3 }
| 179| 179| 	],
| 180| 180| 	"generic/savanna": [
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 175| 175| 		{ "Template" : "units/iber_infantry_javelinist_b", "Count" : 4 },
| 176| 176| 		{ "Template" : "units/iber_cavalry_spearman_e", "Count" : 3 },
| 177| 177| 		{ "Template" : "units/iber_infantry_slinger_a", "Count" : 4 },
| 178|    |-		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
|    | 178|+		{ "Template" : "units/iber_champion_infantry", "Count": 3 }
| 179| 179| 	],
| 180| 180| 	"generic/savanna": [
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 178| 178| 		{ "Template" : "units/iber_champion_infantry", "Count" : 3 }
| 179| 179| 	],
| 180| 180| 	"generic/savanna": [
| 181|    |-		{ "Template" : "structures/merc_camp_egyptian" },
|    | 181|+		{ "Template": "structures/merc_camp_egyptian" },
| 182| 182| 		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183| 183| 		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184| 184| 		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 179| 179| 	],
| 180| 180| 	"generic/savanna": [
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
| 182|    |-		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
|    | 182|+		{ "Template": "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183| 183| 		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184| 184| 		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
| 185| 185| 		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 179| 179| 	],
| 180| 180| 	"generic/savanna": [
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
| 182|    |-		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
|    | 182|+		{ "Template" : "units/sele_infantry_javelinist_b", "Count": 4 },
| 183| 183| 		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184| 184| 		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
| 185| 185| 		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 180| 180| 	"generic/savanna": [
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
| 182| 182| 		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183|    |-		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
|    | 183|+		{ "Template": "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184| 184| 		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
| 185| 185| 		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
| 186| 186| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 180| 180| 	"generic/savanna": [
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
| 182| 182| 		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183|    |-		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
|    | 183|+		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count": 3 },
| 184| 184| 		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
| 185| 185| 		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
| 186| 186| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
| 182| 182| 		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183| 183| 		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184|    |-		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
|    | 184|+		{ "Template": "units/sele_infantry_spearman_a", "Count" : 4 },
| 185| 185| 		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
| 186| 186| 	],
| 187| 187| 	"generic/tropic": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 181| 181| 		{ "Template" : "structures/merc_camp_egyptian" },
| 182| 182| 		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183| 183| 		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184|    |-		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
|    | 184|+		{ "Template" : "units/sele_infantry_spearman_a", "Count": 4 },
| 185| 185| 		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
| 186| 186| 	],
| 187| 187| 	"generic/tropic": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 182| 182| 		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183| 183| 		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184| 184| 		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
| 185|    |-		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
|    | 185|+		{ "Template": "units/sele_champion_infantry_swordsman", "Count" : 3 }
| 186| 186| 	],
| 187| 187| 	"generic/tropic": [
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 182| 182| 		{ "Template" : "units/sele_infantry_javelinist_b", "Count" : 4 },
| 183| 183| 		{ "Template" : "units/sele_cavalry_spearman_merc_e", "Count" : 3 },
| 184| 184| 		{ "Template" : "units/sele_infantry_spearman_a", "Count" : 4 },
| 185|    |-		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
|    | 185|+		{ "Template" : "units/sele_champion_infantry_swordsman", "Count": 3 }
| 186| 186| 	],
| 187| 187| 	"generic/tropic": [
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 185| 185| 		{ "Template" : "units/sele_champion_infantry_swordsman", "Count" : 3 }
| 186| 186| 	],
| 187| 187| 	"generic/tropic": [
| 188|    |-		{ "Template" : "structures/merc_camp_egyptian" },
|    | 188|+		{ "Template": "structures/merc_camp_egyptian" },
| 189| 189| 		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190| 190| 		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191| 191| 		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 186| 186| 	],
| 187| 187| 	"generic/tropic": [
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
| 189|    |-		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
|    | 189|+		{ "Template": "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190| 190| 		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191| 191| 		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
| 192| 192| 		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 186| 186| 	],
| 187| 187| 	"generic/tropic": [
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
| 189|    |-		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
|    | 189|+		{ "Template" : "units/ptol_infantry_javelinist_b", "Count": 4 },
| 190| 190| 		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191| 191| 		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
| 192| 192| 		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 187| 187| 	"generic/tropic": [
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
| 189| 189| 		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190|    |-		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
|    | 190|+		{ "Template": "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191| 191| 		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
| 192| 192| 		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
| 193| 193| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 187| 187| 	"generic/tropic": [
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
| 189| 189| 		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190|    |-		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
|    | 190|+		{ "Template" : "units/ptol_camel_archer_arab_e", "Count": 3 },
| 191| 191| 		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
| 192| 192| 		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
| 193| 193| 	],
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
| 189| 189| 		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190| 190| 		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191|    |-		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
|    | 191|+		{ "Template": "units/ptol_infantry_slinger_a", "Count" : 4 },
| 192| 192| 		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
| 193| 193| 	],
| 194| 194| 	"generic/autumn": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 188| 188| 		{ "Template" : "structures/merc_camp_egyptian" },
| 189| 189| 		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190| 190| 		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191|    |-		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
|    | 191|+		{ "Template" : "units/ptol_infantry_slinger_a", "Count": 4 },
| 192| 192| 		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
| 193| 193| 	],
| 194| 194| 	"generic/autumn": [
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 189| 189| 		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190| 190| 		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191| 191| 		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
| 192|    |-		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
|    | 192|+		{ "Template": "units/ptol_champion_infantry_pikeman", "Count" : 3 }
| 193| 193| 	],
| 194| 194| 	"generic/autumn": [
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 189| 189| 		{ "Template" : "units/ptol_infantry_javelinist_b", "Count" : 4 },
| 190| 190| 		{ "Template" : "units/ptol_camel_archer_arab_e", "Count" : 3 },
| 191| 191| 		{ "Template" : "units/ptol_infantry_slinger_a", "Count" : 4 },
| 192|    |-		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
|    | 192|+		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count": 3 }
| 193| 193| 	],
| 194| 194| 	"generic/autumn": [
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 192| 192| 		{ "Template" : "units/ptol_champion_infantry_pikeman", "Count" : 3 }
| 193| 193| 	],
| 194| 194| 	"generic/autumn": [
| 195|    |-		{ "Template" : "structures/ptol_mercenary_camp" },
|    | 195|+		{ "Template": "structures/ptol_mercenary_camp" },
| 196| 196| 		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197| 197| 		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198| 198| 		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 193| 193| 	],
| 194| 194| 	"generic/autumn": [
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 196|    |-		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
|    | 196|+		{ "Template": "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197| 197| 		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198| 198| 		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
| 199| 199| 		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 193| 193| 	],
| 194| 194| 	"generic/autumn": [
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 196|    |-		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
|    | 196|+		{ "Template" : "units/gaul_infantry_javelinist_b", "Count": 4 },
| 197| 197| 		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198| 198| 		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
| 199| 199| 		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 194| 194| 	"generic/autumn": [
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 196| 196| 		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197|    |-		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
|    | 197|+		{ "Template": "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198| 198| 		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
| 199| 199| 		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
| 200| 200| 	]
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 194| 194| 	"generic/autumn": [
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 196| 196| 		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197|    |-		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
|    | 197|+		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count": 3 },
| 198| 198| 		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
| 199| 199| 		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
| 200| 200| 	]
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 196| 196| 		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197| 197| 		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198|    |-		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
|    | 198|+		{ "Template": "units/gaul_infantry_slinger_a", "Count" : 4 },
| 199| 199| 		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
| 200| 200| 	]
| 201| 201| };
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 195| 195| 		{ "Template" : "structures/ptol_mercenary_camp" },
| 196| 196| 		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197| 197| 		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198|    |-		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
|    | 198|+		{ "Template" : "units/gaul_infantry_slinger_a", "Count": 4 },
| 199| 199| 		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
| 200| 200| 	]
| 201| 201| };
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Template'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 196| 196| 		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197| 197| 		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198| 198| 		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
| 199|    |-		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
|    | 199|+		{ "Template": "units/gaul_champion_infantry", "Count" : 3 }
| 200| 200| 	]
| 201| 201| };
| 202| 202| 
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'Count'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 196| 196| 		{ "Template" : "units/gaul_infantry_javelinist_b", "Count" : 4 },
| 197| 197| 		{ "Template" : "units/gaul_cavalry_swordsman_e", "Count" : 3 },
| 198| 198| 		{ "Template" : "units/gaul_infantry_slinger_a", "Count" : 4 },
| 199|    |-		{ "Template" : "units/gaul_champion_infantry", "Count" : 3 }
|    | 199|+		{ "Template" : "units/gaul_champion_infantry", "Count": 3 }
| 200| 200| 	]
| 201| 201| };
| 202| 202| 
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space before value for key 'bench'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 281| 281| 	"overlap": 0,
| 282| 282| 	"fence": readyWallElement("other/fence_long", "gaia"),
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284|    |-	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
|    | 284|+	"bench": { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"indent"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 281| 281| 	"overlap": 0,
| 282| 282| 	"fence": readyWallElement("other/fence_long", "gaia"),
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284|    |-	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
|    | 284|+	"bench":     { "angle": Math.PI / 2, "length": 1.5, "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"bend"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 281| 281| 	"overlap": 0,
| 282| 282| 	"fence": readyWallElement("other/fence_long", "gaia"),
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284|    |-	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
|    | 284|+	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0, "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space before value for key 'foodBin'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 282| 282| 	"fence": readyWallElement("other/fence_long", "gaia"),
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285|    |-	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
|    | 285|+	"foodBin": { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"indent"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 282| 282| 	"fence": readyWallElement("other/fence_long", "gaia"),
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285|    |-	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
|    | 285|+	"foodBin":   { "angle": Math.PI / 2, "length": 1.5, "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"bend"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 282| 282| 	"fence": readyWallElement("other/fence_long", "gaia"),
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285|    |-	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
|    | 285|+	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0, "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space before value for key 'animal'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286|    |-	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
|    | 286|+	"animal": { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
| 289| 289| 
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"length"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286|    |-	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
|    | 286|+	"animal":    { "angle": 0, "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
| 289| 289| 
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"indent"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 283| 283| 	"fence_short": readyWallElement("other/fence_short", "gaia"),
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286|    |-	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
|    | 286|+	"animal":    { "angle": 0,           "length": 0, "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287| 287| 	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
| 289| 289| 
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"length"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287|    |-	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
|    | 287|+	"farmstead": { "angle": Math.PI, "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
| 289| 289| 
| 290| 290| let fences = [
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"indent"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287|    |-	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
|    | 287|+	"farmstead": { "angle": Math.PI,     "length": 0, "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
| 289| 289| 
| 290| 290| let fences = [
|    | [NORMAL] ESLintBear (no-multi-spaces):
|    | Multiple spaces found before '"bend"'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 284| 284| 	"bench":     { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "other/bench" },
| 285| 285| 	"foodBin":   { "angle": Math.PI / 2, "length": 1.5,  "indent": 0,    "bend": 0, "templateName": "gaia/treasure/food_bin" },
| 286| 286| 	"animal":    { "angle": 0,           "length": 0,    "indent": 0.75, "bend": 0, "templateName": farmEntities[currentBiome()].animal },
| 287|    |-	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3,   "bend": 0, "templateName": farmEntities[currentBiome()].building }
|    | 287|+	"farmstead": { "angle": Math.PI,     "length": 0,    "indent": -3, "bend": 0, "templateName": farmEntities[currentBiome()].building }
| 288| 288| };
| 289| 289| 
| 290| 290| let fences = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 0 tabs but found 1 space.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 418| 418| /**
| 419| 419|  * Base terrain shape generation and settings
| 420| 420|  */
| 421|    |- // Height range by map size
|    | 421|+// Height range by map size
| 422| 422| let heightScale = (g_Map.size + 512) / 1024 / 5;
| 423| 423| let heightRange = { "min": MIN_HEIGHT * heightScale, "max": MAX_HEIGHT * heightScale };
| 424| 424| 
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'min'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 494| 494| 	heightSeaGroundAdjusted + 7/8 * (heightRange.max - heightSeaGroundAdjusted), // 6 Lower forest border
| 495| 495| 	heightRange.max // 7 Forest
| 496| 496| ];
| 497|    |-let playerHeightRange = { "min" : heighLimits[3], "max" : heighLimits[4] };
|    | 497|+let playerHeightRange = { "min": heighLimits[3], "max" : heighLimits[4] };
| 498| 498| let resourceSpotHeightRange = { "min" : (heighLimits[2] + heighLimits[3]) / 2, "max" : (heighLimits[4] + heighLimits[5]) / 2 };
| 499| 499| let playerHeight = (playerHeightRange.min + playerHeightRange.max) / 2; // Average player height
| 500| 500| 
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'max'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 494| 494| 	heightSeaGroundAdjusted + 7/8 * (heightRange.max - heightSeaGroundAdjusted), // 6 Lower forest border
| 495| 495| 	heightRange.max // 7 Forest
| 496| 496| ];
| 497|    |-let playerHeightRange = { "min" : heighLimits[3], "max" : heighLimits[4] };
|    | 497|+let playerHeightRange = { "min" : heighLimits[3], "max": heighLimits[4] };
| 498| 498| let resourceSpotHeightRange = { "min" : (heighLimits[2] + heighLimits[3]) / 2, "max" : (heighLimits[4] + heighLimits[5]) / 2 };
| 499| 499| let playerHeight = (playerHeightRange.min + playerHeightRange.max) / 2; // Average player height
| 500| 500| 
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'min'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 495| 495| 	heightRange.max // 7 Forest
| 496| 496| ];
| 497| 497| let playerHeightRange = { "min" : heighLimits[3], "max" : heighLimits[4] };
| 498|    |-let resourceSpotHeightRange = { "min" : (heighLimits[2] + heighLimits[3]) / 2, "max" : (heighLimits[4] + heighLimits[5]) / 2 };
|    | 498|+let resourceSpotHeightRange = { "min": (heighLimits[2] + heighLimits[3]) / 2, "max" : (heighLimits[4] + heighLimits[5]) / 2 };
| 499| 499| let playerHeight = (playerHeightRange.min + playerHeightRange.max) / 2; // Average player height
| 500| 500| 
| 501| 501| g_Map.log("Chosing starting locations");
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'max'.
|----|    | /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/maps/random/wild_lake.js
| 495| 495| 	heightRange.max // 7 Forest
| 496| 496| ];
| 497| 497| let playerHeightRange = { "min" : heighLimits[3], "max" : heighLimits[4] };
| 498|    |-let resourceSpotHeightRange = { "min" : (heighLimits[2] + heighLimits[3]) / 2, "max" : (heighLimits[4] + heighLimits[5]) / 2 };
|    | 498|+let resourceSpotHeightRange = { "min" : (heighLimits[2] + heighLimits[3]) / 2, "max": (heighLimits[4] + heighLimits[5]) / 2 };
| 499| 499| let playerHeight = (playerHeightRange.min + playerHeightRange.max) / 2; // Average player height
| 500| 500| 
| 501| 501| g_Map.log("Chosing starting locations");

binaries/data/mods/public/maps/random/wild_lake.js
| 239| »   groveActors·=·[g_Decoratives.grass,·g_Decoratives.rockMedium,·g_Decoratives.bushMedium],·groveTileClass·=·undefined,
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'groveActors' is already declared in the upper scope.
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/2749/display/redirect

borg- added a subscriber: borg-.Jul 22 2020, 2:41 PM

Very good!!!

Im not sure about values.
100 > 140 is a very big increase, that would make rush pto even more op. What about same armour and 110 health?
I would like them to be a little slower than the cavalry, maybe -10%.

100 > 140 is a very big increase, that would make rush pto even more op. What about same armour and 110 health?

Yes, but the drop of two armour levels means they take 23% more hack damage. More importantly, they don't benefit from cavalry technologies (totalling +21% movement speed, +2 armour (equals +23% health), +44% attack damage), so they need a slightly better something at base.

I would like them to be a little slower than the cavalry, maybe -10%.

Due to their much longer legs, dromedary camels are easily capable of outrunning horses. Camel racing is still really popular on the Arabian peninsula. However, gameplay trumps realism, I suppose.

Nescio retitled this revision from separate camels from cavalry templates to [gameplay] separate camels from cavalry templates.Jul 22 2020, 2:54 PM
Nescio edited reviewers, added: Restricted Owners Package; removed: Restricted Owners Package.
borg- added a comment.EditedJul 22 2020, 4:04 PM

I would like them to be a little slower than the cavalry, maybe -10%.

Due to their much longer legs, dromedary camels are easily capable of outrunning horses. Camel racing is still really popular on the Arabian peninsula. However, gameplay trumps realism, I suppose.

keep armor 3 seems a little more realistic. Maybe armour 3 and health 120?
In this case the gameplay must surpass realism. Slowing movement speed is essential or pto rush become very very op.

Due to their much longer legs, dromedary camels are easily capable of outrunning horses. Camel racing is still really popular on the Arabian peninsula. However, gameplay trumps realism, I suppose.

Perhaps one could balance an increase in speed with something else?

I would like them to be a little slower than the cavalry, maybe -10%.

Due to their much longer legs, dromedary camels are easily capable of outrunning horses. Camel racing is still really popular on the Arabian peninsula. However, gameplay trumps realism, I suppose.

I'm not very familiar with camelidae, but I've read they are less confortable to ride than horses. As such, in a battle context, maybe their higher speed doesn't make sense as you couldn't attack/fire an arrow?

Slowing movement speed is essential or pto rush become very very op.

The Ptolemaic camel archer is a bit problematic. Yes, the Nabataean kingdom was a neighbour, trading partner, and friendly state first of the Ptolemies, later the Seleucids, and then the Romans. However, I do not know of a single occassion the Ptolemies used camels in battle. By contrast, the Seleucids did employ camel auxiliaries once, in the Battle of Magnesia (190 BC).
I think it would be best to move camel archers to a new mercenary camp, similar to the existing Blemmye camp, which would train Arab camel mercenaries, and may or may not be buildable by Ptolemies or Seleucids in the town phase. However, while improving realism and solving the village rush problem, it means the Ptolemies would start with a cavalry javelineer, making them less unique. Such a change belongs in a separate patch.

borg- added a comment.Jul 23 2020, 1:44 PM

Yes, but the drop of two armour levels means they take 23% more hack damage. More importantly, they don't benefit from cavalry technologies (totalling +21% movement speed, +2 armour (equals +23% health), +44% attack damage), so they need a slightly better something at base.

Techs must be changed to affect camels too.

borg- added a comment.EditedJul 23 2020, 5:54 PM

Anyway we need to change the speed of the cavalry. The difference in speed between the units does not make sense. In infantry this makes more sense, but not for citizen cavalry.
besides, the order of speed seems to be wrong, javelin should be the fastest cavalry. The correct one in my opinion would be javelin -> archer -> sword / spear (same speed), and the difference between speeds should be small, like 20 javelin, 19.5 archer, 18,5 sword / spear. -5% or -10% for camels.

Anyway we need to change the speed of the cavalry. The difference in speed between the units does not make sense. In infantry this makes more sense, but not for citizen cavalry.

Feel free to propose a patch.

besides, the order of speed seems to be wrong, javelin should be the fastest cavalry. The correct one in my opinion would be javelin -> archer -> sword / spear (same speed), and the difference between speeds should be small, like 20 javelin, 19.5 archer, 18,5 sword / spear. -5% or -10% for camels.

Historically or balance-wise?
Realistically it would be horse archer > javelineer > swordsman > spearman.
From a gameplay perspective the reverse makes more sense, otherwise how would you catch horse archers?

Nescio added a comment.EditedJul 23 2020, 7:04 PM

Techs must be changed to affect camels too.

If that's done, then what's the point of separating camels from cavalry anyway?

borg- added a comment.Jul 24 2020, 1:22 AM

Techs must be changed to affect camels too.

If that's done, then what's the point of separating camels from cavalry anyway?

I think I expressed badly. I mean that current blacksmith techs, for example, should affect camels as well. Techs like corral / stable like speed of movement and future techs can affect different units.

Historically or balance-wise?
Realistically it would be horse archer > javelineer > swordsman > spearman.
From a gameplay perspective the reverse makes more sense, otherwise how would you catch horse archers?

I prefer historically.

it also no longer makes sense the way it is now.
By the historical model, you say that we could not catch archer cavalry. As it is now, javelins cannot reach sword or spear cavalry, the same for archer cavalry. spear cavalry cannot reach sword cavalry. The problem is exactly the same in both models, so I prefer to chooset for the realistic model.
The real problem is not in the order of who should be faster, but in the great distance that the cavalry has from one another.

Sword cavalry 21.6, jave / archer 18.0.
The difference is big, if we choose the realistic model and reduce these numbers, such as 18 and 19.5 / 20, then a technology of speed of movement can make things equal. We gain realism and keep faithful to design document.

I think I expressed badly. I mean that current blacksmith techs, for example, should affect camels as well. Techs like corral / stable like speed of movement and future techs can affect different units.

Elephants and dogs don't benefit from blacksmith technologies either, so why should camels?

I prefer historically.

@ValihrAnt seems to prefer it the other way around: D2585. It's not committed yet, because currently cavalry archer stats are inherited by elephant archers, therefore D2595 has to be implemented first.

borg- added a comment.Jul 24 2020, 2:59 PM

Elephants and dogs don't benefit from blacksmith technologies either, so why should camels?

Camel and elephants are considered cavalry so elephant champion and archer elephant and camel should be included in blacksmith techs.
Anyway, the blacksmith's techs must be redone, they are outdated.

Nescio planned changes to this revision.Aug 15 2020, 9:07 PM
Nescio removed a reviewer: Restricted Owners Package.
Nescio removed subscribers: Restricted Owners Package, Restricted Owners Package.