Difference between revisions of "Object instance format"
From VCMI Project Wiki
(→OH3 objects) |
(→Hero) |
||
(150 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | Part of [[Map format]] | ||
+ | |||
= Base formats = | = Base formats = | ||
== Owner format == | == Owner format == | ||
− | All | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | All flaggable objects | ||
+ | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
− | // | + | //optional, default neutral |
"owner": "red" | "owner": "red" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Stack instance format == | ||
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "amount" : 1, | ||
+ | "type" : "skeleton", | ||
+ | "level": 1, //optional, for random objects | ||
+ | "upgraded": true //optional, for random objects | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Army format == | ||
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
+ | <syntaxhighlight lang="javascript"> | ||
+ | [ | ||
+ | {< Stack instance format>}, | ||
+ | {} | ||
+ | //... | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Quest format == | ||
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "artifacts" : [], | ||
+ | "completedText" : "", | ||
+ | "creatures" : [], //army format | ||
+ | "firstVisitText" : "", | ||
+ | "hero" : "", | ||
+ | "heroLevel" : -1, | ||
+ | "killTarget" : "monster_666", | ||
+ | "missionType" : "KillCreature",//None, Level, PrimaryStat, KillHero, KillCreature, Artifact, Army, Resources, Hero, Player, Custom | ||
+ | "nextVisitText" : "", | ||
+ | "player" : "", | ||
+ | "primarySkills" : { | ||
+ | "attack" : 10, | ||
+ | "defence" : 10, | ||
+ | //"knowledge" : -1, | ||
+ | //"spellpower" : -1 | ||
+ | }, | ||
+ | "resources" : { | ||
+ | "crystal" : 0, | ||
+ | "gems" : 0, | ||
+ | "gold" : 0, | ||
+ | "mercury" : 0, | ||
+ | "mithril" : 0, | ||
+ | "ore" : 0, | ||
+ | "sulfur" : 0, | ||
+ | "wood" : 0 | ||
+ | }, | ||
+ | "timeLimit" : 5, | ||
+ | "custom_x" :{<Quest format v2>} | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Quest format 2 == | ||
+ | ''Proposed extension'' | ||
+ | |||
+ | Logical condition based. | ||
+ | |||
+ | * editor {{todo}} | ||
+ | * engine {{todo}} | ||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | //TODO: | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Reward format == | ||
+ | ''Proposed extension'' | ||
+ | |||
+ | * editor {{done}} | ||
+ | * engine {{todo}} | ||
+ | ** seer hut case {{done}} | ||
+ | |||
+ | identifier = [scope ":"] type ["." subtype] | ||
+ | |||
+ | Possible types | ||
+ | * artifact | ||
+ | * creature | ||
+ | * resource | ||
+ | * primarySkill | ||
+ | * secondarySkill | ||
+ | * spell | ||
+ | * luck | ||
+ | * morale | ||
+ | * mana | ||
+ | * movement | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "resource.gold" : 1000, | ||
+ | "morale" : -1, | ||
+ | "wog:creature.supremeArchangel" : 9999 | ||
+ | //... | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 13: | Line 124: | ||
== Abandoned mine == | == Abandoned mine == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "possibleResources" : [ | ||
+ | "crystal", | ||
+ | "gems", | ||
+ | "gold", | ||
+ | "mercury", | ||
+ | "ore", | ||
+ | "sulfur" | ||
+ | ] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Artifact == | == Artifact == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "guardMessage" : "", | ||
+ | "guards" : []//Army format | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Creature generator == | == Creature generator == | ||
− | + | See owner format | |
== Garrison == | == Garrison == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "army" : [], //army format | ||
+ | "owner" : "", | ||
+ | "removableUnits" : true | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Grail == | == Grail == | ||
− | {{ | + | * engine {{done}} |
+ | * editor {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "radius" : 0 | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Hero == | == Hero == | ||
+ | * also prison and random hero | ||
+ | |||
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "army" : <Army format> | ||
+ | , | ||
+ | "artifacts" : { | ||
+ | "backpack" : [ | ||
+ | ], | ||
+ | "feet" : "", | ||
+ | "head" : "", | ||
+ | "leftHand" : "", | ||
+ | "leftRing" : "", | ||
+ | "mach1" : "", | ||
+ | "mach2" : "", | ||
+ | "mach3" : "", | ||
+ | "mach4" : "", | ||
+ | "misc1" : "", | ||
+ | "misc2" : "", | ||
+ | "misc3" : "", | ||
+ | "misc4" : "", | ||
+ | "misc5" : "", | ||
+ | "neck" : "", | ||
+ | "rightHand" : "", | ||
+ | "rightRing" : "", | ||
+ | "shoulders" : "", | ||
+ | "spellbook" : "", | ||
+ | "torso" : "" | ||
+ | }, | ||
+ | "biography" : "", | ||
+ | "experience" : 0, | ||
+ | |||
+ | //any type for prison, must match object subtype for hero, not used for random hero | ||
+ | "type" : "galthran", | ||
+ | "name" : "My hero", | ||
+ | |||
+ | //optional default - patrol disabled. 0 - stand still, > 0 - patrol radius it tiles | ||
+ | "patrolRadius" : 5, | ||
+ | |||
+ | //optional, icon index (from "Portraits[Large|Small].json" ) or another hero id, default from "type" | ||
+ | "portrait" : "izra", | ||
+ | |||
+ | //TODO: custom portaits | ||
+ | |||
+ | //optional default inherited from configuration | ||
+ | "primarySkills" : { | ||
+ | "attack" : 0, | ||
+ | "defence" : 2, | ||
+ | "knowledge" : 0, | ||
+ | "spellpower" : 3 | ||
+ | }, | ||
+ | |||
+ | "secondarySkills" : { | ||
+ | "leadership" : "basic"//, "advanced", "expert" | ||
+ | //... | ||
+ | }, | ||
+ | |||
+ | //optional, default if not set | ||
+ | "female" : true,//false | ||
+ | "spellBook" : [ | ||
+ | "fortune" | ||
+ | //... | ||
+ | ], | ||
+ | "tightFormation" : false | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Hero placeholder == | ||
{{todo}} | {{todo}} | ||
== Event == | == Event == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "aIActivable" : false, | ||
+ | "artifacts" : [ | ||
+ | "swordOfHellfire" | ||
+ | ], | ||
+ | "availableFor" : [ | ||
+ | "red", | ||
+ | "blue", | ||
+ | "tan", | ||
+ | "green", | ||
+ | "orange", | ||
+ | "purple", | ||
+ | "teal", | ||
+ | "pink" | ||
+ | ], | ||
+ | "creatures" : [ | ||
+ | { | ||
+ | "amount" : 1, | ||
+ | "&type" : "phoenix" | ||
+ | } | ||
+ | ], | ||
+ | "experience" : 1, | ||
+ | "guardMessage" : "...", | ||
+ | "guards" : [],//army format | ||
+ | "humanActivable" : true, | ||
+ | "luck" : -1, | ||
+ | "mana" : -1, | ||
+ | "morale" : -1, | ||
+ | "primarySkills" : { | ||
+ | "attack" : 1, | ||
+ | "defence" : 1, | ||
+ | "knowledge" : 1, | ||
+ | "spellpower" : 1 | ||
+ | }, | ||
+ | "removeAfterVisit" : true, | ||
+ | "resources" : { | ||
+ | "crystal" : -1, | ||
+ | "gems" : -1, | ||
+ | "gold" : -1, | ||
+ | "mercury" : -1, | ||
+ | "mithril" : 0, | ||
+ | "ore" : -1, | ||
+ | "sulfur" : -1, | ||
+ | "wood" : -1 | ||
+ | }, | ||
+ | "secondarySkills" : { | ||
+ | "fireMagic" : 1 | ||
+ | }, | ||
+ | "spells" : [ | ||
+ | "protectFire" | ||
+ | ], | ||
+ | "reward_x" : {}//reward format | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Lighthouse == | ||
+ | See owner format | ||
+ | |||
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
== Mine== | == Mine== | ||
− | {{ | + | |
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "army" : [], //army format | ||
+ | "owner" : "" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Monster == | == Monster == | ||
− | + | * editor {{done}} | |
− | * editor | + | * engine {{done}} |
− | * engine | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
//mandatory | //mandatory | ||
− | "character" : | + | "character" : "compliant",// friendly, aggressive, hostile, savage |
− | // | + | //default random |
− | " | + | "amount" : 19, |
//optional, default false | //optional, default false | ||
Line 54: | Line 347: | ||
//optional, default false | //optional, default false | ||
"neverFlees" : false, | "neverFlees" : false, | ||
− | |||
− | |||
− | |||
//optional, artifact id | //optional, artifact id | ||
Line 75: | Line 365: | ||
"sulfur" : 0, | "sulfur" : 0, | ||
"wood" : 0 | "wood" : 0 | ||
− | } | + | }, |
+ | "reward_x" : {}//reward format | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == Ocean bottle == | + | == Sign/Ocean bottle == |
− | {{ | + | |
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "text": "Hello world!!!1111" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Pandoras box == | == Pandoras box == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "artifacts" : [ | ||
+ | "powerOfTheDragonFather" | ||
+ | ], | ||
+ | "creatures" : [], //army format | ||
+ | "experience" : 1000000, | ||
+ | "guardMessage" : "Prepare to fight...", | ||
+ | "guards" : [], //army format | ||
+ | "luck" : 2, | ||
+ | "mana" : 100, | ||
+ | "morale" : 2, | ||
+ | "primarySkills" : { | ||
+ | "attack" : 1, | ||
+ | "defence" : 1, | ||
+ | "knowledge" : 1, | ||
+ | "spellpower" : 1 | ||
+ | }, | ||
+ | "resources" : { | ||
+ | "crystal" : -1, | ||
+ | "gems" : -1, | ||
+ | "gold" : -1, | ||
+ | "mercury" : -1, | ||
+ | "mithril" : 0, | ||
+ | "ore" : -1, | ||
+ | "sulfur" : -1, | ||
+ | "wood" : -1 | ||
+ | }, | ||
+ | "secondarySkills" : { | ||
+ | "logistics" : "basic"//, "advanced", "expert" | ||
+ | }, | ||
+ | "spells" : [ | ||
+ | "townPortal" | ||
+ | ], | ||
+ | "reward_x" : {}//reward format | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> | ||
== Quest guard == | == Quest guard == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "quest" : {} //quest format | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Random dwelling == | == Random dwelling == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "allowedFactions" :{<logical id condition>}, | ||
+ | "maxLevel" : 7, | ||
+ | "minLevel" : 1, | ||
+ | "sameAsTown" : "town_42" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Resource == | == Resource == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "amount" : 99999, | ||
+ | "guardMessage" : "", | ||
+ | "guards" : [] //army format | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Scholar == | == Scholar == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "rewardPrimSkill" : "", | ||
+ | "rewardSkill" : "wisdom", | ||
+ | "rewardSpell" : "", | ||
+ | "reward_x" : {}//reward format | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Seer hut == | == Seer hut == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "quest" : {}, //quest format | ||
+ | "reward" : {}//reward format | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Shipyard == | == Shipyard == | ||
− | {{ | + | See owner format |
+ | |||
+ | * editor {{done}} | ||
+ | * engine {{done}} | ||
== Shrine of magic == | == Shrine of magic == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | //optional, random spell if not set | ||
+ | "spell" : "" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Spell scroll == | == Spell scroll == | ||
− | {{ | + | * engine {{done}} |
+ | * editor {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | "guardMessage" : "", | ||
+ | "guards" : [], //army format | ||
+ | "spell" : "magicArrow" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Town == | == Town == | ||
− | {{todo}} | + | * engine {{done}} |
+ | * editor {{done}} | ||
+ | |||
+ | * castle events {{todo}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | "army" : [], //army format | ||
+ | "tightFormation" : false | ||
+ | |||
+ | "name" : "", | ||
+ | "buildings" : {<Logical Id Condition>} | ||
+ | "spells" : {<Logical Id Condition>} | ||
+ | |||
+ | "events" : nil, //TODO | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> | ||
== Witch hut == | == Witch hut == | ||
− | {{ | + | * editor {{done}} |
+ | * engine {{done}} | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "allowedSkills" : {<Logical Id Condition>} | ||
+ | } | ||
+ | </syntaxhighlight> |
Latest revision as of 20:26, 24 December 2016
Part of Map format
Contents
- 1 Base formats
- 2 OH3 objects
- 2.1 Abandoned mine
- 2.2 Artifact
- 2.3 Creature generator
- 2.4 Garrison
- 2.5 Grail
- 2.6 Hero
- 2.7 Hero placeholder
- 2.8 Event
- 2.9 Lighthouse
- 2.10 Mine
- 2.11 Monster
- 2.12 Sign/Ocean bottle
- 2.13 Pandoras box
- 2.14 Quest guard
- 2.15 Random dwelling
- 2.16 Resource
- 2.17 Scholar
- 2.18 Seer hut
- 2.19 Shipyard
- 2.20 Shrine of magic
- 2.21 Spell scroll
- 2.22 Town
- 2.23 Witch hut
Base formats
Owner format
- editor [Done]
- engine [Done]
All flaggable objects
{
//optional, default neutral
"owner": "red"
}
Stack instance format
- editor [Done]
- engine [Done]
{
"amount" : 1,
"type" : "skeleton",
"level": 1, //optional, for random objects
"upgraded": true //optional, for random objects
}
Army format
- editor [Done]
- engine [Done]
[
{< Stack instance format>},
{}
//...
]
Quest format
- editor [Done]
- engine [Done]
{
"artifacts" : [],
"completedText" : "",
"creatures" : [], //army format
"firstVisitText" : "",
"hero" : "",
"heroLevel" : -1,
"killTarget" : "monster_666",
"missionType" : "KillCreature",//None, Level, PrimaryStat, KillHero, KillCreature, Artifact, Army, Resources, Hero, Player, Custom
"nextVisitText" : "",
"player" : "",
"primarySkills" : {
"attack" : 10,
"defence" : 10,
//"knowledge" : -1,
//"spellpower" : -1
},
"resources" : {
"crystal" : 0,
"gems" : 0,
"gold" : 0,
"mercury" : 0,
"mithril" : 0,
"ore" : 0,
"sulfur" : 0,
"wood" : 0
},
"timeLimit" : 5,
"custom_x" :{<Quest format v2>}
}
Quest format 2
Proposed extension
Logical condition based.
- editor [Todo]
- engine [Todo]
{
//TODO:
}
Reward format
Proposed extension
- editor [Done]
- engine [Todo]
- seer hut case [Done]
identifier = [scope ":"] type ["." subtype]
Possible types
- artifact
- creature
- resource
- primarySkill
- secondarySkill
- spell
- luck
- morale
- mana
- movement
{
"resource.gold" : 1000,
"morale" : -1,
"wog:creature.supremeArchangel" : 9999
//...
}
OH3 objects
Abandoned mine
- editor [Done]
- engine [Done]
{
"possibleResources" : [
"crystal",
"gems",
"gold",
"mercury",
"ore",
"sulfur"
]
}
Artifact
- editor [Done]
- engine [Done]
{
"guardMessage" : "",
"guards" : []//Army format
}
Creature generator
See owner format
Garrison
- editor [Done]
- engine [Done]
{
"army" : [], //army format
"owner" : "",
"removableUnits" : true
}
Grail
- engine [Done]
- editor [Done]
{
"radius" : 0
}
Hero
- also prison and random hero
- editor [Done]
- engine [Done]
{
"army" : <Army format>
,
"artifacts" : {
"backpack" : [
],
"feet" : "",
"head" : "",
"leftHand" : "",
"leftRing" : "",
"mach1" : "",
"mach2" : "",
"mach3" : "",
"mach4" : "",
"misc1" : "",
"misc2" : "",
"misc3" : "",
"misc4" : "",
"misc5" : "",
"neck" : "",
"rightHand" : "",
"rightRing" : "",
"shoulders" : "",
"spellbook" : "",
"torso" : ""
},
"biography" : "",
"experience" : 0,
//any type for prison, must match object subtype for hero, not used for random hero
"type" : "galthran",
"name" : "My hero",
//optional default - patrol disabled. 0 - stand still, > 0 - patrol radius it tiles
"patrolRadius" : 5,
//optional, icon index (from "Portraits[Large|Small].json" ) or another hero id, default from "type"
"portrait" : "izra",
//TODO: custom portaits
//optional default inherited from configuration
"primarySkills" : {
"attack" : 0,
"defence" : 2,
"knowledge" : 0,
"spellpower" : 3
},
"secondarySkills" : {
"leadership" : "basic"//, "advanced", "expert"
//...
},
//optional, default if not set
"female" : true,//false
"spellBook" : [
"fortune"
//...
],
"tightFormation" : false
}
Hero placeholder
[Todo]
Event
- editor [Done]
- engine [Done]
{
"aIActivable" : false,
"artifacts" : [
"swordOfHellfire"
],
"availableFor" : [
"red",
"blue",
"tan",
"green",
"orange",
"purple",
"teal",
"pink"
],
"creatures" : [
{
"amount" : 1,
"&type" : "phoenix"
}
],
"experience" : 1,
"guardMessage" : "...",
"guards" : [],//army format
"humanActivable" : true,
"luck" : -1,
"mana" : -1,
"morale" : -1,
"primarySkills" : {
"attack" : 1,
"defence" : 1,
"knowledge" : 1,
"spellpower" : 1
},
"removeAfterVisit" : true,
"resources" : {
"crystal" : -1,
"gems" : -1,
"gold" : -1,
"mercury" : -1,
"mithril" : 0,
"ore" : -1,
"sulfur" : -1,
"wood" : -1
},
"secondarySkills" : {
"fireMagic" : 1
},
"spells" : [
"protectFire"
],
"reward_x" : {}//reward format
}
Lighthouse
See owner format
- editor [Done]
- engine [Done]
Mine
- editor [Done]
- engine [Done]
{
"army" : [], //army format
"owner" : ""
}
Monster
- editor [Done]
- engine [Done]
{
//mandatory
"character" : "compliant",// friendly, aggressive, hostile, savage
//default random
"amount" : 19,
//optional, default false
"noGrowing" : true
//optional, default false
"neverFlees" : false,
//optional, artifact id
"rewardArtifact" : "",
//optional,
"rewardMessage" : "",
//all fields optional
"rewardResources" : {
"crystal" : 0,
"gems" : 0,
"gold" : 0,
"mercury" : 0,
"mithril" : 0,
"ore" : 0,
"sulfur" : 0,
"wood" : 0
},
"reward_x" : {}//reward format
}
Sign/Ocean bottle
- editor [Done]
- engine [Done]
{
"text": "Hello world!!!1111"
}
Pandoras box
- editor [Done]
- engine [Done]
{
"artifacts" : [
"powerOfTheDragonFather"
],
"creatures" : [], //army format
"experience" : 1000000,
"guardMessage" : "Prepare to fight...",
"guards" : [], //army format
"luck" : 2,
"mana" : 100,
"morale" : 2,
"primarySkills" : {
"attack" : 1,
"defence" : 1,
"knowledge" : 1,
"spellpower" : 1
},
"resources" : {
"crystal" : -1,
"gems" : -1,
"gold" : -1,
"mercury" : -1,
"mithril" : 0,
"ore" : -1,
"sulfur" : -1,
"wood" : -1
},
"secondarySkills" : {
"logistics" : "basic"//, "advanced", "expert"
},
"spells" : [
"townPortal"
],
"reward_x" : {}//reward format
}
Quest guard
- editor [Done]
- engine [Done]
{
"quest" : {} //quest format
}
Random dwelling
- editor [Done]
- engine [Done]
{
"allowedFactions" :{<logical id condition>},
"maxLevel" : 7,
"minLevel" : 1,
"sameAsTown" : "town_42"
}
Resource
- editor [Done]
- engine [Done]
{
"amount" : 99999,
"guardMessage" : "",
"guards" : [] //army format
}
Scholar
- editor [Done]
- engine [Done]
{
"rewardPrimSkill" : "",
"rewardSkill" : "wisdom",
"rewardSpell" : "",
"reward_x" : {}//reward format
}
Seer hut
- editor [Done]
- engine [Done]
{
"quest" : {}, //quest format
"reward" : {}//reward format
}
Shipyard
See owner format
- editor [Done]
- engine [Done]
Shrine of magic
- editor [Done]
- engine [Done]
{
//optional, random spell if not set
"spell" : ""
}
Spell scroll
- engine [Done]
- editor [Done]
"guardMessage" : "",
"guards" : [], //army format
"spell" : "magicArrow"
}
Town
- engine [Done]
- editor [Done]
- castle events [Todo]
"army" : [], //army format
"tightFormation" : false
"name" : "",
"buildings" : {<Logical Id Condition>}
"spells" : {<Logical Id Condition>}
"events" : nil, //TODO
}
Witch hut
- editor [Done]
- engine [Done]
{
"allowedSkills" : {<Logical Id Condition>}
}