Переглянути джерело

config: add ambient, visit and removal sounds to schemas / objects

Arseniy Shestakov 8 роки тому
батько
коміт
e7fa9f8cd6

+ 43 - 0
config/objects/creatureBanks.json

@@ -2,11 +2,19 @@
 	"creatureBank" : {
 		"index" :16,
 		"handler": "bank",
+		"base" : {
+			"sounds" : {
+				"visit" : ["ROGUE"]
+			}
+		},
 		"types" : {
 			"cyclopsStockpile" :
 			{
 				"index" : 0,
 				"name" : "Cyclops Stockpile",
+				"sounds" : {
+					"ambient" : ["LOOPCAVE"]
+				},
 				"rmg" : {
 					"value"		: 3000,
 					"rarity"	: 100
@@ -112,6 +120,9 @@
 				"index" : 1,
 				"resetDuration" : 0,
 				"name" : "Dwarven Treasury",
+				"sounds" : {
+					"ambient" : ["LOOPDWAR"]
+				},
 				"rmg" : {
 					"value"		: 2000,
 					"rarity"	: 100
@@ -199,6 +210,9 @@
 				"index" : 2,
 				"resetDuration" : 0,
 				"name" : "Griffin Conservatory",
+				"sounds" : {
+					"ambient" : ["LOOPGRIF"]
+				},
 				"rmg" : {
 					"value"		: 2000,
 					"rarity"	: 100
@@ -270,6 +284,9 @@
 				"index" : 3,
 				"resetDuration" : 0,
 				"name" : "Imp Cache",
+				"sounds" : {
+					"ambient" : ["LOOPFIRE"]
+				},
 				"rmg" : {
 					"value"		: 5000,
 					"rarity"	: 100
@@ -356,6 +373,9 @@
 				"index" : 4,
 				"resetDuration" : 0,
 				"name" : "Medusa Stores",
+				"sounds" : {
+					"ambient" : ["LOOPMEDU"]
+				},
 				"rmg" : {
 					"value"		: 1500,
 					"rarity"	: 100
@@ -443,6 +463,9 @@
 				"index" : 5,
 				"resetDuration" : 0,
 				"name" : "Naga Bank",
+				"sounds" : {
+					"ambient" : ["LOOPNAGA"]
+				},
 				"rmg" : {
 					"value"		: 3000,
 					"rarity"	: 100
@@ -530,6 +553,9 @@
 				"index" : 6,
 				"resetDuration" : 0,
 				"name" : "Dragon Fly Hive",
+				"sounds" : {
+					"ambient" : ["LOOPLEAR"]
+				},
 				"rmg" : {
 					"value"		: 9000,
 					"rarity"	: 100
@@ -785,6 +811,12 @@
 	"crypt" : {
 		"index" :84,
 		"handler": "bank",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPDEAD"],
+				"visit" : ["GRAVEYARD"]
+			}
+		},
 		"types" : {
 			"crypt" : {
 				"index" : 0,
@@ -874,6 +906,12 @@
 	"dragonUtopia" : {
 		"index" :25,
 		"handler": "bank",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPDRAG"],
+				"visit" : ["DRAGON"]
+			}
+		},
 		"types" : {
 			"dragonUtopia" : {
 				"index" : 0,
@@ -983,6 +1021,11 @@
 	"pyramid" : {
 		"index" :63,
 		"handler": "bank",
+		"base" : {
+			"sounds" : {
+				"visit" : ["MYSTERY"]
+			}
+		},
 		"types" : {
 			"pyramid" : {
 				"index" : 0,

+ 521 - 82
config/objects/dwellings.json

@@ -6,89 +6,522 @@
 			"base" : {
 				"visitableFrom" : [ "---", "+++", "+++" ],
 				"mask" : [ "VVV", "VBB", "VAA" ]
+			},
+			"sounds" : {
+				"ambient" : ["LOOPSWOR"],
+				"visit" : ["MILITARY"]
 			}
 		},
 		"types" : {
-			"basiliskPit" :      { "index" : 0,  "creatures" :  [ [ "basilisk" ] ] },
-			"behemothCrag" :     { "index" : 1,  "creatures" :  [ [ "behemoth" ] ]},
-			"pillarOfEyes" :     { "index" : 2,  "creatures" :  [ [ "beholder" ] ] },
-			"hallOfDarkness" :   { "index" : 3,  "creatures" :  [ [ "blackKnight" ] ]},
-			"dragonVault" :      { "index" : 4,  "creatures" :  [ [ "boneDragon" ] ]},
-			"trainingGrounds" :  { "index" : 5,  "creatures" :  [ [ "cavalier" ] ]},
-			"centaurStables" :   { "index" : 6,  "creatures" :  [ [ "centaur" ] ] },
-			"airConflux" :       { "index" : 7,  "creatures" :  [ [ "airElemental" ] ] },
-			"portalOfGlory" :    { "index" : 8,  "creatures" :  [ [ "angel" ] ]},
-			"cyclopsCave" :      { "index" : 9,  "creatures" :  [ [ "cyclop" ] ]},
-			"forsakenPalace" :   { "index" : 10, "creatures" : [ [ "devil" ] ]},
-			"serpentFlyHive" :   { "index" : 11, "creatures" : [ [ "serpentFly" ] ] },
-			"dwarfCottage" :     { "index" : 12, "creatures" : [ [ "dwarf" ] ] },
-			"earthConflux" :     { "index" : 13, "creatures" : [ [ "earthElemental" ] ]},
-			"fireLake" :         { "index" : 14, "creatures" : [ [ "efreet" ] ]},
-			"homestead" :        { "index" : 15, "creatures" : [ [ "woodElf" ] ] },
-			"fireConflux" :      { "index" : 16, "creatures" : [ [ "fireElemental" ] ] },
-			"parapet" :          { "index" : 17, "creatures" : [ [ "stoneGargoyle" ] ] },
-			"altarOfWishes" :    { "index" : 18, "creatures" : [ [ "genie" ] ]},
-			"wolfPen" :          { "index" : 19, "creatures" : [ [ "goblinWolfRider" ] ] },
-			"gnollHut" :         { "index" : 20, "creatures" : [ [ "gnoll" ] ] },
-			"goblinBarracks" :   { "index" : 21, "creatures" : [ [ "goblin" ] ] },
-			"hallOfSins" :       { "index" : 22, "creatures" : [ [ "gog" ] ] },
-			"gorgonLair" :       { "index" : 23, "creatures" : [ [ "gorgon" ] ]},
-			"dragonCliffs" :     { "index" : 24, "creatures" : [ [ "greenDragon" ] ]},
-			"griffinTower" :     { "index" : 25, "creatures" : [ [ "griffin" ] ] },
-			"harpyLoft" :        { "index" : 26, "creatures" : [ [ "harpy" ] ] },
-			"kennels" :          { "index" : 27, "creatures" : [ [ "hellHound" ] ] },
-			"hydraPond" :        { "index" : 28, "creatures" : [ [ "hydra" ] ]},
-			"impCrucible" :      { "index" : 29, "creatures" : [ [ "imp" ] ] },
-			"lizardDen" :        { "index" : 30, "creatures" : [ [ "lizardman" ] ] },
-			"mageTower" :        { "index" : 31, "creatures" : [ [ "mage" ] ] },
-			"manticoreLair" :    { "index" : 32, "creatures" : [ [ "manticore" ] ]},
-			"medusaChapel" :     { "index" : 33, "creatures" : [ [ "medusa" ] ] },
-			"labyrinth" :        { "index" : 34, "creatures" : [ [ "minotaur" ] ]},
-			"monastery" :        { "index" : 35, "creatures" : [ [ "monk" ] ]},
-			"goldenPavilion" :   { "index" : 36, "creatures" : [ [ "naga" ] ]},
-			"demonGate" :        { "index" : 37, "creatures" : [ [ "demon" ] ] },
-			"ogreFort" :         { "index" : 38, "creatures" : [ [ "ogre" ] ] },
-			"orcTower" :         { "index" : 39, "creatures" : [ [ "orc" ] ] },
-			"hellHole" :         { "index" : 40, "creatures" : [ [ "pitFiend" ] ]},
-			"dragonCave" :       { "index" : 41, "creatures" : [ [ "redDragon" ] ]},
-			"cliffNest" :        { "index" : 42, "creatures" : [ [ "roc" ] ]},
-			"workshop" :         { "index" : 43, "creatures" : [ [ "gremlin" ] ] },
-			"cloudTemple" :      { "index" : 44, "creatures" : [ [ "giant" ] ]},
-			"dendroidArches" :   { "index" : 45, "creatures" : [ [ "dendroidGuard" ] ]},
-			"warren" :           { "index" : 46, "creatures" : [ [ "troglodyte" ] ] },
-			"waterConflux" :     { "index" : 47, "creatures" : [ [ "waterElemental" ] ] },
-			"tombOfSouls" :      { "index" : 48, "creatures" : [ [ "wight" ] ] },
-			"wyvernNest" :       { "index" : 49, "creatures" : [ [ "wyvern" ] ]},
-			"enchantedSpring" :  { "index" : 50, "creatures" : [ [ "pegasus" ] ] },
-			"unicornGladeBig" :  { "index" : 51, "creatures" : [ [ "unicorn" ] ]},
-			"mausoleum" :        { "index" : 52, "creatures" : [ [ "lich" ] ]},
-			"estate" :           { "index" : 53, "creatures" : [ [ "vampire" ] ] },
-			"cursedTemple" :     { "index" : 54, "creatures" : [ [ "skeleton" ] ] },
-			"graveyard" :        { "index" : 55, "creatures" : [ [ "walkingDead" ] ] },
-			"guardhouse" :       { "index" : 56, "creatures" : [ [ "pikeman" ] ] },
-			"archersTower" :     { "index" : 57, "creatures" : [ [ "archer" ] ] },
-			"barracks" :         { "index" : 58, "creatures" : [ [ "swordsman" ] ] },
-			"magicLantern" :     { "index" : 59, "creatures" : [ [ "pixie" ] ] },
-			"altarOfThought" :   { "index" : 60, "creatures" : [ [ "psychicElemental" ] ]},
-			"pyre" :             { "index" : 61, "creatures" : [ [ "firebird" ] ]},
-			"frozenCliffs" :     { "index" : 62, "creatures" : [ [ "azureDragon" ] ]},
-			"crystalCavern" :    { "index" : 63, "creatures" : [ [ "crystalDragon" ] ]},
-			"magicForest" :      { "index" : 64, "creatures" : [ [ "fairieDragon" ] ]},
-			"sulfurousLair" :    { "index" : 65, "creatures" : [ [ "rustDragon" ] ]},
-			"enchantersHollow" : { "index" : 66, "creatures" : [ [ "enchanter" ] ]},
-			"treetopTower" :     { "index" : 67, "creatures" : [ [ "sharpshooter" ] ]},
-			"unicornGlade" :     { "index" : 68, "creatures" : [ [ "unicorn" ] ]},
-			"altarOfAir" :       { "index" : 69, "creatures" : [ [ "airElemental" ] ] },
-			"altarOfEarth" :     { "index" : 70, "creatures" : [ [ "earthElemental" ] ]},
-			"altarOfFire" :      { "index" : 71, "creatures" : [ [ "fireElemental" ] ] },
-			"altarOfWater" :     { "index" : 72, "creatures" : [ [ "waterElemental" ] ] },
-			"thatchedHut" :      { "index" : 73, "creatures" : [ [ "halfling" ] ] },
-			"hovel" :            { "index" : 74, "creatures" : [ [ "peasant" ] ] },
-			"boarGlen" :         { "index" : 75, "creatures" : [ [ "boar" ] ] },
-			"tombOfCurses" :     { "index" : 76, "creatures" : [ [ "mummy" ] ] },
-			"nomadTent" :        { "index" : 77, "creatures" : [ [ "nomad" ] ] },
-			"rogueCavern" :      { "index" : 78, "creatures" : [ [ "rogue" ] ] },
-			"trollBridge" :      { "index" : 79, "creatures" : [ [ "troll" ] ] }
+			"basiliskPit": {
+				"index": 0,
+				"creatures": [["basilisk"]],
+				"sounds": {
+					"ambient": ["LOOPMONS"]
+				}
+			},
+			"behemothCrag": {
+				"index": 1,
+				"creatures": [["behemoth"]],
+				"sounds": {
+					"ambient": ["LOOPBEHE"]
+				}
+			},
+			"pillarOfEyes": {
+				"index": 2,
+				"creatures": [["beholder"]],
+				"sounds": {
+					"ambient": ["LOOPCAVE"]
+				}
+			},
+			"hallOfDarkness": {
+				"index": 3,
+				"creatures": [["blackKnight"]],
+				"sounds": {
+					"ambient": ["LOOPDEAD"]
+				}
+			},
+			"dragonVault": {
+				"index": 4,
+				"creatures": [["boneDragon"]],
+				"sounds": {
+					"ambient": ["LOOPDRAG"]
+				}
+			},
+			"trainingGrounds": {
+				"index": 5,
+				"creatures": [["cavalier"]],
+				"sounds": {
+					"ambient": ["LOOPHORS"]
+				}
+			},
+			"centaurStables": {
+				"index": 6,
+				"creatures": [["centaur"]],
+				"sounds": {
+					"ambient": ["LOOPHORS"]
+				}
+			},
+			"airConflux": {
+				"index": 7,
+				"creatures": [["airElemental"]],
+				"sounds": {
+					"ambient": ["LOOPAIR"]
+				}
+			},
+			"portalOfGlory": {
+				"index": 8,
+				"creatures": [["angel"]],
+				"sounds": {
+					"ambient": ["LOOPSANC"]
+				}
+			},
+			"cyclopsCave": {
+				"index": 9,
+				"creatures": [["cyclop"]],
+				"sounds": {
+					"ambient": ["LOOPCAVE"]
+				}
+			},
+			"forsakenPalace": {
+				"index": 10,
+				"creatures": [["devil"]],
+				"sounds": {
+					"ambient": ["LOOPDEVL"]
+				}
+			},
+			"serpentFlyHive": {
+				"index": 11,
+				"creatures": [["serpentFly"]],
+				"sounds": {
+					"ambient": ["LOOPLEAR"]
+				}
+			},
+			"dwarfCottage": {
+				"index": 12,
+				"creatures": [["dwarf"]],
+				"sounds": {
+					"ambient": ["LOOPDWAR"]
+				}
+			},
+			"earthConflux": {
+				"index": 13,
+				"creatures": [["earthElemental"]],
+				"sounds": {
+					"ambient": ["LOOPEART"]
+				}
+			},
+			"fireLake": {
+				"index": 14,
+				"creatures": [["efreet"]],
+				"sounds": {
+					"ambient": ["LOOPVENT"]
+				}
+			},
+			"homestead": {
+				"index": 15,
+				"creatures": [["woodElf"]],
+				"sounds": {
+					"ambient": ["LOOPELF"]
+				}
+			},
+			"fireConflux": {
+				"index": 16,
+				"creatures": [["fireElemental"]],
+				"sounds": {
+					"ambient": ["LOOPFIRE"]
+				}
+			},
+			"parapet": {
+				"index": 17,
+				"creatures": [["stoneGargoyle"]],
+				"sounds": {
+					"ambient": ["LOOPGRIF"]
+				}
+			},
+			"altarOfWishes": {
+				"index": 18,
+				"creatures": [["genie"]],
+				"sounds": {
+					"ambient": ["LOOPMAGI"]
+				}
+			},
+			"wolfPen": {
+				"index": 19,
+				"creatures": [["goblinWolfRider"]],
+				"sounds": {
+					"ambient": ["LOOPWOLF"]
+				}
+			},
+			"gnollHut": {
+				"index": 20,
+				"creatures": [["gnoll"]],
+				"sounds": {
+					"ambient": ["LOOPORC"]
+				}
+			},
+			"goblinBarracks": {
+				"index": 21,
+				"creatures": [["goblin"]],
+				"sounds": {
+					"ambient": ["LOOPGOBL"]
+				}
+			},
+			"hallOfSins": {
+				"index": 22,
+				"creatures": [["gog"]],
+				"sounds": {
+					"ambient": ["LOOPVENT"]
+				}
+			},
+			"gorgonLair": {
+				"index": 23,
+				"creatures": [["gorgon"]],
+				"sounds": {
+					"ambient": ["LOOPBEHE"]
+				}
+			},
+			"dragonCliffs": {
+				"index": 24,
+				"creatures": [["greenDragon"]],
+				"sounds": {
+					"ambient": ["LOOPDRAG"]
+				}
+			},
+			"griffinTower": {
+				"index": 25,
+				"creatures": [["griffin"]],
+				"sounds": {
+					"ambient": ["LOOPGRIF"]
+				}
+			},
+			"harpyLoft": {
+				"index": 26,
+				"creatures": [["harpy"]],
+				"sounds": {
+					"ambient": ["LOOPHARP"]
+				}
+			},
+			"kennels": {
+				"index": 27,
+				"creatures": [["hellHound"]],
+				"sounds": {
+					"ambient": ["LOOPDOG"]
+				}
+			},
+			"hydraPond": {
+				"index": 28,
+				"creatures": [["hydra"]],
+				"sounds": {
+					"ambient": ["LOOPHYDR"]
+				}
+			},
+			"impCrucible": {
+				"index": 29,
+				"creatures": [["imp"]],
+				"sounds": {
+					"ambient": ["LOOPFIRE"]
+				}
+			},
+			"lizardDen": {
+				"index": 30,
+				"creatures": [["lizardman"]],
+				"sounds": {
+					"ambient": ["LOOPARCH"]
+				}
+			},
+			"mageTower": {
+				"index": 31,
+				"creatures": [["mage"]],
+				"sounds": {
+					"ambient": ["LOOPMAGI"]
+				}
+			},
+			"manticoreLair": {
+				"index": 32,
+				"creatures": [["manticore"]],
+				"sounds": {
+					"ambient": ["LOOPMANT"]
+				}
+			},
+			"medusaChapel": {
+				"index": 33,
+				"creatures": [["medusa"]],
+				"sounds": {
+					"ambient": ["LOOPMEDU"]
+				}
+			},
+			"labyrinth": {
+				"index": 34,
+				"creatures": [["minotaur"]],
+				"sounds": {
+					"ambient": ["LOOPANIM"]
+				}
+			},
+			"monastery": {
+				"index": 35,
+				"creatures": [["monk"]],
+				"sounds": {
+					"ambient": ["LOOPMONK"]
+				}
+			},
+			"goldenPavilion": {
+				"index": 36,
+				"creatures": [["naga"]],
+				"sounds": {
+					"ambient": ["LOOPNAGA"]
+				}
+			},
+			"demonGate": {
+				"index": 37,
+				"creatures": [["demon"]],
+				"sounds": {
+					"ambient": ["LOOPCAVE"]
+				}
+			},
+			"ogreFort": {
+				"index": 38,
+				"creatures": [["ogre"]],
+				"sounds": {
+					"ambient": ["LOOPOGRE"]
+				}
+			},
+			"orcTower": {
+				"index": 39,
+				"creatures": [["orc"]],
+				"sounds": {
+					"ambient": ["LOOPORC"]
+				}
+			},
+			"hellHole": {
+				"index": 40,
+				"creatures": [["pitFiend"]],
+				"sounds": {
+					"ambient": ["LOOPFIRE"]
+				}
+			},
+			"dragonCave": {
+				"index": 41,
+				"creatures": [["redDragon"]],
+				"sounds": {
+					"ambient": ["LOOPDRAG"]
+				}
+			},
+			"cliffNest": {
+				"index": 42,
+				"creatures": [["roc"]],
+				"sounds": {
+					"ambient": ["LOOPBIRD"]
+				}
+			},
+			"workshop": {
+				"index": 43,
+				"creatures": [["gremlin"]],
+				"sounds": {
+					"ambient": ["LOOPGREM"]
+				}
+			},
+			"cloudTemple": {
+				"index": 44,
+				"creatures": [["giant"]],
+				"sounds": {
+					"ambient": ["LOOPTITA"]
+				}
+			},
+			"dendroidArches": {
+				"index": 45,
+				"creatures": [["dendroidGuard"]],
+				"sounds": {
+					"ambient": ["LOOPGARD"]
+				}
+			},
+			"warren": {
+				"index": 46,
+				"creatures": [["troglodyte"]],
+				"sounds": {
+					"ambient": ["LOOPCAVE"]
+				}
+			},
+			"waterConflux": {
+				"index": 47,
+				"creatures": [["waterElemental"]],
+				"sounds": {
+					"ambient": ["LOOPFOUN"]
+				}
+			},
+			"tombOfSouls": {
+				"index": 48,
+				"creatures": [["wight"]],
+				"sounds": {
+					"ambient": ["LOOPDEAD"]
+				}
+			},
+			"wyvernNest": {
+				"index": 49,
+				"creatures": [["wyvern"]],
+				"sounds": {
+					"ambient": ["LOOPMONS"]
+				}
+			},
+			"enchantedSpring": {
+				"index": 50,
+				"creatures": [["pegasus"]],
+				"sounds": {
+					"ambient": ["LOOPPEGA"]
+				}
+			},
+			"unicornGladeBig": {
+				"index": 51,
+				"creatures": [["unicorn"]],
+				"sounds": {
+					"ambient": ["LOOPUNIC"]
+				}
+			},
+			"mausoleum": {
+				"index": 52,
+				"creatures": [["lich"]],
+				"sounds": {
+					"ambient": ["LOOPDEAD"]
+				}
+			},
+			"estate": {
+				"index": 53,
+				"creatures": [["vampire"]],
+				"sounds": {
+					"ambient": ["LOOPDEAD"]
+				}
+			},
+			"cursedTemple": {
+				"index": 54,
+				"creatures": [["skeleton"]],
+				"sounds": {
+					"ambient": ["LOOPSKEL"]
+				}
+			},
+			"graveyard": {
+				"index": 55,
+				"creatures": [["walkingDead"]],
+				"sounds": {
+					"ambient": ["LOOPDEAD"]
+				}
+			},
+			"guardhouse": {
+				"index": 56,
+				"creatures": [["pikeman"]],
+				"sounds": {
+					"ambient": ["LOOPPIKE"]
+				}
+			},
+			"archersTower": {
+				"index": 57,
+				"creatures": [["archer"]],
+				"sounds": {
+					"ambient": ["LOOPARCH"]
+				}
+			},
+			"barracks": {
+				"index": 58,
+				"creatures": [["swordsman"]]
+			},
+			"magicLantern": {
+				"index": 59,
+				"creatures": [["pixie"]]
+			},
+			"altarOfThought": {
+				"index": 60,
+				"creatures": [["psychicElemental"]]
+			},
+			"pyre": {
+				"index": 61,
+				"creatures": [["firebird"]]
+			},
+			"frozenCliffs": {
+				"index": 62,
+				"creatures": [["azureDragon"]]
+			},
+			"crystalCavern": {
+				"index": 63,
+				"creatures": [["crystalDragon"]]
+			},
+			"magicForest": {
+				"index": 64,
+				"creatures": [["fairieDragon"]]
+			},
+			"sulfurousLair": {
+				"index": 65,
+				"creatures": [["rustDragon"]]
+			},
+			"enchantersHollow": {
+				"index": 66,
+				"creatures": [["enchanter"]]
+			},
+			"treetopTower": {
+				"index": 67,
+				"creatures": [["sharpshooter"]]
+			},
+			"unicornGlade": {
+				"index": 68,
+				"creatures": [["unicorn"]],
+				"sounds": {
+					"ambient": ["LOOPUNIC"]
+				}
+			},
+			"altarOfAir": {
+				"index": 69,
+				"creatures": [["airElemental"]],
+				"sounds": {
+					"ambient": ["LOOPAIR"]
+				}
+			},
+			"altarOfEarth": {
+				"index": 70,
+				"creatures": [["earthElemental"]],
+				"sounds": {
+					"ambient": ["LOOPEART"]
+				}
+			},
+			"altarOfFire": {
+				"index": 71,
+				"creatures": [["fireElemental"]],
+				"sounds": {
+					"ambient": ["LOOPFIRE"]
+				}
+			},
+			"altarOfWater": {
+				"index": 72,
+				"creatures": [["waterElemental"]],
+				"sounds": {
+					"ambient": ["LOOPFOUN"]
+				}
+			},
+			"thatchedHut": {
+				"index": 73,
+				"creatures": [["halfling"]]
+			},
+			"hovel": {
+				"index": 74,
+				"creatures": [["peasant"]]
+			},
+			"boarGlen": {
+				"index": 75,
+				"creatures": [["boar"]]
+			},
+			"tombOfCurses": {
+				"index": 76,
+				"creatures": [["mummy"]]
+			},
+			"nomadTent": {
+				"index": 77,
+				"creatures": [["nomad"]]
+			},
+			"rogueCavern": {
+				"index": 78,
+				"creatures": [["rogue"]]
+			},
+			"trollBridge": {
+				"index": 79,
+				"creatures": [["troll"]]
+			}
 		}
 	},
 	// subtype: unique special dwellings - golem factory and elemental conflux
@@ -106,7 +539,10 @@
 				],
 				"guards" : [
 					{ "amount" : 12, "type" : "earthElemental" }
-				]
+				],
+				"sounds" : {
+					"ambient" : ["LOOPTITA"]
+				}
 			},
 			"golemFactory" : {
 				"index" : 1,
@@ -119,7 +555,10 @@
 				"guards" : [
 					{ "amount" : 9, "type" : "goldGolem" },
 					{ "amount" : 6, "type" : "diamondGolem" }
-				]
+				],
+				"sounds" : {
+					"ambient" : ["LOOPFACT"]
+				}
 			}
 		}
 	},

+ 264 - 14
config/objects/generic.json

@@ -4,6 +4,11 @@
 	"prison" : {
 		"index" :62,
 		"handler": "prison",
+		"base" : {
+			"sounds" : {
+				"visit" : ["ROGUE"]
+			}
+		},
 		"types" : {
 			"prison" : { "index" : 0 }
 		}
@@ -12,6 +17,11 @@
 	"altarOfSacrifice" : {
 		"index" :2,
 		"handler" : "market",
+		"base" : {
+			"sounds" : {
+				"visit" : ["MYSTERY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -26,6 +36,12 @@
 	"tradingPost" : {
 		"index" :221,
 		"handler" : "market",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMARK"],
+				"visit" : ["STORE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -40,6 +56,12 @@
 	"tradingPostDUPLICATE"		: {
 		"index" :99, 
 		"handler" : "market",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMARK"],
+				"visit" : ["STORE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -69,6 +91,12 @@
 	"blackMarket" : {
 		"index" :7,
 		"handler" : "blackMarket",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMARK"],
+				"visit" : ["MYSTERY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -83,6 +111,12 @@
 	"pandoraBox" : {
 		"index" :6,
 		"handler" : "pandora",
+		"base" : {
+			"sounds" : {
+				"visit" : ["MYSTERY"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -109,6 +143,11 @@
 	"redwoodObservatory" : {
 		"index" :58,	
 		"handler" : "observatory",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LIGHTHOUSE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -128,6 +167,12 @@
 	"pillarOfFire" : {
 		"index" :60, 
 		"handler" : "observatory",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPFIRE"],
+				"visit" : ["LIGHTHOUSE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -142,6 +187,11 @@
 	"coverOfDarkness" : {
 		"index" :15, 
 		"handler" : "observatory",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LIGHTHOUSE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -154,6 +204,12 @@
 	"whirlpool" : {
 		"index" :111,
 		"handler" : "whirlpool",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPWHIRL"],
+				"visit" : ["DANGER"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -165,6 +221,12 @@
 	"subterraneanGate" : {
 		"index" :103,
 		"handler" : "subterraneanGate",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPGATE"],
+				"visit" : ["CAVEHEAD"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0 },
@@ -175,6 +237,12 @@
 	"refugeeCamp" : {
 		"index" :78, 
 		"handler" : "dwelling",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMERC"],
+				"visit" : ["MILITARY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -188,6 +256,12 @@
 	"warMachineFactory" : {
 		"index" :106,
 		"handler" : "dwelling",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPFACT"],
+				"visit" : ["MILITARY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -202,6 +276,12 @@
 	"shrineOfMagicLevel1" : {//incantation
 		"index" :88, 
 		"handler" : "shrine",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSHRIN"],
+				"visit" : ["TEMPLE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -215,6 +295,12 @@
 	"shrineOfMagicLevel2" : {//gesture
 		"index" :89, 
 		"handler" : "shrine",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSHRIN"],
+				"visit" : ["TEMPLE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -228,6 +314,12 @@
 	"shrineOfMagicLevel3" : {//thinking
 		"index" :90, 
 		"handler" : "shrine",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSHRIN"],
+				"visit" : ["TEMPLE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -244,6 +336,11 @@
 	"eyeOfTheMagi" : {
 		"index" :27, 
 		"handler" : "magi",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LIGHTHOUSE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -255,6 +352,11 @@
 	"hutOfTheMagi" : {
 		"index" :37, 
 		"handler" : "magi",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LIGHTHOUSE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -266,6 +368,11 @@
 	"lighthouse" : {
 		"index" :42, 
 		"handler" : "lighthouse",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LIGHTHOUSE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -277,6 +384,11 @@
 	"obelisk" : {
 		"index" :57, 
 		"handler" : "obelisk",
+		"base" : {
+			"sounds" : {
+				"visit" : ["MYSTERY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -291,6 +403,11 @@
 	"oceanBottle" : {
 		"index" :59, 
 		"handler" : "sign",
+		"base" : {
+			"sounds" : {
+				"visit" : ["STORE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -302,6 +419,12 @@
 	"scholar" : {
 		"index" :81, 
 		"handler" : "scholar",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GAZEBO"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -315,6 +438,12 @@
 	"shipyard" : {
 		"index" :87, 
 		"handler" : "shipyard",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPLUMB"],
+				"visit" : ["STORE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -326,6 +455,11 @@
 	"sign" : {
 		"index" :91, 
 		"handler" : "sign",
+		"base" : {
+			"sounds" : {
+				"visit" : ["STORE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -337,6 +471,12 @@
 	"sirens" : {
 		"index" :92, 
 		"handler" : "siren",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSIRE"],
+				"visit" : ["DANGER"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -351,6 +491,12 @@
 	"denOfThieves" : {
 		"index" :97, 
 		"handler" : "denOfThieves",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPDEN"],
+				"visit" : ["MYSTERY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -370,6 +516,11 @@
 	"university" : {
 		"index" :104,
 		"handler" : "university",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GAZEBO"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -383,6 +534,11 @@
 	"witchHut" : {
 		"index" :113,
 		"handler" : "witch",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GAZEBO"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -400,6 +556,12 @@
 	"questGuard" : {
 		"index" :215,
 		"handler" : "questGuard",
+		"base" : {
+			"sounds" : {
+				"visit" : ["CAVEHEAD"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -411,6 +573,11 @@
 	"magicWell" : {
 		"index" :49,
 		"handler" : "magicWell",
+		"base" : {
+			"sounds" : {
+				"visit" : ["FAERIE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -620,6 +787,12 @@
 	"hillFort" : {
 		"index" :35, 
 		"handler": "generic",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSWAR"],
+				"visit" : ["MILITARY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -645,6 +818,12 @@
 	"tavern" : {
 		"index" :95, 
 		"handler": "generic",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPTAV"],
+				"visit" : ["STORE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -659,6 +838,12 @@
 	"sanctuary" : {
 		"index" :80, 
 		"handler": "generic",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSANC"],
+				"visit" : ["GETPROTECTION"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -672,19 +857,71 @@
 	},
 
 	/// Passive objects, terrain overlays
-	"cursedGround"					: { "index" :21,  "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"magicPlains"					: { "index" :46,  "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"swampFoliage"					: { "index" :211, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"cloverField"					: { "index" :222, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"cursedGroundDUPLICATE"			: { "index" :223, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"evilFog"						: { "index" :224, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"favorableWinds"				: { "index" :225, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"fieryFields"					: { "index" :226, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"holyGround"					: { "index" :227, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"lucidPools"					: { "index" :228, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"magicClouds"					: { "index" :229, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"magicPlainsDUPLICATE"			: { "index" :230, "handler": "generic", "types" : { "object" : { "index" : 0} } },
-	"rocklands"						: { "index" :231, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"cursedGround" : {
+		"index" : 21,
+		"handler": "generic",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPCURS"]
+			}
+		},
+		"types" : {
+			"object" : {
+				"index" : 0
+			}
+		}
+	},
+	"magicPlains"	: {
+		"index" : 46,
+		"handler" : "generic",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMAGI"]
+			}
+		},
+		"types" : {
+			"object" : {
+				"index" : 0
+			}
+		}
+	},
+	"swampFoliage" : { "index" :211, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"cloverField"	: { "index" :222, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"cursedGroundDUPLICATE"	: {
+		"index" : 223,
+		"handler" : "generic",
+		"types" : {
+			"object" : {
+				"index" : 0
+			}
+		},
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPCURS"]
+			}
+		}
+	},
+	"evilFog"	: { "index" :224, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"favorableWinds" : { "index" :225, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"fieryFields"	: { "index" :226, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"holyGround" : { "index" :227, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"lucidPools" : { "index" :228, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"magicClouds"	: { "index" :229, "handler": "generic", "types" : { "object" : { "index" : 0} } },
+	"magicPlainsDUPLICATE" : {
+		"index" : 230,
+		"handler": "generic",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMAGI"]
+			}
+		},
+		"types" : {
+			"object" : {
+				"index" : 0
+			}
+		}
+	},
+	"rocklands"	: { "index" :231, "handler": "generic", "types" : { "object" : { "index" : 0} } },
 
 	/// Decorations
 	"cactus"						: { "index" :116, "handler": "static", "types" : { "object" : { "index" : 0} } },
@@ -715,7 +952,20 @@
 	"skull"							: { "index" :151, "handler": "static", "types" : { "object" : { "index" : 0} } },
 	"stump"							: { "index" :153, "handler": "static", "types" : { "object" : { "index" : 0} } },
 	"trees"							: { "index" :155, "handler": "static", "types" : { "object" : { "index" : 0} } },
-	"volcano"						: { "index" :158, "handler": "static", "types" : { "object" : { "index" : 0} } },
+	"volcano"	: {
+		"index" : 158,
+		"handler": "static",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPVOLC"]
+			}
+		},
+		"types" : {
+			"object" : {
+				"index" : 0
+			}
+		}
+	},
 	"reef"							: { "index" :161, "handler": "static", "types" : { "object" : { "index" : 0} } },
 	"lakeDUPLICATE"					: { "index" :177, "handler": "static", "types" : { "object" : { "index" : 0} } },
 	"treesDUPLICATE"				: { "index" :199, "handler": "static", "types" : { "object" : { "index" : 0} } },

+ 180 - 22
config/objects/moddables.json

@@ -11,6 +11,10 @@
 			"base" : {
 				"visitableFrom" : [ "+++", "+-+", "+++" ],
 				"mask" : [ "VV", "VA"]
+			},
+			"sounds" : {
+				"visit" : ["TREASURE"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
 			}
 		}
 	},
@@ -23,6 +27,9 @@
 			"base" : {
 				"visitableFrom" : [ "+++", "+-+", "+++" ],
 				"mask" : [ "VV", "AV"]
+			},
+			"sounds" : {
+				"removal" : ["KILLFADE"]
 			}
 		}
 	},
@@ -35,6 +42,9 @@
 			"base" : {
 				"visitableFrom" : [ "+++", "+-+", "+++" ],
 				"mask" : [ "VV", "VA"]
+			},
+			"sounds" : {
+				"removal" : ["KILLFADE"]
 			}
 		}
 	},
@@ -47,6 +57,9 @@
 			"base" : {
 				"visitableFrom" : [ "+++", "+-+", "+++" ],
 				"mask" : [ "VA" ]
+			},
+			"sounds" : {
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
 			}
 		},
 		"types" : {
@@ -111,6 +124,12 @@
 	"borderGuard" : {
 		"index" :9,
 		"handler": "borderGuard",
+		"base" : {
+			"sounds" : {
+				"visit" : ["CAVEHEAD"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"lblue" :  { "index" : 0 },
 			"green" :  { "index" : 1 },
@@ -125,6 +144,11 @@
 	"borderGate" : {
 		"index" :212,
 		"handler": "borderGate",
+		"base" : {
+			"sounds" : {
+				"visit" : ["CAVEHEAD"]
+			}
+		},
 		"types" : {
 			"lblue" :  { "index" : 0 },
 			"green" :  { "index" : 1 },
@@ -139,6 +163,11 @@
 	"keymasterTent" : {
 		"index" :10,
 		"handler": "keymaster",
+		"base" : {
+			"sounds" : {
+				"visit" : ["CAVEHEAD"]
+			}
+		},
 		"types" : {
 			"lblue" :  { "index" : 0 },
 			"green" :  { "index" : 1 },
@@ -158,6 +187,9 @@
 			"base" : {
 				"visitableFrom" : [ "---", "+++", "+++" ],
 				"mask" : [ "VVV", "VVV", "VAV" ]
+			},
+			"sounds" : {
+				"visit" : ["QUEST"]
 			}
 		},
 		"types" : {
@@ -171,6 +203,11 @@
 	"cartographer" : {
 		"index" :13,
 		"handler": "cartographer",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LIGHTHOUSE"]
+			}
+		},
 		"types" : {
 			"water" : { "index" : 0, "rmg" : { "zoneLimit" : 1,  "value" : 5000, "rarity" : 20 } },
 			"land" : { "index" : 1, "rmg" : { "zoneLimit" : 1,  "value" : 10000, "rarity" : 20 } },
@@ -182,46 +219,154 @@
 	"mine" : {
 		"index" :53,
 		"handler": "mine",
+		"base" : {
+			"sounds" : {
+				"visit" : ["FLAGMINE"]
+			}
+		},
 		"types" : {
-			"sawmill" :       { "index" : 0, "rmg" : { "value" : 1500 } },
-			"alchemistLab" :  { "index" : 1, "rmg" : { "value" : 3500 } },
-			"orePit" :        { "index" : 2, "rmg" : { "value" : 1500 } },
-			"sulfurDune" :    { "index" : 3, "rmg" : { "value" : 3500 } },
-			"crystalCavern" : { "index" : 4, "rmg" : { "value" : 3500 } },
-			"gemPond" :       { "index" : 5, "rmg" : { "value" : 3500 } },
-			"goldMine" :      { "index" : 6, "rmg" : { "value" : 7000 } },
-			"abandoned" :	  { "index" : 7}
+			"sawmill" : {
+				"index" : 0,
+				"rmg" : {
+					"value" : 1500
+				},
+				"sounds" : {
+					"ambient" : ["LOOPLUMB"]
+				}
+			},
+			"alchemistLab" : {
+				"index" : 1,
+				"rmg" : {
+					"value" : 3500
+				},
+				"sounds" : {
+					"ambient" : ["LOOPSTAR"]
+				}
+			},
+			"orePit" : {
+				"index" : 2,
+				"rmg" : {
+					"value" : 1500
+				},
+				"sounds" : {
+					"ambient" : ["LOOPSULF"]
+				}
+			},
+			"sulfurDune" : {
+				"index" : 3,
+				"rmg" : {
+					"value" : 3500
+				},
+				"sounds" : {
+					"ambient" : ["LOOPSULF"]
+				}
+			},
+			"crystalCavern" : {
+				"index" : 4,
+				"rmg" : {
+					"value" : 3500
+				},
+				"sounds" : {
+					"ambient" : ["LOOPCRYS"]
+				}
+			},
+			"gemPond" : {
+				"index" : 5,
+				"rmg" : {
+					"value" : 3500
+				},
+				"sounds" : {
+					"ambient" : ["LOOPGEMP"]
+				}
+			},
+			"goldMine" : {
+				"index" : 6,
+				"rmg" : {
+					"value" : 7000
+				},
+				"sounds" : {
+					"ambient" : ["LOOPMINE"]
+				}
+			},
+			"abandoned" :	{
+				"index" : 7,
+				"sounds" : {
+					"ambient" : ["LOOPCAVE"],
+					"visit" : ["MYSTERY"]
+				}
+			}
 		}
 	},
 	"abandonedMine" : {
-		"index" :220, 
+		"index" :220,
 		"handler": "mine",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPCAVE"]
+			}
+		},
 		"types" : {
 			"mine" : { "index" : 7 }
 		}
 	},
 
-	"garrisonHorizontal": { 
-		"index" :33, 
+	"garrisonHorizontal": {
+		"index" :33,
 		"handler": "garrison",
-		"types":{
-			"normal":{"index": 0},
-			"antiMagic":{"index": 1}			
-		}	
+		"base" : {
+			"sounds" : {
+				"visit" : ["MILITARY"]
+			}
+		},
+		"types": {
+			"normal": {
+				"index": 0,
+				"sounds" : {
+					"ambient" : ["LOOPSWAR"]
+				}
+			},
+			"antiMagic": {
+				"index": 1,
+				"sounds" : {
+					"ambient" : ["LOOPMAGI"]
+				}
+			}
+		}
 	},
-	"garrisonVertical": { 
-		"index" :219, 
+	"garrisonVertical" : {
+		"index" :219,
 		"handler": "garrison",
-		"types":{
-			"normal":{"index": 0},
-			"antiMagic":{"index": 1}			
-		}	
+		"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 },
@@ -236,6 +381,9 @@
 	"monolithOneWayExit" : {
 		"index" :44,
 		"handler": "monolith",
+		"base" : {
+			"sounds" : { "ambient" : ["LOOPMON1"] }
+		},
 		"types" : {
 			"monolith1" : { "index" : 0 },
 			"monolith2" : { "index" : 1 },
@@ -250,6 +398,12 @@
 	"monolithTwoWay" : {
 		"index" :45,
 		"handler": "monolith",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMON2"],
+				"visit" : ["TELPTOUT"]
+			}
+		},
 		"types" : {
 			"monolith1" : { "index" : 0 },
 			"monolith2" : { "index" : 1 },
@@ -310,5 +464,9 @@
 			}
 		}
 	},
-	"heroPlaceholder"				: { "index" :214, "handler": "heroPlaceholder", "types" : { "object" : { "index" : 0 } } }
+	"heroPlaceholder"	: {
+		"index" : 214,
+		"handler": "heroPlaceholder",
+		"types" : { "object" : { "index" : 0 } }
+	}
 }

+ 200 - 0
config/objects/rewardable.json

@@ -4,6 +4,12 @@
 	"magicSpring" : {//magic source
 		"index" : 48,
 		"handler": "magicSpring",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPFOUN"],
+				"visit" : ["FAERIE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0//,
@@ -20,6 +26,12 @@
 	"mysticalGarden" : {
 		"index" : 55,
 		"handler": "oncePerWeek",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPLEPR"],
+				"visit" : ["EXPERNCE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -33,6 +45,12 @@
 	"windmill" :{
 		"index" : 112,
 		"handler": "oncePerWeek",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPWIND"],
+				"visit" : ["GENIE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -46,6 +64,12 @@
 	"waterWheel" : {
 		"index" : 109,
 		"handler": "oncePerWeek",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMILL"],
+				"visit" : ["GENIE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -60,6 +84,11 @@
 	"leanTo" :{
 		"index" : 39,
 		"handler": "onceVisitable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GENIE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -73,6 +102,11 @@
 	"corpse" :{
 		"index" : 22,
 		"handler": "onceVisitable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["MYSTERY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -86,6 +120,11 @@
 	"wagon" :{
 		"index" : 105,
 		"handler": "onceVisitable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GENIE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -99,6 +138,11 @@
 	"warriorTomb" : {
 		"index" : 108,
 		"handler": "onceVisitable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GRAVEYARD"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -113,6 +157,13 @@
 	"campfire" :{
 		"index" : 12,
 		"handler": "pickable",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPCAMP"],
+				"visit" : ["EXPERNCE"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -126,6 +177,12 @@
 	"flotsam" :{
 		"index" : 29,
 		"handler": "pickable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GENIE"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -139,6 +196,12 @@
 	"seaChest" :{
 		"index" : 82,
 		"handler": "pickable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["CHEST"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -152,6 +215,12 @@
 	"shipwreckSurvivor" : {
 		"index" : 86,
 		"handler": "pickable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["TREASURE"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -165,6 +234,12 @@
 	"treasureChest" : {
 		"index" : 101,
 		"handler": "pickable",
+		"base" : {
+			"sounds" : {
+				"visit" : ["CHEST"],
+				"removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -179,6 +254,12 @@
 	"arena" : {
 		"index" : 4,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPAREN"],
+				"visit" : ["NOMAD"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -192,6 +273,12 @@
 	"marlettoTower" : {
 		"index" : 23,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSWAR"],
+				"visit" : ["NOMAD"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -205,6 +292,12 @@
 	"gardenOfRevelation" : {
 		"index" : 32,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPGARD"],
+				"visit" : ["GETPROTECTION"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -218,6 +311,11 @@
 	"libraryOfEnlightenment" : {
 		"index" : 41,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GAZEBO"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -231,6 +329,12 @@
 	"mercenaryCamp" : {
 		"index" : 51,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMERC"],
+				"visit" : ["NOMAD"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -244,6 +348,12 @@
 	"starAxis" :{
 		"index" : 61,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSTAR"],
+				"visit" : ["GAZEBO"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -257,6 +367,11 @@
 	"treeOfKnowledge" : {
 		"index" : 102,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"visit" : ["GAZEBO"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -271,6 +386,12 @@
 	"schoolOfMagic" : {
 		"index" : 47,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPMAGI"],
+				"visit" : ["FAERIE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -284,6 +405,12 @@
 	"schoolOfWar" : {
 		"index" : 107,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSWAR"],
+				"visit" : ["MILITARY"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -297,6 +424,12 @@
 	"learningStone" : {
 		"index" : 100,
 		"handler": "oncePerHero",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPLEAR"],
+				"visit" : ["GAZEBO"]
+			}
+		},
 		"types" : {
 			"object" : { 
 				"index" : 0,
@@ -312,6 +445,12 @@
 	"buoy" : {
 		"index" : 11,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPBUOY"],
+				"visit" : ["MORALE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -325,6 +464,11 @@
 	"swanPond" : {
 		"index" : 14,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LUCK"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -339,6 +483,12 @@
 	"faerieRing" : {
 		"index" : 28,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPFAER"],
+				"visit" : ["LUCK"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -353,6 +503,12 @@
 	"fountainOfFortune" : {
 		"index" : 30,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPFOUN"],
+				"visit" : ["LUCK"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -367,6 +523,12 @@
 	"fountainOfYouth" : {
 		"index" : 31,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPFALL"],
+				"visit" : ["MORALE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -381,6 +543,11 @@
 	"idolOfFortune" : {
 		"index" : 38,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LUCK"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -398,6 +565,11 @@
 	"mermaids" : {
 		"index" : 52,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"visit" : ["LUCK"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -411,6 +583,11 @@
 	"oasis" : {
 		"index" : 56,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"visit" : ["MORALE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -425,6 +602,12 @@
 	"stables" : {
 		"index" : 94,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPHORS"],
+				"visit" : ["STORE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -439,6 +622,12 @@
 	"temple" : {
 		"index" : 96,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPSANC"],
+				"visit" : ["TEMPLE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -453,6 +642,12 @@
 	"rallyFlag" : {
 		"index" : 64,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"ambient" : ["LOOPFLAG"],
+				"visit" : ["MORALE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,
@@ -467,6 +662,11 @@
 	"wateringHole" : {//waters
 		"index" : 110,
 		"handler": "bonusingObject",
+		"base" : {
+			"sounds" : {
+				"visit" : ["MORALE"]
+			}
+		},
 		"types" : {
 			"object" : {
 				"index" : 0,

+ 29 - 0
config/schemas/object.json

@@ -18,6 +18,35 @@
 			"type":"string",
 		},
 
+		"sounds": {
+			"type":"object",
+			"additionalProperties" : false,
+			"description": "Sounds used by this object",
+			"properties" : {
+				"ambient": {
+					"type":"array",
+					"description": "Background sound of an object",
+					"items": {
+						"type": "string"
+					}
+				},
+				"visit": {
+					"type":"array",
+					"description": "Sound that played on object visit",
+					"items": {
+						"type": "string"
+					}
+				},
+				"removal": {
+					"type":"array",
+					"description": "Sound that played on object removal",
+					"items": {
+						"type": "string"
+					}
+				}
+			}
+		},
+
 		"base": {
 			"type" : "object"
 		},

+ 29 - 0
config/schemas/objectType.json

@@ -14,6 +14,35 @@
 			"type":"string",
 		},
 
+		"sounds": {
+			"type":"object",
+			"additionalProperties" : false,
+			"description": "Sounds used by this object",
+			"properties" : {
+				"ambient": {
+					"type":"array",
+					"description": "Background sound of an object",
+					"items": {
+						"type": "string"
+					}
+				},
+				"visit": {
+					"type":"array",
+					"description": "Sound that played on object visit",
+					"items": {
+						"type": "string"
+					}
+				},
+				"removal": {
+					"type":"array",
+					"description": "Sound that played on object removal",
+					"items": {
+						"type": "string"
+					}
+				}
+			}
+		},
+
 		"base": {
 			"type" : "object"
 		},