Game definition jsons - Build/production lists

Learn the .json format
used to define characteristics of units and other game elements
Post Reply
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Game definition jsons - Build/production lists

Post by Stratego (dev) »

Here you can define in buildlists.json

listBuild and listTech and listNotBuild
which unit should appear in which order in production lists (also techs)

In "techLines"
You can set full upgrade lines easier than setting the Requires, RevovkerTechs and UpgradeAncesor values

like this:

Code: Select all

"comment":"This is a json only setting, all these settings will fill up the unit and tech Requires, RevovkerTechs and UpgradeAncesor values.",
"comment":"List content: UNIT_0, TECH_1, UNIT_1, TECH_2, UNIT_2, where unit0 is the base unit type, tech1 is upgrade level1 and its unit, tech2 upgrade level2 and its unit",
"techLines" : [
     {line : ["UNIT_TREBUCHET", "TECH_UPGRADE_UNIT_TREBUCHET_E", "UNIT_TREBUCHET_E"]},  
     {line : ["UNIT_FIRESHIP", "TECH_QUADRIREME", "UNIT_QUADRIREME", "TECH_UPGRADE_QUADRIREME_E", "UNIT_QUADRIREME_E"]}
     
],

In "buildTargets"
you can set the AI build strategyies

In "buildTargets"/FIELD_ATTACKER_CHEAP
used when
a) AI runs into the task: TASK_ATTACK_ENEMY_BUILDING - so it asks for some units against it
b) AI runs into the task: TASK_TC_GO_DEFEND - meaning it has a TC under siege, and should train units quickly

In "buildTargets"/FASTEST_UNIT_THAT_CAN_OCCUPY
This setting tells the AI which is the fastest unit the enemy can have (to decide if AI can leave a TC empty OR it should keep a unit in it as enemy might have a unit to occupy it in one movement of this fastest unit.) - in AOS game this is a light cavalry unit.

In "buildTargets"/TASK_TC_OCCUPY_ENEMY
This setting is is used by th AI to ask for unit types to train against the many many neutral TC-s early game (and also against empty enemy TC-s anytime during the game- it also adds the land transport unit speed to that range) - in general a cheap, fast unit like light-cavalry.

In "buildTargets"/GET_TC
With this setting you can define the TC type itself to use on TC spawning on random maps
eg:

Code: Select all

{"productionRole":"GET_TC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_TC", "UNIT_TC_WATER"]}}]}, 
or

Code: Select all

{"productionRole":"GET_TC", 
       "buildPriors" : [
           {"weight":50, "unitList":{"unitTypes":["UNIT_TC", "UNIT_TC_WATER"]}},
           {"weight":50, "unitList":{"unitTypes":["UNIT_TC2", "UNIT_TC_WATER2"]}}
        ]
}, 
you can set more than one TC type, to spawn random from them, also you can set different terrain affinity TC-s so u can make ONLY water TC or ONLy space TC (for AOG)


AI controlling settings: "otherSettings" includes:
enemyDistanceCalculation - a logic how the AI determines if a given maptile is peace/war/near war and so on:
IN_RANGE, // tile has an enemy on it, or can shoot there (so in attack range)
ONE_TURN, // enemy can go in one turn into attack range
FEW_TURNS, // enemy can go in eg. 3 turns with fastest unit counter
PEACE // above the few turns 3 turns
settings:
"enemyDistanceCalculationFewTurnsFar" - this tells the ai that how many turn of walking a FEW_TURNS distance


here are the tag definitions:

Code: Select all

	{
                "productionRole":"BASIC_TASK_BUILD_FACTORY",  //here you can set which "role" you define (must be set)
                "trnRace":"RACE_DWARF", //which race it is for (must be set)
                "trnTerrain":"TERRAIN_CLEARGROUND", which terrain ground = TERRAIN_CLEARGROUND or water = TERRAIN_WATER (optional, if not given it will work for both requests)
		"buildPriors" : [                                               //here you set which unit(s) is which "weight" in the randomization
			{"weight":80, "unitList":{"unitTypes":["UNIT_BUILDING_DWARF_DWARVEN_BARRACK"]}},   // means 80% to build barrack
			{"weight":20, "unitList":{"unitTypes":["UNIT_BUILDING_DWARF_SHOOTING_STAND","UNIT_BUILDING_DWARF_CRAFTSMANS_GUILD"]}} // means 20% to build shooting OR guild
			]
	},
here is a sample buildlist.json

Code: Select all

{
"listBuild" : [	

	"UNIT_UND_BUILDING_WALL",
	"UNIT_WALL",
	"UNIT_GATE",
	"UNIT_OUTPOST",
	"UNIT_BRIDGE",
	"UNIT_BRIDGE_STONE",
	
	
	"UNIT_BUILDING_DWARF_GUARD_TOWER",
	"UNIT_BUILDING_DWARF_DWARVEN_BARRACK",
	"UNIT_BUILDING_DWARF_SHOOTING_STAND",
	"UNIT_BUILDING_DWARVEN_TUNNEL",
        "UNIT_DWARF_DWARVEN_BRIDGE",
	"UNIT_BUILDING_DWARF_CRAFTSMANS_GUILD",
	"UNIT_BUILDING_DWARF_TAVERN",
	"UNIT_BUILDING_DWARF_RUNE_MASON",
	"UNIT_BUILDING_DWARF_KINGDOM_UNDER_THE_MOUNTAIN",
	
	
	
	"UNIT_DWARF_DWARVEN_WARRIOR",
        "UNIT_DWARF_HAMMER_FIGHTER",
        "UNIT_DWARF_DWARVEN_MONK",
	"UNIT_DWARF_DWARVEN_DEFENDER",
	"UNIT_DWARF_MITHRIL_GUARD",
	
	"UNIT_DWARF_BEAR_RIDER",
	"UNIT_DWARF_BOAR_RIDER",
	"UNIT_DWARF_HEAVY_BOAR_RIDER",
	"UNIT_DWARF_MASTER_BOAR_RIDER",	
	
	

	"UNIT_DWARF_DWARVEN_CROSSBOWS",
	"UNIT_DWARF_DWARVEN_RIFLEMAN",
	"UNIT_DWARF_DWARVEN_RIFLEMAN_SHIELDED",
        "UNIT_DWARF_DWARVEN_MORTAR",
	
	"UNIT_DWARF_ZEPPELIN_CARRIER",
        "UNIT_DWARF_STEAMSHIP",
	"UNIT_DWARF_DRAFNES_ZEPPELIN",

	

	"UNIT_DWARF_DWAR_PRIEST",
	"UNIT_DWARF_DWARF_CLERIC",
	"UNIT_DWARF_DWARVEN_ALCHEMIST",
	
	
	"UNIT_DWARF_DWARVEN_BILLMAN",
	"UNIT_DWARF_DWARVEN_WORKER",
        "UNIT_DWARF_WARSMITH",
        "UNIT_DWARF_ENGINEER",
	
	"UNIT_ELF_BRIDGE",
	"UNIT_TOWER",
	"UNIT_FORTRESS",
	"UNIT_ELF_BUILDING_TOWER",
	"UNIT_ELF_BUILDING_GREAT_TREE",
	"UNIT_ELF_BUILDING_WALL",
	"UNIT_ELF_BUILDING_ARCHERY",
	"UNIT_ELF_BUILDING_WOLF_DEN",
	"UNIT_ELF_BUILDING_ENT_TRAINING",
	"UNIT_ELF_BUILDING_CRAFTSMAN",
	
	
	
	 "UNIT_SCALEDFOLK_LABORER",
	 "UNIT_SCALEDFOLK_ARMORED_LABORER",
	 "UNIT_BUILDING_SCALEDFOLK_SWAMP_BARRACK",
	 "UNIT_SCALEDFOLK_LIZARD_BLADEMAN",
  "UNIT_SCALEDFOLK_ARMORED_LIZARD_BLADEMAN",
	 "UNIT_SCALEDFOLK_KOBOLD_SPEARMAN",
	 "UNIT_SCALEDFOLK_ARMORED_KOBOLD_SPEARMAN",
	 "UNIT_SCALEDFOLK_KOBOLD_WARRIOR",
	 "UNIT_SCALEDFOLK_ARMORED_KOBOLD_WARRIOR",
	 "UNIT_BUILDING_SCALEDFOLK_HUNTERS_HUT",
	 "UNIT_BUILDING_SCALEDFOLK_TEMPLE",
	 "UNIT_BUILDING_SCALEDFOLK_POSION_TOWER",
  "UNIT_BUILDING_SCALEDFOLK_FIRE_TOWER",
	 "UNIT_BUILDING_SCALEDFOLK_BRIDGE",
	 "UNIT_SCALEDFOLK_KOBOLD_ARCHER",
	 "UNIT_SCALEDFOLK_ARMORED_KOBOLD_ARCHER",
  "UNIT_SCALEDFOLK_KOBOLD_FIRE_ARCHER",
	 "UNIT_SCALEDFOLK_COBOLD_SHAMAN",
	 "UNIT_SCALEDFOLK_LIZARD_ARCHER",
  "UNIT_SCALEDFOLK_ARMORED_LIZARD_ARCHER",
	 "UNIT_SCALEDFOLK_COBOLD_SLINGER",
	 "UNIT_SCALEDFOLK_ARMORED_COBOLD_SLINGER",
  "UNIT_SCALEDFOLK_KOBOLD_MERCHANT",
	 "UNIT_BUILDING_SCALEDFOLK_STRONGHOLD",
	 "UNIT_SCALEDFOLK_KOBOLD_WARDEN",
	 "UNIT_SCALEDFOLK_HYDRA",
	 "UNIT_SCALEDFOLK_HEAVY_KOBOLD_WARDEN",
	 "UNIT_SCALEDFOLK_KOBOLD_CALVARY",
	 "UNIT_SCALEDFOLK_KOBOLD_HEAVY_CALVARY",
  "UNIT_SCALEDFOLK_KOMODO_DRAGON",
  "UNIT_SCALEDFOLK_KOMODO_RIDER",
  "UNIT_SCALEDFOLK_HEAVY_KOMODO_RIDER",
	 "UNIT_SCALEDFOLK_KOBOLD_LORD",
	 "UNIT_BUILDING_SCALEDFOLK_FORT",
	 "UNIT_SCALEDFOLK_TURTLEMAN",
  "UNIT_SCALEDFOLK_COBOLD_PRIESTESS",
  "UNIT_BUILDING_SCALEDFOLK_PALISADE",
  "UNIT_BUILDING_SCALEDFOLK_KEEP",
  "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_DRUMMER",
  "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_SWORDMAN",
  "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_ARCHER",
  "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_MACEMAN",
  "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_SPEARMAN",
  "UNIT_SCALEDFOLK_UNMOUNTED_HIGHBORN_KOBOLD_LADY",
  "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_LADY",
  "UNIT_SCALEDFOLK_COBOLD_CONJUROR",
  "UNIT_SCALEDFOLK_KOBOLD_EMPEROR",
  "UNIT_BUILDING_SCALEDFOLK_SNAKE_PIT",
  "UNIT_BUILDING_SCALEDFOLK_POISON_PIT",
  "UNIT_SCALEDFOLK_SNAKEMAN_DUAL_SWORDMAN",
  "UNIT_SCALEDFOLK_SNAKEMAN_SPEARMAN",
  "UNIT_SCALEDFOLK_RAFT",
  "UNIT_SCALEDFOLK_SMALL_SHIP",
  "UNIT_SCALEDFOLK_MANTLET",
  "UNIT_SCALEDFOLK_WAGON",
  "UNIT_BUILDING_SCALEDFOLK_DRAGON_TEMPLE",
  "UNIT_SCALEDFOLK_DEVOURER",
  "UNIT_SCALEDFOLK_GREEN_DRAGON",
  "UNIT_SCALEDFOLK_RED_DRAGON",
  "UNIT_SCALEDFOLK_GOLD_DRAGON",
  "UNIT_SCALEDFOLK_WHITE_DRAGON",
  "UNIT_SCALEDFOLK_DARK_DRAGON",
  "UNIT_SCALEDFOLK_GRAY_DRAGON",
	 
	"UNIT_ELF_BUILDING_ELVEN_PARAPET",
	
	"UNIT_UND_BUILDING_TOWER",
	"UNIT_UND_SPIRIT_TOWER",
	"UNIT_UND_BUILDING_GRAVEYARD",
	"UNIT_UND_BUILDING_CRYPT",
	"UNIT_UND_BUILDING_MANSION",
	"UNIT_UND_BUILDING_DARK_ALTAR",
	"UNIT_ORC_BUILDING_WALL",
	"UNIT_ORC_BUILDING_TOWER",
	"UNIT_ORC_BUILDING_MONSTER_CAVE",
	"UNIT_ORC_BUILDING_MONSTER_CAVE_GR",
	"UNIT_ORC_BUILDING_URUK_TENT",
	"UNIT_ORC_BUILDING_VOLCANO",
	"UNIT_ORC_BUILDING_CAMP",
	"UNIT_ORC_BUILDING_SHAMAN_HUT",
	"UNIT_MEGA_BUILDING_CASTLE",
	"UNIT_BUILDING_BARRACKS",
	"UNIT_BUILDING_ARCHERY",
	"UNIT_BUILDING_STABLE",
	"UNIT_BUILDING_SIEGE",
	"UNIT_BUILDING_CHURCH",
	"UNIT_BUILDING_MAGE_HUT", 
	"UNIT_BUILDING_BLACKSMITH",
	"UNIT_BUILDING_ADVANCEMENTS",
	"UNIT_BUILDING_DOCK",
	"UNIT_ELF_SACRED_SPRING",
	"UNIT_ORC_BUILDING_SWAMP_DOCK",
	"UNIT_SKIRMISHER",
	"UNIT_ELITE_SKIRMISHER",
	"UNIT_ELF_ARCHER",
	"UNIT_ELF_FAST_ARCHER",
	"UNIT_ELF_FIRE_ARCHER",
	"UNIT_ARCHER",
	"UNIT_CROSSBOWMAN",
	"UNIT_LONGBOWMAN",
	"UNIT_ARCHER_POISON",
	"UNIT_ELF_DRYAD",
	"UNIT_HORSE_ARCHER",
	"UNIT_ELEPHANT_ARCHER",
	"UNIT_PIKEMAN",
	"UNIT_HALBERDIER",
	"UNIT_SWORDMAN",
	"UNIT_BROAD_SWORDMAN",
	"UNIT_DOUBLE_SWORDMAN",
	"UNIT_ELF_SWORD_DANCER",
	"UNIT_AXE_THROWER",
	"UNIT_ASSASSIN",
	"UNIT_ORC_GOBLIN_SPIKER", 	
	"UNIT_ORC_GOBLIN_SPIKER_ELITE", 	
	"UNIT_ORC_GOBLIN_SPIKER_MASTER", 	
	"UNIT_ORC_GOBLIN_SPEARMAN",
	"UNIT_ORC_GOBLIN_SPEARMAN_ELITE",
	"UNIT_ORC_GOBLIN_SPEARMAN_MASTER",
	"UNIT_ORC_WARRIOR",
	"UNIT_ORC_WARRIOR_ELITE",
	"UNIT_ORC_WARRIOR_MASTER",
	"UNIT_ORC_HELMSMASHER",
	"UNIT_ORC_GOBLIN_ARCHER",
	"UNIT_ORC_GOBLIN_ARCHER_ELITE",
	"UNIT_ORC_GOBLIN_ARCHER_MASTER",
	"UNIT_ORC_CRUSHER",
 "UNIT_ORC_CRUSHER_ELITE",
 "UNIT_ORC_CRUSHER_MASTER",
	"UNIT_ORC_ARMORED_WARRIOR",
 "UNIT_ORC_ARMORED_WARRIOR_ELITE",
 "UNIT_ORC_ARMORED_WARRIOR_MASTER",
	"UNIT_ORC_AXE_THROWER",
	"UNIT_ORC_AXE_THROWER_ELITE",
	"UNIT_ORC_AXE_THROWER_MASTER",	
	"UNIT_ORC_HAMLETBACK",
	"UNIT_ORC_HAMLETBACK_ELITE",
	"UNIT_ORC_HAMLETBACK_MASTER",

	"UNIT_ORC_URUK_ARCHER",
	"UNIT_ORC_URUK_AXE",
	"UNIT_ORC_URUK_HAI",
	"UNIT_ORC_URUK_PIKE",
		
		
	"UNIT_ORC_URUK_ARCHER_1",
	"UNIT_ORC_URUK_AXE_1",
	"UNIT_ORC_URUK_HAI_1",
	"UNIT_ORC_URUK_PIKE_1",

	"UNIT_ORC_URUK_ARCHER_2",
	"UNIT_ORC_URUK_AXE_2",
	"UNIT_ORC_URUK_HAI_2",
	"UNIT_ORC_URUK_PIKE_2",

	"UNIT_ORC_URUK_ARCHER_3",
	"UNIT_ORC_URUK_AXE_3",
	"UNIT_ORC_URUK_HAI_3",
	"UNIT_ORC_URUK_PIKE_3",

	"UNIT_ORC_TROLL",
 "UNIT_ORC_TROLL_ELITE",
 "UNIT_ORC_TROLL_MASTER",
	"UNIT_ORC_ETTIN",
	"UNIT_ORC_FODDER_CANNON",
	"UNIT_ORC_WOLF_RAIDER",
	"UNIT_ORC_HEAVY_WOLF_RIDER",
	"UNIT_ORC_WOLF_RIDER_MASTER",
	"UNIT_ORC_RAPTOR_RIDER",
	"UNIT_ORC_RAPTOR_RIDER_ELITE",
	"UNIT_ORC_RAPTOR_RIDER_HARNESSED",
	"UNIT_UND_SKELETON",
	"UNIT_UND_SKELETON_SWORDMAN_ARMORED",
 "UNIT_UND_SKELETON_SWORDMAN_GOLDEN",
	"UNIT_UND_ZOMBIE", 
	"UNIT_UND_GHOUL",
	"UNIT_UND_SKELETON_ARCHER",
	"UNIT_UND_SKELETON_ARCHER_ARMORED", 
 "UNIT_UND_SKELETON_ARCHER_GOLDEN",
 "UNIT_UND_SKELETON_PIRATE",
 "UNIT_UND_SKELETON_PIRATE_ARMORED",
 "UNIT_UND_SKELETON_PIRATE_GOLDEN",
	"UNIT_UND_CEMETERY_REAPER",
	"UNIT_UND_GRAVE_DIGGER",
		
 "UNIT_UND_HEADLESS_HORSEMAN",
	"UNIT_UND_KNIGHT",
	"UNIT_UND_KNIGHT_ARMORED",
	"UNIT_UND_KNIGHT_GOLDEN",
	"UNIT_UND_SPECTRAL_RIDER",
	"UNIT_UND_DEATH_KNIGHT",

	"UNIT_ELF_UNICORN_RIDER",
	"UNIT_ELF_CENTAUR_RANGED",
		
	"UNIT_HUMAN_LIGHT_CAVALRY",
	"UNIT_KNIGHT",
	"UNIT_HEAVY_KNIGHT",
	"UNIT_HUMAN_IMPERIAL_KNIGHT",
	"UNIT_HUMAN_DRAKE_KNIGHT",
	"UNIT_WAR_ELEPHANT",
	"UNIT_TEMPLAR",
	"UNIT_IMPERIAL_SHIELDER",
	"UNIT_IMPERIAL_SWORDSMAN",
	"UNIT_IMPERIAL_GUARD",
	"UNIT_IMPERIAL_CROSSBOWMAN",
	"UNIT_ORC_LEADER",
	"UNIT_ORC_LEADER_WARLORD",
	"UNIT_ORC_LEADER_KING",
	"UNIT_ORC_URUK_OLOG",
	"UNIT_ORC_URUK_OLOG_1",
	"UNIT_ORC_URUK_OLOG_2",
	"UNIT_ORC_URUK_OLOG_3",
	
	"UNIT_ELF_SWORDSMAN",
	"UNIT_ELF_WARRIOR",
	"UNIT_ELF_ENT_WARRIOR",
	"UNIT_ORC_SHAMAN",
	"UNIT_ORC_TROLL_SHAMAN",
	"UNIT_UND_SHADE",
	"UNIT_UND_NECROMANCER",
	"UNIT_UND_BANSHEE",
	"UNIT_UND_LICH",
	"UNIT_UND_MUMMY",
	"UNIT_UND_FIRE_SKULL_THROWER",
	"UNIT_UND_FIRE_SKULL_THROWER_ARMORED",
	"UNIT_ELF_DRUID",

	"UNIT_ELF_WIZARD",
	"UNIT_ELF_ENT_DEMOLISHER",
	"UNIT_PRIEST",
	
	"UNIT_MAGE",
	"UNIT_HUMAN_WARMAGE",
	"UNIT_BATTERING_RAM",
	"UNIT_CATAPULT",
	"UNIT_TREBUCHET",
	"UNIT_ORC_SWAMP",
	"UNIT_ORC_SWAMP_ELITE",
	"UNIT_ORC_SWAMP_MASTER",
	"UNIT_ELF_MERMAN",
	"UNIT_ELF_SEA_SERPENT",
	"UNIT_WARSHIP",
	"UNIT_FIRESHIP",
	"UNIT_CATAPULT_SHIP",
	"UNIT_UND_VAMPIRE",
	"UNIT_UND_VAMPIRE_BAT_FORM",
	"UNIT_UND_GARGOYLE",
	"UNIT_ELF_EAGLE",
	"UNIT_ELF_DRAGON",
	"UNIT_ORC_DRAGON",
	"UNIT_UND_DRAGON",
	"UNIT_DRAGON",
	"UNIT_ORNITHOPTER",
	"UNIT_WORKER",
	"UNIT_ORC_GOBLIN_SLAVE",
	"UNIT_UND_WORKER",
	"UNIT_ELF_ENT_WORKER",
	"UNIT_WAGON",
	"UNIT_UND_WAGON",
	"UNIT_ELF_WAGON",
	"UNIT_ORC_WAGON",
	"UNIT_ELF_TRANSPORTSHIP",
	"UNIT_UND_TRANSPORTSHIP",
	"UNIT_ORC_TRANSPORTSHIP",
	"UNIT_TRANSPORTSHIP",
	"UNIT_GREAT_TRANSPORT",
	"UNIT_SCOUT",
	"UNIT_BIRD",
	"UNIT_MONEYMAN",
	"UNIT_ELF_FAIRY",
	"UNIT_PEA_SHOOTER",

	"UNIT_ELF_SENTINEL",
	"UNIT_UND_SKELETON_SPEARMAN",
	"UNIT_UND_SKELETON_SPEARMAN_ARMORED",	
 "UNIT_UND_SKELETON_SPEARMAN_GOLDEN",
	"UNIT_ORC_TROLL_HEADHUNTER",
	"UNIT_ORC_TROLL_HEADHUNTER_ELITE",
	"UNIT_ORC_TROLL_HEADHUNTER_MASTER",
 "UNIT_ORC_MINOTAUR_AXEMAN", 
 "UNIT_ORC_MINOTAUR_AXEMAN_ELITE",
 "UNIT_ORC_MINOTAUR_AXEMAN_MASTER",
		
	"UNIT_UND_GHOST_VESSEL",
 "UNIT_UND_BUILDING_PHANTOM_GARRISON",
 "UNIT_UND_PHANTOM_CRUSHER",
 "UNIT_UND_PHANTOM_AXEMAN",
 "UNIT_UND_PHANTOM_PIKEMAN",
 "UNIT_UND_PHANTOM_SWORDMASTER"

	],
"listTech" : [
	"TECH_WRITING",
	"TECH_BALLISTICS",
	"TECH_FLIGHT",
	"TECH_TOWN_PATROL",
	"TECH_MASONRY",
	"TECH_MASSIVE_WALLS",
	"TECH_AMBIDEXTRIA",
	"TECH_AREA_DAMAGE",
	"TECH_STEAL",
	"TECH_LOYALTY",
	"TECH_UPGRADE_UNIT_CROSSBOWMAN",
	"TECH_UPGRADE_UNIT_ELITE_SKIRMISHER",
	"TECH_UPGRADE_UNIT_HALBERDIER",
	"TECH_UPGRADE_UNIT_BROAD_SWORDSMAN",
	"TECH_UPGRADE_UNIT_HEAVY_KNIGHT",
	"TECH_ARCHERY",
	"TECH_ARCHERY_LV2",
	"TECH_ARMOR_ARCHER_LV1",
	"TECH_ARMOR_ARCHER_LV2",
	"TECH_ARMOR_CAVALRY_LV1",
	"TECH_ARMOR_CAVALRY_LV2",
	"TECH_ARMOR_INFANTRY_LV1",
	"TECH_ARMOR_INFANTRY_LV2",
	"TECH_SWORD_LV1",
	"TECH_SWORD_LV2",
	"TECH_UND_SKELETAL_POWER",
	"TECH_UND_CURSE",
	"TECH_UND_CANNIBALIZE",
	"TECH_UND_ANIMATION_MASTERY",
	"TECH_UND_BONE_SIGHT",
	"TECH_ELF_WEAPONS_1",
	"TECH_ELF_WEAPONS_2",
	"TECH_ELF_WEAPONS_3",
	"TECH_ELF_BOWS_1",
	"TECH_ELF_BOWS_2",
	"TECH_ELF_BOWS_3",
	"TECH_ELF_ARMORS_1",
	"TECH_ELF_ARMORS_2",
	"TECH_ELF_ARMORS_3",
	
	"TECH_ELF_DODGE_RANGED_1",
	"TECH_ELF_DODGE_RANGED_2",
	"TECH_ELF_DODGE_RANGED_3",
	
	"TECH_ELF_DODGE_MELEE_1",
	"TECH_ELF_DODGE_MELEE_2",
	"TECH_ELF_DODGE_MELEE_3",
	
	"TECH_ELF_DODGE_COUNTER_1",
	"TECH_ELF_DODGE_COUNTER_2",
	"TECH_ELF_DODGE_COUNTER_3",
	
	
	"TECH_ELF_TREETOP_ARCHERY_1",
	"TECH_ELF_TREETOP_ARCHERY_2",
	
	"TECH_ELF_NATURE",
	"TECH_ELF_NATURE_CALL",
	"TECH_ELF_TRACKING",
	"TECH_ELF_LEMBAS",
	"TECH_ELF_THUNDER_STORM",
	"TECH_ORC_GOBLIN_SHOUT",
	"TECH_ORC_GOBLIN_GRENADE",
	"TECH_ORC_ORC_SKIN",
	"TECH_ORC_POISONED_WEAPONS",
	"TECH_HUMAN_FIREBALL",
	
	"TECH_ORC_UPGRADE_UNIT_ELITE_CAVALRY",
	"TECH_ORC_UPGRADE_UNIT_MASTER_CAVALRY",
	"TECH_ORC_UPGRADE_UNIT_WARRIOR_ELITE",
	"TECH_ORC_UPGRADE_UNIT_WARRIOR_MASTER",
	"TECH_ORC_UPGRADE_UNIT_SWAMP_MASTER",
	"TECH_ORC_UPGRADE_UNIT_SWAMP_ELITE",
	"TECH_ORC_WARG_RIDING",
	"TECH_ORC_UPGRADE_UNIT_GIANT_ELITE",
	"TECH_ORC_UPGRADE_UNIT_GIANT_MASTER",


	"TECH_UND_UPGRADE_UNIT_SKELETON_ARMORED",
	"TECH_UND_UPGRADE_UNIT_FIRE_SKULL_THROWER_ARMORED",
	"TECH_UND_UPGRADE_UNIT_SKELETON_GOLDEN",
	"TECH_ORC_UPGRADE_UNIT_TROLL_ELITE",	
	"TECH_ORC_UPGRADE_UNIT_TROLL_MASTER",
	"TECH_ORC_UPGRADE_UNIT_GOBLIN_ELITE",
	"TECH_ORC_UPGRADE_UNIT_GOBLIN_MASTER",
 "TECH_ORC_UPGRADE_UNIT_MINOTAUR_ELITE",
 "TECH_ORC_UPGRADE_UNIT_MINOTAUR_MASTER",

 "TECH_SCALEDFOLK_ARMORED_KOBOLD",
 "TECH_SCALEDFOLK_HEAVY_WARDEN",
 "TECH_SCALEDFOLK_ARMORED_LIZARDMAN",
 "TECH_SCALEDFOLK_TOUGH_SCALES",

	"TECH_ORC_UPGRADE_URUK_1",
	"TECH_ORC_UPGRADE_URUK_2",
	"TECH_ORC_UPGRADE_URUK_3",
	
	"TECH_DWARF_HEAVY_BOAR_RIDER",	
	"TECH_DWARF_MASTER_BOAR_RIDER",
 "TECH_DWARF_CLERIC",

	"TECH_HUMAN_EXORCISM",
	"TECH_HUMAN_REACH",
	"TECH_UNDEAD_POISONUS_BITE"

],
"listNotBuild" : [	
	"UNIT_UND_CEMETERY_REAPER_POISONING",
	"UNIT_MISSIONARY",	
	"UNIT_LORD",
	"UNIT_LORD_HUNTRESS",
	"UNIT_LORD_PALADIN",
	"UNIT_KNIGHT_HERO",
	"UNIT_UND_BUILDING_TOWER_GOLEM",
	"UNIT_UND_FLESH_GOLEM",
	"UNIT_ROCKS",
	"UNIT_NEUTRAL_WALL",
	"UNIT_NEUTRAL_FIRE",
	"UNIT_NEUTRAL_STONES_LEFT",
	"UNIT_NEUTRAL_STONES_RIGHT",
	"UNIT_NEUTRAL_STONES_LIGHT",
	"UNIT_NEUTRAL_STONES_DARK",
	"UNIT_NEUTRAL_STONES_STATUE",
	
	
	"UNIT_NEUTRAL_STONE_OBELISK",
	"UNIT_NEUTRAL_COLUMN1",
	"UNIT_NEUTRAL_COLUMN2",
	"UNIT_NEUTRAL_COLUMN3",
	"UNIT_NEUTRAL_COLUMN4",
	"UNIT_NEUTRAL_CRYSTAL",
	"UNIT_NEUTRAL_STONE_FIREALTAR1",
	"UNIT_NEUTRAL_STONE_FIREALTAR2",
	"UNIT_NEUTRAL_STONE_STATUE",
	"UNIT_NEUTRAL_STONE_TOMB1",
	"UNIT_NEUTRAL_STONE_TOMB2",
	"UNIT_NEUTRAL_TORCH1",
	"UNIT_NEUTRAL_TORCH2",	
	"UNIT_NEUTRAL_LAMP",
	"UNIT_NEUTRAL_TREE_DEAD1",
	"UNIT_NEUTRAL_TREE_DEAD2",
	"UNIT_NEUTRAL_TREE_DEAD3",
	"UNIT_NEUTRAL_TREE_DEAD4",
	"UNIT_NEUTRAL_TREE_DEAD5",
	"UNIT_NEUTRAL_TREE_DEAD6",
	"UNIT_NEUTRAL_TREE_DEAD7",
	"UNIT_NEUTRAL_TREE_DEAD8",
	"UNIT_NEUTRAL_TREE_MAPLE1",	
	"UNIT_NEUTRAL_TREE_PINE1",
	"UNIT_NEUTRAL_TREE_PINE2",
	"UNIT_NEUTRAL_TREE_PINE3",
	"UNIT_NEUTRAL_TREE_SNOWPINE1",
	"UNIT_NEUTRAL_TREE_SNOWPINE2",
	"UNIT_NEUTRAL_TREE_SNOWPINE3",
	"UNIT_NEUTRAL_TREE_MAPLE_BIG1",
	"UNIT_NEUTRAL_TREE_PINE_BIG1",
	"UNIT_NEUTRAL_TREE_SNOWPINE_BIG1",
	"UNIT_NEUTRAL_TREE_TROPICAL_BIG1",
	
	"UNIT_NEUTRAL_ANIMAL_DEER",
	"UNIT_NEUTRAL_ANIMAL_BEAR",
	"UNIT_NEUTRAL_ANIMAL_DOLPHIN",
	"UNIT_NEUTRAL_ANIMAL_BEAR2",
	"UNIT_NEUTRAL_ANIMAL_BEAR3",
	"UNIT_NEUTRAL_ANIMAL_COW",
	"UNIT_NEUTRAL_ANIMAL_HEN",
	"UNIT_NEUTRAL_ANIMAL_PIG",
	"UNIT_NEUTRAL_ANIMAL_PIGGY",
	"UNIT_NEUTRAL_ANIMAL_SHEEP",
	"UNIT_NEUTRAL_ANIMAL_SHEEP2",
	"UNIT_NEUTRAL_ANIMAL_CROC",
	"UNIT_NEUTRAL_ANIMAL_WOLF",
	"UNIT_NEUTRAL_ANIMAL_HORSE",
	"UNIT_NEUTRAL_ANIMAL_HORSE_WHITE",
	"UNIT_NEUTRAL_ANIMAL_HORSE_SADD_BROWN",
	"UNIT_NEUTRAL_ANIMAL_HORSE_SPOTTY",
	"UNIT_NEUTRAL_ANIMAL_SNAKE_GREEN",
	"UNIT_NEUTRAL_ANIMAL_SNAKE_BROWN",
	"UNIT_NEUTRAL_BABY",
	"UNIT_NEUTRAL_KID",
	"UNIT_NEUTRAL_KID2",
	"UNIT_NEUTRAL_HALLOWEEN_KID_GHOST",
	"UNIT_NEUTRAL_HALLOWEEN_KID_VAMPIRE",
	"UNIT_NEUTRAL_GIRL",
	"UNIT_NEUTRAL_GIRL2",
	"UNIT_NEUTRAL_MAN",
	"UNIT_NEUTRAL_MAN2",
	"UNIT_NEUTRAL_MAN3",
	"UNIT_NEUTRAL_MAN4",
	"UNIT_NEUTRAL_KID_GIRL",
	"UNIT_NEUTRAL_OLD_LADY",

	"UNIT_NEUTRAL_ANIMAL_SPIDER_RED",
	"UNIT_NEUTRAL_ANIMAL_SPIDER_BLACK",
	"UNIT_NEUTRAL_ANIMAL_SPIDER_BLACK_SMALL",
	"UNIT_NEUTRAL_ANIMAL_UNICORN",
	"UNIT_OBJ_CHEST",
	"UNIT_OBJ_CHEST2",
	"UNIT_OBJ_CHEST_BIG",
	"UNIT_OBJ_CHEST_BIG2",
	"UNIT_NEUTRAL_PUMPKIN1",
	"UNIT_NEUTRAL_PUMPKIN2",
	"UNIT_NEUTRAL_PUMPKIN3",
	"UNIT_NEUTRAL_PUMPKIN_BIG",
	"UNIT_NEUTRAL_HOUSE1",
	"UNIT_NEUTRAL_HOUSE2",
	"UNIT_NEUTRAL_HOUSE3",
	"UNIT_NEUTRAL_HOUSE4",
	"UNIT_NEUTRAL_HOUSE5",
	"UNIT_NEUTRAL_HOUSE6",
	"UNIT_NEUTRAL_HOUSE7",
	"UNIT_BLD_NEUTRAL_PADDY",
	"UNIT_BLD_NEUTRAL_RESTAURANT",
	"UNIT_BLD_NEUTRAL_SHOP",
	"UNIT_BLD_NEUTRAL_TAVERN",
	"UNIT_BLD_NEUTRAL_TEMPLE",
	"UNIT_BLD_NEUTRAL_WAREHOUSE",


	"UNIT_NEUTRAL_HOUSE_SNOW1",
	"UNIT_NEUTRAL_HOUSE_SNOW2",
 "UNIT_BUILDING_TUNNEL",
	
	
	
	
	
	
	"UNIT_DEAD_HUMAN1",
	"UNIT_DEAD_SWORDMAN1",
	"UNIT_DEAD_SPEARMAN1",
	"UNIT_DEAD_SHIP",
		
	"UNIT_DEAD_ARCHER1",
	"UNIT_DEAD_MOUNTED1",
	"UNIT_DEAD_DRAGON",
	"UNIT_ARAGORN",
	"UNIT_FARAMIR",
	"UNIT_FARAMIR_RANGED",
	"UNIT_BOROMIR",
	"UNIT_GANDALF",
	"UNIT_HUM_ROHAN_SPEARMAN",	
	"UNIT_HUM_ROHAN_ARCHER",
	"UNIT_HUM_ROHAN_THEODEN",
	"UNIT_HUM_ROHAN_EOMER",	
	"UNIT_HUM_ROHAN_SWORDMAN",
	"UNIT_HUM_BLACK_KNIGHT",
	"UNIT_GOLLUM",
		
	"UNIT_DWARF_GIMLI",
	"UNIT_HOBBIT", 
	"UNIT_HOBBIT_SAM", 
	"UNIT_HOBBIT_MERRY",
	"UNIT_HOBBIT_PIPPIN",
	"UNIT_HOBBIT_FRODO",
	"UNIT_HOBBIT_FRODO_RINGED",

 "UNIT_SCALEDFOLK_KOBOLD_MALE",
 "UNIT_SCALEDFOLK_KOBOLD_FEMALE",
 "UNIT_SCALEDFOLK_KOBOLD_MALE1",
 "UNIT_SCALEDFOLK_KOBOLD_FEMALE1",

	"UNIT_ELF_LEGOLAS",
	"UNIT_ELF_HUNT_RANGER",
	"UNIT_NAZGUL",
	"UNIT_GREAT_DRAGON",
	"UNIT_NAZGUL_RIDER",
	"UNIT_TC",
		
	"UNIT_UND_SKELETON_MONSTER",
	"UNIT_ELF_WOLF",
	"UNIT_ELF_ENT",
	"UNIT_ORC_PHOENIX",
	"UNIT_ORC_MORDOR_ORC",
	"UNIT_UND_SPECTRAL_RIDER_UNM", 
	"UNIT_HUMAN_KING",
		
 "UNIT_ETERNITY_RIGHT_STANDARD",
 "UNIT_ETERNITY_LEFT_STANDARD",

	"UNIT_ELF_CENTAUR_MELEE",
	"UNIT_UND_TREASURE_SHIP",

 "UNIT_GENERAL_BRAVE",
 "UNIT_WARFELL_GUARDIAN",
 "UNIT_LIGHT_TYPHOON",
 "UNIT_DARK_TYPHOON",
 "UNIT_PATROL",
 "UNIT_MAKAZUWR",
 "UNIT_MAKAZUWR_MELEE",
 "UNIT_SAMUELCH",
 "UNIT_LORD_OF_ALES",
 "UNIT_SUNRISE_SAMURAI",
 "UNIT_PUSS_IN_BOOTS",
 "UNIT_MIDONIK",
 "UNIT_STORMSAINT",
 "UNIT_AYUSH_TIWARI",
 "UNIT_RAVANCLOAK"




],

"comment":"This is a json only setting, all these settings will fill up the unit and tech Requires, RevovkerTechs and UpgradeAncesor values.",
"comment":"List content: UNIT_0, TECH_1, UNIT_1, TECH_2, UNIT_2, where unit0 is the base unit type, tech1 is upgrade level1 and its unit, tech2 upgrade level2 and its unit",
"techLines" : [
     {line : ["UNIT_TREBUCHET", "TECH_UPGRADE_UNIT_TREBUCHET_E", "UNIT_TREBUCHET_E"]},  
     {line : ["UNIT_FIRESHIP", "TECH_QUADRIREME", "UNIT_QUADRIREME", "TECH_UPGRADE_QUADRIREME_E", "UNIT_QUADRIREME_E"]}
     
],
	
"buildTargets" : [
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_DWARF", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_BUILDING_DWARF_RUNE_MASON"]}}]},
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_DWARF", "trnTerrain":"TERRAIN_CLEARGROUND", 
		"buildPriors" : [
			{"weight":80, "unitList":{"unitTypes":["UNIT_BUILDING_DWARF_DWARVEN_BARRACK"]}},
			{"weight":20, "unitList":{"unitTypes":["UNIT_BUILDING_DWARF_SHOOTING_STAND","UNIT_BUILDING_DWARF_CRAFTSMANS_GUILD"]}}
			]
	},
	
	
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_UNDEAD", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_BUILDING_DOCK"]}}]},
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_UNDEAD", "trnTerrain":"TERRAIN_CLEARGROUND", 
		"buildPriors" : [
			{"weight":90, "unitList":{"unitTypes":["UNIT_UND_BUILDING_GRAVEYARD"]}},
			{"weight":10, "unitList":{"unitTypes":["UNIT_UND_BUILDING_CRYPT","UNIT_UND_BUILDING_MANSION","UNIT_UND_BUILDING_DARK_ALTAR"]}}
			]
	},
	
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_ELF", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_SACRED_SPRING"]}}]},
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_ELF", "trnTerrain":"TERRAIN_CLEARGROUND", 
		"buildPriors" : [
			{"weight":90, "unitList":{"unitTypes":["UNIT_ELF_BUILDING_ARCHERY"]}},
			{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_BUILDING_GREAT_TREE","UNIT_ELF_BUILDING_ENT_TRAINING","UNIT_ELF_BUILDING_CRAFTSMAN"]}}
			]
	},	
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_ORC", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_BUILDING_SWAMP_DOCK"]}}]},
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_ORC", "trnTerrain":"TERRAIN_CLEARGROUND", 
		"buildPriors" : [
			{"weight":45, "unitList":{"unitTypes":["UNIT_ORC_BUILDING_CAMP"]}},
			{"weight":20, "unitList":{"unitTypes":["UNIT_ORC_BUILDING_URUK_TENT", "UNIT_ORC_BUILDING_SHAMAN_HUT", "UNIT_ELF_BUILDING_CRAFTSMAN"]}},
			{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_BUILDING_MONSTER_CAVE", "UNIT_ORC_BUILDING_MONSTER_CAVE_GR"]}},
			{"weight":15, "unitList":{"unitTypes":["UNIT_ORC_BUILDING_VOLCANO"]}}
			]
	},	
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_HUMAN", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_BUILDING_DOCK"]}}]},
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_HUMAN", "trnTerrain":"TERRAIN_CLEARGROUND", 
		"buildPriors" : [
			{"weight":20, "unitList":{"unitTypes":["UNIT_BUILDING_BARRACKS"]}},
			{"weight":20, "unitList":{"unitTypes":["UNIT_BUILDING_ARCHERY"]}},
			{"weight":10, "unitList":{"unitTypes":["UNIT_BUILDING_CHURCH"]}},
			{"weight":40, "unitList":{"unitTypes":["UNIT_BUILDING_STABLE"]}},
			{"weight":10, "unitList":{"unitTypes":["UNIT_BUILDING_MAGE_HUT","UNIT_BUILDING_SIEGE","UNIT_MEGA_BUILDING_CASTLE"]}}
			]
	},

	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_SCALEDFOLK", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_KEEP", "UNIT_BUILDING_SCALEDFOLK_SWAMP_BARRACK"]}}]},
	{"productionRole":"BASIC_TASK_BUILD_FACTORY", "trnRace":"RACE_SCALEDFOLK", "trnTerrain":"TERRAINS_FORESTWALKABLE", 
		"buildPriors" : [
			{"weight":80, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_SWAMP_BARRACK"]}},
			{"weight":70, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_HUNTERS_HUT"]}},
			{"weight":50, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_FORT"]}},
			{"weight":40, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_SNAKE_PIT"]}},
			{"weight":40, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_STRONGHOLD"]}},
			{"weight":50, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_KEEP"]}},
			{"weight":40, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_TEMPLE"]}}
			]
	},

	
	
	{"productionRole":"GET_BUILDER", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_DWARVEN_WORKER"]}}]},
	{"productionRole":"GET_BUILDER", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_WORKER"]}}]},
	{"productionRole":"GET_BUILDER", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_ENT_WORKER"]}}]},
	{"productionRole":"GET_BUILDER", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_GOBLIN_SLAVE"]}}]},
	{"productionRole":"GET_BUILDER", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_WORKER"]}}]},
	{"productionRole":"GET_BUILDER", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":15, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_LABORER"]}}]},
	
	{"productionRole":"TASK_EXPLORING", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_BEAR_RIDER"]}}]},
	{"productionRole":"TASK_EXPLORING", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCOUT"]}}]},
	{"productionRole":"TASK_EXPLORING", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_ARCHER"]}}]},
	{"productionRole":"TASK_EXPLORING", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_RAPTOR_RIDER"]}}]},
	{"productionRole":"TASK_EXPLORING", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_ZOMBIE"]}}]},
	{"productionRole":"TASK_EXPLORING", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_LIZARD_BLADEMAN", "UNIT_SCALEDFOLK_LIZARD_ARCHER", "UNIT_SCALEDFOLK_KOBOLD_CALVARY"]}}]},
	
	
	{"productionRole":"TASK_DO_WATER_CARRY", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_ZEPPELIN_CARRIER"]}}]},
	{"productionRole":"TASK_DO_WATER_CARRY", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_TRANSPORTSHIP"]}}]},
	{"productionRole":"TASK_DO_WATER_CARRY", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_TRANSPORTSHIP"]}}]},
	{"productionRole":"TASK_DO_WATER_CARRY", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_TRANSPORTSHIP"]}}]},
	{"productionRole":"TASK_DO_WATER_CARRY", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_TRANSPORTSHIP"]}}]},
	{"productionRole":"TASK_DO_WATER_CARRY", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_RAFT", "UNIT_SCALEDFOLK_TURTLEMAN"]}}]},
	

	

	{"productionRole":"TASK_MEND_UNIT", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_DWARVEN_WORKER"]}}]},
	{"productionRole":"TASK_MEND_UNIT", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_WORKER"]}}]},
	{"productionRole":"TASK_MEND_UNIT", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_ENT_WORKER"]}}]},
	{"productionRole":"TASK_MEND_UNIT", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_GOBLIN_SLAVE"]}}]},
	{"productionRole":"TASK_MEND_UNIT", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_WORKER"]}}]},
	{"productionRole":"TASK_MEND_UNIT", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":15, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_COBOLD_SHAMAN"]}}]},
	
	
	{"productionRole":"TASK_TC_OCCUPY_ENEMY", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_BEAR_RIDER"]}}]},
	{"productionRole":"TASK_TC_OCCUPY_ENEMY", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ARCHER", "UNIT_HUMAN_LIGHT_CAVALRY"]}}]},
	{"productionRole":"TASK_TC_OCCUPY_ENEMY", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_ARCHER"]}}]},
	{"productionRole":"TASK_TC_OCCUPY_ENEMY", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_RAPTOR_RIDER"]}}]},
	{"productionRole":"TASK_TC_OCCUPY_ENEMY", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_ZOMBIE"]}}]},
	{"productionRole":"TASK_TC_OCCUPY_ENEMY", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":15, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_SNAKEMAN_DUAL_SWORDMAN", "UNIT_SCALEDFOLK_KOBOLD_CALVARY", "UNIT_SCALEDFOLK_LIZARD_ARCHER"]}}]},

	
	
	{"productionRole":"TASK_SPELL_ON_ENEMY_UNIT_OR_CONVERT", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_DWAR_PRIEST", "UNIT_DWARF_DWARF_CLERIC", "UNIT_DWARF_DWARVEN_ALCHEMIST"]}}]},
	{"productionRole":"TASK_SPELL_ON_ENEMY_UNIT_OR_CONVERT", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_PRIEST", "UNIT_MISSIONARY", "UNIT_MAGE"]}}]},
	{"productionRole":"TASK_SPELL_ON_ENEMY_UNIT_OR_CONVERT", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_WIZARD", "UNIT_ELF_DRUID"]}}]},
	{"productionRole":"TASK_SPELL_ON_ENEMY_UNIT_OR_CONVERT", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_SHAMAN", "UNIT_ORC_TROLL_SHAMAN"]}}]},
	{"productionRole":"TASK_SPELL_ON_ENEMY_UNIT_OR_CONVERT", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_MUMMY", "UNIT_UND_LICH"]}}]},
	{"productionRole":"TASK_SPELL_ON_ENEMY_UNIT_OR_CONVERT", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_COBOLD_SHAMAN"]}}]},
	

	

	{"productionRole":"TASK_HEAL_UNIT", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_DWAR_PRIEST", "UNIT_DWARF_DWARF_CLERIC"]}}]},
	{"productionRole":"TASK_HEAL_UNIT", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_PRIEST", "UNIT_MISSIONARY"]}}]},
	{"productionRole":"TASK_HEAL_UNIT", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_DRUID"]}}]},
	{"productionRole":"TASK_HEAL_UNIT", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_SHAMAN"]}}]},
	{"productionRole":"TASK_HEAL_UNIT", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_LICH"]}}]},
	{"productionRole":"TASK_HEAL_UNIT", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_COBOLD_SHAMAN", "UNIT_SCALEDFOLK_COBOLD_PRIESTESS"]}}]},
	
	
	
	{"productionRole":"FIELD_ATTACKER_CHEAP", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_BEAR_RIDER"]}}]},
	{"productionRole":"FIELD_ATTACKER_CHEAP", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SWORDMAN","UNIT_PIKEMAN","UNIT_AXE_THROWER"]}}]},
	{"productionRole":"FIELD_ATTACKER_CHEAP", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_ARCHER"]}}]},
	{"productionRole":"FIELD_ATTACKER_CHEAP", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_WARRIOR"]}}]},
	{"productionRole":"FIELD_ATTACKER_CHEAP", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_ZOMBIE"]}}]},	
	{"productionRole":"FIELD_ATTACKER_CHEAP", "trnRace":"RACE_SCALEDFOLK", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_KOBOLD_SPEARMAN", "UNIT_SCALEDFOLK_KOBOLD_WARRIOR", "UNIT_SCALEDFOLK_KOBOLD_ARCHER"]}}]},	




	
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_DWARVEN_WARRIOR"]}}]},
	
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_HUMAN", "trnTerrain":"TERRAIN_WATER", 
		"buildPriors" : [
			{"weight":70, "unitList":{"unitTypes":["UNIT_CATAPULT_SHIP"]}},
			{"weight":30, "unitList":{"unitTypes":["UNIT_WARSHIP", "UNIT_ORNITHOPTER"]}}
		]},
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_HUMAN", "trnTerrain":"TERRAIN_CLEARGROUND", 
		"buildPriors" : [
		    {"weight":90, "unitList":{"unitTypes":["UNIT_CATAPULT"]}},
		    {"weight":10, "unitList":{"unitTypes":["UNIT_BATTERING_RAM", "UNIT_ORNITHOPTER"]}}
		]},
	
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_ELF", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_SEA_SERPENT"]}}]},
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_ELF", "trnTerrain":"TERRAIN_CLEARGROUND", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_ENT_DEMOLISHER", "UNIT_ELF_FIRE_ARCHER", "UNIT_ELF_EAGLE"]}}]},
	
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_ORC", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_SWAMP"]}}]},
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_ORC", "trnTerrain":"TERRAIN_CLEARGROUND", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_CRUSHER"]}}]},
	
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_UNDEAD", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_GHOUL"]}}]},
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_UNDEAD", "trnTerrain":"TERRAIN_CLEARGROUND", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_MUMMY", "UNIT_UND_GHOUL"]}}]},
	
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_SCALEDFOLK", "trnTerrain":"TERRAIN_WATER", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_SWORDMAN", "UNIT_SCALEDFOLK_TURTLEMAN", "UNIT_SCALEDFOLK_LIZARD_BLADEMAN", "UNIT_SCALEDFOLK_HYDRA"]}}]},
	{"productionRole":"TASK_ATTACK_ENEMY_BUILDING", "trnRace":"RACE_SCALEDFOLK", "trnTerrain":"TERRAIN_CLEARGROUND", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_SWORDMAN", "UNIT_SCALEDFOLK_SNAKEMAN_DUAL_SWORDMAN", "UNIT_SCALEDFOLK_COBOLD_SLINGER", "UNIT_SCALEDFOLK_KOBOLD_WARRIOR", "UNIT_SCALEDFOLK_TURTLEMAN", "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_MACEMAN", "UNIT_SCALEDFOLK_HYDRA"]}}]},
	
	
	{"productionRole":"FASTEST_UNIT_THAT_CAN_OCCUPY", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_DWARF_BEAR_RIDER"]}}]},
	{"productionRole":"FASTEST_UNIT_THAT_CAN_OCCUPY", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_RAPTOR_RIDER"]}}]},
	{"productionRole":"FASTEST_UNIT_THAT_CAN_OCCUPY", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_KNIGHT"]}}]},
	{"productionRole":"FASTEST_UNIT_THAT_CAN_OCCUPY", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_HUMAN_LIGHT_CAVALRY"]}}]},
	{"productionRole":"FASTEST_UNIT_THAT_CAN_OCCUPY", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_UNICORN_RIDER"]}}]},
	{"productionRole":"FASTEST_UNIT_THAT_CAN_OCCUPY", "trnRace":"RACE_SCALEDFOLK", 
		"buildPriors" : [
			{"weight":70, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_SNAKEMAN_SPEARMAN", "UNIT_SCALEDFOLK_KOBOLD_CALVARY"]}},
			{"weight":30, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_LIZARD_BLADEMAN", "UNIT_SCALEDFOLK_KOBOLD_LORD"]}}
			]
	},


	
	
	
	
	{"productionRole":"DEFAULT_PRODUCTION", "trnRace":"RACE_DWARF", 
		"buildPriors" : [
			{"weight":75, "unitList":{"unitTypes":["UNIT_DWARF_DWARVEN_WARRIOR", "UNIT_DWARF_DWARVEN_DEFENDER", "UNIT_DWARF_DWARVEN_CROSSBOWS"]}},
			{"weight":25, "unitList":{"unitTypes":["UNIT_DWARF_MITHRIL_GUARD","UNIT_DWARF_BEAR_RIDER","UNIT_DWARF_BOAR_RIDER",  "UNIT_DWARF_DWARVEN_RIFLEMAN", "UNIT_DWARF_DWARVEN_RIFLEMAN_SHIELDED"]}}
			]
	},

	
	{"productionRole":"DEFAULT_PRODUCTION", "trnRace":"RACE_ELF", 
		"buildPriors" : [
			{"weight":20, "unitList":{"unitTypes":["UNIT_ELF_ARCHER"]}},
			{"weight":80, "unitList":{"unitTypes":["UNIT_ELF_UNICORN_RIDER", "UNIT_ELF_WARRIOR","UNIT_ELF_DRYAD","UNIT_ELF_DRUID",  "UNIT_ELF_WIZARD", "UNIT_ELF_CENTAUR_MELEE", "UNIT_ELF_CENTAUR_RANGED", "UNIT_ELF_FAST_ARCHER"]}}
			]
	},

	{"productionRole":"DEFAULT_PRODUCTION", "trnRace":"RACE_ORC", 
		"buildPriors" : [
			{"weight":20, "unitList":{"unitTypes":["UNIT_ORC_WARRIOR"]}},
			{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_HAMLETBACK","UNIT_ORC_TROLL","UNIT_ORC_ETTIN","UNIT_ORC_FODDER_CANNON"]}},
			{"weight":70, "unitList":{"unitTypes":["UNIT_ORC_RAPTOR_RIDER", "UNIT_ORC_AXE_THROWER","UNIT_ORC_WOLF_RAIDER","UNIT_ORC_SHAMAN",  "UNIT_ORC_RAPTOR_RIDER", "UNIT_ORC_URUK_ARCHER", "UNIT_ORC_URUK_AXE", "UNIT_ORC_URUK_HAI", "UNIT_ORC_URUK_PIKE"]}}
			]
	},

	{"productionRole":"DEFAULT_PRODUCTION", "trnRace":"RACE_UNDEAD", 
		"buildPriors" : [
			{"weight":70, "unitList":{"unitTypes":["UNIT_UND_ZOMBIE","UNIT_UND_GHOUL","UNIT_UND_KNIGHT",  "UNIT_UND_CEMETERY_REAPER", "UNIT_UND_VAMPIRE", "UNIT_UND_MUMMY"]}},
			{"weight":30, "unitList":{"unitTypes":["UNIT_UND_LICH", "UNIT_UND_SPECTRAL_RIDER", "UNIT_UND_DEATH_KNIGHT"]}}
			]
	},

	{"productionRole":"DEFAULT_PRODUCTION", "trnRace":"RACE_HUMAN", 
		"buildPriors" : [
			{"weight":70, "unitList":{"unitTypes":["UNIT_HUMAN_LIGHT_CAVALRY", "UNIT_SWORDMAN","UNIT_AXE_THROWER","UNIT_PIKEMAN","UNIT_SKIRMISHER","UNIT_ARCHER","UNIT_KNIGHT"]}},
			{"weight":30, "unitList":{"unitTypes":["UNIT_HUMAN_DRAKE_KNIGHT","UNIT_HUMAN_IMPERIAL_KNIGHT", "UNIT_PRIEST","UNIT_WARSHIP","UNIT_TREBUCHET",  "UNIT_CATAPULT"]}}
			]
	},

	{"productionRole":"DEFAULT_PRODUCTION", "trnRace":"RACE_SCALEDFOLK", 
		"buildPriors" : [
			{"weight":50, "unitList":{"unitTypes":["TECH_SCALEDFOLK_HEAVY_WARDEN", "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_MACEMAN", "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_DRUMMER", "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_SPEARMAN", "UNIT_SCALEDFOLK_SNAKEMAN_DUAL_SWORDMAN", "UNIT_SCALEDFOLK_COBOLD_SHAMAN", "TECH_SCALEDFOLK_ARMORED_LIZARDMAN", "UNIT_SCALEDFOLK_COBOLD_PRIESTESS", "TECH_SCALEDFOLK_ARMORED_KOBOLD"]}},
			{"weight":40, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_RAFT", "UNIT_SCALEDFOLK_KOBOLD_WARDEN", "UNIT_SCALEDFOLK_SNAKEMAN_SPEARMAN", "UNIT_SCALEDFOLK_HYDRA", "UNIT_SCALEDFOLK_KOBOLD_FIRE_ARCHER"]}},
			{"weight":70, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_SWORDMAN", "UNIT_SCALEDFOLK_HIGHBORN_KOBOLD_ARCHER", "UNIT_SCALEDFOLK_LIZARD_BLADEMAN", "UNIT_SCALEDFOLK_KOBOLD_SPEARMAN", "UNIT_SCALEDFOLK_KOBOLD_WARRIOR", "UNIT_SCALEDFOLK_KOBOLD_ARCHER", "UNIT_SCALEDFOLK_LIZARD_ARCHER", "UNIT_SCALEDFOLK_COBOLD_SLINGER", "UNIT_SCALEDFOLK_KOBOLD_CALVARY"]}},
			{"weight":30, "unitList":{"unitTypes":["UNIT_SCALEDFOLK_COBOLD_CONJUROR", "UNIT_SCALEDFOLK_KOBOLD_LORD", "UNIT_SCALEDFOLK_TURTLEMAN", "UNIT_SCALEDFOLK_KOBOLD_WARDEN"]}}
			]
	},

	{"productionRole":"TASK_TC_BUILD_DEFENSE", "trnRace":"RACE_DWARF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_BUILDING_DWARF_GUARD_TOWER"]}}]},
	{"productionRole":"TASK_TC_BUILD_DEFENSE", "trnRace":"RACE_HUMAN", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_TOWER", "UNIT_FORTRESS"]}}]},
	{"productionRole":"TASK_TC_BUILD_DEFENSE", "trnRace":"RACE_ELF", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ELF_BUILDING_TOWER", "UNIT_ELF_BUILDING_WOLF_DEN"]}}]},
	{"productionRole":"TASK_TC_BUILD_DEFENSE", "trnRace":"RACE_ORC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_ORC_BUILDING_TOWER"]}}]},
	{"productionRole":"TASK_TC_BUILD_DEFENSE", "trnRace":"RACE_UNDEAD", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_UND_BUILDING_TOWER"]}}]},
	{"productionRole":"TASK_TC_BUILD_DEFENSE", "trnRace":"RACE_SCALEDFOLK", 
		"buildPriors" : [
			{"weight":70, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_POSION_TOWER"]}},
			{"weight":40, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_KEEP"]}},
			{"weight":30, "unitList":{"unitTypes":["UNIT_BUILDING_SCALEDFOLK_TEMPLE"]}}
			]
	},

	{"productionRole":"GET_TC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_TC"]}}]}




	
],
"otherSettings":{
	"enemyDistanceCalculationFewTurnsFar":3
}


}



Unit upgrades in Buildists

please exclude unit "upgrade" techs from lists - these are not to be listed in these productions lists eg: TECH_DWARF_HEAVY_BOAR_RIDER
reason: the AI by default will implement these upgrades only if AI want to build a unit that could be updated.
for example:
- if AI wants to build knight (because enemy has many units that can be countered by knights)
- than it will upgrade the knight tech in one of the TC-s and build knight only in other TC-s.
- and it will not (and should not) invent a "skirmisher upgrade tech" or anyhing else (maybe it will neves train skirmishers so that will be lost.
-> so pelase remove all upgade techs from these lists, this way AI will work in wrong way.
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

updated with "buildTargets" section
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

updated with OtherSettings
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

Unit upgrades in Buildists

please exclude unit "upgrade" techs from lists - these are not to be listed in these productions lists eg: TECH_DWARF_HEAVY_BOAR_RIDER
reason: the AI by default will implement these upgrades only if AI want to build a unit that could be updated.
for example:
- if AI wants to build knight (because enemy has many units that can be countered by knights)
- than it will upgrade the knight tech in one of the TC-s and build knight only in other TC-s.
- and it will not (and should not) invent a "skirmisher upgrade tech" or anyhing else (maybe it will neves train skirmishers so that will be lost.
-> so pelase remove all upgade techs from these lists, this way AI will work in wrong way.
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

In "techLines"
You can set full unit upgrade lines/trees easier than setting the Requires, RevovkerTechs and UpgradeAncesor values

like this:

Code: Select all

"comment":"This is a json only setting, all these settings will fill up the unit and tech Requires, RevovkerTechs and UpgradeAncesor values.",
"comment":"List content: UNIT_0, TECH_1, UNIT_1, TECH_2, UNIT_2, where unit0 is the base unit type, tech1 is upgrade level1 and its unit, tech2 upgrade level2 and its unit",
"techLines" : [
     {line : ["UNIT_TREBUCHET", "TECH_UPGRADE_UNIT_TREBUCHET_E", "UNIT_TREBUCHET_E"]},  
     {line : ["UNIT_FIRESHIP", "TECH_QUADRIREME", "UNIT_QUADRIREME", "TECH_UPGRADE_QUADRIREME_E", "UNIT_QUADRIREME_E"]}
     
],
User avatar
godOfKings
Posts: 3302
Joined: Fri Sep 22, 2017 4:50 pm

Re: Game definition jsons - Build/production lists

Post by godOfKings »

All I need to do is write a line in this format and send it?
There is no place for false kings here, only those who proves themselves to b the true kings of legend, or serves under me

For I watch over this world looking for those worthy to become kings, and on the way get rid of the fakes and rule over the fools
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

yes,
or if u you are modding, put into buildlist.json and u send it with whole pack
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

new feature:

In "buildTargets"/GET_TC
in build targets among other features you define the TC type itself to use on TC spawning on random maps
eg:

Code: Select all

{"productionRole":"GET_TC", "buildPriors" : [{"weight":10, "unitList":{"unitTypes":["UNIT_TC", "UNIT_TC_WATER"]}}]}, 
or

Code: Select all

{"productionRole":"GET_TC", 
       "buildPriors" : [
           {"weight":50, "unitList":{"unitTypes":["UNIT_TC", "UNIT_TC_WATER"]}},
           {"weight":50, "unitList":{"unitTypes":["UNIT_TC2", "UNIT_TC_WATER2"]}}
        ]
}, 
you can set more than one TC type, to spawn random from them, also you can set different terrain affinity TC-s so u can make ONLY water TC or ONLy space TC (for AOG)
User avatar
Endru1241
Posts: 2717
Joined: Fri Sep 11, 2015 8:43 am
Location: Poland

Re: Game definition jsons - Build/production lists

Post by Endru1241 »

How does it work for different terrain affinity TCs?

On written example - I am assuming UNIT_TC is regular, known to everyone TC (TERRAINS_PLAINSBUILDABLE only) and UNIT_TC_WATER is some sort of new TC that let's say only water units and only TERRAINS_WATERBUILDABLE. Another assumption is that UNIT_TC2 is some sort of alternative or upgrade (like AoS UNIT_TC_UPG1), that has the same terrain affinity. Similarly UNIT_TC_WATER2.

Depending on map size and settings some amount of TC are generated, so assuming both being the same:
1. Would this example generate the same total amount of TC as old setting (only UNIT_TC)?
2. Does the code select placement first (including water tiles if any TC there has terrain affinity allowing water placement) or takes random unit from list and only then generate placement?
3. Is number of water tiles (or whatever tiles TC have affinity to) changing chance of it appearing?
4. What about TC with move definition, that overlaps with others?
Age of Strategy design leader
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

UNIT_TC2 is not the upgrade (or not necessarily)
it can be an alternative TC eg. with different appearance or something.
or some that can be on woods too with a little differnt appearance and maybe some other differences.

i think i answer all questions here:
- all generation logic will work the same as before
- except when the TC generator/spawner logic
a) checks if a TC is placable on a tile will chose among TC-s that fit that tile (i mean terrain affinity)
b) if it asks for a TC type to place also will select from the ones that fit the terrain.

so quick answers based on this
1. yes
2. first filters, then choses from the remaining ones
3. no
4. move definition? i dont understand.
User avatar
Endru1241
Posts: 2717
Joined: Fri Sep 11, 2015 8:43 am
Location: Poland

Re: Game definition jsons - Build/production lists

Post by Endru1241 »

1. So density of TC on land (number of TC placed on solid land) would just decrease, right ?
2. So it does select placement for TC first, then filters out those that cannot be placed on selected tile and randomly selects among remaining ones, right?
2. b) And does so in a loop until correct calculated number of TC are placed?
3. If it works like I described above, then statistically terrain composition is strictly related to number of terrain specific TCs.
If I have 4 different maps, all have 30x30 size, normal number of TC selected and are used in random generated skirmish with 2 players, but:
- first one has around 10% water tiles on the edges (big island type)
- 2nd one has around 20% water tiles spread through all map in lines (terrain with a lot of rivers)
- 3rd one has around 50% water tiles spread through all map (archipelago type)
- 4th one has around 75% water tiles on the middle and land only on 2 edges (two islands)
Would their generated number of TC be something like (on average) (I am assuming around 20 TC with that size and settings)
- 2 water/18 land
- 4 water/16 land
- 10 water/10 land
- 15 water/5 land
,while with old settings all would have 20 TC on land on average?
4. trnWalkTerrain, terrain affinity, move definition - whatever you name it.
You actually explained in 2. answer.
Age of Strategy design leader
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

1. yes (if u set a water tc, if u dont than no change)
2. yes
2b yes - same as earllier.
3. i have not checked the values but yes, than water becomes "ground"
User avatar
makazuwr32
Posts: 7830
Joined: Tue Oct 17, 2017 9:29 am
Location: Moscow, Russia

Re: Game definition jsons - Build/production lists

Post by makazuwr32 »

With this we would be able to make water tcs, generate them.

And also some other non-tc objects — for example mercenary post for aos where you can recruit only mercenaries. No bonus factories, does not count as factory.
Or tavern for same purpose in aof.
Or some bandit hideout that will train neutral hostile units.
makazuwr32 wrote: Mon Sep 16, 2019 7:54 amWhen you ask to change something argument why...
Put some numbers, compare to what other races have and so on...
© by Makazuwr32™.
AoF Dev Co-Leader
Image
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

we would be able to make water tcs
no we can not in this form.
we must not turn all pour maps full of water TC-s.

i think we need a new water terrain tile, and maps should be designed specifically for those tiles to let spawning to.
And also some other non-tc objects — for example mercenary post for aos where you can recruit only mercenaries. No bonus factories, does not count as factory.
Or tavern for same purpose in aof.
Or some bandit hideout that will train neutral hostile units.
defintely not, we can not make these using this.
User avatar
makazuwr32
Posts: 7830
Joined: Tue Oct 17, 2017 9:29 am
Location: Moscow, Russia

Re: Game definition jsons - Build/production lists

Post by makazuwr32 »

Why do we need unique to water tcs water tiles?
I do not get this.
If i understand right than you can put weight for them so even on different tiles one type of tc will generate more often than other.

As for those other buildings — they can have really low weight — like maybe 10 vs 1000 of tc.

It won't be here and now though, since in aof specifically we have lots of stuff with much higher priority to work on before.
Just i mean that this is first step to add them.
makazuwr32 wrote: Mon Sep 16, 2019 7:54 amWhen you ask to change something argument why...
Put some numbers, compare to what other races have and so on...
© by Makazuwr32™.
AoF Dev Co-Leader
Image
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

i wrote a few extra information about a few other settings

In "buildTargets"/FIELD_ATTACKER_CHEAP
used when
a) AI runs into the task: TASK_ATTACK_ENEMY_BUILDING - so it asks for some units against it
b) AI runs into the task: TASK_TC_GO_DEFEND - meaning it has a TC under siege, and should train units quickly

In "buildTargets"/FASTEST_UNIT_THAT_CAN_OCCUPY
This setting tells the AI which is the fastest unit the enemy can have (to decide if AI can leave a TC empty OR it should keep a unit in it as enemy might have a unit closedr than the fastest unit speed to occupy it in one movement of this fastest unit. - it also adds the land transport unit speed to that range) - in AOS game this is a light cavalry unit.

In "buildTargets"/TASK_TC_OCCUPY_ENEMY
This setting is is used by th AI to ask for unit types to train against the many many neutral TC-s early game (and also against empty enemy TC-s anytime during the game) - in general a cheap, fast unit like light-cavalry.
User avatar
L4cus
Posts: 2358
Joined: Fri Jan 31, 2020 7:51 pm
Location: Perú

Re: Game definition jsons - Build/production lists

Post by L4cus »

Stratego (dev) wrote: Sun Jul 14, 2019 12:24 pm In "techLines"
You can set full unit upgrade lines/trees easier than setting the Requires, RevovkerTechs and UpgradeAncesor values

like this:

Code: Select all

"comment":"This is a json only setting, all these settings will fill up the unit and tech Requires, RevovkerTechs and UpgradeAncesor values.",
"comment":"List content: UNIT_0, TECH_1, UNIT_1, TECH_2, UNIT_2, where unit0 is the base unit type, tech1 is upgrade level1 and its unit, tech2 upgrade level2 and its unit",
"techLines" : [
     {line : ["UNIT_TREBUCHET", "TECH_UPGRADE_UNIT_TREBUCHET_E", "UNIT_TREBUCHET_E"]},  
     {line : ["UNIT_FIRESHIP", "TECH_QUADRIREME", "UNIT_QUADRIREME", "TECH_UPGRADE_QUADRIREME_E", "UNIT_QUADRIREME_E"]}
     
],
question: this replace the Requires, RevovkerTechs and UpgradeAncesor values?
2nd question: if i have one tech upgrading multiple units i just need to do this?:
"techLines" : [
{line : ["UNIT_TREBUCHET", "TECH_UPGRADE_UNIT_TREBUCHET_E", "UNIT_TREBUCHET_E"]},
{line : ["UNIT_FIRESHIP", "TECH_UPGRADE_UNIT_TREBUCHET_E", "UNIT_QUADRIREME_E"]}
Extra ecclesiam nulla salus...
AOD, a new variant...
viewforum.php?f=230
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

Q1: this replace the Requires, RevovkerTechs and UpgradeAncesor values?
Yes and this is PREFERRED way to set in case of singular line. (like unit - tech - lv1unit - tech2 - lv2 unit)

other complex ways (multiple dependencies) CAN NOT BE SET in this file so they should be handled manually by the revoker and anncestor ID settings (like in AOF where unit - tech1 + tech2 + tech3 - unitlv1 - tech11 + tech22 + tech 33 - uniltlv2)

Q2: i think yes, but needs trying, i think we already have such setting in AOS maybe
User avatar
L4cus
Posts: 2358
Joined: Fri Jan 31, 2020 7:51 pm
Location: Perú

Re: Game definition jsons - Build/production lists

Post by L4cus »

Stratego (dev) wrote: Sun Jul 18, 2021 2:03 pm other complex ways (multiple dependencies) should be handled manually by the revoker and anncestor ID settings (like in AOF where unit - tech1 + tech2 + tech3 - unitlv1 - tech11 + tech22 + tech 33 - uniltlv2)
this way is for multiple techs requirements?
Extra ecclesiam nulla salus...
AOD, a new variant...
viewforum.php?f=230
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Build/production lists

Post by Stratego (dev) »

no, i mean you can NOT use this file to set that - this should be set manually (using requires/revokers/ancestor ID settings)
User avatar
L4cus
Posts: 2358
Joined: Fri Jan 31, 2020 7:51 pm
Location: Perú

Re: Game definition jsons - Build/production lists

Post by L4cus »

ok, so this way has some limitations...
Extra ecclesiam nulla salus...
AOD, a new variant...
viewforum.php?f=230
Post Reply

Return to “Game Definition .JSON”