Unit Design - unit property sheet

Stratego (dev)
Site Admin
Posts: 9663
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)
		rangeAttackMin = 0; //if set than the minimal range it can attacks (eg. a catapult can not attack to adjacent units)
		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 eg. 80 means 80%: on which % of damage level the decresing of damage starts, decrease with powerRangePowerDrop
		powerRangePowerDrop = 0; // float 0.2 means 20%: every step of 1..powerRange the damage will decrease by this percent starting from powerRangePenaltyPercent
		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.
		isNeedMapGrant=true // true = this unit/tech appears in the game only if it is explicitely granted for the map by triggers
		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 (if muktiple set than ALL is required)
revokerTechs; //"type"-s that revokes this as a buildable unit/tech (eg. a crossbowman upgrade revokes archer from the palette) if multiple revokers set than ALL revokers needs to be owned to the revoking take effect
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
		"trnEmulatesTerrains":["TERRAINS_PLAINSWALKABLE"], // use this instead of isCarrierRemovesTerrainDrawbacks, give here what terrain it emulates.
		
		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%) to decrease accuracy with each target movementrange (bonus removes this penalty) calc: probability = 1 - attackingUnit.powerAccuracyPenalty * target.movementRange
		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 when stealing (eg. elves armor1 is equivalent to human armor 1) so human can steal elves armor1 in the form of human armor1

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 87 times
here are some other AOS json in this zip file:
aos_unit_jsons.zip
(41.87 KiB) Downloaded 197 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

		
      //WHO am i
        TECH_IS_PROP_CHANGER, //if this tech is a property changer tech
        TECH_AGE, // if this tech is an AGE tech
        IS_TOJAS, // is this unit is an easter egg: appears differently in shopitems, will not appear in helpfile, will not be usable in mapeditor unless shopitem is owned
        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)
        IS_ALL_TECH_MEMBER, //if a tech that needs to be in "all techs" section - meaning the it is a DEFAULT tech (despite it is in upgrades section)
        IS_NOT_ALL_TECH_MEMBER, //if a tech that needs NOT to be in "all techs" section - meaning the it is not a DEFAULT tech (despite it is NOT in upgrades section)
        IS_REANIMATABLE, //is it a corpse to be reanimated
        IS_TERRAIN_ENTITY, //considered as terrain entity (if the map has only these units than it is still only a terrain (random) map
        IS_TC, //is it a TC itself
        PROD_SPEEDUP, // if unit is in a TC than it will be used for any other unit production

        //my properties
        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)
        CAN_BE_PASSED_BY_ENEMY, //if a unit can not "block" enemy ever (like a plane should not block ground units and other planes in movement.
        NO_WALKABLE_TROUGH, // same as "isWalkableThrough" that is obsolete, if set than the unit is not walkable tru even with allies (like a wall), default is taht all unit is walkable tru
        IS_OCCUPIABLE, // - occupiable like the TC but means only occupiable and means internal units make damaged(nothing else that isoccupiablebuilding means like no pop limit, visible on exp?lored 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
        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)
        NO_MEND_HEAL_FROM_UNITS, // means worker and healer builtin logic will not affect it only if carried in a building (temple/shipyard)
        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.
        CAN_FLY_HIGH, //in the new terrain era we lost the info that a unit can fly or not, so this spec action will indicate flying high fly: flies tru enemies too.
        CAN_HIT_FLYING, // if set the unit can attack and hit flying as it were "arrowed" in AOS/AOF, if not set it can hit only 1 hit.
        CAN_NOT_LOAD_UNLOAD, //unit that has carry ability but still can not load unload units (eg. when submarine carrier is under water)
        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.
        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.
        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_INCONVERTIBLE, //can not be converted, ever.
        IS_FACTORY_NOT_COUNTED,  //if a factory is not counted as normal or mega factory either.

        //stealt/spy ptoperties
        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_FORCES_STEP_ON, // unit can not go tru it, it will stop on it, destroying stealth unit (for land/sea mines)
        STEALTH_FORCES_STEP_BLOCKED, // unit can not go tru it, it will stop right before it, not destroying stealth unit (for submarines)
        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

        //Attack
        BYPASS_ARMOR, //if the unit damage is reduced by the armor
        BYPASS_PARMOR, //if the unit damage is reduced by the parmor
        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
        // counter attack
        ATTACK_FIRST_STRIKE, // damaging unit  deals counter attack first before attacker can damage, only if attacker has no first strike too.
        ATTACK_FULL_COUNTER, // means the unit has a counter damage without penalty (without halving it)
        ATTACK_FULL_COUNTER_IF_BONUS, //defender having it deals full damage on counter only if he has bonus against attacker.
        ATTACK_COUNTER_QUARTERED, //unit counterattack has halved damage comparing to normal counterattack - meaning 1/4 of damage - it's perfect for some units previosly having no counter - flailman)
        ATTACK_COUNTER_NO_BONUS_VS_BONUS, //e.g. Knight has this specAction and is attacked by Vouglier - Knight counter is without bonus (and that is halved). But when knight attacks, vouglier deals damage with bonus (and that is halved).
        ATTACK_NO_COUNTER_BONUS_AGAINST_ME, //E.g. Celt has this specAction and attacks Hoplite - hoplite deals counter damage without bonus (and that is halved). When celt is attacked by Hoplite he would (if he somehow survived) deal counter damage with bonus (and that is halved).
        ATTACK_COUNTER_NO_BONUS, //No bonuses counter ( unit doesn't deal any bonus damage in counters - it's bonuses work only offensively - one of the options for various offensive oriented units)

        // AI/internal logics
        ATTACK_NOT_RANGED, //eg. pierce melee weapons: if set than the attacktypearrow|attacktypeburningrock units will be considered close combat units that piercing or normal armor deflected.
        NO_LOOK_FOR_HEAL, //means will not stop attacking when injured/damaged to look for heal/mend possiblity (like suicide units like demolition ship or petardier)
        AI_FACTORY_SINGLE, //AI information: means only one factory must be built for an AI player from this in one game (eg. blacksmith)
        IS_GAIA_ANIMAL, //the unit is a gaia animal (at least it was on game start)
        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 make 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 make in its sight range
        TRANSPORTING_VEIN, // if unit basic task is a transporter (not an attacker) than this is set.
        SPAWNPOINT_2_PLAYER, //the 1st and 2nd player spawnpoints, will be replaced by a TC
        SPAWNPOINT_4_PLAYER, //the 3rd and 4th player spawnpoints, will be replaced by a TC
        SPAWNPOINT_6_PLAYER, //the 5th and 6th player spawnpoints, will be replaced by a TC

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,             - when an attack was shot by isAttacktypeArrow type
ATTACK_FIREBURN,         - when an attack was shot by isAttacktypeFireburn type
EXPLOSION,                    - executes on self explosions where unit is stepped onby an other (landmine, spy and so on)
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: 4005
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: 6735
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!
Age of Fantasy design leader

Stratego (dev)
Site Admin
Posts: 9663
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: 9663
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: 9663
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: 4005
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: 9663
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: 4005
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: 9663
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: 4005
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: 9663
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: 6735
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
Age of Fantasy design leader

Stratego (dev)
Site Admin
Posts: 9663
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: 9663
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: 4005
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 13615 times

User avatar
COOLguy
Posts: 4005
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: 4005
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 13597 times

User avatar
COOLguy
Posts: 4005
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: 9663
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: 9663
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”