mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			492 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			492 lines
		
	
	
		
			11 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",
 | |
| 		"defaultAiValue" : 5000,
 | |
| 		"base" : {
 | |
| 			"base" : {
 | |
| 				"visitableFrom" : [ "+++", "+-+", "+++" ],
 | |
| 				"mask" : [ "VV", "AV"]
 | |
| 			},
 | |
| 			"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",
 | |
| 		"base" : {
 | |
| 			"base" : {
 | |
| 				"visitableFrom" : [ "+++", "+-+", "+++" ],
 | |
| 				"mask" : [ "VA" ]
 | |
| 			},
 | |
| 			"sounds" : {
 | |
| 				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
 | |
| 			}
 | |
| 		},
 | |
| 		"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" } } },
 | |
| 			"mithril" : { "index" : 7, "aiValue" : 3500 } // TODO: move to WoG?
 | |
| 		}
 | |
| 	},
 | |
| 	
 | |
| 	// subtype: faction
 | |
| 	"town" : {
 | |
| 		"index" :98,
 | |
| 		"handler": "town",
 | |
| 		"defaultAiValue" : 20000,
 | |
| 		"base" : {
 | |
| 			"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",
 | |
| 		"defaultAiValue" : 0,
 | |
| 		"base" : {
 | |
| 			"base" : {
 | |
| 				"visitableFrom" : [ "+++", "+-+", "+++" ],
 | |
| 				"mask" : [ "VVV", "VAV" ]
 | |
| 			}
 | |
| 		},
 | |
| 		"types" : {
 | |
| 			"evil" : { "index" : 0,	"rmg" : { "mapLimit" : 64 } },
 | |
| 			"good" : { "index" : 1, "rmg" : { "mapLimit" : 64 } },
 | |
| 			"neutral" : { "index" : 2, "rmg" : { "mapLimit" : 64 } },
 | |
| 		}
 | |
| 	},
 | |
| 
 | |
| 	// subtype: color of guard
 | |
| 	"borderGuard" : {
 | |
| 		"index" :9,
 | |
| 		"handler": "borderGuard",
 | |
| 		"defaultAiValue" : 0,
 | |
| 		"base" : {
 | |
| 			"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",
 | |
| 		"defaultAiValue" : 0,
 | |
| 		"base" : {
 | |
| 			"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",
 | |
| 		"defaultAiValue" : 10000,
 | |
| 		"base" : {
 | |
| 			"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",
 | |
| 		"defaultAiValue" : 10000,
 | |
| 		"base" : {
 | |
| 			"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",
 | |
| 		"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",
 | |
| 		"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"]
 | |
| 				}
 | |
| 			},
 | |
| 			"gemPond" : {
 | |
| 				"index" : 5,
 | |
| 				"aiValue" : 3500,
 | |
| 				"rmg" : {
 | |
| 					"value" : 3500
 | |
| 				},
 | |
| 				"sounds" : {
 | |
| 					"ambient" : ["LOOPGEMP"]
 | |
| 				}
 | |
| 			},
 | |
| 			"goldMine" : {
 | |
| 				"index" : 6,
 | |
| 				"aiValue" : 7000,
 | |
| 				"rmg" : {
 | |
| 					"value" : 7000
 | |
| 				},
 | |
| 				"sounds" : {
 | |
| 					"ambient" : ["LOOPMINE"]
 | |
| 				}
 | |
| 			},
 | |
| 			"abandoned" :	{
 | |
| 				"index" : 7,
 | |
| 				"aiValue" : 3500,
 | |
| 				"sounds" : {
 | |
| 					"ambient" : ["LOOPCAVE"],
 | |
| 					"visit" : ["MYSTERY"]
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	},
 | |
| 	"abandonedMine" : {
 | |
| 		"index" :220,
 | |
| 		"handler": "mine",
 | |
| 		"defaultAiValue" : 3500,
 | |
| 		"base" : {
 | |
| 			"sounds" : {
 | |
| 				"ambient" : ["LOOPCAVE"]
 | |
| 			}
 | |
| 		},
 | |
| 		"types" : {
 | |
| 			"mine" : { "index" : 7 }
 | |
| 		}
 | |
| 	},
 | |
| 
 | |
| 	"garrisonHorizontal": {
 | |
| 		"index" :33,
 | |
| 		"handler": "garrison",
 | |
| 		"defaultAiValue" : 0,
 | |
| 		"base" : {
 | |
| 			"sounds" : {
 | |
| 				"visit" : ["MILITARY"]
 | |
| 			}
 | |
| 		},
 | |
| 		"types": {
 | |
| 			"normal": {
 | |
| 				"index": 0,
 | |
| 				"sounds" : {
 | |
| 					"ambient" : ["LOOPSWAR"]
 | |
| 				}
 | |
| 			},
 | |
| 			"antiMagic": {
 | |
| 				"index": 1,
 | |
| 				"sounds" : {
 | |
| 					"ambient" : ["LOOPMAGI"]
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	},
 | |
| 	"garrisonVertical" : {
 | |
| 		"index" :219,
 | |
| 		"handler": "garrison",
 | |
| 		"defaultAiValue" : 0,
 | |
| 		"base" : {
 | |
| 			"sounds" : {
 | |
| 				"visit" : ["MILITARY"]
 | |
| 			}
 | |
| 		},
 | |
| 		"types": {
 | |
| 			"normal": {
 | |
| 				"index": 0,
 | |
| 				"sounds" : {
 | |
| 					"ambient" : ["LOOPSWAR"]
 | |
| 				}
 | |
| 			},
 | |
| 			"antiMagic": {
 | |
| 				"index": 1,
 | |
| 				"sounds" : {
 | |
| 					"ambient" : ["LOOPMAGI"]
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	},
 | |
| 
 | |
| 	// Subtype: paired monoliths
 | |
| 	"monolithOneWayEntrance" : {
 | |
| 		"index" :43,
 | |
| 		"handler": "monolith",
 | |
| 		"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",
 | |
| 		"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",
 | |
| 		"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",
 | |
| 			"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",
 | |
| 			"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,
 | |
| 				"templates" : {
 | |
| 					"normal" : {
 | |
| 						"visitableFrom" : [ "+++", "+-+", "+++" ],
 | |
| 						"mask" : [ "VA" ],
 | |
| 						"animation" : "AVA0001.def"
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	},
 | |
| 	"heroPlaceholder"	: {
 | |
| 		"index" : 214,
 | |
| 		"handler": "heroPlaceholder",
 | |
| 		"types" : { "object" : { "index" : 0 } }
 | |
| 	}
 | |
| }
 |