Unit Design - unit property sheet

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Unit Design - unit property sheet

Post by Stratego (dev) » Sun Sep 20, 2015 6:52 am

Here i try to describe how can u send me unit properties on final voted units, or on a special unit u request for your campaign.

There 2 text required for one unit
1. the property sheet (JSON), includes
- visual definition (icon /animation/constructions stages of the unit)
- stats (all properties of unit)
- sound definitions
- "arrow" sprites (arrow, javelin, rock, cannonball, laserbeam ...)
- weapon effects (like firearcher, or spells)
-
2. validating property sheet (JSON validating)
3. the unit texting

Property sheets
here are some samples to show you how the settings work
- fire archer (with some Uncle Sam weaponeffects)

Code: Select all

{
   "unitTypeName":"UNIT_FIRE_ARCHER",
   "unitType":98,
   "uiDefinition":{
      "visuals":[
      
      
         {
            "imgName":"32_unit_fire_archer.png",
            "type":"DEFAULT",
            "shiftIndicatorsDown":0,
            "typeExtra":0.0,
            "imgColumns":8,
            "imageDefParts":[
               {
                  "cropToRect":{"top": 0,"left":0,"bottom":32,"right":256},
                  "layer":"UNITS",
                  "shiftCol":0,
                  "shiftRow":0,
                  "clickable":true
               }
            ]
         }

         
         ]
   },
   
   "unitStatSheet":{
         "unit":{

            "isTechnology":false,
            "costTurn":3,
            "grantorShopItems":[244],
            "hpMax":11,
            "power":5,
            "rangeAttack":5,
            "armorPierce":0,
            "armorNormal":0,
            "sight":7,

            "unitSizeCol":1,
            "unitSizeRow":1,
            "isUnderConstruction":false,
            "isFactory":false,
            "isFactoryThatNotAffectsFactoryLimits":false,
            "isOccupiableBuilding":false,
            "isWalkableThrough":true,

            "powerAccuracyPenalty":0.0,
            "powerRange":0,
            "powerRangePenaltyPercent":0,
            "attackTypeBurningRock":false,
            "attackTypeArrow":true,

            "rangeWalk":3,            
            "trnWalkTerrain":[
            	{"terrainType":"TERRAINS_FORESTWALKABLE", "modifier":1},
            	{"terrainType":"TERRAINS_SAILABLE", "modifier":0.6}
            ],
            

            "convertRange":0,
            "convertResistance":0.0,
            "convertPossibility":0.0,
            "rangeHeal":0,
            "healRate":0,
            "rangeMend":0,
            "mendRate":0,
            "canBuild":false,
            "bonusMendingWhenConstructing":0.0,
            "bonusMending":0.0,
            "bonusHealing":1.0,

            "carryCapacity":0,
            "canBeCarried":true,
            "isCarriedUnitSurvivesIfIDie":false,
            "isCarrierCanCarryUnderConstruction":false,
            "isCarrierHidesCarriedUnits":true,
            "isCarrierLetCarriedUnitsToShoot":false,
            "isCarrierRemovesTerrainDrawbacks":false,

            "maxActionCount":1,
            "canOccupyBuilding":true,
            "canKillForest":false,
            "canFlyAsteroid":false,
            "isStealthUnit":false,
            "canSeeStealthUnits":false,

            
            "trnWeaponEffects":[
            	{
            		"weaponSlot":"WEAPON_EFFECT_SLOT_WP_1",
            		"effDefault":"EFFECT_FIRE_ARROWS",
            		"effOptions":null
            	},
            	{
            		"weaponSlot":"WEAPON_EFFECT_SLOT_SPELLCAST",
            		"effDefault":"EFFECT_US_SNIPER_ROCKET",
            		"effOptions":["EFFECT_US_SNIPER_ROCKET", "EFFECT_US_FIRE_ROCKET", "EFFECT_US_STINK_BOMB"]
            	}
            	
            ],


	     "trnCategories":["U_ARCHERS"],
	     "trnModifiers":{"unitTypes":["EFFECT_POISONED_ARROWS", "TECH_ARCHERY", "TECH_ARCHERY_LV2", "TECH_ARMOR_ARCHER_LV1", "TECH_ARMOR_ARCHER_LV2"]},
	     "trnCanNotCarryMe":{},
	     "trnBuilders":{"unitTypes":["UNIT_TC","UNIT_BUILDING_ARCHERY"]},
	     "trnBonusList":[
		{
		   "modifier":0.5,		   
		   "unitList":{
		      "categories":["U_CHEAP_MELEE","U_BURNABLE", "U_BUILDING_SIZED_UNITS"],
		      "unitTypes":["UNIT_ORNITHOPTER"]
		   }		   
		},
		{
		   "modifier":6,		   
		   "unitList":{"categories":["U_MEGA_BUILDINGS"]}		   
		},
		{
		   "modifier":2,		   
		   "unitList":{"categories":["U_SHIPS"]}		   
		}
	     ],
	     "trnBestAgainstMeWater":{"categories":["U_SHIP_ATTACK"]},
	     "trnBestAgainstMeGround":{"categories":["U_ANTI_ARCHER"]}
            

         }
   },
   "soundDefinition":{
      "soundPacks":[
         {"soundEvent":"UNIT_SELECTED","packName":"SOUND_PACK_UNIT_SELECT_LAND_UNIT"},
         {"soundEvent":"UNIT_AFFIRM_MOVE","packName":"SOUND_PACK_UNIT_AFFIRM_LAND_UNIT"},
         {"soundEvent":"UNIT_ATTACK","packName":"SOUND_PACK_UNIT_ATTACK_ARROW"},
         {"soundEvent":"UNIT_DAMAGE","packName":"SOUND_PACK_UNIT_DAMAGED_HUMAN"}         
         ]
   },
   "arrowSpriteDefinition":{
      "arrowSprites":[
         {"arrowType":"ATTACK_ARROW","spriteName":"SPRITE_ARROW_FIRE"}
         ]
   }
   
   
   
}

- heavy horsearcher

Code: Select all

{
   "unitTypeName":"UNIT_HEAVY_HORSE_ARCHER",
   "unitType":133,
   "uiDefinition":{
      "visuals":[
      
      
         {
            "imgName":"32_unit_heavy_horse_archer.png",
            "type":"DEFAULT",
            "shiftIndicatorsDown":0,
            "typeExtra":0.0,
            "imgColumns":1,
            "imageDefParts":[
               {
                  "cropToRect":{"top": 0,"left":0,"bottom":32,"right":32},
                  "layer":"UNITS",
                  "shiftCol":0,
                  "shiftRow":0,
                  "clickable":true
               }
            ]
         }

         
         ]
   },
   
   "unitStatSheet":{
         "unit":{

            "isTechnology":false,
            "costTurn":4,
            "grantorShopItems":null,
            "hpMax":28,
            "power":6,
            "rangeAttack":6,
            "armorPierce":2,
            "armorNormal":2,
            "sight":7,

            "unitSizeCol":1,
            "unitSizeRow":1,
            "isUnderConstruction":false,
            "isFactory":false,
            "isFactoryThatNotAffectsFactoryLimits":false,
            "isOccupiableBuilding":false,
            "isWalkableThrough":true,

            "powerAccuracyPenalty":0.0,
            "powerRange":0,
            "powerRangePenaltyPercent":0,
            "attackTypeBurningRock":false,
            "attackTypeArrow":true,

            "rangeWalk":5,            
            "trnWalkTerrain":[
               {"terrainType":"TERRAINS_FORESTWALKABLE", "modifier":1}
            ],
            

            "convertRange":0,
            "convertResistance":0.0,
            "convertPossibility":0.0,
            "rangeHeal":0,
            "healRate":0,
            "rangeMend":0,
            "mendRate":0,
            "canBuild":false,
            "bonusMendingWhenConstructing":0.0,
            "bonusMending":0.0,
            "bonusHealing":1.0,

            "carryCapacity":0,
            "canBeCarried":true,
            "isCarriedUnitSurvivesIfIDie":false,
            "isCarrierCanCarryUnderConstruction":false,
            "isCarrierHidesCarriedUnits":true,
            "isCarrierLetCarriedUnitsToShoot":false,
            "isCarrierRemovesTerrainDrawbacks":false,

            "maxActionCount":1,
            "canOccupyBuilding":true,
            "canKillForest":false,
            "canFlyAsteroid":false,
            "isStealthUnit":false,
            "canSeeStealthUnits":false,

            
            "trnWeaponEffects":[],


        "trnCategories":["U_ARCHERS", "U_MOUNTED_OTHERS", "U_ANTI_INFANTRY"],
        "trnModifiers":{"unitTypes":["EFFECT_POISONED_ARROWS", "TECH_ARCHERY", "TECH_ARCHERY_LV2", "TECH_ARMOR_ARCHER_LV1", "TECH_ARMOR_ARCHER_LV2"]},
	"trnRequires":{"unitTypes":["TECH_UPGRADE_UNIT_HEAVY_HORSE_ARCHER"]},
        "trnCanNotCarryMe":{},
        "trnBuilders":{"unitTypes":["UNIT_TC","UNIT_BUILDING_ARCHERY"]},
        "trnBonusList":[
      {
         "modifier":0.5,         
         "unitList":{
            "categories":["U_CHEAP_MELEE"],
            "unitTypes":["UNIT_ORNITHOPTER", "UNIT_SWORDMAN", "UNIT_BROAD_SWORDMAN", "UNIT_AXE_THROWER", "UNIT_SAMURAI"]
         }         
      }
        ],
        "trnBestAgainstMeWater":{"categories":["U_SHIP_ATTACK"]},
        "trnBestAgainstMeGround":{"categories":["U_ANTI_ARCHER", "U_ANTI_MOUNTED"]}
            

         }
   },
   "soundDefinition":{
      "soundPacks":[
         {"soundEvent":"UNIT_SELECTED","packName":"SOUND_PACK_UNIT_SELECT_LAND_MOUNTED_HORSE"},
         {"soundEvent":"UNIT_AFFIRM_MOVE","packName":"SOUND_PACK_UNIT_AFFIRM_LAND_MOUNTED_HORSE"},
         {"soundEvent":"UNIT_ATTACK","packName":"SOUND_PACK_UNIT_ATTACK_ARROW"},
         {"soundEvent":"UNIT_DAMAGE","packName":"SOUND_PACK_UNIT_DAMAGED_HUMAN"}         
         ]
   }
   
   
   
}


- heavy horse archer upgrade tech

Code: Select all

{                   
   "unitTypeName":"TECH_UPGRADE_UNIT_HEAVY_HORSE_ARCHER",
   "unitType":3014,
   "uiDefinition":{
      "visuals":[
      
      
         {
            "imgName":"32_tech_heavy_horse_archer.png",
            "type":"DEFAULT",
            "shiftIndicatorsDown":0,
            "typeExtra":0.0,
            "imgColumns":1,
            "imageDefParts":[
               {
                  "cropToRect":{"top": 0,"left":0,"bottom":32,"right":32},
                  "layer":"UNITS",
                  "shiftCol":0,
                  "shiftRow":0,
                  "clickable":true
               }
            ]
         }

         
         ]
   },
   
   "unitStatSheet":{
         "unit":{

            "isTechnology":true,
            "costTurn":6,
            "grantorShopItems":[257],
            "trnCategories":[],
	    "trnRequires":null,        
            "trnBuilders":{"unitTypes":["UNIT_BUILDING_ARCHERY"]},

	   "trnEquivalents":{"unitTypes":["TECH_ELF_SOME_TECH1", "TECH_DWARF_SOME_TECH2"]}
            
	    
         }
   }
   
   
   
}

help on understanding the fields:

Code: Select all

		costTurn = 1;
		sight = 0; //visiblity range
		rangeAttack = 1; //attack range (what maximal range it can attack) (1 means only nearby unit)
		hpMax = 1; //health points
		armorPierce = 0; //how big the armor against arrows
		armorNormal = 0; //how big the armor against normal attack
		power = 0; // power of its attack
		powerBase = 1; // the minimal damage it inflicts (to flying also)
		powerRange = 0; // can cause damage near the the attacked unit - this is the range of the effect
		powerRangePenaltyPercent = 0; // percentage: how the damage reduces with each step from the target unit (80 means damage=power*0.8 on 1 distance, damage=power*0.8*0.8 on 2 distance)
		maxActionCount = 1;
		rangeWalk = 0; // how far it can walk
		mendRate = 0; // how many HP mended by turn (by this mending unit)
		rangeHeal = 0; //healrange (what maximal range it can heal) (1 means only nearby unit)
		healRate = 0; // how many HP healed by turn (by this healing unit)
		canOccupyBuilding = true;
		carryCapacity = 0; //it can carry more units, tells you how many
		canBeCarried = true;
		bonusHealing = 1; // if this unit have bonus when it is healed by an other unit. 1,1 means 10% bonus.
		bonusMending = 0; // if it is 0 than it cannot be healed, if 0,7 then 30 penalty on healing.
		convertRange = 0;  
		convertPossibility = 0f; // !!! IMPORTANT if unit has any kind of spell/ability button, it needs to have >0 value for this! (read this property as "abilityPossibility") - in AOS: priest property: 0.3 = 30% priest have 30% to convert an other. 
		convertResistance = 0f; // victim property: 0.2 = 20% -> if priest has 30% than 30 - 30*0,2 => priest has 26% to convert. 
		haveBonusAgainst = null;
		haveBonusAgainstMapped = null;
		bestAgainstMeGround = null;
		bestAgainstMeWater = null;
		modifiers = null;
		builders = null;
		grantorShopItems = null; //this is the shop item id, that is required to build this unit - optional, if it is empty and u define a shopitem with this unit, it is automatically referenced - so use only if you want to more than one shopitems to require for this unit to build.
		canNotCarryMe = null;

//(requires & requiresShopItem are in OR connection: any of these is owned -> the unit is granted to build)
requires; //"type"-s that is required (eg. other techonolgies) to have/build this one 
revokerTechs; //"type"-s that revokes this as a buildable unit/tech (eg. a crossbowman upgrade revokes archer from the palette)
upgradeAncestor; // YOU MUST USE IT WHEN a techs upgrades more than one unit type! (eg. orc_axe throwers and orc warriors upgraded by same techs) if >0 than it is the ancestor unit(archer) of this upgraded unit (crossbowman)

grantorShopItems; //"shop item"-s that is required to have/build this one

builders; //is it built in a TC? or in an archery range? or a worker builds it? (if null: in TC nowhere else)	
modifiers; //"type"-s (TECH) that modifies its properties 
isTechnology = false; //if true then a TECH or an EFFECT
races; //these races can build the unit/technology if null/empty than every race can build it or the no_race race can build it	
isFunModeBuildable = false;


		isCarriedUnitSurvivesIfIDie = false; // if true than the unit inside is placed in the place of the dying unit (only 1 unit can be carried then?)
		isCarrierRemovesTerrainDrawbacks = false; // if true than a ship can go in (into carrier) if it on a land, a non-forestwalk can go if it(the carrier) is on a forest
		isCarrierHidesCarriedUnits = true; // if true than units in carrier are hidden while carried (the bridge is not hiding anybody)
		isCarrierCanCarryUnderConstruction = false; // if true than unit cancarry other units while under construction
		isCarrierLetCarriedUnitsToShoot = false; // if true than carried units can shoot out from this carrier
		//if multiple tile unit than the BASE tile is the bottom left one!
		unitSizeRow = 1;
		unitSizeCol = 1;
		attackTypeArrow = false; //if arrow than some units have defense against that
		attackTypeBurningRock = false; //if burning rock than some units have defense against that
		isOccupiableBuilding = false; //the TC-s are not attackable, they are occupiable if empty.
		powerAccuracyPenalty = 0; // percent (0.1 means 10%) do decrease accuracy with target movementrange (bonus removes this penalty)
		rangeMend = 0; //mendrange (what maximal range it can mend) (1 means only nearby unit) (if 0 then mends only carried units (all))
		canOccupyBuilding = false;
		carryCapacity = 0; //it can carry more units, tells you how many
		canBeCarried = false;
		isCarriedUnitSurvivesIfIDie = false; // if true than the unit inside is placed in the place of the dying unit (only 1 unit can be carried then?)
		isWalkableThrough = true; // if no than no unit can walk tru this (even allies, and own player)
		isFactory = false; // is this unit a factory unit, meaning that you can build in here (a TC)
		isFactoryThatNotAffectsFactoryLimits = false; // a factory that is counted separately but also limited to factory limits (with 3 TC you can have 3 stable AND 3 great castle too but max 3) 
		canBuild = false; //if unit can build other units (wall, tower) than true
		bonusHealing = 0; // if this unit have bonus when it is healed by an other unit. 1,1 means 10% bonus.
		bonusMending = 0; // if it is 0 than it cannot be healed, if 0,7 then 30 penalty on healing.
		bonusMendingWhenConstructing = 0; // if it is 0 than it is constructed with the mending rate, if 0,7 then 30 penalty on constructing compared to the mending.

		convertRange = 0;
		convertPossibility = 0; // priest property: 0.3 = 30% priest have 30% to convert an other.
		convertResistance = 0; // victim property: 0.2 = 20% -> if priest has 30% than 30 - 30*0,2 => priest has 24% to convert.
		currentlyBuilding = null;
		isCarriedButRevealed = false; // if true than the unit is shown over the eg. TC
		isStealthUnit = false; //not visible to enemy (with restrictions)
		canSeeStealthUnits = false; //sees stealth units normally
		isUnderConstruction = false; // if true than at least 2X mending speed.
		carriedUnits = null; //carried units
		specUnitActions = null; //special actions like: production speeder
		weaponEffects = null; //list of effect related to the different weapons (ACTIVE EFFECT!)

  	       "rndProd":{                  // this will let you make unit groups, and among the group random spawning: eg. if we want to have 2 similar orc riders, but with different images, you can set this to have it random.
  	          "scope":"SUMMON",     //can be: PRODUCTION, SUMMON, ALL meaning the randomness will effect only production or only summoning or both
	          "prodGroup":"AUX",	// group name 	   
	    	  "prodWeight":20       // summing up the weights in group and getting the random based on weight (eg. you have unitA(w10) unitB(w25) unitC(w15) than unitA=20%, unitB=50%, unitC = 30% chance)
	       },

trnEquivalents; //use this to set other techs to be equivalents to this (eg. elves armor1 is equivalent to human armor 1)

in fantasy version the bone golem (animated from bone-towers)

Code: Select all

{
   "unitTypeName":"UNIT_UND_BUILDING_TOWER_GOLEM",
   "unitType":220,
   "uiDefinition":{
      "visuals":[
      
      
      
         {
            "imgName":"64_unit_undead_building_tower_golem.png",
            "type":"DEFAULT",
            "shiftIndicatorsDown":10,
            "typeExtra":0.0,
            "imgColumns":1,
            "imageDefParts":[
               {
                  "cropToRect":{"top":0, "left":0,"bottom":32,"right":32},
                  "layer":"OVERLAPS",
                  "shiftCol":0,
                  "shiftRow":-1,
                  "clickable":false
               },
               {
                  "cropToRect":{"top":32,"left":0,"bottom":64,"right":32},
                  "layer":"UNITS",
                  "shiftCol":0,
                  "shiftRow":0,
                  "clickable":true
               }
            ]
         }



         
         ]
   }
,
   
   "unitStatSheet":{
         "unit":{

            "isTechnology":false,
            "costTurn":10,
            "grantorShopItems":null,
            "hpMax":65,
            "power":12,
            "rangeAttack":1,
            "armorPierce":2,
            "armorNormal":0,
            "sight":7,

            "unitSizeCol":1,
            "unitSizeRow":1,
            "isUnderConstruction":false,
            "isFactory":false,
            "isFactoryThatNotAffectsFactoryLimits":false,
            "isOccupiableBuilding":false,
            "isWalkableThrough":true,

            "powerAccuracyPenalty":0.0,
            "powerRange":0,
            "powerRangePenaltyPercent":0,
            "attackTypeBurningRock":false,
            "attackTypeArrow":false,

            "rangeWalk":2,            
            "trnWalkTerrain":[
               {"terrainType":"TERRAINS_FORESTWALKABLE", "modifier":1}
            ],
            

            "convertRange":0,
            "convertResistance":0.0,
            "convertPossibility":0.0,
            "rangeHeal":0,
            "healRate":0,
            "rangeMend":0,
            "mendRate":0,
            "canBuild":false,
            "bonusMendingWhenConstructing":0.0,
            "bonusMending":0.0,
            "bonusHealing":1.0,

            "carryCapacity":0,
            "canBeCarried":false,
            "isCarriedUnitSurvivesIfIDie":false,
            "isCarrierCanCarryUnderConstruction":false,
            "isCarrierHidesCarriedUnits":true,
            "isCarrierLetCarriedUnitsToShoot":false,
            "isCarrierRemovesTerrainDrawbacks":false,

            "maxActionCount":1,
            "canOccupyBuilding":false,
            "isStealthUnit":false,
            "canSeeStealthUnits":false,

            
            "trnWeaponEffects":null,


        "trnCategories":["U_WAR_UNITS", "U_SKELETONS", "M_BURNING"],
        "trnEffectAffectTurnsLeft":["3:EFFECT_ENCHANT_VANISHING"],
        "trnModifiers":null,
	"trnRequires":null,
        "trnCanNotCarryMe":{},
        "trnBuilders":null,
        "trnBonusList":null,
        "trnBestAgainstMeWater":{"categories":["U_SHIP_ATTACK"]},
        "trnBestAgainstMeGround":{"categories":["U_MOUNTED"]}
            

         }
   },
   "soundDefinition":{
      "soundPacks":[
         {"soundEvent":"UNIT_SELECTED","packName":"SOUND_PACK_UNIT_SELECT_UND_LAND_UNIT"},
         {"soundEvent":"UNIT_AFFIRM_MOVE","packName":"SOUND_PACK_UNIT_SELECT_UND_LAND_UNIT"},
         {"soundEvent":"UNIT_ATTACK","packName":"SOUND_PACK_UNIT_SELECT_UND_LAND_UNIT"},
         {"soundEvent":"UNIT_DAMAGE","packName":"SOUND_PACK_UNIT_SELECT_UND_LAND_UNIT"}         
         ]
   }
      
   
}
a neutral animal

Code: Select all

{
   "unitTypeName":"UNIT_NEUTRAL_ANIMAL_HEN",
   "unitType":421,
   "uiDefinition":{
      "visuals":[
      
      {
                  "imgName":"unit_neutral_animal_hen.png",
                  "type":"DEFAULT",
                  "shiftIndicatorsDown":10,
                  "typeExtra":0.0,
                  "imgColumns":1,
                  "imageDefParts":[
      	                   {
      	                      "cropToRect":{"top":0,"left":0,"bottom":32,"right":32},
      	                      "layer":"UNITS",
      	                      "shiftCol":0,
      	                      "shiftRow":0,
      	                      "clickable":true
      	                   }
                  ]
         }
      
         
         ]
   },
   
   "unitStatSheet":{
         "unit":{

            "isTechnology":false,
            "costTurn":5,
            "grantorShopItems":null,
            "hpMax":2,
            "power":0,
            "rangeAttack":1,
            "armorPierce":0,
            "armorNormal":0,
            "sight":3,

            "unitSizeCol":1,
            "unitSizeRow":1,
            "isUnderConstruction":false,
            "isFactory":false,
            "isFactoryThatNotAffectsFactoryLimits":false,
            "isOccupiableBuilding":false,
            "isWalkableThrough":true,

            "powerAccuracyPenalty":0.0,
            "powerRange":0,
            "powerRangePenaltyPercent":0,
            "attackTypeBurningRock":false,
            "attackTypeArrow":false,

            "rangeWalk":3,            
            "trnWalkTerrain":[
               {"terrainType":"TERRAINS_FORESTWALKABLE", "modifier":1}
            ],
            

            "convertRange":0,
            "convertResistance":1,
            "convertPossibility":0.0,
            "rangeHeal":0,
            "healRate":0,
            "rangeMend":0,
            "mendRate":0,
            "canBuild":false,
            "bonusMendingWhenConstructing":0.0,
            "bonusMending":0.0,
            "bonusHealing":1.0,

            "carryCapacity":0,
            "canBeCarried":true,
            "isCarriedUnitSurvivesIfIDie":false,
            "isCarrierCanCarryUnderConstruction":false,
            "isCarrierHidesCarriedUnits":true,
            "isCarrierLetCarriedUnitsToShoot":false,
            "isCarrierRemovesTerrainDrawbacks":false,

            "maxActionCount":1,
            "canOccupyBuilding":true,
            "canKillForest":false,
            "canFlyAsteroid":false,
            "isStealthUnit":false,
            "canSeeStealthUnits":false,

            
            "trnWeaponEffects":null,

	"trnRaces":["RACE_ELF"],
        "trnCategories":["U_ANIMALS_PLANTS", "U_FLESH_AND_BLOOD"],
        "trnModifiers":null,
        "trnCanNotCarryMe":{},
        "trnBuilders":{},
        "trnBonusList":[],
        "trnBestAgainstMeWater":{"categories":["U_SHIP_ATTACK"]},
        "trnBestAgainstMeGround":{"categories":["U_ANTI_INFANTRY"]},
        "trnSpecUnitActions":["IS_TERRAIN_ENTITY", "IS_GAIA_AI_ANIMAL_PEACEFUL", "IS_GAIA_ANIMAL"]               

         }
   }
   
   }
   
   
here are some other AOF json in this zip file:
aof_unit_jsons.zip
(293.82 KiB) Downloaded 53 times
here are some other AOS json in this zip file:
aos_unit_jsons.zip
(41.87 KiB) Downloaded 155 times

Validating property sheets
Copy your JSON and place it into this website:
https://jsonformatter.curiousconcept.com/
it will tell you if u have a bad JSON format.

Texting
also we will need some texting for the unit that is required in this form:

Code: Select all

<string name="UNIT_CANNON_SHIP">Cannon ship</string>
<string name="SHOP_CANNON_SHIP">Lets you build: Cannon ship</string>
<string name="unit_txt_cannon_ship">
The Cannon ship is a more modern way of naval warfare, use it for coast bombarding, very effevtive against buildings and slow moving units. It gets inaccurate on faster units. 
</string>

<string name="UNIT_HORSE_ARCHER">Horse archer</string>
<string name="SHOP_HORSE_ARCHER">Lets you build: A fast, ranged unit, a mixture of Knight and Archer</string>
<string name="UNIT_TXT_HORSE_ARCHER">
Horse archers are the combination of archer and knight. They are fast and can attack from a range. You can buy horse archer in the upgrades section for gems.
</string>
APPENDIX





Usable units-types, tech-types, effect-types for referencing in JSON

Code: Select all

		UNIT_TC,
		UNIT_ARCHER,
		UNIT_SWORDMAN,  
		UNIT_PRIEST,
		UNIT_HIGH_PRIEST,
		UNIT_WAGON,
		UNIT_CATAPULT,
		UNIT_KNIGHT,
		UNIT_SCOUT,
		UNIT_BIRD,
		UNIT_WORKER,
		UNIT_TRANSPORTSHIP,		
		UNIT_WARSHIP,
		UNIT_ADV_WARSHIP,
		UNIT_FIRESHIP,
		UNIT_CANNON_SHIP,
		UNIT_WALL,
		UNIT_GATE,
		UNIT_TOWER,
		UNIT_BRIDGE,
		UNIT_ORNITHOPTER,
		UNIT_TROJAN_HORSE,
		UNIT_JEANNE_D_ARC,
		UNIT_HOPLITE,
		UNIT_VIKING,
		UNIT_WILLIAM_WALLACE,
		UNIT_LONGBOWMAN,
		UNIT_HORSE_ARCHER,
		UNIT_SW_SPACESHIP,
		UNIT_FORTRESS,
		UNIT_BUILDING_CANNON_TOWER,
		UNIT_CATAPULT_SHIP,
		UNIT_BUILDING_ARCHERY, 
		UNIT_SKIRMISHER,
		UNIT_MISSIONARY,
		UNIT_BUILDING_SIEGE,
		UNIT_MONEYMAN,
		UNIT_BUILDING_BARRACKS,
		UNIT_ASSASSIN,
		UNIT_TEMPLAR,
		UNIT_OUTPOST,
		UNIT_PIKEMAN, 
		UNIT_WAR_ELEPHANT,
		UNIT_BATTERING_RAM,
		UNIT_BUILDING_STABLE,
		UNIT_BUILDING_CHURCH,
		
		UNIT_BUILDING_DOCK,
		UNIT_BUILDING_ADVANCEMENTS,
		UNIT_BUILDING_GREAT_CASTLE,
		UNIT_BUILDING_BLACKSMITH,
		UNIT_GREAT_TRANSPORT,
		UNIT_BRIDGE_STONE,
		UNIT_SAMURAI,
		UNIT_TREBUCHET,
		UNIT_LORD,
		UNIT_LORD_HUNTRESS,
		UNIT_LORD_PALADIN,
		UNIT_LORD_CHAMPION,
		UNIT_KNIGHT_HERO,
		UNIT_ELEPHANT_ARCHER,
		UNIT_ARCHER_POISON,
		UNIT_AXE_THROWER,
		UNIT_SHIELDER,
		UNIT_BALLISTA,
		UNIT_SLINGER,
		UNIT_HUSSAR,
		UNIT_LANCER,
		UNIT_MAN_AT_ARMS,
		
		UNIT_TOWER_GATLING,
		UNIT_TOWER_BARRAGE,
		UNIT_TOWER_FLAME,
		
		UNIT_MEGA_BUILDING_CASTLE,
		UNIT_CHARIOT,
		UNIT_CHARIOT_ARCHER,
		UNIT_CROSSBOWMAN,
		UNIT_ELITE_SKIRMISHER,
		UNIT_HALBERDIER,
		UNIT_BROAD_SWORDMAN,
		UNIT_HEAVY_KNIGHT,
		UNIT_LIGHT_CAVALRY,
		UNIT_HUN_HUSSAR,
		UNIT_HEAVY_CATAPULT,
		UNIT_HEAVY_LANCER,
		UNIT_FIRE_ARCHER,
		UNIT_ROMAN_LEGION,
		UNIT_MUSLIM_WARRIOR,
		UNIT_MUSLIM_PIKER,
		UNIT_MUSLIM_RIDER,
		UNIT_MUSLIM_ARCHER,
		UNIT_CRUSADER_ARCHER,
		UNIT_CRUSADER,
		UNIT_VETERAN_CRUSADER,
		UNIT_CRUSADER_HORSEMAN,
		UNIT_VETERAN_CRUSADER_HORSEMAN,
		UNIT_CRUSADER_LORD,
		UNIT_TEMPLAR_KNIGHT,
		UNIT_LORD_PRIESTESS,
		UNIT_YARI_ASHIGARU,
		UNIT_TANEGASHIMA_ASHIGARU,
		UNIT_CANNONEER,
		UNIT_ST_STEPHEN,
		UNIT_CENTURION,


		UNIT_TRAINEE000,
		UNIT_TRAINEE001,
		UNIT_TRAINEE002,
		UNIT_TRAINEE011,
		UNIT_TRAINEE012,
		UNIT_TRAINEE021,
		UNIT_TRAINEE022,
		UNIT_TRAINEE111,
		UNIT_TRAINEE112,
		UNIT_TRAINEE121,
		UNIT_TRAINEE122,
		UNIT_TRAINEE211,
		UNIT_TRAINEE212,
		UNIT_TRAINEE221,
		UNIT_TRAINEE222,
		UNIT_BOSS1,
		UNIT_BOSS2,
		UNIT_BOSS3,
		UNIT_SANTA,
		UNIT_US,
		UNIT_TDS_WORKER,
		UNIT_TDS_TOWER1,
		UNIT_TDS_TOWER2,
		UNIT_TDS_TOWER3,
		UNIT_TDS_TOWER4,
		UNIT_TDS_TOWER5,
		UNIT_TDS_TOWER6,
		UNIT_TDS_TOWER7,
		UNIT_TDS_TOWER8,
		UNIT_BRITISH_FIREWORKSHIP,
		
		UNIT_ALASTAR000,
		
		UNIT_ROCKS,
		UNIT_NEUTRAL_WALL,
		UNIT_COOKIE,
		UNIT_SCHOOL_SIGN,
		UNIT_BUNNY,
		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_ANIMAL_DEER,
		UNIT_NEUTRAL_ANIMAL_BEAR,
		UNIT_NEUTRAL_ANIMAL_DOLPHIN,

		TECH_WRITING,
		TECH_BALLISTICS,
		TECH_FLIGHT,
		TECH_TOWN_PATROL,
		TECH_MASONRY,
		TECH_AMBIDEXTRIA,
		TECH_AREA_DAMAGE,
		TECH_PERSUASION,
		TECH_STEAL,
		TECH_MASSIVE_WALLS,
		TECH_ARCHERY,
		TECH_LOYALTY,
		TECH_MACHINERY,
		TECH_UPGRADE_UNIT_CROSSBOWMAN,
		TECH_UPGRADE_UNIT_ELITE_SKIRMISHER,
		TECH_UPGRADE_UNIT_HALBERDIER,
		TECH_UPGRADE_UNIT_BROAD_SWORDSMAN,
		TECH_UPGRADE_UNIT_HEAVY_KNIGHT, 
		TECH_UPGRADE_UNIT_MAN_AT_ARMS,
		TECH_UPGRADE_UNIT_HEAVY_CATAPULT,  
		TECH_UPGRADE_UNIT_HEAVY_LANCER,
		TECH_UPGRADE_UNIT_ADV_WARSHIP,
		TECH_UPGRADE_UNIT_HIGH_PRIEST, 

		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_GUNPOWDER,

		EFFECT_POISONED_ARROWS,
		EFFECT_HIGH_MORALE,
		EFFECT_LEGION,
		EFFECT_FIRE_ARROWS,
		EFFECT_KILL,
		EFFECT_MINUS_65_HP,
Usable terrain references (both in AOS and AOF)

Code: Select all

TERRAIN_WATER,				 
TERRAIN_DEEP_WATER,	
TERRAIN_WOOD,		
TERRAIN_CLEARGROUND,	
TERRAIN_HILL,		
TERRAIN_OBSTACLE,	
TERRAIN_ROCK,		
TERRAIN_DESERT,		
TERRAIN_SNOW,		
TERRAIN_ROAD,		
TERRAIN_BRIDGE,		

TERRAINS_PLAINSWALKABLE, {TERRAIN_CLEARGROUND, TERRAIN_DESERT, TERRAIN_SNOW, TERRAIN_ROAD, TERRAIN_BRIDGE}
TERRAINS_FORESTWALKABLE,{TERRAIN_CLEARGROUND, TERRAIN_DESERT, TERRAIN_SNOW, TERRAIN_ROAD, TERRAIN_BRIDGE, TERRAIN_WOOD}
TERRAINS_SAILABLE,	{TERRAIN_WATER, TERRAIN_DEEP_WATER, TERRAIN_BRIDGE}
TERRAINS_FLYABLE, 	{TERRAIN_WATER, TERRAIN_DEEP_WATER, TERRAIN_CLEARGROUND, TERRAIN_DESERT, TERRAIN_SNOW, TERRAIN_ROAD, TERRAIN_BRIDGE, TERRAIN_HILL, TERRAIN_OBSTACLE, TERRAIN_ROCK, TERRAIN_WOOD}	
Usable specActions in datasheet

Code: Select all

		
		PROD_SPEEDUP, // if unit is in a TC than it will be used for any other unit production
		TRANSPORTING_VEIN, // if unit basic task is a transporter (not an attacker) than this is set.
		STEALTH_UNIT, //this is the new definition for stealth units (instead of isStealthUnit)
		STEALTH_ONLY_UNIT, //this is a indicator of a unit that is not an ASSASSIN but onlya stealth/invisible unit.
		STEALTH_EXPLODES_ON_STEP, //ise this to make damaging units, that damages on step (like a trap, or landmine)
		STEALTH_CAN_SEE_STEALTH, //this is the new definition for stealth units (instead of canSeeStealthUnits)
		CAN_STEAL_TECH_FROM_TC, //this is a indicator of a unit that is not an ASSASSIN but only a stealth/invisible unit.
		CAN_SPY_ENEMY_CARRIER, //can see the internals of enemy carriers
		CAN_GO_TRU_ENEMY_OBJECTS, //a shade that can go tru even on enemy objects.
		IS_STEPPABLE, //anyone can step on it (like it was terrain) but immediately vanishes
		IS_INATTACKABLE, //can be targeted or not (not used yet)
		IS_MIRROR_UNIT, //enemy sees it like it would be a normal unit, but allies sees it as a mirror unit (something changed on image...), if attacked than vanishes.
		IS_REANIMATABLE, //is it a corpse to be reanimated
		IS_INCONVERTIBLE, //can not be converted, ever.
		IS_TERRAIN_ENTITY, //considered as terrain entity (if the map has only these units than it is still only a terrain (random) map
		IS_GAIA_AI_ANIMAL_PEACEFUL, //the unit is a gaia animal and its ai is peaceful like a deer
		IS_GAIA_AI_ANIMAL_HOSTILE, //the unit is a gaia animal and its ai is hostile, attacks if you get in its sight range
		IS_GAIA_AI_ANIMAL_HOSTILE_IF_WOUNDED, //the unit is a gaia animal and its ai is hostile, attacks if it is wounded and you get in its sight range
		
		IS_GAIA_ANIMAL, //the unit is a gaia animal (at least it was on game start)
		CAN_NOT_COUNTERATTACK, //the unit can not counterattack
		NO_PLAYER_CONTROLLED, // such unit is not controllable by the player, only AI will control it in the name of the player.
		CAN_FLY, //in the new terrain era we lost the info that a unit can fly or not, so this spec action will indicate flying.
		AI_FACTORY_SINGLE, //AI information: means only one factory must be built for an AI player from this in one game (eg. blacksmith)
		IS_BUILD_IMMEDIATE, //this case the building (eg. palisade) will not have an 1hp construction site and you can build further, but it builds immediately to the hp where the builder can build it.
	    IS_EFFECT_NOT_FOR_UNDERCONSTR, // if the prop changetr or tech is not for under constuction things.
	    BYPASS_ARMOR, //if the unit damage is reduced by the armor
	    BYPASS_PARMOR, //if the unit damage is reduced by the parmor
            NO_CONSTRUCT, //if a mending unit can not construct under construction units/buildings (like mending ship should not)
            NO_MEND_HIMSELF //if a mending unit can not mend himself, only garrisoned units (eg. airport shoiuld not mend himself but garrisoneds)
	    IS_ALL_TECH_MEMBER, //if a tech a techs to be in "all techs" section - meaning the DEFAULT techs
	    CAN_BE_FLOWN_TRU // if this unit is so low on ground and has no armament to reach - so flyers van fly over it (like caltrops in AOW)
	    IS_EFFECT_REDUCED_BY_ARMOR, // if the prop changer effect (that is HP changing one!) will be reduced by NORMAL armor
	    IS_EFFECT_REDUCED_BY_PARMOR, // if the prop changer effect (that is HP changing one!) will be reduced by PIERCE armor
            IS_OCCUPIABLE, // - occupiable like the TC but means only occupiable and internal units get damaged(nothing else that "isoccupiablebuilding=true" means like no pop limit, visible on explored terrain and so on)
            IS_CARRIED_DAMAGABLE, //if the carried units are receiving damage or not (like on TC-s) - combine lthis with IS_INATTACKABLE to work like a TC
	    IS_LEGENDARY, //on the game area only one can exists, the second will not be produced (stops production)
	    IS_UNIQUE, //for the player only one can exists, the second will not be produced (stops production)
	    ATTACK_FIRST_STRIKE, // it deals counter attack first before attacker can damage, only if attacker has no first strike.
	    ATTACK_FULL_COUNTER, // means the unit has a counter damage  without penalty
	    

Usable sound packs and event

events:

Code: Select all

			UNIT_SELECTED, 
			UNIT_AFFIRM_MOVE, 
			UNIT_ATTACK, 
			UNIT_MEND_BUILD, 
			UNIT_HEAL, 
			UNIT_CONVERT, 
			UNIT_DAMAGE, 
			GLOBAL_TC_OCCUPY, 
			GLOBAL_HUD_BUTTON_PRESS,
			GLOBAL_HUD_BUTTON_SHOP_PRESS,
			GLOBAL_WAYPOINT_SET,
Sound packs for AOS:

Code: Select all

SOUND_PACK_UNIT_SELECT_LAND_UNIT 					
SOUND_PACK_UNIT_SELECT_WATER_UNIT 		
SOUND_PACK_UNIT_SELECT_LAND_NON_WAR_UNIT 	
SOUND_PACK_UNIT_SELECT_LAND_CATAPULT 		
SOUND_PACK_UNIT_SELECT_LAND_SCOUT 		
SOUND_PACK_UNIT_SELECT_LAND_MOUNTED_HORSE  	
SOUND_PACK_UNIT_SELECT_LAND_MOUNTED_ELEPHANT  	
SOUND_PACK_UNIT_SELECT_AIR_HAWK  		
SOUND_PACK_UNIT_SELECT_BUILDING  		
SOUND_PACK_UNIT_SELECT_LAND_PRIEST		
SOUND_PACK_UNIT_SELECT_TIE			
SOUND_PACK_UNIT_SELECT_US			

SOUND_PACK_UNIT_AFFIRM_LAND_UNIT 		
SOUND_PACK_UNIT_AFFIRM_WATER_UNIT 		
SOUND_PACK_UNIT_AFFIRM_LAND_NON_WAR_UNIT 	
SOUND_PACK_UNIT_AFFIRM_LAND_CATAPULT 		
SOUND_PACK_UNIT_AFFIRM_LAND_SCOUT 		
SOUND_PACK_UNIT_AFFIRM_LAND_MOUNTED_HORSE  	
SOUND_PACK_UNIT_AFFIRM_LAND_MOUNTED_ELEPHANT  	
SOUND_PACK_UNIT_AFFIRM_AIR_HAWK  		
SOUND_PACK_UNIT_AFFIRM_LAND_PRIEST		
SOUND_PACK_UNIT_AFFIRM_TIE			

SOUND_PACK_UNIT_ATTACK_SWING 			
SOUND_PACK_UNIT_ATTACK_ARROW 			
SOUND_PACK_UNIT_ATTACK_CATAPULT 		
SOUND_PACK_UNIT_ATTACK_RAM 			
SOUND_PACK_UNIT_ATTACK_NON_WAR_UNIT 		
SOUND_PACK_UNIT_ATTACK_TIE 			
SOUND_PACK_UNIT_ATTACK_ROCKET 			
SOUND_PACK_UNIT_ATTACK_SNIPER_ROCKET 		
SOUND_PACK_UNIT_ATTACK_SNIPER_ROCKET_EXPLOSION 	
SOUND_PACK_UNIT_ATTACK_STINK_BOMB_EXPLOSION 	
SOUND_PACK_UNIT_ATTACK_FIRE_ROCKET_EXPLOSION 	

SOUND_PACK_UNIT_ATTACK_ELEPHANT 		

SOUND_PACK_UNIT_ATTACK_CANNON 			

SOUND_PACK_UNIT_HEAL 				
SOUND_PACK_UNIT_CONVERT 			
SOUND_PACK_UNIT_MEND_BUILD 			

SOUND_PACK_UNIT_DAMAGED_HUMAN 			
SOUND_PACK_UNIT_DAMAGED_BUILDING 		
SOUND_PACK_UNIT_DAMAGED_VEHICLE 		
SOUND_PACK_UNIT_DAMAGED_SCOUT 			
SOUND_PACK_UNIT_DAMAGED_HAWK 			
SOUND_PACK_UNIT_DAMAGED_ELEPHANT 		

SOUND_PACK_GLOBAL_TC_OCCUPY 			
SOUND_PACK_GLOBAL_BUTTON_HUD 			
SOUND_PACK_GLOBAL_BUTTON_HUD_SHOP 		
SOUND_PACK_GLOBAL_WAYPOINT_SET 	
Sound packs for AOF:

Code: Select all

SOUND_PACK_UNIT_SELECT_LAND_UNIT 		
SOUND_PACK_UNIT_SELECT_WATER_UNIT 		
SOUND_PACK_UNIT_SELECT_LAND_NON_WAR_UNIT 	
SOUND_PACK_UNIT_SELECT_LAND_WIZARD 		
SOUND_PACK_UNIT_SELECT_LAND_CATAPULT 		
SOUND_PACK_UNIT_SELECT_LAND_SCOUT 		
SOUND_PACK_UNIT_SELECT_LAND_MOUNTED_HORSE  	
SOUND_PACK_UNIT_SELECT_LAND_MOUNTED_ELEPHANT  	
SOUND_PACK_UNIT_SELECT_AIR_HAWK  		
SOUND_PACK_UNIT_SELECT_BUILDING  		
SOUND_PACK_UNIT_SELECT_LAND_PRIEST		
SOUND_PACK_UNIT_SELECT_TIE			

SOUND_PACK_UNIT_SELECT_UND_LAND_UNIT		
SOUND_PACK_UNIT_SELECT_ORC_LAND_UNIT		

SOUND_PACK_UNIT_SELECT_DRAGON 			
SOUND_PACK_UNIT_SELECT_UND_MAGES		

SOUND_PACK_UNIT_AFFIRM_LAND_UNIT 		
SOUND_PACK_UNIT_AFFIRM_WATER_UNIT 		
SOUND_PACK_UNIT_AFFIRM_LAND_NON_WAR_UNIT 	
SOUND_PACK_UNIT_AFFIRM_LAND_CATAPULT 		
SOUND_PACK_UNIT_AFFIRM_LAND_SCOUT 		
SOUND_PACK_UNIT_AFFIRM_LAND_MOUNTED_HORSE  	
SOUND_PACK_UNIT_AFFIRM_LAND_MOUNTED_ELEPHANT  	
SOUND_PACK_UNIT_AFFIRM_AIR_HAWK  		
SOUND_PACK_UNIT_AFFIRM_LAND_PRIEST		
SOUND_PACK_UNIT_AFFIRM_TIE 			

SOUND_PACK_UNIT_AFFIRM_DRAGON 			

SOUND_PACK_UNIT_ATTACK_SWING 			
SOUND_PACK_UNIT_ATTACK_ARROW 			
SOUND_PACK_UNIT_ATTACK_CATAPULT 		
SOUND_PACK_UNIT_ATTACK_RAM 			
SOUND_PACK_UNIT_ATTACK_NON_WAR_UNIT 		
SOUND_PACK_UNIT_ATTACK_TIE 			
SOUND_PACK_UNIT_ATTACK_ELEPHANT 		

SOUND_PACK_UNIT_ATTACK_DRAGON_BREATH 		

SOUND_PACK_UNIT_HEAL 				
SOUND_PACK_UNIT_CONVERT 			
SOUND_PACK_UNIT_MEND_BUILD 			

SOUND_PACK_UNIT_DAMAGED_HUMAN 			
SOUND_PACK_UNIT_DAMAGED_BUILDING 		
SOUND_PACK_UNIT_DAMAGED_VEHICLE 		
SOUND_PACK_UNIT_DAMAGED_SCOUT 			
SOUND_PACK_UNIT_DAMAGED_HAWK 			
SOUND_PACK_UNIT_DAMAGED_ELEPHANT 		
SOUND_PACK_UNIT_DAMAGED_WIZARD 			

SOUND_PACK_UNIT_DAMAGED_ORC 			

SOUND_PACK_UNIT_DAMAGED_DRAGON 			

SOUND_PACK_SPELL_ANIM_FIREBALL_EXPLOSION 	
SOUND_PACK_SPELL_ANIM_THUNDER_STORM 		

SOUND_PACK_GLOBAL_TC_OCCUPY 			
SOUND_PACK_GLOBAL_BUTTON_HUD 			
SOUND_PACK_GLOBAL_BUTTON_HUD_SHOP 		
SOUND_PACK_GLOBAL_WAYPOINT_SET 			
Usable arrow sprites and arrow type actions

Arrow type actions:

Code: Select all

ATTACK_ARROW, 
ATTACK_FIREBURN, 
CONVERT, 
MEND, 
HEAL
Arrow sprites for AOS

Code: Select all

SPRITE_LASERBEAM_2GREEN		
SPRITE_ARROW_JAVELIN		
SPRITE_ARROW_BALLISTA		
SPRITE_ARROW_HEAL		
SPRITE_ARROW_CONVERT		
SPRITE_ARROW_MEND		
SPRITE_ARROW_STONE		
SPRITE_ARROW_CANNON_BALL	
SPRITE_ARROW_FIRE		
SPRITE_ARROW_AXE		
SPRITE_ARROW_SMALL_STONE	
SPRITE_ARROW_CONVERT_SANTA	
SPRITE_ARROW_FIREWORKS		
Arrow sprites for AOF

Code: Select all

SPRITE_ARROW_BAT, 
SPRITE_LASERBEAM_2GREEN, 
SPRITE_ARROW_JAVELIN, 
SPRITE_ARROW_HEAL,
SPRITE_ARROW_CONVERT, 
SPRITE_ARROW_MEND,
SPRITE_ARROW_STONE,
SPRITE_ARROW_FIRE,
SPRITE_ARROW_AXE,
Usable weapon effects

weapon "types":

Code: Select all

WEAPON_EFFECT_SLOT_SPELLCAST
WEAPON_EFFECT_SLOT_WP_1
weapon effects types:
AOS:

Code: Select all

EFFECT_POISONED_ARROWS			
EFFECT_DELAYED_CONVERSION		
EFFECT_FIRE_ARROWS			
EFFECT_US_SNIPER_ROCKET			
EFFECT_US_FIRE_ROCKET			
EFFECT_US_STINK_BOMB			
EFFECT_US_FIRE_ROCKET_EFFECT		
EFFECT_FIRE_ARROWS_ON_EVERYONE		
EFFECT_US_STINK_BOMB_EFFECT		
EFFECT_HIGH_MORALE			
EFFECT_AURA_HIGH_MORALE_ULIMITED	
EFFECT_AURA_LEGION_ULIMITED		
EFFECT_LEGION				
AOF:

Code: Select all


EFFECT_POISONED_ARROWS			
EFFECT_IMMEDIATE_CONVERSION		
EFFECT_SLOWING				
EFFECT_DISARMOR				
EFFECT_ENCHANT_STRENGTHEN		
EFFECT_INSTANT_HEAL			
EFFECT_INSTANT_DISENCHANT		
EFFECT_INSTANT_SUMMON_SKELETON		
EFFECT_INSTANT_CASTER_AND_TARGET_DIES	
EFFECT_INSTANT_PAIN_DAMAGER		
EFFECT_INSTANT_DOUBLE_STRIKE		
EFFECT_INSTANT_TRAMPLE			
EFFECT_SUMMON_GOBLIN			
EFFECT_ENCHANT_LIFELINK			
EFFECT_CAST_LIFELINK			
EFFECT_AURA_STRENGTH_1ATTACK_ULIMITED	
EFFECT_STRENGTH_1ATTACK			
EFFECT_AURA_LIFELINK			
EFFECT_ENCHANT_LIFELINK_UNLIMITED	
EFFECT_INSTANT_REGENERATION		
EFFECT_CAST_AURA_STRENGTH_1ATTACK	
EFFECT_AURA_STRENGTH_1ATTACK		
EFFECT_INSTANT_BANSHEE_SCREAM		
EFFECT_INSTANT_TROLL_ROT		
EFFECT_INSTANT_SACRI_HP_DAMAGE		
EFFECT_ENCHANT_VANISHING		
EFFECT_INSTANT_SUMMON_WOLF		
EFFECT_ENCHANT_FORESTWALK		
EFFECT_AURA_HEAL_5_ULIMITED		
EFFECT_HEAL_5				
EFFECT_INSTANT_SUMMON_ENT		
EFFECT_FIRE_ARROWS			
EFFECT_ENCHANT_FEAR			
EFFECT_ENCHANT_VISION			
EFFECT_TRANSFORM1			
EFFECT_AURA_VISION_ULIMITED		
EFFECT_VISION				
EFFECT_ENCHANT_VANISHING_SILENT		
EFFECT_ANIMATE_DEAD			
EFFECT_INSTANT_FIREBALL_EFFECT		
EFFECT_INSTANT_THUNDER_STORM		
EFFECT_FIRE_ARROWS_INSTANT		
EFFECT_INSTANT_THUNDER_STRIKE		
EFFECT_INSTANT_FIREBALL			
EFFECT_FIRE_ARROWS_ON_EVERYONE		
EFFECT_ENCHANTMENT_CURSED		
EFFECT_INSTANT_HEAL_3			
EFFECT_CAST_POISON_WEAPON		
EFFECT_ENCHANT_POISONED_WEAPON		
EFFECT_INSTANT_EAT_CORPSE_TO_HEAL	
EFFECT_SUMMON_ORC_DRAGON		
EFFECT_SUMMON_UND_DRAGON		
EFFECT_INSTANT_DRAGON_FIRE		
EFFECT_INSTANT_DRAGON_BREATH		



User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Sun Sep 20, 2015 12:50 pm

Looks good. :)
Thanks!
Josh

User avatar
Alexander82
Posts: 5804
Joined: Thu Feb 26, 2015 8:18 pm

Re: Unit Design - unit property sheet

Post by Alexander82 » Wed Sep 23, 2015 12:25 pm

Great!

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Sun Sep 27, 2015 9:45 am

modified input format.

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Mon Sep 28, 2015 6:39 pm

input format is extended by sound definitions.

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Mon Sep 28, 2015 8:26 pm

input format is extended by arrow sprites definitions.

User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Mon Sep 28, 2015 10:01 pm

Cool! :D Finally! :)
Thanks!
Josh

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Wed Sep 30, 2015 8:19 pm

new way of giving walkability and speed on different terrains.

User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Thu Oct 01, 2015 2:49 am

Yay! :) Now let's get in those camel riders and such (who can go faster on desert) :D
Thanks!
Josh

User avatar
TheBluePhoenix
Posts: 1498
Joined: Thu Jul 30, 2015 5:09 pm

Re: Unit Design - unit property sheet

Post by TheBluePhoenix » Thu Oct 01, 2015 4:40 am

As you said dev this IS a clumsy way. I dont know from where i will download that software. Maybe some more details and an in game link to some json writer maybe in dev versions will be helpful i think.
BEWARE!!!!The long lost empire of phoenicia is rising- The world is but just near the golden age,wherein men played and frolicked,without any worries at all


Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Thu Oct 01, 2015 5:31 am

clumsy: i removed that part, because this will be the "nice" way to define units :)

most properties are understandable i will also post my own comments on the fields
any questions u have post here and u will get answer

thanks!

User avatar
TheBluePhoenix
Posts: 1498
Joined: Thu Jul 30, 2015 5:09 pm

Re: Unit Design - unit property sheet

Post by TheBluePhoenix » Thu Oct 01, 2015 5:52 am

Hmmm ok i will try it in my free time. From where can i get the software?
BEWARE!!!!The long lost empire of phoenicia is rising- The world is but just near the golden age,wherein men played and frolicked,without any worries at all


User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Thu Oct 01, 2015 12:05 pm

You can edit it in any simple text editor (like in Notepad).
Thanks!
Josh

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Thu Oct 01, 2015 6:30 pm

new: the effects and spells can also be configured (you can use existing spell "identificators")
so if u want a brand new spell/effect type, than i will implement the spell and post here the "identificator" for it so u can use in unit definition.

User avatar
Alexander82
Posts: 5804
Joined: Thu Feb 26, 2015 8:18 pm

Re: Unit Design - unit property sheet

Post by Alexander82 » Tue Nov 03, 2015 11:38 pm

I need AOF unit/building codes and tech codes

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Wed Nov 04, 2015 6:34 am

tech is the same.
and there is a bone golem sample too.

the format is the same as AOS format only AOF has the "race" tag as an addition.

User avatar
ejm29
Posts: 682
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 » Wed Nov 04, 2015 4:49 pm

Im not sure if that testing website is 100% reliable. It always says that the format is wrong (even when I copy an existing units JSON)

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Wed Nov 04, 2015 5:30 pm

that is very reliable, maybe the sample is really invalid - which is that?

User avatar
ejm29
Posts: 682
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 » Wed Nov 04, 2015 9:07 pm

I believe i used the horse archers (from above)
But I also tried a few others (im probably just doing it wrong) :)

User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Fri Nov 06, 2015 7:16 pm

ejm29 wrote:I believe i used the horse archers (from above)
But I also tried a few others (im probably just doing it wrong) :)
I don't know what is wrong, but they are all valid. Make sure to hit the "SELECT ALL" part of the "CODE : SELECT ALL" before copying. That way all the code is selected.

The
help on understanding the fields:
is not a json file.
Thanks!
Josh

User avatar
ejm29
Posts: 682
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 » Fri Nov 06, 2015 9:40 pm

qe="COOLguy"]
ejm29 wrote:I believe i used the horse archers (from above)
But I also tried a few others (im probably just doing it wrong) :)
I don't know what is wrong, but they are all valid. Make sure to hit the "SELECT ALL" part of the "CODE : SELECT ALL" before copying. That way all the code is selected.[/quote]
Nope I definitely got it all. Ive got no idea what's happening, it must be an isolated problem.
(here's a screen shot of the error)
Attachments
Screenshot_2015-11-06-21-34-48.png
Error
Screenshot_2015-11-06-21-34-48.png (42.44 KiB) Viewed 11775 times

User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Sat Nov 07, 2015 2:14 am

Well your error is coming from these lines:

"unitStatSheet":{
"unit":{

Can you paste the text you used? Did you accidentally type an extra character into it? (that is the error)
Thanks!
Josh

User avatar
ejm29
Posts: 682
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 » Sat Nov 07, 2015 2:03 pm

{   "unitTypeName":"UNIT_FIRE_ARCHER",   "unitType":98,   "uiDefinition":{      "visuals":[                     {            "imgName":"32_unit_fire_archer.png",            "type":"DEFAULT",            "shiftIndicatorsDown":0,            "typeExtra":0.0,            "imgColumns":8,            "imageDefParts":[               {                  "cropToRect":{"top": 0,"left":0,"bottom":32,"right":256},                  "layer":"UNITS",                  "shiftCol":0,                  "shiftRow":0,                  "clickable":true               }            ]         }                  ]   },      "unitStatSheet":{         "unit":{            "isTechnology":false,            "costTurn":3,            "grantorShopItems":[244],            "hpMax":11,            "power":5,            "rangeAttack":5,            "armorPierce":0,            "armorNormal":0,            "sight":7,            "unitSizeCol":1,            "unitSizeRow":1,            "isUnderConstruction":false,            "isFactory":false,            "isFactoryThatNotAffectsFactoryLimits":false,            "isOccupiableBuilding":false,            "isWalkableThrough":true,            "powerAccuracyPenalty":0.0,            "powerRange":0,            "powerRangePenaltyPercent":0,            "attackTypeBurningRock":false,            "attackTypeArrow":true,            "rangeWalk":3,                        "trnWalkTerrain":[               {"terrainType":"TERRAINS_FORESTWALKABLE", "modifier":1},               {"terrainType":"TERRAINS_SAILABLE", "modifier":0.6}            ],                        "convertRange":0,            "convertResistance":0.0,            "convertPossibility":0.0,            "rangeHeal":0,            "healRate":0,            "rangeMend":0,            "mendRate":0,            "canBuild":false,            "bonusMendingWhenConstructing":0.0,            "bonusMending":0.0,            "bonusHealing":1.0,            "carryCapacity":0,            "canBeCarried":true,            "isCarriedUnitSurvivesIfIDie":false,            "isCarrierCanCarryUnderConstruction":false,            "isCarrierHidesCarriedUnits":true,            "isCarrierLetCarriedUnitsToShoot":false,            "isCarrierRemovesTerrainDrawbacks":false,            "maxActionCount":1,            "canOccupyBuilding":true,            "canKillForest":false,            "canFlyAsteroid":false,            "isStealthUnit":false,            "canSeeStealthUnits":false,                        "trnWeaponEffects":[               {                  "weaponSlot":"WEAPON_EFFECT_SLOT_WP_1",                  "effDefault":"EFFECT_FIRE_ARROWS",                  "effOptions":null               },               {                  "weaponSlot":"WEAPON_EFFECT_SLOT_SPELLCAST",                  "effDefault":"EFFECT_US_SNIPER_ROCKET",                  "effOptions":["EFFECT_US_SNIPER_ROCKET", "EFFECT_US_FIRE_ROCKET", "EFFECT_US_STINK_BOMB"]               }                           ],        "trnCategories":["U_ARCHERS"],        "trnModifiers":{"unitTypes":["EFFECT_POISONED_ARROWS", "TECH_ARCHERY", "TECH_ARCHERY_LV2", "TECH_ARMOR_ARCHER_LV1", "TECH_ARMOR_ARCHER_LV2"]},        "trnCanNotCarryMe":{},        "trnBuilders":{"unitTypes":["UNIT_TC","UNIT_BUILDING_ARCHERY"]},        "trnBonusList":[      {         "modifier":0.5,                  "unitList":{            "categories":["U_CHEAP_MELEE","U_BURNABLE", "U_BUILDING_SIZED_UNITS"],            "unitTypes":["UNIT_ORNITHOPTER"]         }               },      {         "modifier":6,                  "unitList":{"categories":["U_MEGA_BUILDINGS"]}               },      {         "modifier":2,                  "unitList":{"categories":["U_SHIPS"]}               }        ],        "trnBestAgainstMeWater":{"categories":["U_SHIP_ATTACK"]},        "trnBestAgainstMeGround":{"categories":["U_ANTI_ARCHER"]}                     }   },   "soundDefinition":{      "soundPacks":[         {"soundEvent":"UNIT_SELECTED","packName":"SOUND_PACK_UNIT_SELECT_LAND_UNIT"},         {"soundEvent":"UNIT_AFFIRM_MOVE","packName":"SOUND_PACK_UNIT_AFFIRM_LAND_UNIT"},         {"soundEvent":"UNIT_ATTACK","packName":"SOUND_PACK_UNIT_ATTACK_ARROW"},         {"soundEvent":"UNIT_DAMAGE","packName":"SOUND_PACK_UNIT_DAMAGED_HUMAN"}                  ]   },   "arrowSpriteDefinition":{      "arrowSprites":[         {"arrowType":"ATTACK_ARROW","spriteName":"SPRITE_ARROW_FIRE"}         ]   }         }

User avatar
ejm29
Posts: 682
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 » Sat Nov 07, 2015 2:06 pm

That is one of the various JSON I tried

User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Sat Nov 07, 2015 2:14 pm

I'm not sure what is wrong. It validated for me...

Does it show the same error every time ("strings should be wrapped in double quotes", "invalid characters found", for lines 17 and 18)?

Can you screenshot what it shows when you click on those errors?
Thanks!
Josh

User avatar
ejm29
Posts: 682
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 » Sat Nov 07, 2015 2:37 pm

Yes, I think its always the same errors. (Full errors fist below)

Code: Select all

Error:Strings should be wrapped in double quotes.[Code 17, Structure 2]Error:Invalid characters found.[Code 18, Structure 2]Error:Strings should be wrapped in double quotes.[Code 17, Structure 6]Error:Invalid characters found.[Code 18, Structure 6]Error:Strings should be wrapped in double quotes.[Code 17, Structure 10]Error:Invalid characters found.[Code 18, Structure 10]Error:Strings should be wrapped in double quotes.[Code 17, Structure 13]Error:Invalid characters found.[Code 18, Structure 13]Error:Strings should be wrapped in double quotes.[Code 17, Structure 16]Error:Expecting comma or ], not {.[Code 10, Structure 17]Error:Strings should be wrapped in double quotes.[Code 17, Structure 18]Error:Invalid characters found.[Code 18, Structure 18]Error:Strings should be wrapped in double quotes.[Code 17, Structure 22]Error:Invalid characters found.[Code 18, Structure 22]Error:Strings should be wrapped in double quotes.[Code 17, Structure 26]Error:Invalid characters found.[Code 18, Structure 26]Error:Strings should be wrapped in double quotes.[Code 17, Structure 30]Error:Invalid characters found.[Code 18, Structure 30]Error:Strings should be wrapped in double quotes.[Code 17, Structure 34]Error:Invalid characters found.[Code 18, Structure 34]Error:Strings should be wrapped in double quotes.[Code 17, Structure 38]Error:Invalid characters found.[Code 18, Structure 38]Error:Strings should be wrapped in double quotes.[Code 17, Structure 41]Error:Expecting comma or ], not {.[Code 10, Structure 42]Error:Strings should be wrapped in double quotes.[Code 17, Structure 43]Error:Invalid characters found.[Code 18, Structure 43]Error:Strings should be wrapped in double quotes.[Code 17, Structure 63]Error:Invalid characters found.[Code 18, Structure 63]Error:Strings should be wrapped in double quotes.[Code 17, Structure 67]Error:Invalid characters found.[Code 18, Structure 67]Error:Strings should be wrapped in double quotes.[Code 17, Structure 71]Error:Invalid characters found.[Code 18, Structure 71]Error:Strings should be wrapped in double quotes.[Code 17, Structure 75]Error:Invalid characters found.[Code 18, Structure 75]Error:Expecting comma or }, not string.[Code 13, Structure 78]Error:Strings should be wrapped in double quotes.[Code 17, Structure 78]Error:Expecting comma or ], not string.[Code 6, Structure 80]Error:Strings should be wrapped in double quotes.[Code 17, Structure 80]Error:Expecting comma or }, not string.[Code 7, Structure 82]Error:Strings should be wrapped in double quotes.[Code 17, Structure 82]Error:Expecting comma or ], not string.[Code 6, Structure 84]Error:Strings should be wrapped in double quotes.[Code 17, Structure 84]Error:Expecting comma or }, not string.[Code 7, Structure 86]Error:Strings should be wrapped in double quotes.[Code 17, Structure 86]Error:Strings should be wrapped in double quotes.[Code 17, Structure 89]Error:Invalid characters found.[Code 18, Structure 89]Error:Strings should be wrapped in double quotes.[Code 17, Structure 92]Error:Invalid characters found.[Code 18, Structure 92]Error:Strings should be wrapped in double quotes.[Code 17, Structure 95]Error:Invalid characters found.[Code 18, Structure 95]Error:Strings should be wrapped in double quotes.[Code 17, Structure 99]Error:Invalid characters found.[Code 18, Structure 99]Error:Strings should be wrapped in double quotes.[Code 17, Structure 103]Error:Invalid characters found.[Code 18, Structure 103]Error:Strings should be wrapped in double quotes.[Code 17, Structure 109]Error:Invalid characters found.[Code 18, Structure 109]Error:Strings should be wrapped in double quotes.[Code 17, Structure 113]Error:Invalid characters found.[Code 18, Structure 113]Error:Strings should be wrapped in double quotes.[Code 17, Structure 117]Error:Invalid characters found.[Code 18, Structure 117]Error:Strings should be wrapped in double quotes.[Code 17, Structure 121]Error:Invalid characters found.[Code 18, Structure 121]Error:Strings should be wrapped in double quotes.[Code 17, Structure 125]Error:Invalid characters found.[Code 18, Structure 125]Error:Strings should be wrapped in double quotes.[Code 17, Structure 129]Error:Invalid characters found.[Code 18, Structure 129]Error:Strings should be wrapped in double quotes.[Code 17, Structure 133]Error:Invalid characters found.[Code 18, Structure 133]Error:Strings should be wrapped in double quotes.[Code 17, Structure 137]Error:Invalid characters found.[Code 18, Structure 137]Error:Strings should be wrapped in double quotes.[Code 17, Structure 141]Error:Invalid characters found.[Code 18, Structure 141]Error:Strings should be wrapped in double quotes.[Code 17, Structure 145]Error:Invalid characters found.[Code 18, Structure 145]Error:Strings should be wrapped in double quotes.[Code 17, Structure 149]Error:Invalid characters found.[Code 18, Structure 149]Error:Strings should be wrapped in double quotes.[Code 17, Structure 153]Error:Invalid characters found.[Code 18, Structure 153]Error:Strings should be wrapped in double quotes.[Code 17, Structure 157]Error:Invalid characters found.[Code 18, Structure 157]Error:Strings should be wrapped in double quotes.[Code 17, Structure 161]Error:Invalid characters found.[Code 18, Structure 161]Error:Strings should be wrapped in double quotes.[Code 17, Structure 165]Error:Invalid characters found.[Code 18, Structure 165]Error:Strings should be wrapped in double quotes.[Code 17, Structure 169]Error:Invalid characters found.[Code 18, Structure 169]Error:Strings should be wrapped in double quotes.[Code 17, Structure 173]Error:Invalid characters found.[Code 18, Structure 173]Error:Strings should be wrapped in double quotes.[Code 17, Structure 177]Error:Invalid characters found.[Code 18, Structure 177]Error:Strings should be wrapped in double quotes.[Code 17, Structure 181]Error:Invalid characters found.[Code 18, Structure 181]Error:Strings should be wrapped in double quotes.[Code 17, Structure 185]Error:Invalid characters found.[Code 18, Structure 185]Error:Strings should be wrapped in double quotes.[Code 17, Structure 188]Error:Expecting comma or ], not {.[Code 10, Structure 189]Error:Strings should be wrapped in double quotes.[Code 17, Structure 199]Error:Expecting comma or ], not {.[Code 10, Structure 200]Error:Expecting comma or ], not string.[Code 6, Structure 209]Error:Strings should be wrapped in double quotes.[Code 17, Structure 209]Error:Strings should be wrapped in double quotes.[Code 17, Structure 212]Error:Invalid characters found.[Code 18, Structure 212]Error:Strings should be wrapped in double quotes.[Code 17, Structure 216]Error:Invalid characters found.[Code 18, Structure 216]Error:Strings should be wrapped in double quotes.[Code 17, Structure 220]Error:Invalid characters found.[Code 18, Structure 220]Error:Strings should be wrapped in double quotes.[Code 17, Structure 224]Error:Invalid characters found.[Code 18, Structure 224]Error:Strings should be wrapped in double quotes.[Code 17, Structure 228]Error:Invalid characters found.[Code 18, Structure 228]Error:Strings should be wrapped in double quotes.[Code 17, Structure 232]Error:Invalid characters found.[Code 18, Structure 232]Error:Strings should be wrapped in double quotes.[Code 17, Structure 236]Error:Invalid characters found.[Code 18, Structure 236]Error:Strings should be wrapped in double quotes.[Code 17, Structure 240]Error:Invalid characters found.[Code 18, Structure 240]Error:Strings should be wrapped in double quotes.[Code 17, Structure 244]Error:Invalid characters found.[Code 18, Structure 244]Error:Strings should be wrapped in double quotes.[Code 17, Structure 248]Error:Invalid characters found.[Code 18, Structure 248]Error:Strings should be wrapped in double quotes.[Code 17, Structure 252]Error:Invalid characters found.[Code 18, Structure 252]Error:Strings should be wrapped in double quotes.[Code 17, Structure 256]Error:Invalid characters found.[Code 18, Structure 256]Error:Strings should be wrapped in double quotes.[Code 17, Structure 260]Error:Invalid characters found.[Code 18, Structure 260]Error:Strings should be wrapped in double quotes.[Code 17, Structure 264]Error:Invalid characters found.[Code 18, Structure 264]Error:Strings should be wrapped in double quotes.[Code 17, Structure 268]Error:Invalid characters found.[Code 18, Structure 268]Error:Strings should be wrapped in double quotes.[Code 17, Structure 272]Error:Invalid characters found.[Code 18, Structure 272]Error:Strings should be wrapped in double quotes.[Code 17, Structure 276]Error:Invalid characters found.[Code 18, Structure 276]Error:Strings should be wrapped in double quotes.[Code 17, Structure 280]Error:Invalid characters found.[Code 18, Structure 280]Error:Strings should be wrapped in double quotes.[Code 17, Structure 284]Error:Invalid characters found.[Code 18, Structure 284]Error:Strings should be wrapped in double quotes.[Code 17, Structure 288]Error:Invalid characters found.[Code 18, Structure 288]Error:Strings should be wrapped in double quotes.[Code 17, Structure 292]Error:Invalid characters found.[Code 18, Structure 292]Error:Strings should be wrapped in double quotes.[Code 17, Structure 296]Error:Invalid characters found.[Code 18, Structure 296]Error:Strings should be wrapped in double quotes.[Code 17, Structure 300]Error:Invalid characters found.[Code 18, Structure 300]Error:Strings should be wrapped in double quotes.[Code 17, Structure 304]Error:Invalid characters found.[Code 18, Structure 304]Error:Strings should be wrapped in double quotes.[Code 17, Structure 308]Error:Invalid characters found.[Code 18, Structure 308]Error:Strings should be wrapped in double quotes.[Code 17, Structure 311]Error:Expecting comma or ], not {.[Code 10, Structure 312]Error:Strings should be wrapped in double quotes.[Code 17, Structure 313]Error:Invalid characters found.[Code 18, Structure 313]Error:Strings should be wrapped in double quotes.[Code 17, Structure 317]Error:Invalid characters found.[Code 18, Structure 317]Error:Strings should be wrapped in double quotes.[Code 17, Structure 321]Error:Invalid characters found.[Code 18, Structure 321]Error:Expecting comma or }, not string.[Code 13, Structure 324]Error:Strings should be wrapped in double quotes.[Code 17, Structure 324]Error:Strings should be wrapped in double quotes.[Code 17, Structure 327]Error:Expecting comma or ], not {.[Code 10, Structure 328]Error:Strings should be wrapped in double quotes.[Code 17, Structure 329]Error:Invalid characters found.[Code 18, Structure 329]Error:Strings should be wrapped in double quotes.[Code 17, Structure 333]Error:Invalid characters found.[Code 18, Structure 333]Error:Strings should be wrapped in double quotes.[Code 17, Structure 337]Error:Invalid characters found.[Code 18, Structure 337]Error:Expecting comma or }, not string.[Code 7, Structure 346]Error:Strings should be wrapped in double quotes.[Code 17, Structure 346]Error:Expecting comma or ], not string.[Code 6, Structure 348]Error:Strings should be wrapped in double quotes.[Code 17, Structure 348]Error:Strings should be wrapped in double quotes.[Code 17, Structure 351]Error:Invalid characters found.[Code 18, Structure 351]Error:Strings should be wrapped in double quotes.[Code 17, Structure 357]Error:Invalid characters found.[Code 18, Structure 357]Error:Strings should be wrapped in double quotes.[Code 17, Structure 375]Error:Invalid characters found.[Code 18, Structure 375]Error:Strings should be wrapped in double quotes.[Code 17, Structure 380]Error:Invalid characters found.[Code 18, Structure 380]Error:Strings should be wrapped in double quotes.[Code 17, Structure 392]Error:Invalid characters found.[Code 18, Structure 392]Error:Strings should be wrapped in double quotes.[Code 17, Structure 395]Error:Expecting comma or ], not {.[Code 10, Structure 396]Error:Strings should be wrapped in double quotes.[Code 17, Structure 397]Error:Invalid characters found.[Code 18, Structure 397]Error:Strings should be wrapped in double quotes.[Code 17, Structure 401]Error:Invalid characters found.[Code 18, Structure 401]Error:Strings should be wrapped in double quotes.[Code 17, Structure 404]Error:Invalid characters found.[Code 18, Structure 404]Error:Strings should be wrapped in double quotes.[Code 17, Structure 414]Error:Invalid characters found.[Code 18, Structure 414]Error:Expecting comma or }, not string.[Code 7, Structure 419]Error:Strings should be wrapped in double quotes.[Code 17, Structure 419]Error:Expecting comma or }, not string.[Code 7, Structure 421]Error:Strings should be wrapped in double quotes.[Code 17, Structure 421]Error:Strings should be wrapped in double quotes.[Code 17, Structure 424]Error:Expecting comma or ], not {.[Code 10, Structure 425]Error:Strings should be wrapped in double quotes.[Code 17, Structure 426]Error:Invalid characters found.[Code 18, Structure 426]Error:Strings should be wrapped in double quotes.[Code 17, Structure 430]Error:Invalid characters found.[Code 18, Structure 430]Error:Expecting comma or }, not string.[Code 7, Structure 439]Error:Strings should be wrapped in double quotes.[Code 17, Structure 439]Error:Strings should be wrapped in double quotes.[Code 17, Structure 442]Error:Expecting comma or ], not {.[Code 10, Structure 443]Error:Strings should be wrapped in double quotes.[Code 17, Structure 444]Error:Invalid characters found.[Code 18, Structure 444]Error:Strings should be wrapped in double quotes.[Code 17, Structure 448]Error:Invalid characters found.[Code 18, Structure 448]Error:Expecting comma or }, not string.[Code 7, Structure 457]Error:Strings should be wrapped in double quotes.[Code 17, Structure 457]Error:Expecting comma or ], not string.[Code 6, Structure 459]Error:Strings should be wrapped in double quotes.[Code 17, Structure 459]Error:Strings should be wrapped in double quotes.[Code 17, Structure 462]Error:Invalid characters found.[Code 18, Structure 462]Error:Strings should be wrapped in double quotes.[Code 17, Structure 472]Error:Invalid characters found.[Code 18, Structure 472]Error:Expecting comma or }, not string.[Code 7, Structure 481]Error:Strings should be wrapped in double quotes.[Code 17, Structure 481]Error:Expecting comma or }, not string.[Code 7, Structure 483]Error:Strings should be wrapped in double quotes.[Code 17, Structure 483]Error:Strings should be wrapped in double quotes.[Code 17, Structure 486]Error:Invalid characters found.[Code 18, Structure 486]Error:Strings should be wrapped in double quotes.[Code 17, Structure 489]Error:Invalid characters found.[Code 18, Structure 489]Error:Strings should be wrapped in double quotes.[Code 17, Structure 492]Error:Expecting comma or ], not {.[Code 10, Structure 493]Error:Strings should be wrapped in double quotes.[Code 17, Structure 503]Error:Expecting comma or ], not {.[Code 10, Structure 504]Error:Strings should be wrapped in double quotes.[Code 17, Structure 514]Error:Expecting comma or ], not {.[Code 10, Structure 515]Error:Strings should be wrapped in double quotes.[Code 17, Structure 525]Error:Expecting comma or ], not {.[Code 10, Structure 526]Error:Expecting comma or ], not string.[Code 6, Structure 535]Error:Strings should be wrapped in double quotes.[Code 17, Structure 535]Error:Expecting comma or }, not string.[Code 7, Structure 537]Error:Strings should be wrapped in double quotes.[Code 17, Structure 537]Error:Strings should be wrapped in double quotes.[Code 17, Structure 540]Error:Invalid characters found.[Code 18, Structure 540]Error:Strings should be wrapped in double quotes.[Code 17, Structure 543]Error:Invalid characters found.[Code 18, Structure 543]Error:Strings should be wrapped in double quotes.[Code 17, Structure 546]Error:Expecting comma or ], not {.[Code 10, Structure 547]Error:Expecting comma or ], not string.[Code 6, Structure 556]Error:Strings should be wrapped in double quotes.[Code 17, Structure 556]Error:Expecting comma or }, not string.[Code 7, Structure 558]Error:Strings should be wrapped in double quotes.[Code 17, Structure 558]Error:Expecting closing } at end[Code 22, Structure 559]

When I click on an error it take me down the page to "Formatted JSON" I was going to take a screen shot, but you have to pan across to see all the code (you would only gey about 1% of the code) full formatted jsom below

   "unitTypeName":"UNIT_FIRE_ARCHER",   "unitType":98,   "uiDefinition":{      "visuals":[                     {            "imgName":"32_unit_fire_archer.png",            "type":"DEFAULT",            "shiftIndicatorsDown":0,            "typeExtra":0.0,            "imgColumns":8,            "imageDefParts":[               {                  "cropToRect":{"top":0,"left":0,"bottom":32,"right":256},                  "layer":"UNITS",                  "shiftCol":0,                  "shiftRow":0,                  "clickable":true               }           ]         }                  ]   },      "unitStatSheet":{         "unit":{            "isTechnology":false,            "costTurn":3,            "grantorShopItems":[244],            "hpMax":11,            "power":5,            "rangeAttack":5,            "armorPierce":0,            "armorNormal":0,            "sight":7,            "unitSizeCol":1,            "unitSizeRow":1,            "isUnderConstruction":false,            "isFactory":false,            "isFactoryThatNotAffectsFactoryLimits":false,            "isOccupiableBuilding":false,            "isWalkableThrough":true,            "powerAccuracyPenalty":0.0,            "powerRange":0,            "powerRangePenaltyPercent":0,            "attackTypeBurningRock":false,            "attackTypeArrow":true,            "rangeWalk":3,                        "trnWalkTerrain":[               {"terrainType":"TERRAINS_FORESTWALKABLE","modifier":1},               {"terrainType":"TERRAINS_SAILABLE","modifier":0.6}           ],                        "convertRange":0,            "convertResistance":0.0,            "convertPossibility":0.0,            "rangeHeal":0,            "healRate":0,            "rangeMend":0,            "mendRate":0,            "canBuild":false,            "bonusMendingWhenConstructing":0.0,            "bonusMending":0.0,            "bonusHealing":1.0,            "carryCapacity":0,            "canBeCarried":true,            "isCarriedUnitSurvivesIfIDie":false,            "isCarrierCanCarryUnderConstruction":false,            "isCarrierHidesCarriedUnits":true,            "isCarrierLetCarriedUnitsToShoot":false,            "isCarrierRemovesTerrainDrawbacks":false,            "maxActionCount":1,            "canOccupyBuilding":true,            "canKillForest":false,            "canFlyAsteroid":false,            "isStealthUnit":false,            "canSeeStealthUnits":false,                        "trnWeaponEffects":[               {                  "weaponSlot":"WEAPON_EFFECT_SLOT_WP_1",                  "effDefault":"EFFECT_FIRE_ARROWS",                  "effOptions":null               },               {                  "weaponSlot":"WEAPON_EFFECT_SLOT_SPELLCAST",                  "effDefault":"EFFECT_US_SNIPER_ROCKET",                  "effOptions":["EFFECT_US_SNIPER_ROCKET","EFFECT_US_FIRE_ROCKET","EFFECT_US_STINK_BOMB"]               }                          ],        "trnCategories":["U_ARCHERS"],        "trnModifiers":{"unitTypes":["EFFECT_POISONED_ARROWS","TECH_ARCHERY","TECH_ARCHERY_LV2","TECH_ARMOR_ARCHER_LV1","TECH_ARMOR_ARCHER_LV2"]},        "trnCanNotCarryMe":{},        "trnBuilders":{"unitTypes":["UNIT_TC","UNIT_BUILDING_ARCHERY"]},        "trnBonusList":[      {         "modifier":0.5,                  "unitList":{            "categories":["U_CHEAP_MELEE","U_BURNABLE","U_BUILDING_SIZED_UNITS"],            "unitTypes":["UNIT_ORNITHOPTER"]         }               },      {         "modifier":6,                  "unitList":{"categories":["U_MEGA_BUILDINGS"]}               },      {         "modifier":2,                  "unitList":{"categories":["U_SHIPS"]}               }        ],        "trnBestAgainstMeWater":{"categories":["U_SHIP_ATTACK"]},        "trnBestAgainstMeGround":{"categories":["U_ANTI_ARCHER"]}                     }   },   "soundDefinition":{      "soundPacks":[         {"soundEvent":"UNIT_SELECTED","packName":"SOUND_PACK_UNIT_SELECT_LAND_UNIT"},         {"soundEvent":"UNIT_AFFIRM_MOVE","packName":"SOUND_PACK_UNIT_AFFIRM_LAND_UNIT"},         {"soundEvent":"UNIT_ATTACK","packName":"SOUND_PACK_UNIT_ATTACK_ARROW"},         {"soundEvent":"UNIT_DAMAGE","packName":"SOUND_PACK_UNIT_DAMAGED_HUMAN"}                  ]   },   "arrowSpriteDefinition":{      "arrowSprites":[         {"arrowType":"ATTACK_ARROW","spriteName":"SPRITE_ARROW_FIRE"}         ]   }

User avatar
ejm29
Posts: 682
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 » Sat Nov 07, 2015 2:41 pm

Heres a screen shot anyway :)
Attachments
Screenshot_2015-11-07-14-39-07.png
Formatted JSON
Screenshot_2015-11-07-14-39-07.png (19.63 KiB) Viewed 11757 times

User avatar
COOLguy
Posts: 3986
Joined: Sat Jul 12, 2014 2:58 am
Location: Nenuial, Arnor

Re: Unit Design - unit property sheet

Post by COOLguy » Sat Nov 07, 2015 5:43 pm

wow


I have no idea what is wrong. :) That's really weird.

What device do you use? (and what browser?)
Thanks!
Josh

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Sat Nov 07, 2015 5:55 pm

there were missing {from the beginning and a } from the end.

this is valid:

Code: Select all

{  
   "unitTypeName":"UNIT_FIRE_ARCHER",
   "unitType":98,
   "uiDefinition":{  
      "visuals":[  
         {  
            "imgName":"32_unit_fire_archer.png",
            "type":"DEFAULT",
            "shiftIndicatorsDown":0,
            "typeExtra":0.0,
            "imgColumns":8,
            "imageDefParts":[  
               {  
                  "cropToRect":{  
                     "top":0,
                     "left":0,
                     "bottom":32,
                     "right":256
                  },
                  "layer":"UNITS",
                  "shiftCol":0,
                  "shiftRow":0,
                  "clickable":true
               }
            ]
         }
      ]
   },
   "unitStatSheet":{  
      "unit":{  
         "isTechnology":false,
         "costTurn":3,
         "grantorShopItems":[  
            244
         ],
         "hpMax":11,
         "power":5,
         "rangeAttack":5,
         "armorPierce":0,
         "armorNormal":0,
         "sight":7,
         "unitSizeCol":1,
         "unitSizeRow":1,
         "isUnderConstruction":false,
         "isFactory":false,
         "isFactoryThatNotAffectsFactoryLimits":false,
         "isOccupiableBuilding":false,
         "isWalkableThrough":true,
         "powerAccuracyPenalty":0.0,
         "powerRange":0,
         "powerRangePenaltyPercent":0,
         "attackTypeBurningRock":false,
         "attackTypeArrow":true,
         "rangeWalk":3,
         "trnWalkTerrain":[  
            {  
               "terrainType":"TERRAINS_FORESTWALKABLE",
               "modifier":1
            },
            {  
               "terrainType":"TERRAINS_SAILABLE",
               "modifier":0.6
            }
         ],
         "convertRange":0,
         "convertResistance":0.0,
         "convertPossibility":0.0,
         "rangeHeal":0,
         "healRate":0,
         "rangeMend":0,
         "mendRate":0,
         "canBuild":false,
         "bonusMendingWhenConstructing":0.0,
         "bonusMending":0.0,
         "bonusHealing":1.0,
         "carryCapacity":0,
         "canBeCarried":true,
         "isCarriedUnitSurvivesIfIDie":false,
         "isCarrierCanCarryUnderConstruction":false,
         "isCarrierHidesCarriedUnits":true,
         "isCarrierLetCarriedUnitsToShoot":false,
         "isCarrierRemovesTerrainDrawbacks":false,
         "maxActionCount":1,
         "canOccupyBuilding":true,
         "canKillForest":false,
         "canFlyAsteroid":false,
         "isStealthUnit":false,
         "canSeeStealthUnits":false,
         "trnWeaponEffects":[  
            {  
               "weaponSlot":"WEAPON_EFFECT_SLOT_WP_1",
               "effDefault":"EFFECT_FIRE_ARROWS",
               "effOptions":null
            },
            {  
               "weaponSlot":"WEAPON_EFFECT_SLOT_SPELLCAST",
               "effDefault":"EFFECT_US_SNIPER_ROCKET",
               "effOptions":[  
                  "EFFECT_US_SNIPER_ROCKET",
                  "EFFECT_US_FIRE_ROCKET",
                  "EFFECT_US_STINK_BOMB"
               ]
            }
         ],
         "trnCategories":[  
            "U_ARCHERS"
         ],
         "trnModifiers":{  
            "unitTypes":[  
               "EFFECT_POISONED_ARROWS",
               "TECH_ARCHERY",
               "TECH_ARCHERY_LV2",
               "TECH_ARMOR_ARCHER_LV1",
               "TECH_ARMOR_ARCHER_LV2"
            ]
         },
         "trnCanNotCarryMe":{  

         },
         "trnBuilders":{  
            "unitTypes":[  
               "UNIT_TC",
               "UNIT_BUILDING_ARCHERY"
            ]
         },
         "trnBonusList":[  
            {  
               "modifier":0.5,
               "unitList":{  
                  "categories":[  
                     "U_CHEAP_MELEE",
                     "U_BURNABLE",
                     "U_BUILDING_SIZED_UNITS"
                  ],
                  "unitTypes":[  
                     "UNIT_ORNITHOPTER"
                  ]
               }
            },
            {  
               "modifier":6,
               "unitList":{  
                  "categories":[  
                     "U_MEGA_BUILDINGS"
                  ]
               }
            },
            {  
               "modifier":2,
               "unitList":{  
                  "categories":[  
                     "U_SHIPS"
                  ]
               }
            }
         ],
         "trnBestAgainstMeWater":{  
            "categories":[  
               "U_SHIP_ATTACK"
            ]
         },
         "trnBestAgainstMeGround":{  
            "categories":[  
               "U_ANTI_ARCHER"
            ]
         }
      }
   },
   "soundDefinition":{  
      "soundPacks":[  
         {  
            "soundEvent":"UNIT_SELECTED",
            "packName":"SOUND_PACK_UNIT_SELECT_LAND_UNIT"
         },
         {  
            "soundEvent":"UNIT_AFFIRM_MOVE",
            "packName":"SOUND_PACK_UNIT_AFFIRM_LAND_UNIT"
         },
         {  
            "soundEvent":"UNIT_ATTACK",
            "packName":"SOUND_PACK_UNIT_ATTACK_ARROW"
         },
         {  
            "soundEvent":"UNIT_DAMAGE",
            "packName":"SOUND_PACK_UNIT_DAMAGED_HUMAN"
         }
      ]
   },
   "arrowSpriteDefinition":{  
      "arrowSprites":[  
         {  
            "arrowType":"ATTACK_ARROW",
            "spriteName":"SPRITE_ARROW_FIRE"
         }
      ]
   }
}

Stratego (dev)
Site Admin
Posts: 7163
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) » Sat Nov 07, 2015 5:58 pm

(i suggest using the samples i posted, they are valid and formatted well and also indented well, simply modify those with the stats you desire.)

Post Reply

Return to “Unit Design”