mirror of
https://github.com/vcmi/vcmi.git
synced 2024-11-26 08:41:13 +02:00
537 lines
12 KiB
JSON
537 lines
12 KiB
JSON
{
|
|
/// These are objects that have subtypes that change various aspects of their mechanics
|
|
/// Should be made configurable (either directly or via other parts of modding system ASAP)
|
|
/// Editing these objects either directly or via mod may have negative effect on game since they are handled by engine
|
|
|
|
// subtype: artifact ID
|
|
"artifact" : {
|
|
"index" :5,
|
|
"handler": "artifact",
|
|
"base" : {
|
|
"base" : {
|
|
"visitableFrom" : [ "+++", "+-+", "+++" ],
|
|
"mask" : [ "VV", "VA"]
|
|
},
|
|
"sounds" : {
|
|
"visit" : ["TREASURE"],
|
|
"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
|
|
}
|
|
}
|
|
},
|
|
|
|
// subtype: hero CLASS (not hero).
|
|
"hero" : {
|
|
"index" :34,
|
|
"handler": "hero",
|
|
"base" : {
|
|
"aiValue" : 7500,
|
|
"base" : {
|
|
"visitableFrom" : [ "+++", "+-+", "+++" ],
|
|
"mask" : [ "VVV", "VAV"]
|
|
},
|
|
"sounds" : {
|
|
"removal" : ["KILLFADE"]
|
|
}
|
|
}
|
|
},
|
|
|
|
// subtype: creatures
|
|
"monster" : {
|
|
"index" :54,
|
|
"handler": "monster",
|
|
"base" : {
|
|
"base" : {
|
|
"visitableFrom" : [ "+++", "+-+", "+++" ],
|
|
"mask" : [ "VV", "VA"]
|
|
},
|
|
"sounds" : {
|
|
"removal" : ["KILLFADE"]
|
|
}
|
|
}
|
|
},
|
|
|
|
// subtype: resource ID
|
|
"resource" : {
|
|
"index" :79,
|
|
"handler": "resource",
|
|
"lastReservedIndex" : 6,
|
|
"base" : {
|
|
"base" : {
|
|
"visitableFrom" : [ "+++", "+-+", "+++" ],
|
|
"mask" : [ "VA" ]
|
|
}
|
|
},
|
|
"types" : {
|
|
"wood" : { "index" : 0, "aiValue" : 1400, "rmg" : { "value" : 1400, "rarity" : 300 }, "templates" : { "res" : { "animation" : "AVTwood0.def" } } },
|
|
"mercury" : { "index" : 1, "aiValue" : 2000, "rmg" : { "value" : 2000, "rarity" : 300 }, "templates" : { "res" : { "animation" : "AVTmerc0.def" } } },
|
|
"ore" : { "index" : 2, "aiValue" : 1400, "rmg" : { "value" : 1400, "rarity" : 300 }, "templates" : { "res" : { "animation" : "AVTore0.def" } } },
|
|
"sulfur" : { "index" : 3, "aiValue" : 2000, "rmg" : { "value" : 2000, "rarity" : 300 }, "templates" : { "res" : { "animation" : "AVTsulf0.def" } } },
|
|
"crystal" : { "index" : 4, "aiValue" : 2000, "rmg" : { "value" : 2000, "rarity" : 300 }, "templates" : { "res" : { "animation" : "AVTcrys0.def" } } },
|
|
"gems" : { "index" : 5, "aiValue" : 2000, "rmg" : { "value" : 2000, "rarity" : 300 }, "templates" : { "res" : { "animation" : "AVTgems0.def" } } },
|
|
"gold" : { "index" : 6, "aiValue" : 750, "rmg" : { "value" : 750, "rarity" : 300 }, "templates" : { "res" : { "animation" : "AVTgold0.def" } } }
|
|
}
|
|
},
|
|
|
|
// subtype: faction
|
|
"town" : {
|
|
"index" :98,
|
|
"handler": "town",
|
|
"base" : {
|
|
"aiValue" : 20000,
|
|
"filters" : {
|
|
// village image - fort not present
|
|
"village" : [ "noneOf", [ "fort" ] ],
|
|
// fort image - fort is here but not capitol
|
|
"fort" : [ "allOf", [ "fort" ], [ "noneOf", ["capitol" ] ] ],
|
|
// capitol image only when capitol is built
|
|
"capitol" : [ "capitol" ]
|
|
},
|
|
|
|
// "faction" : "stringID", // should be set by engine
|
|
"base" : {
|
|
"visitableFrom" : [ "---", "+++", "+++" ],
|
|
"mask" : [
|
|
"VVVVVV", // a LOT of just visible rows due to towns like Tower
|
|
"VVVVVV",
|
|
"VVVVVV",
|
|
"VVBBBV",
|
|
"VBBBBB",
|
|
"VBBABB"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
// subtype: one of 3 possible boats
|
|
"boat" : {
|
|
"index" :8,
|
|
"handler": "boat",
|
|
"lastReservedIndex" : 2,
|
|
"base" : {
|
|
"aiValue" : 0,
|
|
"base" : {
|
|
"visitableFrom" : [ "+++", "+-+", "+++" ],
|
|
"mask" : [ "VVV", "VAV" ]
|
|
}
|
|
},
|
|
"types" : {
|
|
"evil" :
|
|
{
|
|
"index" : 0,
|
|
"layer" : "sail",
|
|
"actualAnimation" : "AB01_.def",
|
|
"overlayAnimation" : "ABM01_.def",
|
|
"onboardAssaultAllowed" : true,
|
|
"onboardVisitAllowed" : true,
|
|
"flagAnimations" : ["ABF01L", "ABF01G", "ABF01R", "ABF01D", "ABF01B", "ABF01P", "ABF01W", "ABF01K"]
|
|
},
|
|
"good" :
|
|
{
|
|
"index" : 1,
|
|
"layer" : "sail",
|
|
"actualAnimation" : "AB02_.def",
|
|
"overlayAnimation" : "ABM02_.def",
|
|
"onboardAssaultAllowed" : true,
|
|
"onboardVisitAllowed" : true,
|
|
"flagAnimations" : ["ABF02L", "ABF02G", "ABF02R", "ABF02D", "ABF02B", "ABF02P", "ABF02W", "ABF02K"]
|
|
},
|
|
"neutral" : {
|
|
"index" : 2,
|
|
"layer" : "sail",
|
|
"actualAnimation" : "AB03_.def",
|
|
"overlayAnimation" : "ABM03_.def",
|
|
"onboardAssaultAllowed" : true,
|
|
"onboardVisitAllowed" : true,
|
|
"flagAnimations" : ["ABF03L", "ABF03G", "ABF03R", "ABF03D", "ABF03B", "ABF03P", "ABF03W", "ABF03K"]
|
|
},
|
|
}
|
|
},
|
|
|
|
// subtype: color of guard
|
|
"borderGuard" : {
|
|
"index" :9,
|
|
"handler": "borderGuard",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"aiValue" : 0,
|
|
"sounds" : {
|
|
"visit" : ["CAVEHEAD"],
|
|
"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
|
|
}
|
|
},
|
|
"types" : {
|
|
"lblue" : { "index" : 0 },
|
|
"green" : { "index" : 1 },
|
|
"red" : { "index" : 2 },
|
|
"dblue" : { "index" : 3 },
|
|
"brown" : { "index" : 4 },
|
|
"purple" : { "index" : 5 },
|
|
"white" : { "index" : 6 },
|
|
"black" : { "index" : 7 }
|
|
}
|
|
},
|
|
"borderGate" : {
|
|
"index" :212,
|
|
"handler": "borderGate",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"aiValue" : 0,
|
|
"sounds" : {
|
|
"visit" : ["CAVEHEAD"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"lblue" : { "index" : 0 },
|
|
"green" : { "index" : 1 },
|
|
"red" : { "index" : 2 },
|
|
"dblue" : { "index" : 3 },
|
|
"brown" : { "index" : 4 },
|
|
"purple" : { "index" : 5 },
|
|
"white" : { "index" : 6 },
|
|
"black" : { "index" : 7 }
|
|
}
|
|
},
|
|
"keymasterTent" : {
|
|
"index" :10,
|
|
"handler": "keymaster",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"aiValue" : 10000,
|
|
"sounds" : {
|
|
"visit" : ["CAVEHEAD"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"lblue" : { "index" : 0 },
|
|
"green" : { "index" : 1 },
|
|
"red" : { "index" : 2 },
|
|
"dblue" : { "index" : 3 },
|
|
"brown" : { "index" : 4 },
|
|
"purple" : { "index" : 5 },
|
|
"white" : { "index" : 6 },
|
|
"black" : { "index" : 7 }
|
|
}
|
|
},
|
|
//Seer Hut object is set off bottom-right corner, need to fix that
|
|
"seerHut" : {
|
|
"index" :83,
|
|
"handler": "seerHut",
|
|
"lastReservedIndex" : 2,
|
|
"base" : {
|
|
"aiValue" : 10000,
|
|
"base" : {
|
|
"visitableFrom" : [ "---", "+++", "+++" ],
|
|
"mask" : [ "VVV", "VVV", "VAV" ]
|
|
},
|
|
"sounds" : {
|
|
"visit" : ["QUEST"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"0" : { "index" : 0 },
|
|
"1" : { "index" : 1 },
|
|
"2" : { "index" : 2 }
|
|
}
|
|
},
|
|
|
|
// subtype: different revealed areas
|
|
"cartographer" : {
|
|
"index" :13,
|
|
"handler": "cartographer",
|
|
"lastReservedIndex" : 2,
|
|
"base" : {
|
|
"sounds" : {
|
|
"visit" : ["LIGHTHOUSE"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"water" : { "index" : 0, "aiValue" : 5000, "rmg" : { "zoneLimit" : 1, "value" : 5000, "rarity" : 20 } },
|
|
"land" : { "index" : 1, "aiValue": 10000, "rmg" : { "zoneLimit" : 1, "value" : 10000, "rarity" : 20 } },
|
|
"subterra" : { "index" : 2, "aiValue" : 7500, "rmg" : { "zoneLimit" : 1, "value" : 7500, "rarity" : 20 } }
|
|
}
|
|
},
|
|
|
|
// subtype: resource ID
|
|
"mine" : {
|
|
"index" :53,
|
|
"handler": "mine",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"sounds" : {
|
|
"visit" : ["FLAGMINE"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"sawmill" : {
|
|
"index" : 0,
|
|
"aiValue" : 1500,
|
|
"rmg" : {
|
|
"value" : 1500
|
|
},
|
|
"sounds" : {
|
|
"ambient" : ["LOOPLUMB"]
|
|
}
|
|
},
|
|
"alchemistLab" : {
|
|
"index" : 1,
|
|
"aiValue" : 3500,
|
|
"rmg" : {
|
|
"value" : 3500
|
|
},
|
|
"sounds" : {
|
|
"ambient" : ["LOOPSTAR"]
|
|
}
|
|
},
|
|
"orePit" : {
|
|
"index" : 2,
|
|
"aiValue" : 1500,
|
|
"rmg" : {
|
|
"value" : 1500
|
|
},
|
|
"sounds" : {
|
|
"ambient" : ["LOOPSULF"]
|
|
}
|
|
},
|
|
"sulfurDune" : {
|
|
"index" : 3,
|
|
"aiValue" : 3500,
|
|
"rmg" : {
|
|
"value" : 3500
|
|
},
|
|
"sounds" : {
|
|
"ambient" : ["LOOPSULF"]
|
|
}
|
|
},
|
|
"crystalCavern" : {
|
|
"index" : 4,
|
|
"aiValue" : 3500,
|
|
"rmg" : {
|
|
"value" : 3500
|
|
},
|
|
"sounds" : {
|
|
"ambient" : ["LOOPCRYS"]
|
|
},
|
|
"battleground": "subterranean"
|
|
},
|
|
"gemPond" : {
|
|
"index" : 5,
|
|
"aiValue" : 3500,
|
|
"rmg" : {
|
|
"value" : 3500
|
|
},
|
|
"sounds" : {
|
|
"ambient" : ["LOOPGEMP"]
|
|
}
|
|
},
|
|
"goldMine" : {
|
|
"index" : 6,
|
|
"aiValue" : 7000,
|
|
"rmg" : {
|
|
"value" : 7000
|
|
},
|
|
"sounds" : {
|
|
"ambient" : ["LOOPMINE"]
|
|
},
|
|
"battleground": "subterranean"
|
|
},
|
|
"abandoned" : {
|
|
"index" : 7,
|
|
"aiValue" : 3500,
|
|
"sounds" : {
|
|
"ambient" : ["LOOPCAVE"],
|
|
"visit" : ["MYSTERY"]
|
|
},
|
|
"battleground": "subterranean"
|
|
}
|
|
}
|
|
},
|
|
"abandonedMine" : {
|
|
"index" :220,
|
|
"handler": "mine",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"aiValue" : 3500,
|
|
"sounds" : {
|
|
"ambient" : ["LOOPCAVE"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"mine" : { "index" : 7, "battleground": "subterranean" }
|
|
}
|
|
},
|
|
|
|
"garrisonHorizontal": {
|
|
"index" :33,
|
|
"handler": "garrison",
|
|
"lastReservedIndex" : 1,
|
|
"base" : {
|
|
"aiValue" : 0,
|
|
"sounds" : {
|
|
"visit" : ["MILITARY"]
|
|
}
|
|
},
|
|
"types": {
|
|
"normal": {
|
|
"index": 0,
|
|
"sounds" : {
|
|
"ambient" : ["LOOPSWAR"]
|
|
}
|
|
},
|
|
"antiMagic": {
|
|
"index": 1,
|
|
"sounds" : {
|
|
"ambient" : ["LOOPMAGI"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"garrisonVertical" : {
|
|
"index" :219,
|
|
"handler": "garrison",
|
|
"lastReservedIndex" : 1,
|
|
"base" : {
|
|
"aiValue" : 0,
|
|
"sounds" : {
|
|
"visit" : ["MILITARY"]
|
|
}
|
|
},
|
|
"types": {
|
|
"normal": {
|
|
"index": 0,
|
|
"sounds" : {
|
|
"ambient" : ["LOOPSWAR"]
|
|
}
|
|
},
|
|
"antiMagic": {
|
|
"index": 1,
|
|
"sounds" : {
|
|
"ambient" : ["LOOPMAGI"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
// Subtype: paired monoliths
|
|
"monolithOneWayEntrance" : {
|
|
"index" :43,
|
|
"handler": "monolith",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"sounds" : {
|
|
"ambient" : ["LOOPMON1"],
|
|
"visit" : ["TELPTOUT"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"monolith1" : { "index" : 0 },
|
|
"monolith2" : { "index" : 1 },
|
|
"monolith3" : { "index" : 2 },
|
|
"monolith4" : { "index" : 3 },
|
|
"monolith5" : { "index" : 4 },
|
|
"monolith6" : { "index" : 5 },
|
|
"monolith7" : { "index" : 6 },
|
|
"monolith8" : { "index" : 7 }
|
|
}
|
|
},
|
|
"monolithOneWayExit" : {
|
|
"index" :44,
|
|
"handler": "monolith",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"sounds" : { "ambient" : ["LOOPMON1"] }
|
|
},
|
|
"types" : {
|
|
"monolith1" : { "index" : 0 },
|
|
"monolith2" : { "index" : 1 },
|
|
"monolith3" : { "index" : 2 },
|
|
"monolith4" : { "index" : 3 },
|
|
"monolith5" : { "index" : 4 },
|
|
"monolith6" : { "index" : 5 },
|
|
"monolith7" : { "index" : 6 },
|
|
"monolith8" : { "index" : 7 }
|
|
}
|
|
},
|
|
"monolithTwoWay" : {
|
|
"index" :45,
|
|
"handler": "monolith",
|
|
"lastReservedIndex" : 7,
|
|
"base" : {
|
|
"sounds" : {
|
|
"ambient" : ["LOOPMON2"],
|
|
"visit" : ["TELPTOUT"]
|
|
}
|
|
},
|
|
"types" : {
|
|
"monolith1" : { "index" : 0 },
|
|
"monolith2" : { "index" : 1 },
|
|
"monolith3" : { "index" : 2 },
|
|
"monolith4" : { "index" : 3 },
|
|
"monolith5" : { "index" : 4 },
|
|
"monolith6" : { "index" : 5 },
|
|
"monolith7" : { "index" : 6 },
|
|
"monolith8" : { "index" : 7 }
|
|
}
|
|
},
|
|
|
|
// subtype: level
|
|
"randomDwellingLvl" : {
|
|
"index" :217,
|
|
"handler": "randomDwelling",
|
|
"lastReservedIndex" : 6,
|
|
"types" : {
|
|
"objectLvl1" : { "index" : 0},
|
|
"objectLvl2" : { "index" : 1},
|
|
"objectLvl3" : { "index" : 2},
|
|
"objectLvl4" : { "index" : 3},
|
|
"objectLvl5" : { "index" : 4},
|
|
"objectLvl6" : { "index" : 5},
|
|
"objectLvl7" : { "index" : 6}
|
|
}
|
|
},
|
|
|
|
// subtype: faction ID
|
|
"randomDwellingFaction" : {
|
|
"index" :218,
|
|
"handler": "randomDwelling",
|
|
"lastReservedIndex" : 8,
|
|
"types" : {
|
|
"objectCastle" : { "index" : 0},
|
|
"objectRampart" : { "index" : 1},
|
|
"objectTower" : { "index" : 2},
|
|
"objectInferno" : { "index" : 3},
|
|
"objectNecropolis" : { "index" : 4},
|
|
"objectDungeon" : { "index" : 5},
|
|
"objectStronghold" : { "index" : 6},
|
|
"objectFortress" : { "index" : 7},
|
|
"objectConflux" : { "index" : 8},
|
|
}
|
|
},
|
|
|
|
// don't have subtypes (at least now), but closely connected to this objects
|
|
"spellScroll" : {
|
|
"index" :93,
|
|
"handler": "artifact",
|
|
"types" : {
|
|
"object" : {
|
|
"index" : 0,
|
|
"aiValue" : 500,
|
|
"sounds" : {
|
|
"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
|
|
},
|
|
"templates" : {
|
|
"normal" : {
|
|
"visitableFrom" : [ "+++", "+-+", "+++" ],
|
|
"mask" : [ "VA" ],
|
|
"animation" : "AVA0001.def"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"heroPlaceholder" : {
|
|
"index" : 214,
|
|
"handler": "heroPlaceholder",
|
|
"types" : { "object" : { "index" : 0 } }
|
|
}
|
|
}
|