Unit Design - unit property sheet

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

Unit Design - unit property sheet

Post by Stratego (dev) »

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
- "unitTypeName": a unique(!) TEXTUAL_ID of the unit so you can use then in other jsons eg: "UNIT_RU_PLANE_YAK9U",
- "unitType":a unique(!) unit ID, ID-s must be between 0..2 147 482 , bigger ID will cause crashes.
- 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"]},

	     "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 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, in prop changers it is a fixed hpMax addition so eg 20 means +20 hp
		hpMaxPercent = 0; //used only on property changing effects to set how to alter by % of the original hpMAX, 0 mean no change, 0.8 means -20%, 1.2 mean +20% of original
		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
		remainingMovement //in this turn how many movements left (use only in EFFECT_AFFECT jsons! no in TECH or UNIT jsons).
		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 (or caster) has 30% than 30 - 30*0,2 => priest has 26% to convert/cast the spell on unit.  
                abilityPower = 0; //this value can be used to multiply the value of each spells, use new spell "specs" (CHG_POWER_BY_ABILITY_MULTIPLY, CHG_POWER_BY_ABILITY_ADD) and so on
		
		haveBonusAgainst = null;
		haveBonusAgainstMapped = null;
		bestAgainstMeGround = null;
		bestAgainstMeWater = null;
	        urlImage; // generally a wikipedia image link if given than CDATA type html display for unit statsheet to show image. (optionally set only on base unit, all tranformations and upgrades will get it automatically)
	        urlDoc;   // generally a wikipedia webpage link if set then wikipedia link is attached (optionally set only on base unit, all tranformations and upgrades will get it automatically) 
		
		modifiers = null;
		builders = null;
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
		trnCanNotCarryMe = null; // DEPRECATED! use trnCanCarryThese and trnCanNotCarryThese 
                trnCanCarryThese; // this unit can carry these units (do not set trnCanNotCarryThese if you use this) - you can set two fields - "unitTypes": list of unit "type"-s and/or "categories": list of categories
                trnCanNotCarryThese; // this unit can NOT carry these units (do not set trnCanCarryThese if you use this) - you can set two fields - "unitTypes": list of unit "type"-s and/or "categories": list of categories

//(requires & requiresShopItem are in OR connection: any of these is owned -> the unit is granted to build)
trnRequires; (!!!!OBSOLETE!!!! USE use the new file unit_relations.txt) //"type"-s that is required (eg. other techonolgies) to have/build this one (if muktiple set than ALL is required)
trnRevokerTechs; (!!!!OBSOLETE!!!! USE use the new file unit_relations.txt) //"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; // (!!!!OBSOLETE!!!! USE use the new file unit_relations.txt) 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)

trnTransformTo1;  // primary target type to transform to: use for normal transform abilities/buttons
trnTransformTo2;  // [!!!!OBSOLETE!!!! use trnTransformToGroups] secondary target type to transform to: do not use for normal transform abilities, only for effect based transforms like "turn to this type of zombie"
    public String[] trnTransformToGroups; //Format: "<transform_group_name>:<real_transform_name>" "TRNZOMBIES:TO_ZOMBIE_ARCHER" only SYSTEM_SPECIAL_EFFECT_TRANSFORM_BY_GROUP will use it.


grantorShopItems; (!!!!OBSOLETE!!!! USE use the unitTypes list in shopitems.json) //"shop item"-s that is required to have/build this one
trnInValidTargets; //(this is higher prior than validTargets setting) if set than these units can not be targeted by this unit's normal attack (eg. bombers can not hit buildings with default attacks - they will have ability for that) AND in case of IS_EFFECT_AFFECT or TECH_IS_PROP_CHANGER definition the non-targeted units by the effects (that sets modifier rel on all other "non-technology" units)
trnValidTargets; //if set than these units can be targeted by this unit's normal attack AND in case of IS_EFFECT_AFFECT or TECH_IS_PROP_CHANGER the targeted units by the effects (that sets modifier rel on them)
trnDetectedStealthUnits; //if set than only these units can be seen by this stealth seeing unit
trnBuilders; //is it built in a TC? or in an archery range? or a worker builds it? (if null: in TC nowhere else)	
trnModifiers; //DEPRECATED(use trnValidTargets and trnInValidTargets on tech instead) -  "type"-s (TECH) that modifies its properties 
String[] trnRelated;     //Techs case: the list of other techs to be invented with this tech (as a bundle)
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; (!!!!OBSOLETE!!!! USE use specUnitAction IS_FUN_UNIT instead) 


		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; (!!!!OBSOLETE!!!! USE use specUnitAction IS_TC or IS_OCCUPIABLE instead) //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 if ATTACK_ACCURACY_DECR_BY_SPEED is set (bonus removes this penalty) calc: probability = 1 - attackingUnit.powerAccuracyPenalty * target.movementRange (ifATTACK_ACCURACY_DECR_BY_SPEED is set)
		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; (!!!!OBSOLETE!!!! USE use specUnitAction IS_FACTORY_NOT_COUNTED) // 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.
                abilityPower = 0; //this value can be used to multiply the value of each spells, use new spell "specs" (CHG_POWER_BY_ABILITY_MULTIPLY, CHG_POWER_BY_ABILITY_ADD) and so on
		
		currentlyBuilding = null;
		isCarriedButRevealed = false; // if true than the unit is shown over the eg. TC
		isStealthUnit = false; // (!!!!OBSOLETE!!!! USE use specUnitAction STEALTH_UNIT or STEALTH_ONLY_UNIT) 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":{                  // !!! OBSOLETE!!!! use the file_relations.json file !!! 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,

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

        "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 188 times
here are some other AOS json in this zip file:
aos_unit_jsons.zip
(41.87 KiB) Downloaded 299 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
see http://www.ageofstrategy.net/viewtopic.php?f=216&t=7627


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 »

Looks good. :)
Thanks!
Josh
User avatar
Alexander82
Posts: 7969
Joined: Thu Feb 26, 2015 8:18 pm

Re: Unit Design - unit property sheet

Post by Alexander82 »

Great!
Age of Fantasy design leader
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

modified input format.
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

input format is extended by sound definitions.
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

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 »

Cool! :D Finally! :)
Thanks!
Josh
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

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 »

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 »

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: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

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 »

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 »

You can edit it in any simple text editor (like in Notepad).
Thanks!
Josh
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

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: 7969
Joined: Thu Feb 26, 2015 8:18 pm

Re: Unit Design - unit property sheet

Post by Alexander82 »

I need AOF unit/building codes and tech codes
Age of Fantasy design leader
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

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.
ejm29
Posts: 689
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 »

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)
"I don't care who I have to step on on my way down."
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

that is very reliable, maybe the sample is really invalid - which is that?
ejm29
Posts: 689
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 »

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 care who I have to step on on my way down."
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 »

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
ejm29
Posts: 689
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 »

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
Error
Error
Screenshot_2015-11-06-21-34-48.png (42.44 KiB) Viewed 17606 times
"I don't care who I have to step on on my way down."
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 »

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
ejm29
Posts: 689
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 »

{   "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"}         ]   }         }
"I don't care who I have to step on on my way down."
ejm29
Posts: 689
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 »

That is one of the various JSON I tried
"I don't care who I have to step on on my way down."
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 »

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
ejm29
Posts: 689
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 »

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"}         ]   }
"I don't care who I have to step on on my way down."
ejm29
Posts: 689
Joined: Sat Nov 01, 2014 6:03 pm
Location: United Kingdom

Re: Unit Design - unit property sheet

Post by ejm29 »

Heres a screen shot anyway :)
Attachments
Formatted JSON
Formatted JSON
Screenshot_2015-11-07-14-39-07.png (19.63 KiB) Viewed 17588 times
"I don't care who I have to step on on my way down."
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 »

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: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

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: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Unit Design - unit property sheet

Post by Stratego (dev) »

(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”