From 79eb17a0a717ffc27794e3dbe082bf31e3ab34a4 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Wed, 18 Feb 2015 21:46:42 +0200 Subject: [PATCH] New level compiler: des-file changes --- dat/Arch.des | 356 +++++++------- dat/Barb.des | 292 ++++++------ dat/Caveman.des | 254 +++++----- dat/Healer.des | 370 +++++++-------- dat/Knight.des | 306 ++++++------ dat/Monk.des | 332 +++++++------ dat/Priest.des | 290 ++++++------ dat/Ranger.des | 292 ++++++------ dat/Rogue.des | 436 ++++++++--------- dat/Samurai.des | 332 ++++++------- dat/Tourist.des | 328 ++++++------- dat/Valkyrie.des | 275 ++++++----- dat/Wizard.des | 370 ++++++++------- dat/bigroom.des | 430 ++++++++--------- dat/castle.des | 245 +++++----- dat/endgame.des | 622 ++++++++++++------------ dat/gehennom.des | 538 ++++++++++----------- dat/knox.des | 80 ++-- dat/medusa.des | 196 ++++---- dat/mines.des | 1174 +++++++++++++++++++++++++--------------------- dat/oracle.des | 86 ++-- dat/sokoban.des | 382 +++++++-------- dat/tower.des | 98 ++-- dat/yendor.des | 122 ++--- 24 files changed, 4197 insertions(+), 4009 deletions(-) diff --git a/dat/Arch.des b/dat/Arch.des index 3c1ccfaf0..4ea3a818b 100644 --- a/dat/Arch.des +++ b/dat/Arch.des @@ -70,25 +70,25 @@ DOOR:locked,(24,14) DOOR:closed,(31,14) DOOR:locked,(49,14) # Lord Carnarvon -MONSTER:'@',"Lord Carnarvon",(25,10) +MONSTER:('@',"Lord Carnarvon"),(25,10) # The treasure of Lord Carnarvon -OBJECT:'(',"chest",(25,10) +OBJECT:('(',"chest"),(25,10) # student guards for the audience chamber -MONSTER:'@',"student",(26,09) -MONSTER:'@',"student",(27,09) -MONSTER:'@',"student",(28,09) -MONSTER:'@',"student",(26,10) -MONSTER:'@',"student",(28,10) -MONSTER:'@',"student",(26,11) -MONSTER:'@',"student",(27,11) -MONSTER:'@',"student",(28,11) +MONSTER:('@',"student"),(26,09) +MONSTER:('@',"student"),(27,09) +MONSTER:('@',"student"),(28,09) +MONSTER:('@',"student"),(26,10) +MONSTER:('@',"student"),(28,10) +MONSTER:('@',"student"),(26,11) +MONSTER:('@',"student"),(27,11) +MONSTER:('@',"student"),(28,11) # city watch guards in the antechambers -MONSTER:'@',"watchman",(50,06) -MONSTER:'@',"watchman",(50,14) +MONSTER:('@',"watchman"),(50,06) +MONSTER:('@',"watchman"),(50,14) # Eels in the moat -MONSTER:';',"giant eel",(20,10) -MONSTER:';',"giant eel",(45,04) -MONSTER:';',"giant eel",(33,16) +MONSTER:(';',"giant eel"),(20,10) +MONSTER:(';',"giant eel"),(45,04) +MONSTER:(';',"giant eel"),(33,16) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps @@ -99,18 +99,18 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. -MONSTER: 'S',random,(60,09) -MONSTER: 'M',random,(60,10) -MONSTER: 'S',random,(60,11) -MONSTER: 'S',random,(60,12) -MONSTER: 'M',random,(60,13) -MONSTER: 'S',random,(61,10) -MONSTER: 'S',random,(61,11) -MONSTER: 'S',random,(61,12) -MONSTER: 'S',random,(30,03) -MONSTER: 'M',random,(20,17) -MONSTER: 'S',random,(67,02) -MONSTER: 'S',random,(10,19) +MONSTER: 'S',(60,09) +MONSTER: 'M',(60,10) +MONSTER: 'S',(60,11) +MONSTER: 'S',(60,12) +MONSTER: 'M',(60,13) +MONSTER: 'S',(61,10) +MONSTER: 'S',(61,11) +MONSTER: 'S',(61,12) +MONSTER: 'S',(30,03) +MONSTER: 'M',(20,17) +MONSTER: 'S',(67,02) +MONSTER: 'S',(10,19) # # The "locate" level for the quest. @@ -151,13 +151,13 @@ REGION:(25,09,28,11),unlit,"temple" REGION:(25,13,28,16),lit,"temple" REGION:(30,04,30,16),lit,"ordinary" REGION:(32,04,32,16),unlit,"ordinary" -REGION:(33,04,53,04),unlit,"ordinary",unfilled,true +REGION:(33,04,53,04),unlit,"ordinary",unfilled,irregular REGION:(36,10,37,10),unlit,"ordinary" REGION:(39,09,39,11),unlit,"ordinary" -REGION:(36,06,42,08),unlit,"ordinary",unfilled,true -REGION:(36,12,42,14),unlit,"ordinary",unfilled,true +REGION:(36,06,42,08),unlit,"ordinary",unfilled,irregular +REGION:(36,12,42,14),unlit,"ordinary",unfilled,irregular REGION:(46,06,51,09),unlit,"ordinary" -REGION:(46,11,49,11),unlit,"ordinary",unfilled,true +REGION:(46,11,49,11),unlit,"ordinary",unfilled,irregular REGION:(48,13,51,14),unlit,"ordinary" # Doors DOOR:closed,(31,04) @@ -186,21 +186,21 @@ ALTAR:(26,15),align[2],altar # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Treasure? ENGRAVING:random,engrave,"X marks the spot." ENGRAVING:random,engrave,"X marks the spot." @@ -231,33 +231,33 @@ TRAP:"dart",random TRAP:"rolling boulder",(32,10) TRAP:"rolling boulder",(40,16) # Random monsters. -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'M',random,random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',random,random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'M',random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:'M',random # # The "goal" level for the quest. @@ -323,21 +323,21 @@ NON_DIGGABLE:(00,00,75,19) # The altar of Huhetotl. Unattended. ALTAR:(50,14),chaos,altar # Objects -OBJECT:'(',"crystal ball",(50,14),blessed,5,"The Orb of Detection" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('(',"crystal ball"),(50,14),blessed,5,name:"The Orb of Detection" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -347,34 +347,34 @@ TRAP:random,random TRAP:random,random TRAP:"rolling boulder",(46,14) # Random monsters. -MONSTER:'&',"Minion of Huhetotl",(50,14) -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'S',random,random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',"human mummy",random -MONSTER:'M',random,random +MONSTER:('&',"Minion of Huhetotl"),(50,14) +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:'S',random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:('M',"human mummy"),random +MONSTER:'M',random # # The "fill" levels for the quest. @@ -387,76 +387,88 @@ MONSTER:'M',random,random LEVEL: "Arc-fila" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'S', random, random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: 'S', random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'S', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: 'S', random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'S', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: 'S', random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'S', random, random -MONSTER: 'M', "human mummy", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + MONSTER: 'S', random + MONSTER: ('M', "human mummy"), random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'S', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: 'S', random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'S', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: 'S', random +} RANDOM_CORRIDORS LEVEL: "Arc-filb" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'M', random, random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: 'M', random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'M', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: 'M', random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'M', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: 'M', random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'S', random, random -MONSTER: 'M', "human mummy", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + MONSTER: 'S', random + MONSTER: ('M', "human mummy"), random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'S', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: 'S', random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'S', random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: 'S', random +} RANDOM_CORRIDORS diff --git a/dat/Barb.des b/dat/Barb.des index 29a612015..ea8ab9738 100644 --- a/dat/Barb.des +++ b/dat/Barb.des @@ -60,38 +60,38 @@ DOOR:open,(23,13) DOOR:open,(25,10) DOOR:open,(28,05) # Elder -MONSTER:'@',"Pelias",(10,07) +MONSTER:('@',"Pelias"),(10,07) # The treasure of Pelias -OBJECT:'(',"chest",(09,05) +OBJECT:('(',"chest"),(09,05) # chieftain guards for the audience chamber -MONSTER:'@',"chieftain",(10,05) -MONSTER:'@',"chieftain",(10,09) -MONSTER:'@',"chieftain",(11,05) -MONSTER:'@',"chieftain",(11,09) -MONSTER:'@',"chieftain",(14,05) -MONSTER:'@',"chieftain",(14,09) -MONSTER:'@',"chieftain",(16,05) -MONSTER:'@',"chieftain",(16,09) +MONSTER:('@',"chieftain"),(10,05) +MONSTER:('@',"chieftain"),(10,09) +MONSTER:('@',"chieftain"),(11,05) +MONSTER:('@',"chieftain"),(11,09) +MONSTER:('@',"chieftain"),(14,05) +MONSTER:('@',"chieftain"),(14,09) +MONSTER:('@',"chieftain"),(16,05) +MONSTER:('@',"chieftain"),(16,09) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # One trap to keep the ogres at bay. TRAP:"spiked pit",(37,07) # Eels in the river -MONSTER:';',"giant eel",(36,01) -MONSTER:';',"giant eel",(37,09) -MONSTER:';',"giant eel",(39,15) +MONSTER:(';',"giant eel"),(36,01) +MONSTER:(';',"giant eel"),(37,09) +MONSTER:(';',"giant eel"),(39,15) # Monsters on siege duty. -MONSTER:'O',"ogre",(40,08),hostile -MONSTER:'O',"ogre",(41,06),hostile -MONSTER:'O',"ogre",(41,07),hostile -MONSTER:'O',"ogre",(41,08),hostile -MONSTER:'O',"ogre",(41,09),hostile -MONSTER:'O',"ogre",(41,10),hostile -MONSTER:'O',"ogre",(42,06),hostile -MONSTER:'O',"ogre",(42,07),hostile -MONSTER:'O',"ogre",(42,08),hostile -MONSTER:'O',"ogre",(42,09),hostile -MONSTER:'O',"ogre",(42,10),hostile +MONSTER:('O',"ogre"),(40,08),hostile +MONSTER:('O',"ogre"),(41,06),hostile +MONSTER:('O',"ogre"),(41,07),hostile +MONSTER:('O',"ogre"),(41,08),hostile +MONSTER:('O',"ogre"),(41,09),hostile +MONSTER:('O',"ogre"),(41,10),hostile +MONSTER:('O',"ogre"),(42,06),hostile +MONSTER:('O',"ogre"),(42,07),hostile +MONSTER:('O',"ogre"),(42,08),hostile +MONSTER:('O',"ogre"),(42,09),hostile +MONSTER:('O',"ogre"),(42,10),hostile # # The "locate" level for the quest. @@ -148,21 +148,21 @@ DOOR:locked,(55,06) STAIR:(05,02),up STAIR:(70,13),down # Objects -OBJECT:random,random,(42,03) -OBJECT:random,random,(42,03) -OBJECT:random,random,(42,03) -OBJECT:random,random,(41,03) -OBJECT:random,random,(41,03) -OBJECT:random,random,(41,03) -OBJECT:random,random,(41,03) -OBJECT:random,random,(41,08) -OBJECT:random,random,(41,08) -OBJECT:random,random,(42,08) -OBJECT:random,random,(42,08) -OBJECT:random,random,(42,08) -OBJECT:random,random,(71,13) -OBJECT:random,random,(71,13) -OBJECT:random,random,(71,13) +OBJECT:random,(42,03) +OBJECT:random,(42,03) +OBJECT:random,(42,03) +OBJECT:random,(41,03) +OBJECT:random,(41,03) +OBJECT:random,(41,03) +OBJECT:random,(41,03) +OBJECT:random,(41,08) +OBJECT:random,(41,08) +OBJECT:random,(42,08) +OBJECT:random,(42,08) +OBJECT:random,(42,08) +OBJECT:random,(71,13) +OBJECT:random,(71,13) +OBJECT:random,(71,13) # Random traps TRAP:"spiked pit",(10,13) TRAP:"spiked pit",(21,07) @@ -173,33 +173,33 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'O',"ogre",(12,09),hostile -MONSTER:'O',"ogre",(18,11),hostile -MONSTER:'O',"ogre",(45,05),hostile -MONSTER:'O',"ogre",(45,06),hostile -MONSTER:'O',"ogre",(47,05),hostile -MONSTER:'O',"ogre",(46,05),hostile -MONSTER:'O',"ogre",(56,03),hostile -MONSTER:'O',"ogre",(56,04),hostile -MONSTER:'O',"ogre",(56,05),hostile -MONSTER:'O',"ogre",(56,06),hostile -MONSTER:'O',"ogre",(57,03),hostile -MONSTER:'O',"ogre",(57,04),hostile -MONSTER:'O',"ogre",(57,05),hostile -MONSTER:'O',"ogre",(57,06),hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',random,random,hostile -MONSTER:'T',random,random,hostile -MONSTER:'T',"rock troll",(46,06),hostile -MONSTER:'T',"rock troll",(47,06),hostile -MONSTER:'T',"rock troll",(56,07),hostile -MONSTER:'T',"rock troll",(57,07),hostile -MONSTER:'T',"rock troll",(70,13),hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',random,random,hostile +MONSTER:('O',"ogre"),(12,09),hostile +MONSTER:('O',"ogre"),(18,11),hostile +MONSTER:('O',"ogre"),(45,05),hostile +MONSTER:('O',"ogre"),(45,06),hostile +MONSTER:('O',"ogre"),(47,05),hostile +MONSTER:('O',"ogre"),(46,05),hostile +MONSTER:('O',"ogre"),(56,03),hostile +MONSTER:('O',"ogre"),(56,04),hostile +MONSTER:('O',"ogre"),(56,05),hostile +MONSTER:('O',"ogre"),(56,06),hostile +MONSTER:('O',"ogre"),(57,03),hostile +MONSTER:('O',"ogre"),(57,04),hostile +MONSTER:('O',"ogre"),(57,05),hostile +MONSTER:('O',"ogre"),(57,06),hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:'O',random,hostile +MONSTER:'T',random,hostile +MONSTER:('T',"rock troll"),(46,06),hostile +MONSTER:('T',"rock troll"),(47,06),hostile +MONSTER:('T',"rock troll"),(56,07),hostile +MONSTER:('T',"rock troll"),(57,07),hostile +MONSTER:('T',"rock troll"),(70,13),hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:'T',random,hostile # # The "goal" level for the quest. @@ -244,21 +244,21 @@ STAIR:(36,05),up ALTAR:(63,04),noncoaligned,altar NON_DIGGABLE:(00,00,75,19) # Objects -OBJECT:'*',"luckstone",(63,04),blessed,0,"The Heart of Ahriman" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('*',"luckstone"),(63,04),blessed,0,name:"The Heart of Ahriman" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -267,34 +267,34 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'@',"Thoth Amon",(63,04),hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',"ogre",random,hostile -MONSTER:'O',random,random,hostile -MONSTER:'O',random,random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',"rock troll",random,hostile -MONSTER:'T',random,random,hostile +MONSTER:('@',"Thoth Amon"),(63,04),hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:('O',"ogre"),random,hostile +MONSTER:'O',random,hostile +MONSTER:'O',random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:('T',"rock troll"),random,hostile +MONSTER:'T',random,hostile WALLIFY # @@ -307,64 +307,64 @@ WALLIFY # MAZE: "Bar-fila" , ' ' -INIT_MAP: '.' , '.' , true , true , unlit , false +INIT_MAP: mines, '.' , '.' , true , true , unlit , false NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', random, random, hostile -MONSTER: 'T', "rock troll", random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: 'O', random, hostile +MONSTER: ('T', "rock troll"), random, hostile MAZE: "Bar-filb" , ' ' -INIT_MAP: '.' , ' ' , true , true , unlit , true +INIT_MAP: mines, '.' , ' ' , true , true , unlit , true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', "ogre", random, hostile -MONSTER: 'O', random , random, hostile -MONSTER: 'T', "rock troll", random, hostile -MONSTER: 'T', "rock troll", random, hostile -MONSTER: 'T', "rock troll", random, hostile -MONSTER: 'T', random , random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: ('O', "ogre"), random, hostile +MONSTER: 'O' , random, hostile +MONSTER: ('T', "rock troll"), random, hostile +MONSTER: ('T', "rock troll"), random, hostile +MONSTER: ('T', "rock troll"), random, hostile +MONSTER: 'T' , random, hostile diff --git a/dat/Caveman.des b/dat/Caveman.des index f9617c86f..0a84e6c25 100644 --- a/dat/Caveman.des +++ b/dat/Caveman.des @@ -37,14 +37,14 @@ MAP ENDMAP # Dungeon Description REGION:(00,00,75,19),unlit,"ordinary" -REGION:(13,01,40,05),lit,"temple",unfilled,true +REGION:(13,01,40,05),lit,"temple",unfilled,irregular # The occupied rooms. -REGION:(02,01,08,03),lit,"ordinary",unfilled,true -REGION:(01,11,06,14),lit,"ordinary",unfilled,true -REGION:(13,08,18,10),lit,"ordinary",unfilled,true -REGION:(05,17,14,18),lit,"ordinary",unfilled,true -REGION:(17,16,23,18),lit,"ordinary",unfilled,true -REGION:(35,16,44,18),lit,"ordinary",unfilled,true +REGION:(02,01,08,03),lit,"ordinary",unfilled,irregular +REGION:(01,11,06,14),lit,"ordinary",unfilled,irregular +REGION:(13,08,18,10),lit,"ordinary",unfilled,irregular +REGION:(05,17,14,18),lit,"ordinary",unfilled,irregular +REGION:(17,16,23,18),lit,"ordinary",unfilled,irregular +REGION:(35,16,44,18),lit,"ordinary",unfilled,irregular # Stairs STAIR:(02,03),down # Portal arrival point @@ -54,18 +54,18 @@ DOOR:locked,(19,06) # The temple altar (this will force a priest(ess) to be created) ALTAR:(36,02),coaligned,shrine # Shaman Karnov -MONSTER:'@',"Shaman Karnov",(35,02) +MONSTER:('@',"Shaman Karnov"),(35,02) # The treasure of Shaman Karnov -OBJECT:'(',"chest",(34,02) +OBJECT:('(',"chest"),(34,02) # neanderthal guards for the audience chamber -MONSTER:'@',"neanderthal",(20,03) -MONSTER:'@',"neanderthal",(20,02) -MONSTER:'@',"neanderthal",(20,01) -MONSTER:'@',"neanderthal",(21,03) -MONSTER:'@',"neanderthal",(21,02) -MONSTER:'@',"neanderthal",(21,01) -MONSTER:'@',"neanderthal",(22,01) -MONSTER:'@',"neanderthal",(26,09) +MONSTER:('@',"neanderthal"),(20,03) +MONSTER:('@',"neanderthal"),(20,02) +MONSTER:('@',"neanderthal"),(20,01) +MONSTER:('@',"neanderthal"),(21,03) +MONSTER:('@',"neanderthal"),(21,02) +MONSTER:('@',"neanderthal"),(21,01) +MONSTER:('@',"neanderthal"),(22,01) +MONSTER:('@',"neanderthal"),(26,09) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps @@ -76,18 +76,18 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty (in the outer caves). -MONSTER: 'h',"bugbear",(47,02),hostile -MONSTER: 'h',"bugbear",(48,03),hostile -MONSTER: 'h',"bugbear",(49,04),hostile -MONSTER: 'h',"bugbear",(67,03),hostile -MONSTER: 'h',"bugbear",(69,04),hostile -MONSTER: 'h',"bugbear",(51,13),hostile -MONSTER: 'h',"bugbear",(53,14),hostile -MONSTER: 'h',"bugbear",(55,15),hostile -MONSTER: 'h',"bugbear",(63,10),hostile -MONSTER: 'h',"bugbear",(65,09),hostile -MONSTER: 'h',"bugbear",(67,10),hostile -MONSTER: 'h',"bugbear",(69,11),hostile +MONSTER: ('h',"bugbear"),(47,02),hostile +MONSTER: ('h',"bugbear"),(48,03),hostile +MONSTER: ('h',"bugbear"),(49,04),hostile +MONSTER: ('h',"bugbear"),(67,03),hostile +MONSTER: ('h',"bugbear"),(69,04),hostile +MONSTER: ('h',"bugbear"),(51,13),hostile +MONSTER: ('h',"bugbear"),(53,14),hostile +MONSTER: ('h',"bugbear"),(55,15),hostile +MONSTER: ('h',"bugbear"),(63,10),hostile +MONSTER: ('h',"bugbear"),(65,09),hostile +MONSTER: ('h',"bugbear"),(67,10),hostile +MONSTER: ('h',"bugbear"),(69,11),hostile WALLIFY # @@ -124,7 +124,7 @@ MAP ENDMAP # Dungeon Description REGION:(00,00,75,19),unlit,"ordinary" -REGION:(52,06,73,15),lit,"ordinary",unfilled,true +REGION:(52,06,73,15),lit,"ordinary",unfilled,irregular # Doors DOOR:locked,(28,11) # Stairs @@ -133,21 +133,21 @@ STAIR:(73,10),down # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -156,33 +156,33 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'h',"bugbear",(02,10),hostile -MONSTER:'h',"bugbear",(03,11),hostile -MONSTER:'h',"bugbear",(04,12),hostile -MONSTER:'h',"bugbear",(02,11),hostile -MONSTER:'h',"bugbear",(16,16),hostile -MONSTER:'h',"bugbear",(17,17),hostile -MONSTER:'h',"bugbear",(18,18),hostile -MONSTER:'h',"bugbear",(19,16),hostile -MONSTER:'h',"bugbear",(30,06),hostile -MONSTER:'h',"bugbear",(31,07),hostile -MONSTER:'h',"bugbear",(32,08),hostile -MONSTER:'h',"bugbear",(33,06),hostile -MONSTER:'h',"bugbear",(34,07),hostile -MONSTER:'h',"bugbear",random,hostile -MONSTER:'h',"bugbear",random,hostile -MONSTER:'h',"bugbear",random,hostile -MONSTER:'h',"bugbear",random,hostile -MONSTER:'h',random,random,hostile -MONSTER:'H',random,random,hostile -MONSTER:'H',"hill giant",(03,12),hostile -MONSTER:'H',"hill giant",(20,17),hostile -MONSTER:'H',"hill giant",(35,08),hostile -MONSTER:'H',"hill giant",random,hostile -MONSTER:'H',"hill giant",random,hostile -MONSTER:'H',"hill giant",random,hostile -MONSTER:'H',"hill giant",random,hostile -MONSTER:'H',random,random,hostile +MONSTER:('h',"bugbear"),(02,10),hostile +MONSTER:('h',"bugbear"),(03,11),hostile +MONSTER:('h',"bugbear"),(04,12),hostile +MONSTER:('h',"bugbear"),(02,11),hostile +MONSTER:('h',"bugbear"),(16,16),hostile +MONSTER:('h',"bugbear"),(17,17),hostile +MONSTER:('h',"bugbear"),(18,18),hostile +MONSTER:('h',"bugbear"),(19,16),hostile +MONSTER:('h',"bugbear"),(30,06),hostile +MONSTER:('h',"bugbear"),(31,07),hostile +MONSTER:('h',"bugbear"),(32,08),hostile +MONSTER:('h',"bugbear"),(33,06),hostile +MONSTER:('h',"bugbear"),(34,07),hostile +MONSTER:('h',"bugbear"),random,hostile +MONSTER:('h',"bugbear"),random,hostile +MONSTER:('h',"bugbear"),random,hostile +MONSTER:('h',"bugbear"),random,hostile +MONSTER:'h',random,hostile +MONSTER:'H',random,hostile +MONSTER:('H',"hill giant"),(03,12),hostile +MONSTER:('H',"hill giant"),(20,17),hostile +MONSTER:('H',"hill giant"),(35,08),hostile +MONSTER:('H',"hill giant"),random,hostile +MONSTER:('H',"hill giant"),random,hostile +MONSTER:('H',"hill giant"),random,hostile +MONSTER:('H',"hill giant"),random,hostile +MONSTER:'H',random,hostile WALLIFY # @@ -224,26 +224,26 @@ STAIR:random,up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects -OBJECT:')',"mace",(23,10),blessed,0,"The Sceptre of Might" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:(')',"mace"),(23,10),blessed,0,name:"The Sceptre of Might" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # monsters. -MONSTER:'D',"Chromatic Dragon",(23,10),asleep -MONSTER:'F',"shrieker",(26,13) -MONSTER:'F',"shrieker",(25,8) -MONSTER:'F',"shrieker",(45,11) +MONSTER:('D',"Chromatic Dragon"),(23,10),asleep +MONSTER:('F',"shrieker"),(26,13) +MONSTER:('F',"shrieker"),(25,8) +MONSTER:('F',"shrieker"),(45,11) WALLIFY # @@ -256,63 +256,63 @@ WALLIFY # MAZE: "Cav-fila" , ' ' -INIT_MAP: '.' , ' ' , true , true , random , true +INIT_MAP: mines, '.' , ' ' , true , true , random , true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', random, random, hostile -MONSTER: 'H', "hill giant", random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: 'h', random, hostile +MONSTER: ('H', "hill giant"), random, hostile MAZE: "Cav-filb" , ' ' -INIT_MAP: '.' , ' ' , true , true , random , true +INIT_MAP: mines, '.' , ' ' , true , true , random , true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', "bugbear", random, hostile -MONSTER: 'h', random, random, hostile -MONSTER: 'h', random, random, hostile -MONSTER: 'H', "hill giant", random, hostile -MONSTER: 'H', "hill giant", random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: ('h', "bugbear"), random, hostile +MONSTER: 'h', random, hostile +MONSTER: 'h', random, hostile +MONSTER: ('H', "hill giant"), random, hostile +MONSTER: ('H', "hill giant"), random, hostile diff --git a/dat/Healer.des b/dat/Healer.des index 3a93adc4f..dcbb01b2a 100644 --- a/dat/Healer.des +++ b/dat/Healer.des @@ -57,18 +57,18 @@ DOOR:closed,(47,08) DOOR:closed,(48,12) DOOR:locked,(50,10) # Hippocrates -MONSTER:'@',"Hippocrates",(37,10) +MONSTER:('@',"Hippocrates"),(37,10) # The treasure of Hippocrates -OBJECT:'(',"chest",(37,10) +OBJECT:('(',"chest"),(37,10) # intern guards for the audience chamber -MONSTER:'@',"attendant",(29,08) -MONSTER:'@',"attendant",(29,09) -MONSTER:'@',"attendant",(29,10) -MONSTER:'@',"attendant",(29,11) -MONSTER:'@',"attendant",(40,09) -MONSTER:'@',"attendant",(40,10) -MONSTER:'@',"attendant",(40,11) -MONSTER:'@',"attendant",(40,13) +MONSTER:('@',"attendant"),(29,08) +MONSTER:('@',"attendant"),(29,09) +MONSTER:('@',"attendant"),(29,10) +MONSTER:('@',"attendant"),(29,11) +MONSTER:('@',"attendant"),(40,09) +MONSTER:('@',"attendant"),(40,10) +MONSTER:('@',"attendant"),(40,11) +MONSTER:('@',"attendant"),(40,13) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps @@ -79,29 +79,29 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: 'r',"rabid rat",random -MONSTER: ';',"giant eel",random -MONSTER: ';',"shark",random -MONSTER: ';', random, random -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: ('r',"rabid rat"),random +MONSTER: (';',"giant eel"),random +MONSTER: (';',"shark"),random +MONSTER: ';', random +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile # # The "locate" level for the quest. # @@ -112,7 +112,7 @@ MONSTER: 'S',random,random,hostile MAZE: "Hea-loca",' ' FLAGS: hardfloor # -INIT_MAP: '.' , 'P', true , true , lit , false +INIT_MAP: mines, '.' , 'P', true , true , lit , false GEOMETRY:center,center MAP PPPPPPPPPPPPP.......PPPPPPPPPPP @@ -142,21 +142,21 @@ NON_DIGGABLE:(11,02,21,07) # Altar in the temple. ALTAR:(13,05), chaos, shrine # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -165,41 +165,41 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',random,random,hostile -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"kraken",random -MONSTER:';',"shark",random -MONSTER:';',"shark",random -MONSTER:';',random, random,hostile -MONSTER:';',random, random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:'r',random,hostile +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"shark"),random +MONSTER:(';',"shark"),random +MONSTER:';', random,hostile +MONSTER:';', random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile # # The "goal" level for the quest. @@ -211,7 +211,7 @@ MONSTER: 'S',random,random,hostile MAZE: "Hea-goal", 'P' # -INIT_MAP: '.' , 'P' , false , true , lit , false +INIT_MAP: mines, '.' , 'P' , false , true , lit , false GEOMETRY:center,center MAP .P....................................PP. @@ -234,22 +234,22 @@ STAIR:(39,10),up # Non diggable walls NON_DIGGABLE:(00,00,40,11) # Objects -OBJECT:')',"quarterstaff",(20,06),blessed,0,"The Staff of Aesculapius" -OBJECT:'/',"lightning",(20,06) -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:(')',"quarterstaff"),(20,06),blessed,0,name:"The Staff of Aesculapius" +OBJECT:('/',"lightning"),(20,06) +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -258,38 +258,38 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'H',"Cyclops",(20,06),hostile -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',"rabid rat",random -MONSTER:'r',random,random,hostile -MONSTER:'r',random,random,hostile -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"shark",random -MONSTER:';',"shark",random -MONSTER:';',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile +MONSTER:('H',"Cyclops"),(20,06),hostile +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:('r',"rabid rat"),random +MONSTER:'r',random,hostile +MONSTER:'r',random,hostile +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"shark"),random +MONSTER:(';',"shark"),random +MONSTER:';',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile # # The "fill" levels for the quest. @@ -301,34 +301,34 @@ MONSTER: 'S',random,random,hostile # MAZE: "Hea-fila" , 'P' -INIT_MAP: '.' , 'P' , false , true , lit , false +INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'r', "rabid rat", random -MONSTER: 'r', random, random,hostile -MONSTER: 'r', random, random,hostile -MONSTER: ';', "giant eel", random -MONSTER: ';', "giant eel", random -MONSTER: ';', "electric eel", random -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile +MONSTER: ('r', "rabid rat"), random +MONSTER: 'r', random,hostile +MONSTER: 'r', random,hostile +MONSTER: (';', "giant eel"), random +MONSTER: (';', "giant eel"), random +MONSTER: (';', "electric eel"), random +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile # TRAP: random, random TRAP: random, random @@ -336,42 +336,42 @@ TRAP: random, random TRAP: random, random MAZE: "Hea-filb" , 'P' -INIT_MAP: '.' , 'P' , false , true , lit , false +INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'r', "rabid rat", random -MONSTER: 'r', "rabid rat", random -MONSTER: 'r', random, random,hostile -MONSTER: 'r', random, random,hostile -MONSTER: ';', "giant eel", random -MONSTER: ';', "giant eel", random -MONSTER: ';', "giant eel", random -MONSTER: ';', "giant eel", random -MONSTER: ';', "giant eel", random -MONSTER: ';', "electric eel", random -MONSTER: ';', "electric eel", random -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'D',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile -MONSTER: 'S',random,random,hostile +MONSTER: ('r', "rabid rat"), random +MONSTER: ('r', "rabid rat"), random +MONSTER: 'r', random,hostile +MONSTER: 'r', random,hostile +MONSTER: (';', "giant eel"), random +MONSTER: (';', "giant eel"), random +MONSTER: (';', "giant eel"), random +MONSTER: (';', "giant eel"), random +MONSTER: (';', "giant eel"), random +MONSTER: (';', "electric eel"), random +MONSTER: (';', "electric eel"), random +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'D',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile +MONSTER: 'S',random,hostile # TRAP: random, random TRAP: random, random diff --git a/dat/Knight.des b/dat/Knight.des index 2be72af7d..5e22f43a9 100644 --- a/dat/Knight.des +++ b/dat/Knight.des @@ -13,7 +13,7 @@ MAZE: "Kni-strt",'.' FLAGS: noteleport,hardfloor # This is a kludge to init the level as a lit field. -INIT_MAP: '.' , '.' , false , false , lit , false +INIT_MAP: mines, '.' , '.' , false , false , lit , false GEOMETRY:center,center MAP .................................................. @@ -62,21 +62,21 @@ DOOR:closed,(45,03) DOOR:closed,(04,12) DOOR:closed,(45,12) # King Arthur -MONSTER:'@',"King Arthur",(09,07) +MONSTER:('@',"King Arthur"),(09,07) # The treasure of King Arthur -OBJECT:'(',"chest",(09,07) +OBJECT:('(',"chest"),(09,07) # knight guards for the watchrooms -MONSTER:'@',"knight",(04,02),peaceful -MONSTER:'@',"knight",(04,13),peaceful -MONSTER:'@',"knight",(45,02),peaceful -MONSTER:'@',"knight",(45,13),peaceful +MONSTER:('@',"knight"),(04,02),peaceful +MONSTER:('@',"knight"),(04,13),peaceful +MONSTER:('@',"knight"),(45,02),peaceful +MONSTER:('@',"knight"),(45,13),peaceful # page guards for the audience chamber -MONSTER:'@',"page",(16,06) -MONSTER:'@',"page",(18,06) -MONSTER:'@',"page",(20,06) -MONSTER:'@',"page",(16,09) -MONSTER:'@',"page",(18,09) -MONSTER:'@',"page",(20,09) +MONSTER:('@',"page"),(16,06) +MONSTER:('@',"page"),(18,06) +MONSTER:('@',"page"),(20,06) +MONSTER:('@',"page"),(16,09) +MONSTER:('@',"page"),(18,09) +MONSTER:('@',"page"),(20,09) # Non diggable walls NON_DIGGABLE:(00,00,49,15) # Random traps @@ -87,18 +87,18 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. -MONSTER: 'i',"quasit",(14,00),hostile -MONSTER: 'i',"quasit",(16,00),hostile -MONSTER: 'i',"quasit",(18,00),hostile -MONSTER: 'i',"quasit",(20,00),hostile -MONSTER: 'i',"quasit",(22,00),hostile -MONSTER: 'i',"quasit",(24,00),hostile -MONSTER: 'i',"quasit",(26,00),hostile -MONSTER: 'i',"quasit",(28,00),hostile -MONSTER: 'i',"quasit",(30,00),hostile -MONSTER: 'i',"quasit",(32,00),hostile -MONSTER: 'i',"quasit",(34,00),hostile -MONSTER: 'i',"quasit",(36,00),hostile +MONSTER: ('i',"quasit"),(14,00),hostile +MONSTER: ('i',"quasit"),(16,00),hostile +MONSTER: ('i',"quasit"),(18,00),hostile +MONSTER: ('i',"quasit"),(20,00),hostile +MONSTER: ('i',"quasit"),(22,00),hostile +MONSTER: ('i',"quasit"),(24,00),hostile +MONSTER: ('i',"quasit"),(26,00),hostile +MONSTER: ('i',"quasit"),(28,00),hostile +MONSTER: ('i',"quasit"),(30,00),hostile +MONSTER: ('i',"quasit"),(32,00),hostile +MONSTER: ('i',"quasit"),(34,00),hostile +MONSTER: ('i',"quasit"),(36,00),hostile # # The "locate" level for the quest. @@ -109,7 +109,7 @@ MONSTER: 'i',"quasit",(36,00),hostile MAZE: "Kni-loca",' ' FLAGS: hardfloor -INIT_MAP: '.' , 'P' , false , true , lit , false +INIT_MAP: mines, '.' , 'P' , false , true , lit , false GEOMETRY:center,center MAP ...PPP.........PPPP..............PPPP... @@ -136,21 +136,21 @@ STAIR:(18,05),down # The altar atop the Tor and its attendant (creating altar makes the priest). ALTAR:(17,05),neutral,shrine # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps # All of the avenues are guarded by magic except for the East. # South @@ -210,33 +210,33 @@ TRAP:"anti magic",random TRAP:"anti magic",random TRAP:"anti magic",random # Random monsters. -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'j',random,random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',random,random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:'i',random,hostile +MONSTER:'j',random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:'j',random,hostile # # The "goal" level for the quest. @@ -278,28 +278,28 @@ STAIR:(03,08),up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects -OBJECT:'(',"mirror",(50,06),blessed,0,"The Magic Mirror of Merlin" -OBJECT:random,random,(33,01) -OBJECT:random,random,(33,02) -OBJECT:random,random,(33,03) -OBJECT:random,random,(33,04) -OBJECT:random,random,(33,05) -OBJECT:random,random,(34,01) -OBJECT:random,random,(34,02) -OBJECT:random,random,(34,03) -OBJECT:random,random,(34,04) -OBJECT:random,random,(34,05) -OBJECT:random,random,(35,01) -OBJECT:random,random,(35,02) -OBJECT:random,random,(35,03) -OBJECT:random,random,(35,04) -OBJECT:random,random,(35,05) -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('(',"mirror"),(50,06),blessed,0,name:"The Magic Mirror of Merlin" +OBJECT:random,(33,01) +OBJECT:random,(33,02) +OBJECT:random,(33,03) +OBJECT:random,(33,04) +OBJECT:random,(33,05) +OBJECT:random,(34,01) +OBJECT:random,(34,02) +OBJECT:random,(34,03) +OBJECT:random,(34,04) +OBJECT:random,(34,05) +OBJECT:random,(35,01) +OBJECT:random,(35,02) +OBJECT:random,(35,03) +OBJECT:random,(35,04) +OBJECT:random,(35,05) +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:"spiked pit",(13,07) TRAP:"spiked pit",(12,08) @@ -310,34 +310,34 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'D',"Ixoth",(50,06),hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',"quasit",random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',"ochre jelly",random,hostile -MONSTER:'j',random,random,hostile +MONSTER:('D',"Ixoth"),(50,06),hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:('i',"quasit"),random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:('j',"ochre jelly"),random,hostile +MONSTER:'j',random,hostile # # The "fill" levels for the quest. @@ -349,27 +349,27 @@ MONSTER:'j',random,random,hostile # MAZE: "Kni-fila" , '.' -INIT_MAP: '.' , 'P' , false , true , lit , false +INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', random, random, hostile -MONSTER: 'j', "ochre jelly", random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: 'i', random, hostile +MONSTER: ('j', "ochre jelly"), random, hostile # TRAP: random, random TRAP: random, random @@ -377,32 +377,32 @@ TRAP: random, random TRAP: random, random MAZE: "Kni-filb" , '.' -INIT_MAP: '.' , 'P' , false , true , lit , false +INIT_MAP: mines, '.' , 'P' , false , true , lit , false NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', "quasit", random, hostile -MONSTER: 'i', random, random, hostile -MONSTER: 'j', "ochre jelly", random, hostile -MONSTER: 'j', "ochre jelly", random, hostile -MONSTER: 'j', "ochre jelly", random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: ('i', "quasit"), random, hostile +MONSTER: 'i', random, hostile +MONSTER: ('j', "ochre jelly"), random, hostile +MONSTER: ('j', "ochre jelly"), random, hostile +MONSTER: ('j', "ochre jelly"), random, hostile # TRAP: random, random TRAP: random, random diff --git a/dat/Monk.des b/dat/Monk.des index fe75301d9..155b37040 100644 --- a/dat/Monk.des +++ b/dat/Monk.des @@ -64,17 +64,17 @@ DOOR:closed,(52,14) # Unattended Altar - unaligned due to conflict - player must align it. ALTAR:(28,09),noalign,altar # The Grand Master -MONSTER:'@',"Grand Master",(28,10) +MONSTER:('@',"Grand Master"),(28,10) # No treasure chest! # guards for the audience chamber -MONSTER:'@',"abbot",(32,07) -MONSTER:'@',"abbot",(32,08) -MONSTER:'@',"abbot",(32,11) -MONSTER:'@',"abbot",(32,12) -MONSTER:'@',"abbot",(33,07) -MONSTER:'@',"abbot",(33,08) -MONSTER:'@',"abbot",(33,11) -MONSTER:'@',"abbot",(33,12) +MONSTER:('@',"abbot"),(32,07) +MONSTER:('@',"abbot"),(32,08) +MONSTER:('@',"abbot"),(32,11) +MONSTER:('@',"abbot"),(32,12) +MONSTER:('@',"abbot"),(33,07) +MONSTER:('@',"abbot"),(33,08) +MONSTER:('@',"abbot"),(33,11) +MONSTER:('@',"abbot"),(33,12) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps @@ -85,18 +85,18 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. -MONSTER: 'E',"earth elemental",(37,01) -MONSTER: 'E',"earth elemental",(37,18) -MONSTER: 'E',"earth elemental",(03,03) -MONSTER: 'E',"earth elemental",(65,04) -MONSTER: 'E',"earth elemental",(12,11) -MONSTER: 'E',"earth elemental",(60,12) -MONSTER: 'E',"earth elemental",(14,08) -MONSTER: 'E',"earth elemental",(55,00) -MONSTER: 'X',"xorn",(18,18) -MONSTER: 'X',"xorn",(59,10) -MONSTER: 'X',"xorn",(13,09) -MONSTER: 'X',"xorn",(01,17) +MONSTER: ('E',"earth elemental"),(37,01) +MONSTER: ('E',"earth elemental"),(37,18) +MONSTER: ('E',"earth elemental"),(03,03) +MONSTER: ('E',"earth elemental"),(65,04) +MONSTER: ('E',"earth elemental"),(12,11) +MONSTER: ('E',"earth elemental"),(60,12) +MONSTER: ('E',"earth elemental"),(14,08) +MONSTER: ('E',"earth elemental"),(55,00) +MONSTER: ('X',"xorn"),(18,18) +MONSTER: ('X',"xorn"),(59,10) +MONSTER: ('X',"xorn"),(13,09) +MONSTER: ('X',"xorn"),(01,17) # # The "locate" level for the quest. @@ -133,7 +133,9 @@ MAP ------------------------------------------ ------ ENDMAP # Random Monsters -RANDOM_MONSTERS: 'E', 'X' +$monster = monster: { 'E', 'X' } +SHUFFLE: $monster + # Dungeon Description REGION:(00,00,75,20),lit,"ordinary" # Stairs @@ -142,21 +144,21 @@ STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -165,29 +167,29 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random # # The "goal" level for the quest. @@ -198,7 +200,7 @@ MONSTER: 'X',"xorn",random # MAZE: "Mon-goal", ' ' -INIT_MAP: 'L' , '.' , false , false , unlit , false +INIT_MAP: mines, 'L' , '.' , false , false , unlit , false GEOMETRY:center,center MAP .L......L.LLL.......LL.... @@ -214,26 +216,28 @@ LL........................ .........LLL.........L.... ENDMAP # Dungeon Description -RANDOM_PLACES:(14,04),(13,07) +$place = { (14,04),(13,07) } +SHUFFLE: $place + REGION:(00,00,25,10),unlit,"ordinary" # Stairs STAIR:(20,05),up # Objects -OBJECT:'(',"lenses",place[0],blessed,0,"The Eyes of the Overworld" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('(',"lenses"),$place[0],blessed,0,name:"The Eyes of the Overworld" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:"fire",random TRAP:"fire",random @@ -242,26 +246,26 @@ TRAP:"fire",random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'@',"Master Kaen",place[0] -ALTAR:place[0],noalign,altar -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'E',"earth elemental",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random -MONSTER: 'X',"xorn",random +MONSTER:('@',"Master Kaen"),$place[0] +ALTAR:$place[0],noalign,altar +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('E',"earth elemental"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random +MONSTER: ('X',"xorn"),random # # The "fill" levels for the quest. @@ -274,82 +278,98 @@ MONSTER: 'X',"xorn",random LEVEL: "Mon-fila" # Random Monsters -RANDOM_MONSTERS: 'E', 'X' +$monster = monster: { 'E', 'X' } +SHUFFLE: $monster + # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'E', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: 'E', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'E', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: 'E', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'X', "xorn", random -MONSTER: 'E', "earth elemental", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: ('X', "xorn"), random + MONSTER: ('E', "earth elemental"), random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'E', random, random, hostile -MONSTER: 'E', "earth elemental", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + MONSTER: 'E', random, hostile + MONSTER: ('E', "earth elemental"), random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'X', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: 'X', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'E', "earth elemental", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: ('E', "earth elemental"), random +} RANDOM_CORRIDORS LEVEL: "Mon-filb" # Random Monsters -RANDOM_MONSTERS: 'E', 'X' +$monster = monster: { 'E', 'X' } +SHUFFLE: $monster + # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'X', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: 'X', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'X', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: 'X', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'E', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: 'E', random, hostile +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'E', random, random, hostile -MONSTER: 'E', "earth elemental", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + MONSTER: 'E', random, hostile + MONSTER: ('E', "earth elemental"), random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'X', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: 'X', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'E', "earth elemental", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: ('E', "earth elemental"), random +} RANDOM_CORRIDORS diff --git a/dat/Priest.des b/dat/Priest.des index ea4aef3c5..21fd71600 100644 --- a/dat/Priest.des +++ b/dat/Priest.des @@ -64,18 +64,18 @@ DOOR:closed,(52,14) # Unattended Altar - unaligned due to conflict - player must align it. ALTAR:(28,09),noalign,altar # High Priest -MONSTER:'@',"Arch Priest",(28,10) +MONSTER:('@',"Arch Priest"),(28,10) # The treasure of High Priest -OBJECT:'(',"chest",(27,10) +OBJECT:('(',"chest"),(27,10) # knight guards for the audience chamber -MONSTER:'@',"acolyte",(32,07) -MONSTER:'@',"acolyte",(32,08) -MONSTER:'@',"acolyte",(32,11) -MONSTER:'@',"acolyte",(32,12) -MONSTER:'@',"acolyte",(33,07) -MONSTER:'@',"acolyte",(33,08) -MONSTER:'@',"acolyte",(33,11) -MONSTER:'@',"acolyte",(33,12) +MONSTER:('@',"acolyte"),(32,07) +MONSTER:('@',"acolyte"),(32,08) +MONSTER:('@',"acolyte"),(32,11) +MONSTER:('@',"acolyte"),(32,12) +MONSTER:('@',"acolyte"),(33,07) +MONSTER:('@',"acolyte"),(33,08) +MONSTER:('@',"acolyte"),(33,11) +MONSTER:('@',"acolyte"),(33,12) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps @@ -86,18 +86,18 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. -MONSTER: 'Z',"human zombie",(37,01) -MONSTER: 'Z',"human zombie",(37,18) -MONSTER: 'Z',"human zombie",(03,03) -MONSTER: 'Z',"human zombie",(65,04) -MONSTER: 'Z',"human zombie",(12,11) -MONSTER: 'Z',"human zombie",(60,12) -MONSTER: 'Z',"human zombie",(14,08) -MONSTER: 'Z',"human zombie",(55,00) -MONSTER: 'Z',"human zombie",(18,18) -MONSTER: 'Z',"human zombie",(59,10) -MONSTER: 'Z',"human zombie",(13,09) -MONSTER: 'Z',"human zombie",(01,17) +MONSTER: ('Z',"human zombie"),(37,01) +MONSTER: ('Z',"human zombie"),(37,18) +MONSTER: ('Z',"human zombie"),(03,03) +MONSTER: ('Z',"human zombie"),(65,04) +MONSTER: ('Z',"human zombie"),(12,11) +MONSTER: ('Z',"human zombie"),(60,12) +MONSTER: ('Z',"human zombie"),(14,08) +MONSTER: ('Z',"human zombie"),(55,00) +MONSTER: ('Z',"human zombie"),(18,18) +MONSTER: ('Z',"human zombie"),(59,10) +MONSTER: ('Z',"human zombie"),(13,09) +MONSTER: ('Z',"human zombie"),(01,17) # # The "locate" level for the quest. @@ -109,7 +109,7 @@ MONSTER: 'Z',"human zombie",(01,17) MAZE: "Pri-loca",' ' FLAGS: hardfloor # This is a kludge to init the level as a lit field. -INIT_MAP: '.' , '.' , false , false , lit , false +INIT_MAP: mines, '.' , '.' , false , false , lit , false GEOMETRY:center,center MAP ........................................ @@ -132,10 +132,10 @@ REGION:(00,00,09,13),unlit,"morgue" REGION:(09,00,30,01),unlit,"morgue" REGION:(09,12,30,13),unlit,"morgue" REGION:(31,00,39,13),unlit,"morgue" -REGION:(11,03,29,10),lit,"temple",filled,true +REGION:(11,03,29,10),lit,"temple",filled,irregular # The altar inside the temple ALTAR:(20,07),noalign,shrine -MONSTER:'@',"aligned priest",(20,07),noalign,hostile +MONSTER:('@',"aligned priest"),(20,07),noalign,hostile # Doors DOOR:locked,(10,06) DOOR:locked,(10,07) @@ -150,21 +150,21 @@ STAIR:(20,06),down # Non diggable walls NON_DIGGABLE:(10,02,30,13) # Objects (inside the antechambers). -OBJECT:random,random,(14,03) -OBJECT:random,random,(15,03) -OBJECT:random,random,(16,03) -OBJECT:random,random,(14,10) -OBJECT:random,random,(15,10) -OBJECT:random,random,(16,10) -OBJECT:random,random,(17,10) -OBJECT:random,random,(24,03) -OBJECT:random,random,(25,03) -OBJECT:random,random,(26,03) -OBJECT:random,random,(27,03) -OBJECT:random,random,(24,10) -OBJECT:random,random,(25,10) -OBJECT:random,random,(26,10) -OBJECT:random,random,(27,10) +OBJECT:random,(14,03) +OBJECT:random,(15,03) +OBJECT:random,(16,03) +OBJECT:random,(14,10) +OBJECT:random,(15,10) +OBJECT:random,(16,10) +OBJECT:random,(17,10) +OBJECT:random,(24,03) +OBJECT:random,(25,03) +OBJECT:random,(26,03) +OBJECT:random,(27,03) +OBJECT:random,(24,10) +OBJECT:random,(25,10) +OBJECT:random,(26,10) +OBJECT:random,(27,10) # Random traps TRAP:random,(15,04) TRAP:random,(25,04) @@ -183,7 +183,7 @@ TRAP:random,random # MAZE: "Pri-goal", ' ' -INIT_MAP: 'L' , '.' , false , false , unlit , false +INIT_MAP: mines, 'L' , '.' , false , false , unlit , false GEOMETRY:center,center MAP .L......L.LLL.......LL.... @@ -199,26 +199,28 @@ LL........................ .........LLL.........L.... ENDMAP # Dungeon Description -RANDOM_PLACES:(14,04),(13,07) +$place = { (14,04),(13,07) } +SHUFFLE: $place + REGION:(00,00,25,10),unlit,"ordinary" # Stairs STAIR:(20,05),up # Objects -OBJECT:'[',"helm of brilliance",place[0],blessed,0,"The Mitre of Holiness" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('[',"helm of brilliance"),$place[0],blessed,0,name:"The Mitre of Holiness" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:"fire",random TRAP:"fire",random @@ -227,34 +229,34 @@ TRAP:"fire",random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'&',"Nalzok",place[0] -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'W',"wraith",random -MONSTER:'W',"wraith",random -MONSTER:'W',"wraith",random -MONSTER:'W',"wraith",random -MONSTER:'W',"wraith",random -MONSTER:'W',"wraith",random -MONSTER:'W',"wraith",random -MONSTER:'W',"wraith",random -MONSTER:'W',random,random +MONSTER:('&',"Nalzok"),$place[0] +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:('W',"wraith"),random +MONSTER:('W',"wraith"),random +MONSTER:('W',"wraith"),random +MONSTER:('W',"wraith"),random +MONSTER:('W',"wraith"),random +MONSTER:('W',"wraith"),random +MONSTER:('W',"wraith"),random +MONSTER:('W',"wraith"),random +MONSTER:'W',random # # The "fill" levels for the quest. @@ -267,73 +269,85 @@ MONSTER:'W',random,random LEVEL: "Pri-fila" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'Z', "human zombie", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: ('Z', "human zombie"), random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'Z', "human zombie", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: ('Z', "human zombie"), random +} -ROOM: "morgue" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random +ROOM: "morgue" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'W', "wraith", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: ('W', "wraith"), random +} -ROOM: "morgue" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random +ROOM: "morgue" , random, random, random, random { + OBJECT: random, random + TRAP: random, random +} RANDOM_CORRIDORS LEVEL: "Pri-filb" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'Z', "human zombie", random -MONSTER: 'W', "wraith", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: ('Z', "human zombie"), random + MONSTER: ('W', "wraith"), random +} -ROOM: "morgue" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random,random,random +ROOM: "morgue" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + OBJECT: random,random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'Z', "human zombie", random -MONSTER: 'W', "wraith", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: ('Z', "human zombie"), random + MONSTER: ('W', "wraith"), random +} -ROOM: "morgue" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random +ROOM: "morgue" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + OBJECT: random, random + TRAP: random, random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'Z', "human zombie", random -MONSTER: 'W', "wraith", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: ('Z', "human zombie"), random + MONSTER: ('W', "wraith"), random +} -ROOM: "morgue" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random +ROOM: "morgue" , random, random, random, random { + OBJECT: random, random + TRAP: random, random +} RANDOM_CORRIDORS diff --git a/dat/Ranger.des b/dat/Ranger.des index d36559cb6..f44c28779 100644 --- a/dat/Ranger.des +++ b/dat/Ranger.des @@ -12,7 +12,7 @@ # MAZE: "Ran-strt",'.' FLAGS: noteleport,hardfloor,arboreal -INIT_MAP:'.','.',true,true,lit,false +INIT_MAP:mines,'.','.',true,true,lit,false GEOMETRY:left,center #1234567890123456789012345678901234567890123456789012345678901234567890 MAP @@ -45,18 +45,18 @@ STAIR:(10,10),down # Portal arrival point; just about anywhere on the right hand side of the map BRANCH:levregion(51,2,77,18),(0,0,40,20) # Orion -MONSTER:'@',"Orion",(20,10) +MONSTER:('@',"Orion"),(20,10) # The treasure of Orion -OBJECT:'(',"chest",(20,10) +OBJECT:('(',"chest"),(20,10) # Guards for the audience chamber -MONSTER:'@',"hunter",(19,09) -MONSTER:'@',"hunter",(20,09) -MONSTER:'@',"hunter",(21,09) -MONSTER:'@',"hunter",(19,10) -MONSTER:'@',"hunter",(21,10) -MONSTER:'@',"hunter",(19,11) -MONSTER:'@',"hunter",(20,11) -MONSTER:'@',"hunter",(21,11) +MONSTER:('@',"hunter"),(19,09) +MONSTER:('@',"hunter"),(20,09) +MONSTER:('@',"hunter"),(21,09) +MONSTER:('@',"hunter"),(19,10) +MONSTER:('@',"hunter"),(21,10) +MONSTER:('@',"hunter"),(19,11) +MONSTER:('@',"hunter"),(20,11) +MONSTER:('@',"hunter"),(21,11) # Non diggable walls NON_DIGGABLE:(00,00,40,20) # Traps @@ -67,33 +67,33 @@ TRAP:"spiked pit",random TRAP:"bear",random TRAP:"bear",random # Monsters on siege duty. -MONSTER: 'H',"minotaur",(33,09),hostile,asleep -MONSTER: 'C',"forest centaur",(19,03),hostile -MONSTER: 'C',"forest centaur",(19,04),hostile -MONSTER: 'C',"forest centaur",(19,05),hostile -MONSTER: 'C',"forest centaur",(21,03),hostile -MONSTER: 'C',"forest centaur",(21,04),hostile -MONSTER: 'C',"forest centaur",(21,05),hostile -MONSTER: 'C',"forest centaur",(01,09),hostile -MONSTER: 'C',"forest centaur",(02,09),hostile -MONSTER: 'C',"forest centaur",(03,09),hostile -MONSTER: 'C',"forest centaur",(01,11),hostile -MONSTER: 'C',"forest centaur",(02,11),hostile -MONSTER: 'C',"forest centaur",(03,11),hostile -MONSTER: 'C',"forest centaur",(19,15),hostile -MONSTER: 'C',"forest centaur",(19,16),hostile -MONSTER: 'C',"forest centaur",(19,17),hostile -MONSTER: 'C',"forest centaur",(21,15),hostile -MONSTER: 'C',"forest centaur",(21,16),hostile -MONSTER: 'C',"forest centaur",(21,17),hostile -MONSTER: 'C',"plains centaur",random,hostile -MONSTER: 'C',"plains centaur",random,hostile -MONSTER: 'C',"plains centaur",random,hostile -MONSTER: 'C',"plains centaur",random,hostile -MONSTER: 'C',"plains centaur",random,hostile -MONSTER: 'C',"plains centaur",random,hostile -MONSTER: 's',"scorpion",random,hostile -MONSTER: 's',"scorpion",random,hostile +MONSTER: ('H',"minotaur"),(33,09),hostile,asleep +MONSTER: ('C',"forest centaur"),(19,03),hostile +MONSTER: ('C',"forest centaur"),(19,04),hostile +MONSTER: ('C',"forest centaur"),(19,05),hostile +MONSTER: ('C',"forest centaur"),(21,03),hostile +MONSTER: ('C',"forest centaur"),(21,04),hostile +MONSTER: ('C',"forest centaur"),(21,05),hostile +MONSTER: ('C',"forest centaur"),(01,09),hostile +MONSTER: ('C',"forest centaur"),(02,09),hostile +MONSTER: ('C',"forest centaur"),(03,09),hostile +MONSTER: ('C',"forest centaur"),(01,11),hostile +MONSTER: ('C',"forest centaur"),(02,11),hostile +MONSTER: ('C',"forest centaur"),(03,11),hostile +MONSTER: ('C',"forest centaur"),(19,15),hostile +MONSTER: ('C',"forest centaur"),(19,16),hostile +MONSTER: ('C',"forest centaur"),(19,17),hostile +MONSTER: ('C',"forest centaur"),(21,15),hostile +MONSTER: ('C',"forest centaur"),(21,16),hostile +MONSTER: ('C',"forest centaur"),(21,17),hostile +MONSTER: ('C',"plains centaur"),random,hostile +MONSTER: ('C',"plains centaur"),random,hostile +MONSTER: ('C',"plains centaur"),random,hostile +MONSTER: ('C',"plains centaur"),random,hostile +MONSTER: ('C',"plains centaur"),random,hostile +MONSTER: ('C',"plains centaur"),random,hostile +MONSTER: ('s',"scorpion"),random,hostile +MONSTER: ('s',"scorpion"),random,hostile # @@ -137,14 +137,14 @@ STAIR:(27,18),down # Non diggable walls NON_DIGGABLE:(00,00,54,19) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:"spiked pit",random TRAP:"spiked pit",random @@ -153,29 +153,29 @@ TRAP:"teleport",random TRAP:"arrow",random TRAP:"arrow",random # Random monsters. -MONSTER:'q',"wumpus",(27,18),hostile,asleep -MONSTER:'B',"giant bat",random,hostile -MONSTER:'B',"giant bat",random,hostile -MONSTER:'B',"giant bat",random,hostile -MONSTER:'B',"giant bat",random,hostile -MONSTER:'C',"forest centaur",random,hostile -MONSTER:'C',"forest centaur",random,hostile -MONSTER:'C',"forest centaur",random,hostile -MONSTER:'C',"forest centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'s',"scorpion",random,hostile -MONSTER:'s',"scorpion",random,hostile -MONSTER:'s',"scorpion",random,hostile -MONSTER:'s',"scorpion",random,hostile -MONSTER:'s',random,random,hostile -MONSTER:'s',random,random,hostile +MONSTER:('q',"wumpus"),(27,18),hostile,asleep +MONSTER:('B',"giant bat"),random,hostile +MONSTER:('B',"giant bat"),random,hostile +MONSTER:('B',"giant bat"),random,hostile +MONSTER:('B',"giant bat"),random,hostile +MONSTER:('C',"forest centaur"),random,hostile +MONSTER:('C',"forest centaur"),random,hostile +MONSTER:('C',"forest centaur"),random,hostile +MONSTER:('C',"forest centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('s',"scorpion"),random,hostile +MONSTER:('s',"scorpion"),random,hostile +MONSTER:('s',"scorpion"),random,hostile +MONSTER:('s',"scorpion"),random,hostile +MONSTER:'s',random,hostile +MONSTER:'s',random,hostile # @@ -217,21 +217,21 @@ STAIR:(19,10),up # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects -OBJECT:')',"bow",(37,10),blessed,0,"The Longbow of Diana" -OBJECT:'(',"chest",(37,10) -OBJECT:random,random,(36,09) -OBJECT:random,random,(36,10) -OBJECT:random,random,(36,11) -OBJECT:random,random,(37,09) -OBJECT:random,random,(37,11) -OBJECT:random,random,(38,09) -OBJECT:random,random,(38,10) -OBJECT:random,random,(38,11) -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:(')',"bow"),(37,10),blessed,0,name:"The Longbow of Diana" +OBJECT:('(',"chest"),(37,10) +OBJECT:random,(36,09) +OBJECT:random,(36,10) +OBJECT:random,(36,11) +OBJECT:random,(37,09) +OBJECT:random,(37,11) +OBJECT:random,(38,09) +OBJECT:random,(38,10) +OBJECT:random,(38,11) +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -255,34 +255,34 @@ DOOR:closed,(51,10) DOOR:locked,(53,08) DOOR:closed,(65,05) # Random monsters. -MONSTER:'s',"Scorpius",(37,10),hostile -MONSTER:'C',"forest centaur",(36,09),hostile -MONSTER:'C',"forest centaur",(36,10),hostile -MONSTER:'C',"forest centaur",(36,11),hostile -MONSTER:'C',"forest centaur",(37,09),hostile -MONSTER:'C',"forest centaur",(37,11),hostile -MONSTER:'C',"forest centaur",(38,09),hostile -MONSTER:'C',"mountain centaur",(38,10),hostile -MONSTER:'C',"mountain centaur",(38,11),hostile -MONSTER:'C',"mountain centaur",(02,02),hostile -MONSTER:'C',"mountain centaur",(71,02),hostile -MONSTER:'C',"mountain centaur",(02,16),hostile -MONSTER:'C',"mountain centaur",(71,16),hostile -MONSTER:'C',"forest centaur",random,hostile -MONSTER:'C',"forest centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',"mountain centaur",random,hostile -MONSTER:'C',random,random,hostile -MONSTER:'C',random,random,hostile -MONSTER:'s',"scorpion",(03,02),hostile -MONSTER:'s',"scorpion",(72,02),hostile -MONSTER:'s',"scorpion",(03,17),hostile -MONSTER:'s',"scorpion",(72,17),hostile -MONSTER:'s',"scorpion",(41,10),hostile -MONSTER:'s',"scorpion",(33,09),hostile -MONSTER:'s',"scorpion",random,hostile -MONSTER:'s',"scorpion",random,hostile -MONSTER:'s',random,random,hostile +MONSTER:('s',"Scorpius"),(37,10),hostile +MONSTER:('C',"forest centaur"),(36,09),hostile +MONSTER:('C',"forest centaur"),(36,10),hostile +MONSTER:('C',"forest centaur"),(36,11),hostile +MONSTER:('C',"forest centaur"),(37,09),hostile +MONSTER:('C',"forest centaur"),(37,11),hostile +MONSTER:('C',"forest centaur"),(38,09),hostile +MONSTER:('C',"mountain centaur"),(38,10),hostile +MONSTER:('C',"mountain centaur"),(38,11),hostile +MONSTER:('C',"mountain centaur"),(02,02),hostile +MONSTER:('C',"mountain centaur"),(71,02),hostile +MONSTER:('C',"mountain centaur"),(02,16),hostile +MONSTER:('C',"mountain centaur"),(71,16),hostile +MONSTER:('C',"forest centaur"),random,hostile +MONSTER:('C',"forest centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:('C',"mountain centaur"),random,hostile +MONSTER:'C',random,hostile +MONSTER:'C',random,hostile +MONSTER:('s',"scorpion"),(03,02),hostile +MONSTER:('s',"scorpion"),(72,02),hostile +MONSTER:('s',"scorpion"),(03,17),hostile +MONSTER:('s',"scorpion"),(72,17),hostile +MONSTER:('s',"scorpion"),(41,10),hostile +MONSTER:('s',"scorpion"),(33,09),hostile +MONSTER:('s',"scorpion"),random,hostile +MONSTER:('s',"scorpion"),random,hostile +MONSTER:'s',random,hostile WALLIFY @@ -296,62 +296,62 @@ WALLIFY # MAZE: "Ran-fila" , ' ' -INIT_MAP: '.' , 'T', true, true, random, true +INIT_MAP: mines, '.' , 'T', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: 'C', "mountain centaur", random, hostile -MONSTER: 'C', "mountain centaur", random, hostile -MONSTER: 'C', "forest centaur", random, hostile -MONSTER: 'C', "forest centaur", random, hostile -MONSTER: 'C', "forest centaur", random, hostile -MONSTER: 'C', random, random, hostile -MONSTER: 's', "scorpion", random, hostile +MONSTER: ('C', "mountain centaur"), random, hostile +MONSTER: ('C', "mountain centaur"), random, hostile +MONSTER: ('C', "forest centaur"), random, hostile +MONSTER: ('C', "forest centaur"), random, hostile +MONSTER: ('C', "forest centaur"), random, hostile +MONSTER: 'C', random, hostile +MONSTER: ('s', "scorpion"), random, hostile MAZE: "Ran-filb" , ' ' -INIT_MAP: '.' , ' ', true, true, random, true +INIT_MAP: mines, '.' , ' ', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: 'C', "mountain centaur", random, hostile -MONSTER: 'C', "mountain centaur", random, hostile -MONSTER: 'C', "mountain centaur", random, hostile -MONSTER: 'C', "mountain centaur", random, hostile -MONSTER: 'C', random, random, hostile -MONSTER: 's', "scorpion", random, hostile -MONSTER: 's', "scorpion", random, hostile +MONSTER: ('C', "mountain centaur"), random, hostile +MONSTER: ('C', "mountain centaur"), random, hostile +MONSTER: ('C', "mountain centaur"), random, hostile +MONSTER: ('C', "mountain centaur"), random, hostile +MONSTER: 'C', random, hostile +MONSTER: ('s', "scorpion"), random, hostile +MONSTER: ('s', "scorpion"), random, hostile diff --git a/dat/Rogue.des b/dat/Rogue.des index 2d2c6a202..38921c371 100644 --- a/dat/Rogue.des +++ b/dat/Rogue.des @@ -41,11 +41,13 @@ ENDMAP #REGION:(00,00,75,20),lit,"ordinary" # The down stairs is at one of the 4 "exits". The others are mimics, # mimicing stairwells. -RANDOM_PLACES: (33,0), (0,12), (25,20), (75,05) -STAIR:place[0],down -MONSTER:'m',"giant mimic", place[1], m_feature "staircase down" -MONSTER:'m',"large mimic", place[2], m_feature "staircase down" -MONSTER:'m',"small mimic", place[3], m_feature "staircase down" +$place = { (33,0), (0,12), (25,20), (75,05) } +SHUFFLE: $place + +STAIR:$place[0],down +MONSTER:('m',"giant mimic"), $place[1], m_feature "staircase down" +MONSTER:('m',"large mimic"), $place[2], m_feature "staircase down" +MONSTER:('m',"small mimic"), $place[3], m_feature "staircase down" # Portal arrival point BRANCH:(19,09,19,09),(0,0,0,0) # Doors (secret) @@ -98,21 +100,21 @@ DOOR: closed, ( 6,18) DOOR: closed, (65,18) DOOR: closed, (68,18) # Master of Thieves -MONSTER:'@',"Master of Thieves",(36,11) +MONSTER:('@',"Master of Thieves"),(36,11) # The treasure of Master of Thieves -OBJECT:'(',"chest",(36,11) +OBJECT:('(',"chest"),(36,11) # thug guards, room #1 -MONSTER:'@',"thug",(28,10) -MONSTER:'@',"thug",(29,11) -MONSTER:'@',"thug",(30,09) -MONSTER:'@',"thug",(31,07) +MONSTER:('@',"thug"),(28,10) +MONSTER:('@',"thug"),(29,11) +MONSTER:('@',"thug"),(30,09) +MONSTER:('@',"thug"),(31,07) # thug guards, room #2 -MONSTER:'@',"thug",(31,13) -MONSTER:'@',"thug",(33,14) -MONSTER:'@',"thug",(30,15) +MONSTER:('@',"thug"),(31,13) +MONSTER:('@',"thug"),(33,14) +MONSTER:('@',"thug"),(30,15) #thug guards, room #3 -MONSTER:'@',"thug",(35,09) -MONSTER:'@',"thug",(36,13) +MONSTER:('@',"thug"),(35,09) +MONSTER:('@',"thug"),(36,13) # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Random traps @@ -136,37 +138,37 @@ TRAP:random,random # Monsters to get in the way. # # West exit -MONSTER: 'l',"leprechaun",(01,12),hostile -MONSTER: 'n',"water nymph",(02,12),hostile +MONSTER: ('l',"leprechaun"),(01,12),hostile +MONSTER: ('n',"water nymph"),(02,12),hostile # North exit -MONSTER: 'n',"water nymph",(33,01),hostile -MONSTER: 'l',"leprechaun",(33,02),hostile +MONSTER: ('n',"water nymph"),(33,01),hostile +MONSTER: ('l',"leprechaun"),(33,02),hostile # East exit -MONSTER: 'n',"water nymph",(74,05),hostile -MONSTER: 'l',"leprechaun",(74,04),hostile +MONSTER: ('n',"water nymph"),(74,05),hostile +MONSTER: ('l',"leprechaun"),(74,04),hostile # South exit -MONSTER: 'l',"leprechaun",(25,19),hostile -MONSTER: 'n',"water nymph",(25,18),hostile +MONSTER: ('l',"leprechaun"),(25,19),hostile +MONSTER: ('n',"water nymph"),(25,18),hostile # Wandering the streets. What I'd really like for this is a random # location, but make sure we're on a given type, e.g. street (if they # existed, of course). -MONSTER: 'n',"water nymph",(07,05),hostile -MONSTER: 'l',"leprechaun",(28,06),hostile -MONSTER: 'n',"water nymph",(38,07),hostile -MONSTER: 'l',"leprechaun",(45,01),hostile -MONSTER: 'n',"water nymph",(59,07),hostile -MONSTER: 'l',"leprechaun",(62,14),hostile -MONSTER: 'n',"water nymph",(71,14),hostile -MONSTER: 'l',"leprechaun",(39,13),hostile -MONSTER: 'n',"water nymph",(18,14),hostile -MONSTER: ':',"chameleon",(19,08),hostile -MONSTER: ':',"chameleon",(22,08),hostile -MONSTER: ':',"chameleon",(16,08),hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile +MONSTER: ('n',"water nymph"),(07,05),hostile +MONSTER: ('l',"leprechaun"),(28,06),hostile +MONSTER: ('n',"water nymph"),(38,07),hostile +MONSTER: ('l',"leprechaun"),(45,01),hostile +MONSTER: ('n',"water nymph"),(59,07),hostile +MONSTER: ('l',"leprechaun"),(62,14),hostile +MONSTER: ('n',"water nymph"),(71,14),hostile +MONSTER: ('l',"leprechaun"),(39,13),hostile +MONSTER: ('n',"water nymph"),(18,14),hostile +MONSTER: (':',"chameleon"),(19,08),hostile +MONSTER: (':',"chameleon"),(22,08),hostile +MONSTER: (':',"chameleon"),(16,08),hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile # # The "locate" level for the quest. @@ -212,21 +214,21 @@ STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Objects -OBJECT:'?',"teleportation",(11,18),cursed,0 -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('?',"teleportation"),(11,18),cursed,0 +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -235,39 +237,39 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',random,random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',random,random,hostile -MONSTER:'N',random,random,hostile -MONSTER:'N',random,random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:'l',random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:'N',random,hostile +MONSTER:'N',random,hostile +MONSTER:'N',random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile # # The "goal" level for the quest. Teleportation and digging are @@ -315,21 +317,21 @@ NON_DIGGABLE:(00,00,75,20) # One trap to keep the gnomes at bay. TRAP:"spiked pit",(37,07) # Objects -OBJECT:'(',"skeleton key",(38,10),blessed,0,"The Master Key of Thievery" -OBJECT:'%',"tin",(26,12),"chameleon",0 -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('(',"skeleton key"),(38,10),blessed,0,name:"The Master Key of Thievery" +OBJECT:('%',"tin"),(26,12),montype:"chameleon" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -343,45 +345,45 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'@',"Master Assassin",(38,10),hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',"leprechaun",random,hostile -MONSTER:'l',random,random,hostile -MONSTER:'l',random,random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',"guardian naga",random,hostile -MONSTER:'N',random,random,hostile -MONSTER:'N',random,random,hostile -MONSTER:'N',random,random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER: ':',"chameleon",random,hostile -MONSTER:';',"shark",(51,14),hostile -MONSTER:';',"shark",(53,09),hostile -MONSTER:';',"shark",(55,15),hostile -MONSTER:';',"shark",(58,10),hostile +MONSTER:('@',"Master Assassin"),(38,10),hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:('l',"leprechaun"),random,hostile +MONSTER:'l',random,hostile +MONSTER:'l',random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:('N',"guardian naga"),random,hostile +MONSTER:'N',random,hostile +MONSTER:'N',random,hostile +MONSTER:'N',random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER: (':',"chameleon"),random,hostile +MONSTER:(';',"shark"),(51,14),hostile +MONSTER:(';',"shark"),(53,09),hostile +MONSTER:(';',"shark"),(55,15),hostile +MONSTER:(';',"shark"),(58,10),hostile # # The "fill" level for the quest. @@ -391,45 +393,51 @@ MONSTER:';',"shark",(58,10),hostile # LEVEL: "Rog-fila" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'l', "leprechaun", random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: ('l', "leprechaun"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'l', "leprechaun", random, hostile -MONSTER: 'N', "guardian naga", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: ('l', "leprechaun"), random, hostile + MONSTER: ('N', "guardian naga"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'n', "water nymph", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: ('n', "water nymph"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -MONSTER: 'l', random, random, hostile -MONSTER: 'N', "guardian naga", random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + TRAP: random, random + MONSTER: 'l', random, hostile + MONSTER: ('N', "guardian naga"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -MONSTER: 'l', "leprechaun", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + TRAP: random, random + MONSTER: ('l', "leprechaun"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -MONSTER: 'l', "leprechaun", random, hostile -MONSTER: 'n', "water nymph", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + TRAP: random, random + MONSTER: ('l', "leprechaun"), random, hostile + MONSTER: ('n', "water nymph"), random, hostile +} RANDOM_CORRIDORS @@ -438,44 +446,50 @@ RANDOM_CORRIDORS # LEVEL: "Rog-filb" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'l', "leprechaun", random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: ('l', "leprechaun"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'l', "leprechaun", random, hostile -MONSTER: 'N', "guardian naga", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: ('l', "leprechaun"), random, hostile + MONSTER: ('N', "guardian naga"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'n', "water nymph", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: ('n', "water nymph"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -MONSTER: 'l', random, random, hostile -MONSTER: 'N', "guardian naga", random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + TRAP: random, random + MONSTER: 'l', random, hostile + MONSTER: ('N', "guardian naga"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -MONSTER: 'l', "leprechaun", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + TRAP: random, random + MONSTER: ('l', "leprechaun"), random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -TRAP: random, random -MONSTER: 'l', "leprechaun", random, hostile -MONSTER: 'n', "water nymph", random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + TRAP: random, random + MONSTER: ('l', "leprechaun"), random, hostile + MONSTER: ('n', "water nymph"), random, hostile +} RANDOM_CORRIDORS diff --git a/dat/Samurai.des b/dat/Samurai.des index 565a2ed67..6dd53ac4f 100644 --- a/dat/Samurai.des +++ b/dat/Samurai.des @@ -54,18 +54,18 @@ DOOR:locked,(39,08) DOOR:closed,(50,04) DOOR:closed,(50,06) # Lord Sato -MONSTER:'@',"Lord Sato",(20,04) +MONSTER:('@',"Lord Sato"),(20,04) # The treasure of Lord Sato -OBJECT:'(',"chest",(20,04) +OBJECT:('(',"chest"),(20,04) # roshi guards for the audience chamber -MONSTER:'@',"roshi",(18,04) -MONSTER:'@',"roshi",(18,05) -MONSTER:'@',"roshi",(18,06) -MONSTER:'@',"roshi",(18,07) -MONSTER:'@',"roshi",(26,04) -MONSTER:'@',"roshi",(26,05) -MONSTER:'@',"roshi",(26,06) -MONSTER:'@',"roshi",(26,07) +MONSTER:('@',"roshi"),(18,04) +MONSTER:('@',"roshi"),(18,05) +MONSTER:('@',"roshi"),(18,06) +MONSTER:('@',"roshi"),(18,07) +MONSTER:('@',"roshi"),(26,04) +MONSTER:('@',"roshi"),(26,05) +MONSTER:('@',"roshi"),(26,06) +MONSTER:('@',"roshi"),(26,07) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps @@ -76,19 +76,19 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. -MONSTER: '@',"ninja",(64,00),hostile -MONSTER: 'd',"wolf",(65,01) -MONSTER: '@',"ninja",(67,02),hostile -MONSTER: '@',"ninja",(69,05),hostile -MONSTER: '@',"ninja",(69,06),hostile -MONSTER: 'd',"wolf",(69,07) -MONSTER: '@',"ninja",(70,06),hostile -MONSTER: '@',"ninja",(70,07),hostile -MONSTER: '@',"ninja",(72,01),hostile -MONSTER: 'd',"wolf",(75,09) -MONSTER: '@',"ninja",(73,05),hostile -MONSTER: '@',"ninja",(68,02),hostile -MONSTER:'E',"stalker",random +MONSTER: ('@',"ninja"),(64,00),hostile +MONSTER: ('d',"wolf"),(65,01) +MONSTER: ('@',"ninja"),(67,02),hostile +MONSTER: ('@',"ninja"),(69,05),hostile +MONSTER: ('@',"ninja"),(69,06),hostile +MONSTER: ('d',"wolf"),(69,07) +MONSTER: ('@',"ninja"),(70,06),hostile +MONSTER: ('@',"ninja"),(70,07),hostile +MONSTER: ('@',"ninja"),(72,01),hostile +MONSTER: ('d',"wolf"),(75,09) +MONSTER: ('@',"ninja"),(73,05),hostile +MONSTER: ('@',"ninja"),(68,02),hostile +MONSTER:('E',"stalker"),random # # The "locate" level for the quest. @@ -155,41 +155,41 @@ STAIR:(25,14),down # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Objects -OBJECT:'*',random,(25,05) -OBJECT:'*',random,(26,05) -OBJECT:'*',random,(27,05) -OBJECT:'*',random,(28,05) -OBJECT:'*',random,(25,06) -OBJECT:'*',random,(26,06) -OBJECT:'*',random,(27,06) -OBJECT:'*',random,(28,06) +OBJECT:'*',(25,05) +OBJECT:'*',(26,05) +OBJECT:'*',(27,05) +OBJECT:'*',(28,05) +OBJECT:'*',(25,06) +OBJECT:'*',(26,06) +OBJECT:'*',(27,06) +OBJECT:'*',(28,06) # -OBJECT:'[',random,(40,05) -OBJECT:'[',random,(41,05) -OBJECT:'[',random,(42,05) -OBJECT:'[',random,(43,05) -OBJECT:'[',random,(40,06) -OBJECT:'[',random,(41,06) -OBJECT:'[',random,(42,06) -OBJECT:'[',random,(43,06) +OBJECT:'[',(40,05) +OBJECT:'[',(41,05) +OBJECT:'[',(42,05) +OBJECT:'[',(43,05) +OBJECT:'[',(40,06) +OBJECT:'[',(41,06) +OBJECT:'[',(42,06) +OBJECT:'[',(43,06) # -OBJECT:')',random,(27,13) -OBJECT:')',random,(28,13) -OBJECT:')',random,(29,13) -OBJECT:')',random,(30,13) -OBJECT:')',random,(27,14) -OBJECT:')',random,(28,14) -OBJECT:')',random,(29,14) -OBJECT:')',random,(30,14) +OBJECT:')',(27,13) +OBJECT:')',(28,13) +OBJECT:')',(29,13) +OBJECT:')',(30,13) +OBJECT:')',(27,14) +OBJECT:')',(28,14) +OBJECT:')',(29,14) +OBJECT:')',(30,14) # -OBJECT:'(',random,(37,13) -OBJECT:'(',random,(38,13) -OBJECT:'(',random,(39,13) -OBJECT:'(',random,(40,13) -OBJECT:'(',random,(37,14) -OBJECT:'(',random,(38,14) -OBJECT:'(',random,(39,14) -OBJECT:'(',random,(40,14) +OBJECT:'(',(37,13) +OBJECT:'(',(38,13) +OBJECT:'(',(39,13) +OBJECT:'(',(40,13) +OBJECT:'(',(37,14) +OBJECT:'(',(38,14) +OBJECT:'(',(39,14) +OBJECT:'(',(40,14) # Random traps TRAP:random,random TRAP:random,random @@ -198,40 +198,40 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'@',"ninja",(15,05),hostile -MONSTER:'@',"ninja",(16,05),hostile -MONSTER:'d',"wolf",(17,05) -MONSTER:'d',"wolf",(18,05) -MONSTER:'@',"ninja",(19,05),hostile -MONSTER:'d',"wolf",(15,14) -MONSTER:'d',"wolf",(16,14) -MONSTER:'@',"ninja",(17,14),hostile -MONSTER:'@',"ninja",(18,14),hostile -MONSTER:'d',"wolf",(56,05) -MONSTER:'@',"ninja",(57,05),hostile -MONSTER:'d',"wolf",(58,05) -MONSTER:'d',"wolf",(59,05) -MONSTER:'@',"ninja",(56,14),hostile -MONSTER:'d',"wolf",(57,14) -MONSTER:'@',"ninja",(58,14),hostile -MONSTER:'d',random,(59,14) -MONSTER:'d',"wolf",(60,14) -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random +MONSTER:('@',"ninja"),(15,05),hostile +MONSTER:('@',"ninja"),(16,05),hostile +MONSTER:('d',"wolf"),(17,05) +MONSTER:('d',"wolf"),(18,05) +MONSTER:('@',"ninja"),(19,05),hostile +MONSTER:('d',"wolf"),(15,14) +MONSTER:('d',"wolf"),(16,14) +MONSTER:('@',"ninja"),(17,14),hostile +MONSTER:('@',"ninja"),(18,14),hostile +MONSTER:('d',"wolf"),(56,05) +MONSTER:('@',"ninja"),(57,05),hostile +MONSTER:('d',"wolf"),(58,05) +MONSTER:('d',"wolf"),(59,05) +MONSTER:('@',"ninja"),(56,14),hostile +MONSTER:('d',"wolf"),(57,14) +MONSTER:('@',"ninja"),(58,14),hostile +MONSTER:'d',(59,14) +MONSTER:('d',"wolf"),(60,14) +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random # "guards" for the central courtyard. -MONSTER:'@',"samurai",(30,05),hostile -MONSTER:'@',"samurai",(31,05),hostile -MONSTER:'@',"samurai",(32,05),hostile -MONSTER:'@',"samurai",(32,14),hostile -MONSTER:'@',"samurai",(33,14),hostile -MONSTER:'@',"samurai",(34,14),hostile +MONSTER:('@',"samurai"),(30,05),hostile +MONSTER:('@',"samurai"),(31,05),hostile +MONSTER:('@',"samurai"),(32,05),hostile +MONSTER:('@',"samurai"),(32,14),hostile +MONSTER:('@',"samurai"),(33,14),hostile +MONSTER:('@',"samurai"),(34,14),hostile # # The "goal" level for the quest. @@ -267,7 +267,9 @@ MAP ....................... ENDMAP # Dungeon Description -RANDOM_PLACES:(02,11),(42,09) +$place = { (02,11),(42,09) } +SHUFFLE: $place + REGION:(00,00,44,19),unlit,"ordinary" # Doors DOOR:closed,(19,10) @@ -275,25 +277,25 @@ DOOR:closed,(22,08) DOOR:closed,(22,12) DOOR:closed,(25,10) # Stairs -STAIR:place[0],up +STAIR:$place[0],up # Non diggable walls NON_DIGGABLE:(00,00,44,19) # Objects -OBJECT:')',"tsurugi",(22,10),blessed,0,"The Tsurugi of Muramasa" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:(')',"tsurugi"),(22,10),blessed,0,name:"The Tsurugi of Muramasa" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # TRAP:"board",(22,09) TRAP:"board",(24,10) @@ -306,32 +308,32 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'@',"Ashikaga Takauji",(22,10) -MONSTER:'@',"samurai",random,hostile -MONSTER:'@',"samurai",random,hostile -MONSTER:'@',"samurai",random,hostile -MONSTER:'@',"samurai",random,hostile -MONSTER:'@',"samurai",random,hostile -MONSTER:'@',"ninja",random,hostile -MONSTER:'@',"ninja",random,hostile -MONSTER:'@',"ninja",random,hostile -MONSTER:'@',"ninja",random,hostile -MONSTER:'@',"ninja",random,hostile -MONSTER:'d',"wolf",random -MONSTER:'d',"wolf",random -MONSTER:'d',"wolf",random -MONSTER:'d',"wolf",random -MONSTER:'d',random,random -MONSTER:'d',random,random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random -MONSTER:'E',"stalker",random +MONSTER:('@',"Ashikaga Takauji"),(22,10) +MONSTER:('@',"samurai"),random,hostile +MONSTER:('@',"samurai"),random,hostile +MONSTER:('@',"samurai"),random,hostile +MONSTER:('@',"samurai"),random,hostile +MONSTER:('@',"samurai"),random,hostile +MONSTER:('@',"ninja"),random,hostile +MONSTER:('@',"ninja"),random,hostile +MONSTER:('@',"ninja"),random,hostile +MONSTER:('@',"ninja"),random,hostile +MONSTER:('@',"ninja"),random,hostile +MONSTER:('d',"wolf"),random +MONSTER:('d',"wolf"),random +MONSTER:('d',"wolf"),random +MONSTER:('d',"wolf"),random +MONSTER:'d',random +MONSTER:'d',random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random +MONSTER:('E',"stalker"),random # @@ -344,29 +346,29 @@ MONSTER:'E',"stalker",random # MAZE: "Sam-fila", ' ' -INIT_MAP: '.' , 'P', true, true, random, true +INIT_MAP: mines, '.' , 'P', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'd', random, random -MONSTER: 'd', "wolf", random -MONSTER: 'd', "wolf", random -MONSTER: 'd', "wolf", random -MONSTER: 'd', "wolf", random -MONSTER: 'd', "wolf", random -MONSTER: 'E', "stalker", random +MONSTER: 'd', random +MONSTER: ('d', "wolf"), random +MONSTER: ('d', "wolf"), random +MONSTER: ('d', "wolf"), random +MONSTER: ('d', "wolf"), random +MONSTER: ('d', "wolf"), random +MONSTER: ('E', "stalker"), random # TRAP: random, random TRAP: random, random @@ -403,24 +405,24 @@ DOOR:closed,(43,08) STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'd', random, random -MONSTER: 'd', "wolf", random -MONSTER: 'd', "wolf", random -MONSTER: 'd', "wolf", random -MONSTER: 'd', "wolf", random -MONSTER: 'E', "stalker", random -MONSTER: 'E', "stalker", random -MONSTER: 'E', "stalker", random +MONSTER: 'd', random +MONSTER: ('d', "wolf"), random +MONSTER: ('d', "wolf"), random +MONSTER: ('d', "wolf"), random +MONSTER: ('d', "wolf"), random +MONSTER: ('E', "stalker"), random +MONSTER: ('E', "stalker"), random +MONSTER: ('E', "stalker"), random # TRAP: random, random TRAP: random, random diff --git a/dat/Tourist.des b/dat/Tourist.des index e9b1658e9..4f814dc34 100644 --- a/dat/Tourist.des +++ b/dat/Tourist.des @@ -72,54 +72,54 @@ DOOR:open,(16,17) DOOR:locked,(35,07) DOOR:locked,(36,07) # Monsters on siege duty. -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',"giant spider",random -MONSTER: 's',random,random -MONSTER: 's',random,random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',"forest centaur",random -MONSTER: 'C',random,random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: ('s',"giant spider"),random +MONSTER: 's',random +MONSTER: 's',random +MONSTER: ('C',"forest centaur"),random +MONSTER: ('C',"forest centaur"),random +MONSTER: ('C',"forest centaur"),random +MONSTER: ('C',"forest centaur"),random +MONSTER: ('C',"forest centaur"),random +MONSTER: ('C',"forest centaur"),random +MONSTER: ('C',"forest centaur"),random +MONSTER: ('C',"forest centaur"),random +MONSTER: 'C',random # Twoflower -MONSTER:'@',"Twoflower",(64,03) +MONSTER:('@',"Twoflower"),(64,03) # The treasure of Twoflower -OBJECT:'(',"chest",(64,03) +OBJECT:('(',"chest"),(64,03) # guides for the audience chamber -MONSTER:'@',"guide",(29,03) -MONSTER:'@',"guide",(32,04) -MONSTER:'@',"guide",(35,02) -MONSTER:'@',"guide",(38,03) -MONSTER:'@',"guide",(45,03) -MONSTER:'@',"guide",(48,02) -MONSTER:'@',"guide",(49,04) -MONSTER:'@',"guide",(51,03) -MONSTER:'@',"guide",(57,03) -MONSTER:'@',"guide",(62,04) -MONSTER:'@',"guide",(66,04) +MONSTER:('@',"guide"),(29,03) +MONSTER:('@',"guide"),(32,04) +MONSTER:('@',"guide"),(35,02) +MONSTER:('@',"guide"),(38,03) +MONSTER:('@',"guide"),(45,03) +MONSTER:('@',"guide"),(48,02) +MONSTER:('@',"guide"),(49,04) +MONSTER:('@',"guide"),(51,03) +MONSTER:('@',"guide"),(57,03) +MONSTER:('@',"guide"),(62,04) +MONSTER:('@',"guide"),(66,04) # path guards -MONSTER:'@',"watchman",(35,08) -MONSTER:'@',"watchman",(36,08) +MONSTER:('@',"watchman"),(35,08) +MONSTER:('@',"watchman"),(36,08) # river monsters -MONSTER:';',"giant eel",(62,12) -MONSTER:';',"piranha",(47,10) -MONSTER:';',"piranha",(29,11) -MONSTER:';',"kraken",(34,09) -MONSTER:';',"kraken",(37,09) +MONSTER:(';',"giant eel"),(62,12) +MONSTER:(';',"piranha"),(47,10) +MONSTER:(';',"piranha"),(29,11) +MONSTER:(';',"kraken"),(34,09) +MONSTER:(';',"kraken"),(37,09) # Random traps TRAP:random,random TRAP:random,random @@ -244,23 +244,23 @@ DOOR:closed,(60,16) DOOR:closed,(73,16) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Toilet paper -OBJECT:'?',"blank paper",(71,12) -OBJECT:'?',"blank paper",(71,12) +OBJECT:('?',"blank paper"),(71,12) +OBJECT:('?',"blank paper"),(71,12) # Random traps TRAP:random,random TRAP:random,random @@ -272,24 +272,24 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',random,random -MONSTER:'s',random,random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:'s',random +MONSTER:'s',random # # The "goal" level for the quest. @@ -386,21 +386,21 @@ DOOR:random,(51,15) DOOR:open,(59,14) DOOR:open,(59,17) # Objects -OBJECT:'(',"credit card",(04,01),blessed,0,"The Platinum Yendorian Express Card" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('(',"credit card"),(04,01),blessed,0,name:"The Platinum Yendorian Express Card" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -409,47 +409,47 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'@',"Master of Thieves",(04,01),hostile -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',"giant spider",random -MONSTER:'s',random,random -MONSTER:'s',random,random +MONSTER:('@',"Master of Thieves"),(04,01),hostile +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:('s',"giant spider"),random +MONSTER:'s',random +MONSTER:'s',random # ladies of the evening -MONSTER:'&',"succubus",(02,08) -MONSTER:'&',"succubus",(08,08) -MONSTER:'&',"incubus",(02,14) -MONSTER:'&',"incubus",(08,14) -MONSTER:'&',"incubus",(02,17) -MONSTER:'&',"incubus",(08,17) +MONSTER:('&',"succubus"),(02,08) +MONSTER:('&',"succubus"),(08,08) +MONSTER:('&',"incubus"),(02,14) +MONSTER:('&',"incubus"),(08,14) +MONSTER:('&',"incubus"),(02,17) +MONSTER:('&',"incubus"),(08,17) # Police station (with drunken prisoners) -MONSTER:'K',"Kop Kaptain",(24,09),hostile -MONSTER:'K',"Kop Lieutenant",(20,09),hostile -MONSTER:'K',"Kop Lieutenant",(22,11),hostile -MONSTER:'K',"Kop Lieutenant",(22,07),hostile -MONSTER:'K',"Keystone Kop",(19,07),hostile -MONSTER:'K',"Keystone Kop",(19,08),hostile -MONSTER:'K',"Keystone Kop",(22,09),hostile -MONSTER:'K',"Keystone Kop",(24,11),hostile -MONSTER:'K',"Keystone Kop",(19,11),hostile -MONSTER:'@',"prisoner",(19,13) -MONSTER:'@',"prisoner",(21,13) -MONSTER:'@',"prisoner",(24,13) +MONSTER:('K',"Kop Kaptain"),(24,09),hostile +MONSTER:('K',"Kop Lieutenant"),(20,09),hostile +MONSTER:('K',"Kop Lieutenant"),(22,11),hostile +MONSTER:('K',"Kop Lieutenant"),(22,07),hostile +MONSTER:('K',"Keystone Kop"),(19,07),hostile +MONSTER:('K',"Keystone Kop"),(19,08),hostile +MONSTER:('K',"Keystone Kop"),(22,09),hostile +MONSTER:('K',"Keystone Kop"),(24,11),hostile +MONSTER:('K',"Keystone Kop"),(19,11),hostile +MONSTER:('@',"prisoner"),(19,13) +MONSTER:('@',"prisoner"),(21,13) +MONSTER:('@',"prisoner"),(24,13) # -MONSTER:'@',"watchman",(33,10),hostile +MONSTER:('@',"watchman"),(33,10),hostile WALLIFY @@ -461,61 +461,61 @@ WALLIFY # MAZE: "Tou-fila" , ' ' -INIT_MAP: '.' , ' ', true, true, random, true +INIT_MAP: mines, '.' , ' ', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: '@', "soldier", random, hostile -MONSTER: '@', "soldier", random, hostile -MONSTER: '@', "soldier", random, hostile -MONSTER: '@', "soldier", random, hostile -MONSTER: '@', "soldier", random, hostile -MONSTER: 'H', random, random, hostile -MONSTER: 'C', random, random, hostile +MONSTER: ('@', "soldier"), random, hostile +MONSTER: ('@', "soldier"), random, hostile +MONSTER: ('@', "soldier"), random, hostile +MONSTER: ('@', "soldier"), random, hostile +MONSTER: ('@', "soldier"), random, hostile +MONSTER: 'H', random, hostile +MONSTER: 'C', random, hostile MAZE: "Tou-filb" , ' ' -INIT_MAP: '.' , ' ', true, true, random, true +INIT_MAP: mines, '.' , ' ', true, true, random, true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # TRAP: random, random TRAP: random, random TRAP: random, random TRAP: random, random # -MONSTER: '@', "soldier", random, hostile -MONSTER: '@', "captain", random, hostile -MONSTER: '@', "captain", random, hostile -MONSTER: 'H', random, random, hostile -MONSTER: 'H', random, random, hostile -MONSTER: 'C', random, random, hostile -MONSTER: 's', random, random +MONSTER: ('@', "soldier"), random, hostile +MONSTER: ('@', "captain"), random, hostile +MONSTER: ('@', "captain"), random, hostile +MONSTER: 'H', random, hostile +MONSTER: 'H', random, hostile +MONSTER: 'C', random, hostile +MONSTER: 's', random diff --git a/dat/Valkyrie.des b/dat/Valkyrie.des index 04c401bde..520a0f8ba 100644 --- a/dat/Valkyrie.des +++ b/dat/Valkyrie.des @@ -12,7 +12,6 @@ # MAZE: "Val-strt",' ' FLAGS: noteleport,hardfloor -INIT_MAP: '.', 'I', true, true, lit, false, true GEOMETRY:center,center MAP IIIIIIPPPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII @@ -48,18 +47,18 @@ FOUNTAIN:(53,02) DOOR:locked,(26,10) DOOR:locked,(43,10) # Norn -MONSTER:'@',"Norn",(35,10) +MONSTER:('@',"Norn"),(35,10) # The treasure of the Norn -OBJECT:'(',"chest",(36,10) +OBJECT:('(',"chest"),(36,10) # valkyrie guards for the audience chamber -MONSTER:'@',"warrior",(27,08) -MONSTER:'@',"warrior",(27,09) -MONSTER:'@',"warrior",(27,11) -MONSTER:'@',"warrior",(27,12) -MONSTER:'@',"warrior",(42,08) -MONSTER:'@',"warrior",(42,09) -MONSTER:'@',"warrior",(42,11) -MONSTER:'@',"warrior",(42,12) +MONSTER:('@',"warrior"),(27,08) +MONSTER:('@',"warrior"),(27,09) +MONSTER:('@',"warrior"),(27,11) +MONSTER:('@',"warrior"),(27,12) +MONSTER:('@',"warrior"),(42,08) +MONSTER:('@',"warrior"),(42,09) +MONSTER:('@',"warrior"),(42,11) +MONSTER:('@',"warrior"),(42,12) # Non diggable walls NON_DIGGABLE:(26,07,43,13) # Random traps @@ -70,18 +69,18 @@ TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random # Monsters on siege duty. -MONSTER: 'a',"fire ant",(04,12) -MONSTER: 'a',"fire ant",(08,08) -MONSTER: 'a',"fire ant",(14,04) -MONSTER: 'a',"fire ant",(17,11) -MONSTER: 'a',"fire ant",(24,10) -MONSTER: 'a',"fire ant",(45,10) -MONSTER: 'a',"fire ant",(54,02) -MONSTER: 'a',"fire ant",(55,07) -MONSTER: 'a',"fire ant",(58,14) -MONSTER: 'a',"fire ant",(63,17) -MONSTER: 'H',"fire giant",(18,01),hostile -MONSTER: 'H',"fire giant",(10,16),hostile +MONSTER: ('a',"fire ant"),(04,12) +MONSTER: ('a',"fire ant"),(08,08) +MONSTER: ('a',"fire ant"),(14,04) +MONSTER: ('a',"fire ant"),(17,11) +MONSTER: ('a',"fire ant"),(24,10) +MONSTER: ('a',"fire ant"),(45,10) +MONSTER: ('a',"fire ant"),(54,02) +MONSTER: ('a',"fire ant"),(55,07) +MONSTER: ('a',"fire ant"),(58,14) +MONSTER: ('a',"fire ant"),(63,17) +MONSTER: ('H',"fire giant"),(18,01),hostile +MONSTER: ('H',"fire giant"),(10,16),hostile # # The "locate" level for the quest. @@ -92,7 +91,7 @@ MONSTER: 'H',"fire giant",(10,16),hostile MAZE: "Val-loca",' ' FLAGS: hardfloor -INIT_MAP: '.', 'I', true, true, lit, false, true +INIT_MAP: mines, '.', 'I', true, true, lit, false GEOMETRY:center,center MAP PPPP.... ....PPPPP. @@ -117,21 +116,21 @@ STAIR:(20,06),down # Non diggable walls NON_DIGGABLE:(00,00,39,12) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:"fire",random TRAP:"fire",random @@ -140,33 +139,33 @@ TRAP:"fire",random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',random,random -MONSTER:'H',random,random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',random,random,hostile +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:'a',random +MONSTER:'H',random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:'H',random,hostile # # The "goal" level for the quest. @@ -177,7 +176,7 @@ MONSTER:'H',random,random,hostile # MAZE: "Val-goal", 'L' -INIT_MAP: '.', 'L', true, true, lit, false, true +INIT_MAP: mines, '.', 'L', true, true, lit, false GEOMETRY:center,center MAP .L............................LLLLL @@ -209,21 +208,21 @@ NON_DIGGABLE:(00,00,34,16) DRAWBRIDGE:(17,02),south,random DRAWBRIDGE:(17,14),north,open # Objects -OBJECT:'(',"crystal ball",(17,08),blessed,5,"The Orb of Fate" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('(',"crystal ball"),(17,08),blessed,5,name:"The Orb of Fate" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Traps TRAP:"board",(13,08) TRAP:"board",(21,08) @@ -236,26 +235,26 @@ TRAP:"board",random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'H',"Lord Surtur",(17,08) -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',"fire ant",random -MONSTER:'a',random,random -MONSTER:'a',random,random -MONSTER:'H',"fire giant",(10,06),hostile -MONSTER:'H',"fire giant",(10,07),hostile -MONSTER:'H',"fire giant",(10,08),hostile -MONSTER:'H',"fire giant",(10,09),hostile -MONSTER:'H',"fire giant",(10,10),hostile -MONSTER:'H',"fire giant",(24,06),hostile -MONSTER:'H',"fire giant",(24,07),hostile -MONSTER:'H',"fire giant",(24,08),hostile -MONSTER:'H',"fire giant",(24,09),hostile -MONSTER:'H',"fire giant",(24,10),hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',"fire giant",random,hostile -MONSTER:'H',random,random,hostile +MONSTER:('H',"Lord Surtur"),(17,08) +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:('a',"fire ant"),random +MONSTER:'a',random +MONSTER:'a',random +MONSTER:('H',"fire giant"),(10,06),hostile +MONSTER:('H',"fire giant"),(10,07),hostile +MONSTER:('H',"fire giant"),(10,08),hostile +MONSTER:('H',"fire giant"),(10,09),hostile +MONSTER:('H',"fire giant"),(10,10),hostile +MONSTER:('H',"fire giant"),(24,06),hostile +MONSTER:('H',"fire giant"),(24,07),hostile +MONSTER:('H',"fire giant"),(24,08),hostile +MONSTER:('H',"fire giant"),(24,09),hostile +MONSTER:('H',"fire giant"),(24,10),hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:('H',"fire giant"),random,hostile +MONSTER:'H',random,hostile # # The "fill" levels for the quest. @@ -267,29 +266,29 @@ MONSTER:'H',random,random,hostile # MAZE: "Val-fila" , 'I' -INIT_MAP: '.', 'I', true, true, lit, false, true +INIT_MAP: mines, '.', 'I', true, true, lit, false NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'a', "fire ant", random -MONSTER: 'a', "fire ant", random -MONSTER: 'a', "fire ant", random -MONSTER: 'a', "fire ant", random -MONSTER: 'a', "fire ant", random -MONSTER: 'a', random, random -MONSTER: 'H', "fire giant", random, hostile +MONSTER: ('a', "fire ant"), random +MONSTER: ('a', "fire ant"), random +MONSTER: ('a', "fire ant"), random +MONSTER: ('a', "fire ant"), random +MONSTER: ('a', "fire ant"), random +MONSTER: 'a', random +MONSTER: ('H', "fire giant"), random, hostile # TRAP: random, random TRAP: random, random @@ -300,31 +299,31 @@ TRAP: random, random TRAP: random, random MAZE: "Val-filb" , 'L' -INIT_MAP: '.', 'L', true, true, lit, false, true +INIT_MAP: mines, '.', 'L', true, true, lit, false NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'a', "fire ant", random -MONSTER: 'a', "fire ant", random -MONSTER: 'a', "fire ant", random -MONSTER: 'a', random, random -MONSTER: 'H', "fire giant", random, hostile -MONSTER: 'H', "fire giant", random, hostile -MONSTER: 'H', "fire giant", random, hostile +MONSTER: ('a', "fire ant"), random +MONSTER: ('a', "fire ant"), random +MONSTER: ('a', "fire ant"), random +MONSTER: 'a', random +MONSTER: ('H', "fire giant"), random, hostile +MONSTER: ('H', "fire giant"), random, hostile +MONSTER: ('H', "fire giant"), random, hostile # TRAP: "fire", random TRAP: "fire", random diff --git a/dat/Wizard.des b/dat/Wizard.des index dae831ed4..d70be72d6 100644 --- a/dat/Wizard.des +++ b/dat/Wizard.des @@ -38,7 +38,7 @@ ENDMAP REGION:(00,00,75,19),lit,"ordinary" REGION:(35,00,49,03),unlit,"ordinary" REGION:(43,12,49,16),unlit,"ordinary" -REGION:(19,11,33,15),unlit,"ordinary",unfilled,true +REGION:(19,11,33,15),unlit,"ordinary",unfilled,irregular REGION:(30,10,31,10),unlit,"ordinary" # Stairs STAIR:(30,10),down @@ -54,22 +54,22 @@ DOOR:closed,(15,10) DOOR:locked,(19,10) DOOR:locked,(20,10) # Neferet the Green, the quest leader -MONSTER:'@',"Neferet the Green",(23,05) +MONSTER:('@',"Neferet the Green"),(23,05) # The treasure of the quest leader -OBJECT:'(',"chest",(24,05) +OBJECT:('(',"chest"),(24,05) # apprentice guards for the audience chamber -MONSTER:'@',"apprentice",(30,07) -MONSTER:'@',"apprentice",(24,06) -MONSTER:'@',"apprentice",(15,06) -MONSTER:'@',"apprentice",(15,12) -MONSTER:'@',"apprentice",(26,11) -MONSTER:'@',"apprentice",(27,11) -MONSTER:'@',"apprentice",(19,09) -MONSTER:'@',"apprentice",(20,09) +MONSTER:('@',"apprentice"),(30,07) +MONSTER:('@',"apprentice"),(24,06) +MONSTER:('@',"apprentice"),(15,06) +MONSTER:('@',"apprentice"),(15,12) +MONSTER:('@',"apprentice"),(26,11) +MONSTER:('@',"apprentice"),(27,11) +MONSTER:('@',"apprentice"),(19,09) +MONSTER:('@',"apprentice"),(20,09) # Eels in the pond -MONSTER:';',"giant eel",(62,14) -MONSTER:';',"giant eel",(69,15) -MONSTER:';',"giant eel",(67,17) +MONSTER:(';',"giant eel"),(62,14) +MONSTER:(';',"giant eel"),(69,15) +MONSTER:(';',"giant eel"),(67,17) # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Random traps @@ -80,21 +80,21 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters on siege duty. -MONSTER: 'B',random,(60,09),hostile -MONSTER: 'W',random,(60,10),hostile -MONSTER: 'B',random,(60,11),hostile -MONSTER: 'B',random,(60,12),hostile -MONSTER: 'i',random,(60,13),hostile -MONSTER: 'B',random,(61,10),hostile -MONSTER: 'B',random,(61,11),hostile -MONSTER: 'B',random,(61,12),hostile -MONSTER: 'B',random,(35,03),hostile -MONSTER: 'i',random,(35,17),hostile -MONSTER: 'B',random,(36,17),hostile -MONSTER: 'B',random,(34,16),hostile -MONSTER: 'i',random,(34,17),hostile -MONSTER: 'W',random,(67,02),hostile -MONSTER: 'B',random,(10,19),hostile +MONSTER: 'B',(60,09),hostile +MONSTER: 'W',(60,10),hostile +MONSTER: 'B',(60,11),hostile +MONSTER: 'B',(60,12),hostile +MONSTER: 'i',(60,13),hostile +MONSTER: 'B',(61,10),hostile +MONSTER: 'B',(61,11),hostile +MONSTER: 'B',(61,12),hostile +MONSTER: 'B',(35,03),hostile +MONSTER: 'i',(35,17),hostile +MONSTER: 'B',(36,17),hostile +MONSTER: 'B',(34,16),hostile +MONSTER: 'i',(34,17),hostile +MONSTER: 'W',(67,02),hostile +MONSTER: 'B',(10,19),hostile # # The "locate" level for the quest. @@ -153,21 +153,21 @@ STAIR:(48,10),down # Non diggable walls NON_DIGGABLE:(00,00,75,20) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:"spiked pit",(24,02) TRAP:"spiked pit",(07,10) @@ -191,33 +191,33 @@ TRAP:"dart",random TRAP:"dart",random TRAP:"dart",random # Random monsters. -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'i',random,random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:'i',random,hostile # # The "goal" level for the quest. @@ -293,21 +293,21 @@ NON_DIGGABLE:(00,00,75,19) # The altar. This is not a shrine. ALTAR:(16,11),noncoaligned,altar # Objects -OBJECT:'"',"amulet of ESP",(16,11),blessed,0,"The Eye of the Aethiopica" -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('"',"amulet of ESP"),(16,11),blessed,0,name:"The Eye of the Aethiopica" +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -316,43 +316,43 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'@',"Dark One",(16,11) -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'B',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'i',random,random,hostile -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'i',random,random,hostile +MONSTER:('@',"Dark One"),(16,11) +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'B',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:'i',random,hostile +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:'i',random,hostile # Captive Monsters in the dungeon -MONSTER:'@',"rogue",(35,06),peaceful,"Pug" -MONSTER:'Y',"owlbear",(47,06),peaceful,asleep -MONSTER:'@',"wizard",(32,11),peaceful,asleep,"Newt" -MONSTER:'@',"Grey-elf",(44,11),peaceful -MONSTER:'H',"hill giant",(47,11),peaceful,asleep -MONSTER:'G',"gnomish wizard",(38,06),peaceful -MONSTER:'@',"prisoner",(35,11),peaceful -MONSTER:'@',"prisoner",(41,11),peaceful,asleep +MONSTER:('@',"rogue"),(35,06),peaceful,"Pug" +MONSTER:('Y',"owlbear"),(47,06),peaceful,asleep +MONSTER:('@',"wizard"),(32,11),peaceful,asleep,"Newt" +MONSTER:('@',"Grey-elf"),(44,11),peaceful +MONSTER:('H',"hill giant"),(47,11),peaceful,asleep +MONSTER:('G',"gnomish wizard"),(38,06),peaceful +MONSTER:('@',"prisoner"),(35,11),peaceful +MONSTER:('@',"prisoner"),(41,11),peaceful,asleep # # The "fill" levels for the quest. @@ -365,77 +365,89 @@ MONSTER:'@',"prisoner",(41,11),peaceful,asleep LEVEL: "Wiz-fila" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'i', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: 'i', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'i', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: 'i', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'B', "vampire bat", random -MONSTER: 'B', "vampire bat", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: ('B', "vampire bat"), random + MONSTER: ('B', "vampire bat"), random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'i', random, random, hostile -MONSTER: 'B', "vampire bat", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + MONSTER: 'i', random, hostile + MONSTER: ('B', "vampire bat"), random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'i', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: 'i', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'B', "vampire bat", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: ('B', "vampire bat"), random +} RANDOM_CORRIDORS LEVEL: "Wiz-filb" # -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random -MONSTER: 'X', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random + MONSTER: 'X', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random,random,random -MONSTER: 'i', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random,random + MONSTER: 'i', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -OBJECT: random,random,random -MONSTER: 'X', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + OBJECT: random,random + MONSTER: 'X', random, hostile +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'i', random, random, hostile -MONSTER: 'B', "vampire bat", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + MONSTER: 'i', random, hostile + MONSTER: ('B', "vampire bat"), random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'i', random, random, hostile +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + TRAP: random, random + MONSTER: 'i', random, hostile +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: 'B', "vampire bat", random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: ('B', "vampire bat"), random +} RANDOM_CORRIDORS diff --git a/dat/bigroom.des b/dat/bigroom.des index 00ea47f32..a902cfc3a 100644 --- a/dat/bigroom.des +++ b/dat/bigroom.des @@ -38,21 +38,21 @@ STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -61,34 +61,34 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random # Here, just play with the lighting... @@ -130,21 +130,21 @@ STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -153,34 +153,34 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random # Now, let's get fancy... @@ -214,21 +214,21 @@ STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -237,34 +237,34 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:random,random,(01,01) -MONSTER:random,random,(13,01) -MONSTER:random,random,(25,01) -MONSTER:random,random,(37,01) -MONSTER:random,random,(49,01) -MONSTER:random,random,(61,01) -MONSTER:random,random,(73,01) -MONSTER:random,random,(07,07) -MONSTER:random,random,(13,07) -MONSTER:random,random,(25,07) -MONSTER:random,random,(37,07) -MONSTER:random,random,(49,07) -MONSTER:random,random,(61,07) -MONSTER:random,random,(67,07) -MONSTER:random,random,(07,09) -MONSTER:random,random,(13,09) -MONSTER:random,random,(25,09) -MONSTER:random,random,(37,09) -MONSTER:random,random,(49,09) -MONSTER:random,random,(61,09) -MONSTER:random,random,(67,09) -MONSTER:random,random,(01,16) -MONSTER:random,random,(13,16) -MONSTER:random,random,(25,16) -MONSTER:random,random,(37,16) -MONSTER:random,random,(49,16) -MONSTER:random,random,(61,16) -MONSTER:random,random,(73,16) +MONSTER:random,(01,01) +MONSTER:random,(13,01) +MONSTER:random,(25,01) +MONSTER:random,(37,01) +MONSTER:random,(49,01) +MONSTER:random,(61,01) +MONSTER:random,(73,01) +MONSTER:random,(07,07) +MONSTER:random,(13,07) +MONSTER:random,(25,07) +MONSTER:random,(37,07) +MONSTER:random,(49,07) +MONSTER:random,(61,07) +MONSTER:random,(67,07) +MONSTER:random,(07,09) +MONSTER:random,(13,09) +MONSTER:random,(25,09) +MONSTER:random,(37,09) +MONSTER:random,(49,09) +MONSTER:random,(61,09) +MONSTER:random,(67,09) +MONSTER:random,(01,16) +MONSTER:random,(13,16) +MONSTER:random,(25,16) +MONSTER:random,(37,16) +MONSTER:random,(49,16) +MONSTER:random,(61,16) +MONSTER:random,(73,16) MAZE:"bigrm-4",' ' GEOMETRY:center,center MAP @@ -300,21 +300,21 @@ FOUNTAIN:(05,15) FOUNTAIN:(69,02) FOUNTAIN:(69,15) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -323,34 +323,34 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random # Try an oval room... @@ -385,21 +385,21 @@ STAIR:random,down # Non diggable walls NON_DIGGABLE:(00,00,72,18) # Objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -408,31 +408,31 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random diff --git a/dat/castle.des b/dat/castle.des index 1dd4fda78..17f5e9f5c 100644 --- a/dat/castle.des +++ b/dat/castle.des @@ -42,9 +42,15 @@ MAP ENDMAP # Random registers initialisation -RANDOM_OBJECTS:'[',')','*','%' -RANDOM_PLACES:(04,02),(58,02),(04,14),(58,14) -RANDOM_MONSTERS:'L','N','E','H','M','O','R','T','X','Z' +$object = object: { '[',')','*','%' } +SHUFFLE: $object + +$place = { (04,02),(58,02),(04,14),(58,14) } +SHUFFLE: $place + +$monster = monster: { 'L','N','E','H','M','O','R','T','X','Z' } +SHUFFLE: $monster + TELEPORT_REGION:levregion(01,00,10,20),(1,1,61,15),down TELEPORT_REGION:levregion(69,00,79,20),(1,1,61,15),up @@ -72,72 +78,73 @@ DOOR:closed,(55,13) # The drawbridge DRAWBRIDGE:(05,08),east,closed # Storeroom number 1 -OBJECT:object[0],random,(39,05) -OBJECT:object[0],random,(40,05) -OBJECT:object[0],random,(41,05) -OBJECT:object[0],random,(42,05) -OBJECT:object[0],random,(43,05) -OBJECT:object[0],random,(44,05) -OBJECT:object[0],random,(45,05) -OBJECT:object[0],random,(39,06) -OBJECT:object[0],random,(40,06) -OBJECT:object[0],random,(41,06) -OBJECT:object[0],random,(42,06) -OBJECT:object[0],random,(43,06) -OBJECT:object[0],random,(44,06) -OBJECT:object[0],random,(45,06) +OBJECT:$object[0],(39,05) +OBJECT:$object[0],(40,05) +OBJECT:$object[0],(41,05) +OBJECT:$object[0],(42,05) +OBJECT:$object[0],(43,05) +OBJECT:$object[0],(44,05) +OBJECT:$object[0],(45,05) +OBJECT:$object[0],(39,06) +OBJECT:$object[0],(40,06) +OBJECT:$object[0],(41,06) +OBJECT:$object[0],(42,06) +OBJECT:$object[0],(43,06) +OBJECT:$object[0],(44,06) +OBJECT:$object[0],(45,06) # Storeroom number 2 -OBJECT:object[1],random,(49,05) -OBJECT:object[1],random,(50,05) -OBJECT:object[1],random,(51,05) -OBJECT:object[1],random,(52,05) -OBJECT:object[1],random,(53,05) -OBJECT:object[1],random,(54,05) -OBJECT:object[1],random,(55,05) -OBJECT:object[1],random,(49,06) -OBJECT:object[1],random,(50,06) -OBJECT:object[1],random,(51,06) -OBJECT:object[1],random,(52,06) -OBJECT:object[1],random,(53,06) -OBJECT:object[1],random,(54,06) -OBJECT:object[1],random,(55,06) +OBJECT:$object[1],(49,05) +OBJECT:$object[1],(50,05) +OBJECT:$object[1],(51,05) +OBJECT:$object[1],(52,05) +OBJECT:$object[1],(53,05) +OBJECT:$object[1],(54,05) +OBJECT:$object[1],(55,05) +OBJECT:$object[1],(49,06) +OBJECT:$object[1],(50,06) +OBJECT:$object[1],(51,06) +OBJECT:$object[1],(52,06) +OBJECT:$object[1],(53,06) +OBJECT:$object[1],(54,06) +OBJECT:$object[1],(55,06) # Storeroom number 3 -OBJECT:object[2],random,(39,10) -OBJECT:object[2],random,(40,10) -OBJECT:object[2],random,(41,10) -OBJECT:object[2],random,(42,10) -OBJECT:object[2],random,(43,10) -OBJECT:object[2],random,(44,10) -OBJECT:object[2],random,(45,10) -OBJECT:object[2],random,(39,11) -OBJECT:object[2],random,(40,11) -OBJECT:object[2],random,(41,11) -OBJECT:object[2],random,(42,11) -OBJECT:object[2],random,(43,11) -OBJECT:object[2],random,(44,11) -OBJECT:object[2],random,(45,11) +OBJECT:$object[2],(39,10) +OBJECT:$object[2],(40,10) +OBJECT:$object[2],(41,10) +OBJECT:$object[2],(42,10) +OBJECT:$object[2],(43,10) +OBJECT:$object[2],(44,10) +OBJECT:$object[2],(45,10) +OBJECT:$object[2],(39,11) +OBJECT:$object[2],(40,11) +OBJECT:$object[2],(41,11) +OBJECT:$object[2],(42,11) +OBJECT:$object[2],(43,11) +OBJECT:$object[2],(44,11) +OBJECT:$object[2],(45,11) # Storeroom number 4 -OBJECT:object[3],random,(49,10) -OBJECT:object[3],random,(50,10) -OBJECT:object[3],random,(51,10) -OBJECT:object[3],random,(52,10) -OBJECT:object[3],random,(53,10) -OBJECT:object[3],random,(54,10) -OBJECT:object[3],random,(55,10) -OBJECT:object[3],random,(49,11) -OBJECT:object[3],random,(50,11) -OBJECT:object[3],random,(51,11) -OBJECT:object[3],random,(52,11) -OBJECT:object[3],random,(53,11) -OBJECT:object[3],random,(54,11) -OBJECT:object[3],random,(55,11) +OBJECT:$object[3],(49,10) +OBJECT:$object[3],(50,10) +OBJECT:$object[3],(51,10) +OBJECT:$object[3],(52,10) +OBJECT:$object[3],(53,10) +OBJECT:$object[3],(54,10) +OBJECT:$object[3],(55,10) +OBJECT:$object[3],(49,11) +OBJECT:$object[3],(50,11) +OBJECT:$object[3],(51,11) +OBJECT:$object[3],(52,11) +OBJECT:$object[3],(53,11) +OBJECT:$object[3],(54,11) +OBJECT:$object[3],(55,11) # THE WAND OF WISHING in 1 of the 4 towers -CONTAINER:'(',"chest",place[0] -OBJECT:'/',"wishing",contained +CONTAINER:('(',"chest"),$place[0] { +OBJECT:('/',"wishing") +} # Prevent monsters from eating it. (@'s never eat objects) -ENGRAVING:place[0],burn,"Elbereth" +ENGRAVING:$place[0],burn,"Elbereth" # The treasure of the lord -OBJECT:'(',"chest",(37,08) +OBJECT:('(',"chest"),(37,08) # Traps TRAP:"trap door",(40,08) TRAP:"trap door",(44,08) @@ -145,66 +152,66 @@ TRAP:"trap door",(48,08) TRAP:"trap door",(52,08) TRAP:"trap door",(55,08) # Soldiers guarding the entry hall -MONSTER:'@',"soldier",(08,06) -MONSTER:'@',"soldier",(09,05) -MONSTER:'@',"soldier",(11,05) -MONSTER:'@',"soldier",(12,06) -MONSTER:'@',"soldier",(08,10) -MONSTER:'@',"soldier",(09,11) -MONSTER:'@',"soldier",(11,11) -MONSTER:'@',"soldier",(12,10) -MONSTER:'@',"lieutenant",(09,08) +MONSTER:('@',"soldier"),(08,06) +MONSTER:('@',"soldier"),(09,05) +MONSTER:('@',"soldier"),(11,05) +MONSTER:('@',"soldier"),(12,06) +MONSTER:('@',"soldier"),(08,10) +MONSTER:('@',"soldier"),(09,11) +MONSTER:('@',"soldier"),(11,11) +MONSTER:('@',"soldier"),(12,10) +MONSTER:('@',"lieutenant"),(09,08) # Soldiers guarding the towers -MONSTER:'@',"soldier",(03,02) -MONSTER:'@',"soldier",(05,02) -MONSTER:'@',"soldier",(57,02) -MONSTER:'@',"soldier",(59,02) -MONSTER:'@',"soldier",(03,14) -MONSTER:'@',"soldier",(05,14) -MONSTER:'@',"soldier",(57,14) -MONSTER:'@',"soldier",(59,14) +MONSTER:('@',"soldier"),(03,02) +MONSTER:('@',"soldier"),(05,02) +MONSTER:('@',"soldier"),(57,02) +MONSTER:('@',"soldier"),(59,02) +MONSTER:('@',"soldier"),(03,14) +MONSTER:('@',"soldier"),(05,14) +MONSTER:('@',"soldier"),(57,14) +MONSTER:('@',"soldier"),(59,14) # The four dragons that are guarding the storerooms -MONSTER:'D',random,(47,05) -MONSTER:'D',random,(47,06) -MONSTER:'D',random,(47,10) -MONSTER:'D',random,(47,11) +MONSTER:'D',(47,05) +MONSTER:'D',(47,06) +MONSTER:'D',(47,10) +MONSTER:'D',(47,11) # Sea monsters in the moat -MONSTER:';',"giant eel",(05,07) -MONSTER:';',"giant eel",(05,09) -MONSTER:';',"giant eel",(57,07) -MONSTER:';',"giant eel",(57,09) -MONSTER:';',"shark",(05,00) -MONSTER:';',"shark",(05,16) -MONSTER:';',"shark",(57,00) -MONSTER:';',"shark",(57,16) +MONSTER:(';',"giant eel"),(05,07) +MONSTER:(';',"giant eel"),(05,09) +MONSTER:(';',"giant eel"),(57,07) +MONSTER:(';',"giant eel"),(57,09) +MONSTER:(';',"shark"),(05,00) +MONSTER:(';',"shark"),(05,16) +MONSTER:(';',"shark"),(57,00) +MONSTER:(';',"shark"),(57,16) # The throne room and the court monsters -MONSTER:monster[0],random,(27,05) -MONSTER:monster[1],random,(30,05) -MONSTER:monster[2],random,(33,05) -MONSTER:monster[3],random,(36,05) -MONSTER:monster[4],random,(28,06) -MONSTER:monster[5],random,(31,06) -MONSTER:monster[6],random,(34,06) -MONSTER:monster[7],random,(37,06) -MONSTER:monster[8],random,(27,07) -MONSTER:monster[9],random,(30,07) -MONSTER:monster[0],random,(33,07) -MONSTER:monster[1],random,(36,07) -MONSTER:monster[2],random,(28,08) -MONSTER:monster[3],random,(31,08) -MONSTER:monster[4],random,(34,08) -MONSTER:monster[5],random,(27,09) -MONSTER:monster[6],random,(30,09) -MONSTER:monster[7],random,(33,09) -MONSTER:monster[8],random,(36,09) -MONSTER:monster[9],random,(28,10) -MONSTER:monster[0],random,(31,10) -MONSTER:monster[1],random,(34,10) -MONSTER:monster[2],random,(37,10) -MONSTER:monster[3],random,(27,11) -MONSTER:monster[4],random,(30,11) -MONSTER:monster[5],random,(33,11) -MONSTER:monster[6],random,(36,11) +MONSTER:$monster[0],(27,05) +MONSTER:$monster[1],(30,05) +MONSTER:$monster[2],(33,05) +MONSTER:$monster[3],(36,05) +MONSTER:$monster[4],(28,06) +MONSTER:$monster[5],(31,06) +MONSTER:$monster[6],(34,06) +MONSTER:$monster[7],(37,06) +MONSTER:$monster[8],(27,07) +MONSTER:$monster[9],(30,07) +MONSTER:$monster[0],(33,07) +MONSTER:$monster[1],(36,07) +MONSTER:$monster[2],(28,08) +MONSTER:$monster[3],(31,08) +MONSTER:$monster[4],(34,08) +MONSTER:$monster[5],(27,09) +MONSTER:$monster[6],(30,09) +MONSTER:$monster[7],(33,09) +MONSTER:$monster[8],(36,09) +MONSTER:$monster[9],(28,10) +MONSTER:$monster[0],(31,10) +MONSTER:$monster[1],(34,10) +MONSTER:$monster[2],(37,10) +MONSTER:$monster[3],(27,11) +MONSTER:$monster[4],(30,11) +MONSTER:$monster[5],(33,11) +MONSTER:$monster[6],(36,11) # MazeWalks MAZEWALK:(00,10),west MAZEWALK:(62,06),east diff --git a/dat/endgame.des b/dat/endgame.des index 4758ff518..68c113b07 100644 --- a/dat/endgame.des +++ b/dat/endgame.des @@ -51,79 +51,79 @@ PORTAL:(0,0,75,19),(65,13,75,19),"air" # Some helpful monsters. Making sure a # pick axe and at least one wand of digging # are available. -MONSTER:'@',"Elvenking",(67,16) -MONSTER:'H',"minotaur",(67,14) +MONSTER:('@',"Elvenking"),(67,16) +MONSTER:('H',"minotaur"),(67,14) # An assortment of earth-appropriate nasties # in each cavern. -MONSTER:'E',"earth elemental",(52,13),hostile -MONSTER:'E',"earth elemental",(53,13),hostile -MONSTER:'T',"rock troll",(53,12) -MONSTER:'H',"stone giant",(54,12) +MONSTER:('E',"earth elemental"),(52,13),hostile +MONSTER:('E',"earth elemental"),(53,13),hostile +MONSTER:('T',"rock troll"),(53,12) +MONSTER:('H',"stone giant"),(54,12) # -MONSTER:'S',"pit viper",(70,05) -MONSTER:'&',"barbed devil",(69,06) -MONSTER:'H',"stone giant",(69,08) -MONSTER:''',"stone golem",(71,08) -MONSTER:'&',"pit fiend",(70,09) -MONSTER:'E',"earth elemental",(70,08),hostile +MONSTER:('S',"pit viper"),(70,05) +MONSTER:('&',"barbed devil"),(69,06) +MONSTER:('H',"stone giant"),(69,08) +MONSTER:(''',"stone golem"),(71,08) +MONSTER:('&',"pit fiend"),(70,09) +MONSTER:('E',"earth elemental"),(70,08),hostile # -MONSTER:'E',"earth elemental",(60,03),hostile -MONSTER:'H',"stone giant",(61,04) -MONSTER:'E',"earth elemental",(62,04),hostile -MONSTER:'E',"earth elemental",(61,05),hostile -MONSTER:'s',"scorpion",(62,05) -MONSTER:'p',"rock piercer",(63,05) +MONSTER:('E',"earth elemental"),(60,03),hostile +MONSTER:('H',"stone giant"),(61,04) +MONSTER:('E',"earth elemental"),(62,04),hostile +MONSTER:('E',"earth elemental"),(61,05),hostile +MONSTER:('s',"scorpion"),(62,05) +MONSTER:('p',"rock piercer"),(63,05) # -MONSTER:'U',"umber hulk",(40,05) -MONSTER:'v',"dust vortex",(42,05) -MONSTER:'T',"rock troll",(38,06) -MONSTER:'E',"earth elemental",(39,06),hostile -MONSTER:'E',"earth elemental",(41,06),hostile -MONSTER:'E',"earth elemental",(38,07),hostile -MONSTER:'H',"stone giant",(39,07) -MONSTER:'E',"earth elemental",(43,07),hostile -MONSTER:''',"stone golem",(37,08) -MONSTER:'S',"pit viper",(43,08) -MONSTER:'S',"pit viper",(43,09) -MONSTER:'T',"rock troll",(44,10) +MONSTER:('U',"umber hulk"),(40,05) +MONSTER:('v',"dust vortex"),(42,05) +MONSTER:('T',"rock troll"),(38,06) +MONSTER:('E',"earth elemental"),(39,06),hostile +MONSTER:('E',"earth elemental"),(41,06),hostile +MONSTER:('E',"earth elemental"),(38,07),hostile +MONSTER:('H',"stone giant"),(39,07) +MONSTER:('E',"earth elemental"),(43,07),hostile +MONSTER:(''',"stone golem"),(37,08) +MONSTER:('S',"pit viper"),(43,08) +MONSTER:('S',"pit viper"),(43,09) +MONSTER:('T',"rock troll"),(44,10) # -MONSTER:'E',"earth elemental",(02,01),hostile -MONSTER:'E',"earth elemental",(03,01),hostile -MONSTER:''',"stone golem",(01,02) -MONSTER:'E',"earth elemental",(02,02),hostile -MONSTER:'T',"rock troll",(04,03) -MONSTER:'T',"rock troll",(03,03) -MONSTER:'&',"pit fiend",(03,04) -MONSTER:'E',"earth elemental",(04,05),hostile -MONSTER:'S',"pit viper",(05,06) +MONSTER:('E',"earth elemental"),(02,01),hostile +MONSTER:('E',"earth elemental"),(03,01),hostile +MONSTER:(''',"stone golem"),(01,02) +MONSTER:('E',"earth elemental"),(02,02),hostile +MONSTER:('T',"rock troll"),(04,03) +MONSTER:('T',"rock troll"),(03,03) +MONSTER:('&',"pit fiend"),(03,04) +MONSTER:('E',"earth elemental"),(04,05),hostile +MONSTER:('S',"pit viper"),(05,06) # -MONSTER:'E',"earth elemental",(21,02),hostile -MONSTER:'E',"earth elemental",(21,03),hostile -MONSTER:'H',"minotaur",(21,04) -MONSTER:'E',"earth elemental",(21,05),hostile -MONSTER:'T',"rock troll",(22,05) -MONSTER:'E',"earth elemental",(22,06),hostile -MONSTER:'E',"earth elemental",(23,06),hostile +MONSTER:('E',"earth elemental"),(21,02),hostile +MONSTER:('E',"earth elemental"),(21,03),hostile +MONSTER:('H',"minotaur"),(21,04) +MONSTER:('E',"earth elemental"),(21,05),hostile +MONSTER:('T',"rock troll"),(22,05) +MONSTER:('E',"earth elemental"),(22,06),hostile +MONSTER:('E',"earth elemental"),(23,06),hostile # -MONSTER:'S',"pit viper",(14,08) -MONSTER:'&',"barbed devil",(14,09) -MONSTER:'E',"earth elemental",(13,10),hostile -MONSTER:'T',"rock troll",(12,11) -MONSTER:'E',"earth elemental",(14,12),hostile -MONSTER:'E',"earth elemental",(15,13),hostile -MONSTER:'H',"stone giant",(17,13) -MONSTER:''',"stone golem",(18,13) -MONSTER:'&',"pit fiend",(18,12) -MONSTER:'E',"earth elemental",(18,11),hostile -MONSTER:'E',"earth elemental",(18,10),hostile +MONSTER:('S',"pit viper"),(14,08) +MONSTER:('&',"barbed devil"),(14,09) +MONSTER:('E',"earth elemental"),(13,10),hostile +MONSTER:('T',"rock troll"),(12,11) +MONSTER:('E',"earth elemental"),(14,12),hostile +MONSTER:('E',"earth elemental"),(15,13),hostile +MONSTER:('H',"stone giant"),(17,13) +MONSTER:(''',"stone golem"),(18,13) +MONSTER:('&',"pit fiend"),(18,12) +MONSTER:('E',"earth elemental"),(18,11),hostile +MONSTER:('E',"earth elemental"),(18,10),hostile # -MONSTER:'&',"barbed devil",(02,16) -MONSTER:'E',"earth elemental",(03,16),hostile -MONSTER:'T',"rock troll",(02,17) -MONSTER:'E',"earth elemental",(04,17),hostile -MONSTER:'E',"earth elemental",(04,18),hostile +MONSTER:('&',"barbed devil"),(02,16) +MONSTER:('E',"earth elemental"),(03,16),hostile +MONSTER:('T',"rock troll"),(02,17) +MONSTER:('E',"earth elemental"),(04,17),hostile +MONSTER:('E',"earth elemental"),(04,18),hostile -OBJECT:'`',"boulder",random +OBJECT:('`',"boulder"),random MAZE:"air",' ' @@ -168,63 +168,63 @@ TELEPORT_REGION:levregion(01,00,24,20),levregion(25,00,79,20),up TELEPORT_REGION:levregion(56,00,79,20),levregion(01,00,55,20),down PORTAL:levregion(57,01,78,19),(0,0,0,0),"fire" REGION:(00,00,75,19),lit,"ordinary" -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile -MONSTER:'E',"air elemental",random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile +MONSTER:('E',"air elemental"),random,hostile -MONSTER:'e',"floating eye",random,hostile -MONSTER:'e',"floating eye",random,hostile -MONSTER:'e',"floating eye",random,hostile +MONSTER:('e',"floating eye"),random,hostile +MONSTER:('e',"floating eye"),random,hostile +MONSTER:('e',"floating eye"),random,hostile -MONSTER:'y',"yellow light",random,hostile -MONSTER:'y',"yellow light",random,hostile -MONSTER:'y',"yellow light",random,hostile +MONSTER:('y',"yellow light"),random,hostile +MONSTER:('y',"yellow light"),random,hostile +MONSTER:('y',"yellow light"),random,hostile -MONSTER:'A',"couatl",random +MONSTER:('A',"couatl"),random -MONSTER:'D',random,random -MONSTER:'D',random,random -MONSTER:'D',random,random -MONSTER:'D',random,random -MONSTER:'D',random,random +MONSTER:'D',random +MONSTER:'D',random +MONSTER:'D',random +MONSTER:'D',random +MONSTER:'D',random -MONSTER:'E',random,random -MONSTER:'E',random,random -MONSTER:'E',random,random -MONSTER:'J',random,random -MONSTER:'J',random,random +MONSTER:'E',random +MONSTER:'E',random +MONSTER:'E',random +MONSTER:'J',random +MONSTER:'J',random -MONSTER:'&',"djinni",random,hostile -MONSTER:'&',"djinni",random,hostile -MONSTER:'&',"djinni",random,hostile +MONSTER:('&',"djinni"),random,hostile +MONSTER:('&',"djinni"),random,hostile +MONSTER:('&',"djinni"),random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"fog cloud",random,hostile -MONSTER:'v',"energy vortex",random,hostile -MONSTER:'v',"energy vortex",random,hostile -MONSTER:'v',"energy vortex",random,hostile -MONSTER:'v',"energy vortex",random,hostile -MONSTER:'v',"energy vortex",random,hostile -MONSTER:'v',"steam vortex",random,hostile -MONSTER:'v',"steam vortex",random,hostile -MONSTER:'v',"steam vortex",random,hostile -MONSTER:'v',"steam vortex",random,hostile -MONSTER:'v',"steam vortex",random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"fog cloud"),random,hostile +MONSTER:('v',"energy vortex"),random,hostile +MONSTER:('v',"energy vortex"),random,hostile +MONSTER:('v',"energy vortex"),random,hostile +MONSTER:('v',"energy vortex"),random,hostile +MONSTER:('v',"energy vortex"),random,hostile +MONSTER:('v',"steam vortex"),random,hostile +MONSTER:('v',"steam vortex"),random,hostile +MONSTER:('v',"steam vortex"),random,hostile +MONSTER:('v',"steam vortex"),random,hostile +MONSTER:('v',"steam vortex"),random,hostile MAZE:"fire",' ' @@ -301,81 +301,81 @@ TRAP:"fire",random TRAP:"fire",random TRAP:"fire",random # An assortment of fire-appropriate nasties -MONSTER:'D',"red dragon",random -MONSTER:'&',"balrog",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'v',"fire vortex",random -MONSTER:'d',"hell hound",random +MONSTER:('D',"red dragon"),random +MONSTER:('&',"balrog"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('v',"fire vortex"),random +MONSTER:('d',"hell hound"),random # -MONSTER:'H',"fire giant",random -MONSTER:'&',"barbed devil",random -MONSTER:'d',"hell hound",random -MONSTER:''',"stone golem",random -MONSTER:'&',"pit fiend",random -MONSTER:'E',"fire elemental",random,hostile +MONSTER:('H',"fire giant"),random +MONSTER:('&',"barbed devil"),random +MONSTER:('d',"hell hound"),random +MONSTER:(''',"stone golem"),random +MONSTER:('&',"pit fiend"),random +MONSTER:('E',"fire elemental"),random,hostile # -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'d',"hell hound",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'s',"scorpion",random -MONSTER:'H',"fire giant",random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('d',"hell hound"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('s',"scorpion"),random +MONSTER:('H',"fire giant"),random # -MONSTER:'d',"hell hound",random -MONSTER:'v',"dust vortex",random -MONSTER:'v',"fire vortex",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'d',"hell hound",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:''',"stone golem",random -MONSTER:'S',"pit viper",random -MONSTER:'S',"pit viper",random -MONSTER:'v',"fire vortex",random +MONSTER:('d',"hell hound"),random +MONSTER:('v',"dust vortex"),random +MONSTER:('v',"fire vortex"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('d',"hell hound"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:(''',"stone golem"),random +MONSTER:('S',"pit viper"),random +MONSTER:('S',"pit viper"),random +MONSTER:('v',"fire vortex"),random # -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'H',"fire giant",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'v',"fire vortex",random -MONSTER:'v',"fire vortex",random -MONSTER:'&',"pit fiend",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'S',"pit viper",random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('H',"fire giant"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('v',"fire vortex"),random +MONSTER:('v',"fire vortex"),random +MONSTER:('&',"pit fiend"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('S',"pit viper"),random # -MONSTER:':',"salamander",random,hostile -MONSTER:':',"salamander",random,hostile -MONSTER:'H',"minotaur",random -MONSTER:':',"salamander",random,hostile -MONSTER:'v',"steam vortex",random -MONSTER:':',"salamander",random,hostile -MONSTER:':',"salamander",random,hostile +MONSTER:(':',"salamander"),random,hostile +MONSTER:(':',"salamander"),random,hostile +MONSTER:('H',"minotaur"),random +MONSTER:(':',"salamander"),random,hostile +MONSTER:('v',"steam vortex"),random +MONSTER:(':',"salamander"),random,hostile +MONSTER:(':',"salamander"),random,hostile # -MONSTER:'H',"fire giant",random -MONSTER:'&',"barbed devil",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'v',"fire vortex",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'d',"hell hound",random -MONSTER:'H',"fire giant",random -MONSTER:'&',"pit fiend",random -MONSTER:'E',"fire elemental",random,hostile -MONSTER:'E',"fire elemental",random,hostile +MONSTER:('H',"fire giant"),random +MONSTER:('&',"barbed devil"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('v',"fire vortex"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('d',"hell hound"),random +MONSTER:('H',"fire giant"),random +MONSTER:('&',"pit fiend"),random +MONSTER:('E',"fire elemental"),random,hostile +MONSTER:('E',"fire elemental"),random,hostile # -MONSTER:'&',"barbed devil",random -MONSTER:':',"salamander",random,hostile -MONSTER:'v',"steam vortex",random -MONSTER:':',"salamander",random,hostile -MONSTER:':',"salamander",random,hostile +MONSTER:('&',"barbed devil"),random +MONSTER:(':',"salamander"),random,hostile +MONSTER:('v',"steam vortex"),random +MONSTER:(':',"salamander"),random,hostile +MONSTER:(':',"salamander"),random,hostile -OBJECT:'`',"boulder",random -OBJECT:'`',"boulder",random -OBJECT:'`',"boulder",random -OBJECT:'`',"boulder",random -OBJECT:'`',"boulder",random +OBJECT:('`',"boulder"),random +OBJECT:('`',"boulder"),random +OBJECT:('`',"boulder"),random +OBJECT:('`',"boulder"),random +OBJECT:('`',"boulder"),random MAZE:"water",' ' @@ -412,67 +412,67 @@ ENDMAP TELEPORT_REGION:(0,0,25,19),(0,0,0,0) PORTAL:(51,0,75,19),(0,0,0,0),"astral" # A fisherman's dream... -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"giant eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"electric eel",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"kraken",random -MONSTER:';',"shark",random -MONSTER:';',"shark",random -MONSTER:';',"shark",random -MONSTER:';',"shark",random -MONSTER:';',"piranha",random -MONSTER:';',"piranha",random -MONSTER:';',"piranha",random -MONSTER:';',"piranha",random -MONSTER:';',"jellyfish",random -MONSTER:';',"jellyfish",random -MONSTER:';',"jellyfish",random -MONSTER:';',"jellyfish",random -MONSTER:';',random,random -MONSTER:';',random,random -MONSTER:';',random,random -MONSTER:';',random,random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"giant eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"electric eel"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"kraken"),random +MONSTER:(';',"shark"),random +MONSTER:(';',"shark"),random +MONSTER:(';',"shark"),random +MONSTER:(';',"shark"),random +MONSTER:(';',"piranha"),random +MONSTER:(';',"piranha"),random +MONSTER:(';',"piranha"),random +MONSTER:(';',"piranha"),random +MONSTER:(';',"jellyfish"),random +MONSTER:(';',"jellyfish"),random +MONSTER:(';',"jellyfish"),random +MONSTER:(';',"jellyfish"),random +MONSTER:';',random +MONSTER:';',random +MONSTER:';',random +MONSTER:';',random # These guys feel like home here -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile -MONSTER:'E',"water elemental",random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile +MONSTER:('E',"water elemental"),random,hostile MAZE:"astral",' ' @@ -504,13 +504,15 @@ MAP ----------------- ENDMAP # Rider locations -RANDOM_PLACES:(23,9),(37,14),(51,9) +$place = { (23,9),(37,14),(51,9) } +SHUFFLE: $place + # Where the player will land on arrival TELEPORT_REGION:(29,15,45,15),(30,15,44,15) # Lit courts -REGION:(01,05,16,14),lit,"ordinary",filled,true -REGION:(31,01,44,10),lit,"ordinary",filled,true -REGION:(61,05,74,14),lit,"ordinary",filled,true +REGION:(01,05,16,14),lit,"ordinary",filled,irregular +REGION:(31,01,44,10),lit,"ordinary",filled,irregular +REGION:(61,05,74,14),lit,"ordinary",filled,irregular # A Sanctum for each alignment # The shrines' alignments are shuffled for # each game @@ -535,29 +537,29 @@ NON_DIGGABLE:(00,00,74,19) NON_PASSWALL:(00,00,74,19) # Moloch's horde # West round room -MONSTER:'@',"aligned priest",(18,09),noalign,hostile -MONSTER:'@',"aligned priest",(19,08),noalign,hostile -MONSTER:'@',"aligned priest",(19,09),noalign,hostile -MONSTER:'@',"aligned priest",(19,10),noalign,hostile -MONSTER:'A',"Angel",(20,09),noalign,hostile -MONSTER:'A',"Angel",(20,10),noalign,hostile -MONSTER:'&',"Pestilence",place[0],hostile +MONSTER:('@',"aligned priest"),(18,09),noalign,hostile +MONSTER:('@',"aligned priest"),(19,08),noalign,hostile +MONSTER:('@',"aligned priest"),(19,09),noalign,hostile +MONSTER:('@',"aligned priest"),(19,10),noalign,hostile +MONSTER:('A',"Angel"),(20,09),noalign,hostile +MONSTER:('A',"Angel"),(20,10),noalign,hostile +MONSTER:('&',"Pestilence"),$place[0],hostile # South-central round room -MONSTER:'@',"aligned priest",(36,12),noalign,hostile -MONSTER:'@',"aligned priest",(37,12),noalign,hostile -MONSTER:'@',"aligned priest",(38,12),noalign,hostile -MONSTER:'@',"aligned priest",(36,13),noalign,hostile -MONSTER:'A',"Angel",(38,13),noalign,hostile -MONSTER:'A',"Angel",(37,13),noalign,hostile -MONSTER:'&',"Death",place[1],hostile +MONSTER:('@',"aligned priest"),(36,12),noalign,hostile +MONSTER:('@',"aligned priest"),(37,12),noalign,hostile +MONSTER:('@',"aligned priest"),(38,12),noalign,hostile +MONSTER:('@',"aligned priest"),(36,13),noalign,hostile +MONSTER:('A',"Angel"),(38,13),noalign,hostile +MONSTER:('A',"Angel"),(37,13),noalign,hostile +MONSTER:('&',"Death"),$place[1],hostile # East round room -MONSTER:'@',"aligned priest",(56,09),noalign,hostile -MONSTER:'@',"aligned priest",(55,08),noalign,hostile -MONSTER:'@',"aligned priest",(55,09),noalign,hostile -MONSTER:'@',"aligned priest",(55,10),noalign,hostile -MONSTER:'A',"Angel",(54,09),noalign,hostile -MONSTER:'A',"Angel",(54,10),noalign,hostile -MONSTER:'&',"Famine",place[2],hostile +MONSTER:('@',"aligned priest"),(56,09),noalign,hostile +MONSTER:('@',"aligned priest"),(55,08),noalign,hostile +MONSTER:('@',"aligned priest"),(55,09),noalign,hostile +MONSTER:('@',"aligned priest"),(55,10),noalign,hostile +MONSTER:('A',"Angel"),(54,09),noalign,hostile +MONSTER:('A',"Angel"),(54,10),noalign,hostile +MONSTER:('&',"Famine"),$place[2],hostile # # The aligned horde # @@ -567,52 +569,52 @@ MONSTER:'&',"Famine",place[2],hostile # but a place holder. # # West court -MONSTER:'@',"aligned priest",(12,07),chaos,hostile -MONSTER:'@',"aligned priest",(13,07),chaos,peaceful -MONSTER:'@',"aligned priest",(14,07),law,hostile -MONSTER:'@',"aligned priest",(12,11),law,peaceful -MONSTER:'@',"aligned priest",(13,11),neutral,hostile -MONSTER:'@',"aligned priest",(14,11),neutral,peaceful -MONSTER:'A',"Angel",(11,05),chaos,hostile -MONSTER:'A',"Angel",(12,05),chaos,peaceful -MONSTER:'A',"Angel",(13,05),law,hostile -MONSTER:'A',"Angel",(11,13),law,peaceful -MONSTER:'A',"Angel",(12,13),neutral,hostile -MONSTER:'A',"Angel",(13,13),neutral,peaceful +MONSTER:('@',"aligned priest"),(12,07),chaos,hostile +MONSTER:('@',"aligned priest"),(13,07),chaos,peaceful +MONSTER:('@',"aligned priest"),(14,07),law,hostile +MONSTER:('@',"aligned priest"),(12,11),law,peaceful +MONSTER:('@',"aligned priest"),(13,11),neutral,hostile +MONSTER:('@',"aligned priest"),(14,11),neutral,peaceful +MONSTER:('A',"Angel"),(11,05),chaos,hostile +MONSTER:('A',"Angel"),(12,05),chaos,peaceful +MONSTER:('A',"Angel"),(13,05),law,hostile +MONSTER:('A',"Angel"),(11,13),law,peaceful +MONSTER:('A',"Angel"),(12,13),neutral,hostile +MONSTER:('A',"Angel"),(13,13),neutral,peaceful # Central court -MONSTER:'@',"aligned priest",(32,09),chaos,hostile -MONSTER:'@',"aligned priest",(33,09),chaos,peaceful -MONSTER:'@',"aligned priest",(34,09),law,hostile -MONSTER:'@',"aligned priest",(40,09),law,peaceful -MONSTER:'@',"aligned priest",(41,09),neutral,hostile -MONSTER:'@',"aligned priest",(42,09),neutral,peaceful -MONSTER:'A',"Angel",(31,08),chaos,hostile -MONSTER:'A',"Angel",(32,08),chaos,peaceful -MONSTER:'A',"Angel",(31,09),law,hostile -MONSTER:'A',"Angel",(42,08),law,peaceful -MONSTER:'A',"Angel",(43,08),neutral,hostile -MONSTER:'A',"Angel",(43,09),neutral,peaceful +MONSTER:('@',"aligned priest"),(32,09),chaos,hostile +MONSTER:('@',"aligned priest"),(33,09),chaos,peaceful +MONSTER:('@',"aligned priest"),(34,09),law,hostile +MONSTER:('@',"aligned priest"),(40,09),law,peaceful +MONSTER:('@',"aligned priest"),(41,09),neutral,hostile +MONSTER:('@',"aligned priest"),(42,09),neutral,peaceful +MONSTER:('A',"Angel"),(31,08),chaos,hostile +MONSTER:('A',"Angel"),(32,08),chaos,peaceful +MONSTER:('A',"Angel"),(31,09),law,hostile +MONSTER:('A',"Angel"),(42,08),law,peaceful +MONSTER:('A',"Angel"),(43,08),neutral,hostile +MONSTER:('A',"Angel"),(43,09),neutral,peaceful # East court -MONSTER:'@',"aligned priest",(60,07),chaos,hostile -MONSTER:'@',"aligned priest",(61,07),chaos,peaceful -MONSTER:'@',"aligned priest",(62,07),law,hostile -MONSTER:'@',"aligned priest",(60,11),law,peaceful -MONSTER:'@',"aligned priest",(61,11),neutral,hostile -MONSTER:'@',"aligned priest",(62,11),neutral,peaceful -MONSTER:'A',"Angel",(61,05),chaos,hostile -MONSTER:'A',"Angel",(62,05),chaos,peaceful -MONSTER:'A',"Angel",(63,05),law,hostile -MONSTER:'A',"Angel",(61,13),law,peaceful -MONSTER:'A',"Angel",(62,13),neutral,hostile -MONSTER:'A',"Angel",(63,13),neutral,peaceful +MONSTER:('@',"aligned priest"),(60,07),chaos,hostile +MONSTER:('@',"aligned priest"),(61,07),chaos,peaceful +MONSTER:('@',"aligned priest"),(62,07),law,hostile +MONSTER:('@',"aligned priest"),(60,11),law,peaceful +MONSTER:('@',"aligned priest"),(61,11),neutral,hostile +MONSTER:('@',"aligned priest"),(62,11),neutral,peaceful +MONSTER:('A',"Angel"),(61,05),chaos,hostile +MONSTER:('A',"Angel"),(62,05),chaos,peaceful +MONSTER:('A',"Angel"),(63,05),law,hostile +MONSTER:('A',"Angel"),(61,13),law,peaceful +MONSTER:('A',"Angel"),(62,13),neutral,hostile +MONSTER:('A',"Angel"),(63,13),neutral,peaceful # # Assorted nasties -MONSTER:'L',random,random,hostile -MONSTER:'L',random,random,hostile -MONSTER:'L',random,random,hostile -MONSTER:'V',random,random,hostile -MONSTER:'V',random,random,hostile -MONSTER:'V',random,random,hostile -MONSTER:'D',random,random,hostile -MONSTER:'D',random,random,hostile -MONSTER:'D',random,random,hostile +MONSTER:'L',random,hostile +MONSTER:'L',random,hostile +MONSTER:'L',random,hostile +MONSTER:'V',random,hostile +MONSTER:'V',random,hostile +MONSTER:'V',random,hostile +MONSTER:'D',random,hostile +MONSTER:'D',random,hostile +MONSTER:'D',random,hostile diff --git a/dat/gehennom.des b/dat/gehennom.des index daba7f532..7ae2a9df4 100644 --- a/dat/gehennom.des +++ b/dat/gehennom.des @@ -35,9 +35,9 @@ ENDMAP # The shrine to Moloch. REGION:(01,06,05,14),lit,"temple" # The Morgues -REGION:(19,01,24,08),unlit,"morgue",filled,true -REGION:(09,14,16,18),unlit,"morgue",filled,true -REGION:(37,09,43,14),unlit,"morgue",filled,true +REGION:(19,01,24,08),unlit,"morgue",filled,irregular +REGION:(09,14,16,18),unlit,"morgue",filled,irregular +REGION:(37,09,43,14),unlit,"morgue",filled,irregular # Stairs STAIR:(01,01),down # Branch location @@ -60,60 +60,60 @@ NON_DIGGABLE:(00,00,75,19) # note: no priest(esse)s or monks - maybe Moloch has a *special* # fate reserved for members of *those* classes. # -OBJECT:'%',"corpse",random,"archeologist",0 -OBJECT:'%',"corpse",random,"archeologist",0 -OBJECT:'%',"corpse",random,"barbarian",0 -OBJECT:'%',"corpse",random,"barbarian",0 -OBJECT:'%',"corpse",random,"caveman",0 -OBJECT:'%',"corpse",random,"cavewoman",0 -OBJECT:'%',"corpse",random,"healer",0 -OBJECT:'%',"corpse",random,"healer",0 -OBJECT:'%',"corpse",random,"knight",0 -OBJECT:'%',"corpse",random,"knight",0 -OBJECT:'%',"corpse",random,"ranger",0 -OBJECT:'%',"corpse",random,"ranger",0 -OBJECT:'%',"corpse",random,"rogue",0 -OBJECT:'%',"corpse",random,"rogue",0 -OBJECT:'%',"corpse",random,"samurai",0 -OBJECT:'%',"corpse",random,"samurai",0 -OBJECT:'%',"corpse",random,"tourist",0 -OBJECT:'%',"corpse",random,"tourist",0 -OBJECT:'%',"corpse",random,"valkyrie",0 -OBJECT:'%',"corpse",random,"valkyrie",0 -OBJECT:'%',"corpse",random,"wizard",0 -OBJECT:'%',"corpse",random,"wizard",0 +OBJECT:('%',"corpse"),random,montype:"archeologist" +OBJECT:('%',"corpse"),random,montype:"archeologist" +OBJECT:('%',"corpse"),random,montype:"barbarian" +OBJECT:('%',"corpse"),random,montype:"barbarian" +OBJECT:('%',"corpse"),random,montype:"caveman" +OBJECT:('%',"corpse"),random,montype:"cavewoman" +OBJECT:('%',"corpse"),random,montype:"healer" +OBJECT:('%',"corpse"),random,montype:"healer" +OBJECT:('%',"corpse"),random,montype:"knight" +OBJECT:('%',"corpse"),random,montype:"knight" +OBJECT:('%',"corpse"),random,montype:"ranger" +OBJECT:('%',"corpse"),random,montype:"ranger" +OBJECT:('%',"corpse"),random,montype:"rogue" +OBJECT:('%',"corpse"),random,montype:"rogue" +OBJECT:('%',"corpse"),random,montype:"samurai" +OBJECT:('%',"corpse"),random,montype:"samurai" +OBJECT:('%',"corpse"),random,montype:"tourist" +OBJECT:('%',"corpse"),random,montype:"tourist" +OBJECT:('%',"corpse"),random,montype:"valkyrie" +OBJECT:('%',"corpse"),random,montype:"valkyrie" +OBJECT:('%',"corpse"),random,montype:"wizard" +OBJECT:('%',"corpse"),random,montype:"wizard" # # Some random weapons and armor. # -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:')',random,random -OBJECT:')',random,random -OBJECT:')',random,random -OBJECT:')',random,random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:')',random +OBJECT:')',random +OBJECT:')',random +OBJECT:')',random # # Some random loot. # -OBJECT:'*',"ruby",random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'/',random,random -OBJECT:'/',random,random -OBJECT:'=',random,random -OBJECT:'=',random,random -OBJECT:'+',random,random -OBJECT:'+',random,random -OBJECT:'(',random,random -OBJECT:'(',random,random -OBJECT:'(',random,random +OBJECT:('*',"ruby"),random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'/',random +OBJECT:'/',random +OBJECT:'=',random +OBJECT:'=',random +OBJECT:'+',random +OBJECT:'+',random +OBJECT:'(',random +OBJECT:'(',random +OBJECT:'(',random # (Not so) Random traps. TRAP:"spiked pit", (05,02) @@ -130,36 +130,36 @@ TRAP:"magic", random # Random monsters. # The ghosts. -MONSTER:' ',"ghost",random -MONSTER:' ',"ghost",random -MONSTER:' ',"ghost",random -MONSTER:' ',"ghost",random -MONSTER:' ',"ghost",random -MONSTER:' ',"ghost",random +MONSTER:(' ',"ghost"),random +MONSTER:(' ',"ghost"),random +MONSTER:(' ',"ghost"),random +MONSTER:(' ',"ghost"),random +MONSTER:(' ',"ghost"),random +MONSTER:(' ',"ghost"),random # Add a few bats for atmosphere. -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random -MONSTER:'B',"vampire bat",random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random +MONSTER:('B',"vampire bat"),random # And a lich for good measure. -MONSTER:'L',random,random +MONSTER:'L',random # Some undead nasties for good measure -MONSTER:'V',random,random -MONSTER:'V',random,random -MONSTER:'V',random,random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'M',random,random -MONSTER:'M',random,random -MONSTER:'M',random,random -MONSTER:'M',random,random +MONSTER:'V',random +MONSTER:'V',random +MONSTER:'V',random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:'M',random +MONSTER:'M',random +MONSTER:'M',random +MONSTER:'M',random # # The Juiblex level # MAZE:"juiblex",' ' FLAGS:noteleport,shortsighted -INIT_MAP:'.','}',true,true,unlit,false +INIT_MAP:mines,'.','}',true,true,unlit,false # guarantee at least one open spot to ensure successful stair placement GEOMETRY:left,bottom MAP @@ -169,7 +169,7 @@ MAP }}}}.}}} }}}}}}}} ENDMAP -OBJECT:'`',"boulder",random +OBJECT:('`',"boulder"),random GEOMETRY:right,top MAP }}}}}}}} @@ -178,7 +178,7 @@ MAP }}...}}} }}}}}}}} ENDMAP -OBJECT:'`',"boulder",random +OBJECT:('`',"boulder"),random # lair GEOMETRY:center,center MAP @@ -202,8 +202,12 @@ MAP ..}}}}}.}}}}}.}}}}}.}}}}}.}}}}}.}}}}}.}}}}}.}}}}}.. ENDMAP # Random registers -RANDOM_MONSTERS:'j','b','P','F' -RANDOM_PLACES:(04,02),(46,02),(04,15),(46,15) +$monster = monster: { 'j','b','P','F' } +SHUFFLE: $monster + +$place = { (04,02),(46,02),(04,15),(46,15) } +SHUFFLE: $place + # Dungeon description REGION:(00,00,50,17),unlit,"swamp" MAZEWALK:(00,09),west @@ -213,57 +217,57 @@ STAIR:levregion(69,00,79,20),(0,0,50,17),up BRANCH:levregion(01,00,11,20),(0,0,50,17) TELEPORT_REGION:levregion(01,00,11,20),(0,0,50,17),up TELEPORT_REGION:levregion(69,00,79,20),(0,0,50,17),down -FOUNTAIN:place[0] -MONSTER:'m',"giant mimic",place[1],m_feature "fountain" -MONSTER:'m',"giant mimic",place[2],m_feature "fountain" -MONSTER:'m',"giant mimic",place[3],m_feature "fountain" +FOUNTAIN:$place[0] +MONSTER:('m',"giant mimic"),$place[1],m_feature "fountain" +MONSTER:('m',"giant mimic"),$place[2],m_feature "fountain" +MONSTER:('m',"giant mimic"),$place[3],m_feature "fountain" # The demon of the swamp -MONSTER:'&',"Juiblex",(25,08) +MONSTER:('&',"Juiblex"),(25,08) # And a couple demons -MONSTER:'i',"lemure",(43,08) -MONSTER:'i',"lemure",(44,08) -MONSTER:'i',"lemure",(45,08) +MONSTER:('i',"lemure"),(43,08) +MONSTER:('i',"lemure"),(44,08) +MONSTER:('i',"lemure"),(45,08) # Some liquids and gems -OBJECT:'*',random,(43,06) -OBJECT:'*',random,(45,06) -OBJECT:'!',random,(43,09) -OBJECT:'!',random,(44,09) -OBJECT:'!',random,(45,09) +OBJECT:'*',(43,06) +OBJECT:'*',(45,06) +OBJECT:'!',(43,09) +OBJECT:'!',(44,09) +OBJECT:'!',(45,09) # And lots of blobby monsters -MONSTER:monster[0],random,(25,06) -MONSTER:monster[1],random,(24,07) -MONSTER:monster[2],random,(26,07) -MONSTER:monster[3],random,(23,08) -MONSTER:monster[3],random,(27,08) -MONSTER:monster[2],random,(24,09) -MONSTER:monster[1],random,(26,09) -MONSTER:monster[0],random,(25,10) -MONSTER:'j',random,random -MONSTER:'j',random,random -MONSTER:'j',random,random -MONSTER:'j',random,random -MONSTER:'P',random,random -MONSTER:'P',random,random -MONSTER:'P',random,random -MONSTER:'P',random,random -MONSTER:'b',random,random -MONSTER:'b',random,random -MONSTER:'b',random,random -MONSTER:'F',random,random -MONSTER:'F',random,random -MONSTER:'F',random,random -MONSTER:'m',random,random -MONSTER:'m',random,random -MONSTER:';',"jellyfish",random -MONSTER:';',"jellyfish",random +MONSTER:$monster[0],(25,06) +MONSTER:$monster[1],(24,07) +MONSTER:$monster[2],(26,07) +MONSTER:$monster[3],(23,08) +MONSTER:$monster[3],(27,08) +MONSTER:$monster[2],(24,09) +MONSTER:$monster[1],(26,09) +MONSTER:$monster[0],(25,10) +MONSTER:'j',random +MONSTER:'j',random +MONSTER:'j',random +MONSTER:'j',random +MONSTER:'P',random +MONSTER:'P',random +MONSTER:'P',random +MONSTER:'P',random +MONSTER:'b',random +MONSTER:'b',random +MONSTER:'b',random +MONSTER:'F',random +MONSTER:'F',random +MONSTER:'F',random +MONSTER:'m',random +MONSTER:'m',random +MONSTER:(';',"jellyfish"),random +MONSTER:(';',"jellyfish"),random # Some random objects -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'`',"boulder",random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:('`',"boulder"),random # Some traps TRAP:"sleep gas",random TRAP:"sleep gas",random @@ -305,30 +309,30 @@ STAIR:levregion(01,00,12,20),levregion(20,01,70,20),up BRANCH:levregion(01,00,12,20),levregion(20,01,70,20) TELEPORT_REGION:levregion(01,00,12,20),levregion(20,01,70,20) # Wall "ruins" -OBJECT:'`',"boulder",(19,02) -OBJECT:'`',"boulder",(20,02) -OBJECT:'`',"boulder",(21,02) -OBJECT:'`',"boulder",(36,02) -OBJECT:'`',"boulder",(36,03) -OBJECT:'`',"boulder",(06,04) -OBJECT:'`',"boulder",(05,05) -OBJECT:'`',"boulder",(06,05) -OBJECT:'`',"boulder",(07,05) -OBJECT:'`',"boulder",(39,05) -OBJECT:'`',"boulder",(08,08) -OBJECT:'`',"boulder",(09,08) -OBJECT:'`',"boulder",(10,08) -OBJECT:'`',"boulder",(11,08) -OBJECT:'`',"boulder",(06,10) -OBJECT:'`',"boulder",(05,11) -OBJECT:'`',"boulder",(06,11) -OBJECT:'`',"boulder",(07,11) -OBJECT:'`',"boulder",(21,11) -OBJECT:'`',"boulder",(21,12) -OBJECT:'`',"boulder",(13,13) -OBJECT:'`',"boulder",(14,13) -OBJECT:'`',"boulder",(15,13) -OBJECT:'`',"boulder",(14,14) +OBJECT:('`',"boulder"),(19,02) +OBJECT:('`',"boulder"),(20,02) +OBJECT:('`',"boulder"),(21,02) +OBJECT:('`',"boulder"),(36,02) +OBJECT:('`',"boulder"),(36,03) +OBJECT:('`',"boulder"),(06,04) +OBJECT:('`',"boulder"),(05,05) +OBJECT:('`',"boulder"),(06,05) +OBJECT:('`',"boulder"),(07,05) +OBJECT:('`',"boulder"),(39,05) +OBJECT:('`',"boulder"),(08,08) +OBJECT:('`',"boulder"),(09,08) +OBJECT:('`',"boulder"),(10,08) +OBJECT:('`',"boulder"),(11,08) +OBJECT:('`',"boulder"),(06,10) +OBJECT:('`',"boulder"),(05,11) +OBJECT:('`',"boulder"),(06,11) +OBJECT:('`',"boulder"),(07,11) +OBJECT:('`',"boulder"),(21,11) +OBJECT:('`',"boulder"),(21,12) +OBJECT:('`',"boulder"),(13,13) +OBJECT:('`',"boulder"),(14,13) +OBJECT:('`',"boulder"),(15,13) +OBJECT:('`',"boulder"),(14,14) # Doors DOOR:closed,(23,02) DOOR:open,(31,03) @@ -361,56 +365,56 @@ TRAP:"fire", random TRAP:"magic", random TRAP:"magic", random # Some random objects -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # The resident nasty -MONSTER:'&',"Orcus",(33,15) +MONSTER:('&',"Orcus"),(33,15) # And its preferred companions -MONSTER:'Z',"human zombie",(32,15) -MONSTER:' ',"shade",(32,14) -MONSTER:' ',"shade",(32,16) -MONSTER:'V',"vampire",(35,16) -MONSTER:'V',"vampire",(35,14) -MONSTER:'V',"vampire lord",(36,14) -MONSTER:'V',"vampire lord",(36,15) +MONSTER:('Z',"human zombie"),(32,15) +MONSTER:(' ',"shade"),(32,14) +MONSTER:(' ',"shade"),(32,16) +MONSTER:('V',"vampire"),(35,16) +MONSTER:('V',"vampire"),(35,14) +MONSTER:('V',"vampire lord"),(36,14) +MONSTER:('V',"vampire lord"),(36,15) # Randomly placed companions -MONSTER:'Z',"skeleton",random -MONSTER:'Z',"skeleton",random -MONSTER:'Z',"skeleton",random -MONSTER:'Z',"skeleton",random -MONSTER:'Z',"skeleton",random -MONSTER:' ',"shade",random -MONSTER:' ',"shade",random -MONSTER:' ',"shade",random -MONSTER:' ',"shade",random -MONSTER:'Z',"giant zombie",random -MONSTER:'Z',"giant zombie",random -MONSTER:'Z',"giant zombie",random -MONSTER:'Z',"ettin zombie",random -MONSTER:'Z',"ettin zombie",random -MONSTER:'Z',"ettin zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'Z',"human zombie",random -MONSTER:'V',"vampire",random -MONSTER:'V',"vampire",random -MONSTER:'V',"vampire",random -MONSTER:'V',"vampire lord",random -MONSTER:'V',"vampire lord",random +MONSTER:('Z',"skeleton"),random +MONSTER:('Z',"skeleton"),random +MONSTER:('Z',"skeleton"),random +MONSTER:('Z',"skeleton"),random +MONSTER:('Z',"skeleton"),random +MONSTER:(' ',"shade"),random +MONSTER:(' ',"shade"),random +MONSTER:(' ',"shade"),random +MONSTER:(' ',"shade"),random +MONSTER:('Z',"giant zombie"),random +MONSTER:('Z',"giant zombie"),random +MONSTER:('Z',"giant zombie"),random +MONSTER:('Z',"ettin zombie"),random +MONSTER:('Z',"ettin zombie"),random +MONSTER:('Z',"ettin zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('Z',"human zombie"),random +MONSTER:('V',"vampire"),random +MONSTER:('V',"vampire"),random +MONSTER:('V',"vampire"),random +MONSTER:('V',"vampire lord"),random +MONSTER:('V',"vampire lord"),random # A few more for the party -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random # # The Asmodeus Level # @@ -447,18 +451,18 @@ NON_DIGGABLE:(00,00,20,11) # Entire main area REGION:(01,01,20,10),unlit,"ordinary" # The fellow in residence -MONSTER:'&',"Asmodeus",(12,07) +MONSTER:('&',"Asmodeus"),(12,07) # Some random weapons and armor. -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:')',random,random -OBJECT:')',random,random -OBJECT:'*',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:')',random +OBJECT:')',random +OBJECT:'*',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random # Some traps. TRAP:"spiked pit", (05,02) TRAP:"fire", (08,06) @@ -468,13 +472,13 @@ TRAP:"fire", random TRAP:"magic", random TRAP:"magic", random # Random monsters. -MONSTER:' ',"ghost",(11,07) -MONSTER:'&',"horned devil",(10,05) -MONSTER:'L',random,random +MONSTER:(' ',"ghost"),(11,07) +MONSTER:('&',"horned devil"),(10,05) +MONSTER:'L',random # Some Vampires for good measure -MONSTER:'V',random,random -MONSTER:'V',random,random -MONSTER:'V',random,random +MONSTER:'V',random +MONSTER:'V',random +MONSTER:'V',random # Second part GEOMETRY:half-right,center MAP @@ -488,9 +492,9 @@ MAZEWALK:(32,02),east # Non diggable walls NON_DIGGABLE:(00,00,32,04) DOOR:closed,(32,02) -MONSTER:'&',random,random -MONSTER:'&',random,random -MONSTER:'&',random,random +MONSTER:'&',random +MONSTER:'&',random +MONSTER:'&',random TRAP:"anti magic", random TRAP:"fire", random TRAP:"magic", random @@ -523,18 +527,18 @@ NON_DIGGABLE:(00,00,46,12) MAZEWALK:(00,06),west STAIR:(44,06),down # The fellow in residence -MONSTER:'&',"Baalzebub",(35,06) +MONSTER:('&',"Baalzebub"),(35,06) # Some random weapons and armor. -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:')',random,random -OBJECT:')',random,random -OBJECT:'*',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:')',random +OBJECT:')',random +OBJECT:'*',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random # Some traps. TRAP:"spiked pit", random TRAP:"fire", random @@ -544,14 +548,14 @@ TRAP:"fire", random TRAP:"magic", random TRAP:"magic", random # Random monsters. -MONSTER:' ',"ghost",(37,07) -MONSTER:'&',"horned devil",(32,05) -MONSTER:'&',"barbed devil",(38,07) -MONSTER:'L',random,random +MONSTER:(' ',"ghost"),(37,07) +MONSTER:('&',"horned devil"),(32,05) +MONSTER:('&',"barbed devil"),(38,07) +MONSTER:'L',random # Some Vampires for good measure -MONSTER:'V',random,random -MONSTER:'V',random,random -MONSTER:'V',random,random +MONSTER:'V',random +MONSTER:'V',random +MONSTER:'V',random # # The Sanctum Level # @@ -582,7 +586,7 @@ MAP ENDMAP REGION:(15,07,21,10),lit,"temple" ALTAR:(18,08),noalign,sanctum -REGION:(41,06,48,11),unlit,"morgue",filled,true +REGION:(41,06,48,11),unlit,"morgue",filled,irregular # Non diggable walls NON_DIGGABLE:(00,00,75,19) # Invisible barrier separating the left & right halves of the level @@ -635,44 +639,44 @@ TRAP:"anti magic", random TRAP:"fire", random TRAP:"magic", random # Some random objects -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:'[',random,random -OBJECT:')',random,random -OBJECT:')',random,random -OBJECT:'*',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:'[',random +OBJECT:')',random +OBJECT:')',random +OBJECT:'*',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random # Some monsters. -MONSTER:'&',"horned devil",(14,12),hostile -MONSTER:'&',"barbed devil",(18,08),hostile -MONSTER:'&',"erinys",(10,04),hostile -MONSTER:'&',"marilith",(07,09),hostile -MONSTER:'&',"nalfeshnee",(27,08),hostile +MONSTER:('&',"horned devil"),(14,12),hostile +MONSTER:('&',"barbed devil"),(18,08),hostile +MONSTER:('&',"erinys"),(10,04),hostile +MONSTER:('&',"marilith"),(07,09),hostile +MONSTER:('&',"nalfeshnee"),(27,08),hostile # Moloch's horde -MONSTER:'@',"aligned priest",(20,03),noalign,hostile -MONSTER:'@',"aligned priest",(15,04),noalign,hostile -MONSTER:'@',"aligned priest",(11,05),noalign,hostile -MONSTER:'@',"aligned priest",(11,07),noalign,hostile -MONSTER:'@',"aligned priest",(11,09),noalign,hostile -MONSTER:'@',"aligned priest",(11,12),noalign,hostile -MONSTER:'@',"aligned priest",(15,13),noalign,hostile -MONSTER:'@',"aligned priest",(17,13),noalign,hostile -MONSTER:'@',"aligned priest",(21,13),noalign,hostile +MONSTER:('@',"aligned priest"),(20,03),noalign,hostile +MONSTER:('@',"aligned priest"),(15,04),noalign,hostile +MONSTER:('@',"aligned priest"),(11,05),noalign,hostile +MONSTER:('@',"aligned priest"),(11,07),noalign,hostile +MONSTER:('@',"aligned priest"),(11,09),noalign,hostile +MONSTER:('@',"aligned priest"),(11,12),noalign,hostile +MONSTER:('@',"aligned priest"),(15,13),noalign,hostile +MONSTER:('@',"aligned priest"),(17,13),noalign,hostile +MONSTER:('@',"aligned priest"),(21,13),noalign,hostile # A few nasties -MONSTER:'L',random,random -MONSTER:'L',random,random -MONSTER:'V',random,random -MONSTER:'V',random,random -MONSTER:'V',random,random +MONSTER:'L',random +MONSTER:'L',random +MONSTER:'V',random +MONSTER:'V',random +MONSTER:'V',random STAIR:(63,15),up # Teleporting to this level is allowed after the invocation creates its # entrance. Force arrival in that case to be on rightmost third of level. diff --git a/dat/knox.des b/dat/knox.des index d9d1a2d4d..f9b9b3809 100644 --- a/dat/knox.des +++ b/dat/knox.des @@ -39,7 +39,7 @@ TELEPORT_REGION:(06,16,09,17),(0,0,0,0),up TELEPORT_REGION:(06,16,09,17),(0,0,0,0),down # Throne room, with Croesus on the throne REGION:(37,08,46,11),lit,"throne" -MONSTER:'@',"Croesus",(43,10),hostile +MONSTER:('@',"Croesus"),(43,10),hostile # The Vault # Using unfilled morgue for # identification in mkmaze.c @@ -50,12 +50,12 @@ REGION:(46,06,48,06),lit,"ordinary" REGION:(19,13,21,13),lit,"ordinary" REGION:(46,13,48,13),lit,"ordinary" # A welcoming committee -REGION:(03,10,07,13),lit,"zoo",filled,true +REGION:(03,10,07,13),lit,"zoo",filled,irregular # arrival chamber; needs to be a real room to control migrating monsters, # and `unfilled' is a kludge to force an ordinary room to remain a room REGION:(06,15,09,16),unlit,"ordinary",unfilled # Barracks -REGION:(62,03,71,04),lit,"barracks",filled,true +REGION:(62,03,71,04),lit,"barracks",filled,irregular # Doors DOOR:closed,(06,14) DOOR:closed,(09,03) @@ -67,43 +67,43 @@ DOOR:open,(68,11) DOOR:closed,(63,14) DOOR:closed,(66,14) # Soldiers guarding the fort -MONSTER:'@',"soldier",(12,14) -MONSTER:'@',"soldier",(12,13) -MONSTER:'@',"soldier",(11,10) -MONSTER:'@',"soldier",(13,02) -MONSTER:'@',"soldier",(14,03) -MONSTER:'@',"soldier",(20,02) -MONSTER:'@',"soldier",(30,02) -MONSTER:'@',"soldier",(40,02) -MONSTER:'@',"soldier",(30,16) -MONSTER:'@',"soldier",(32,16) -MONSTER:'@',"soldier",(40,16) -MONSTER:'@',"soldier",(54,16) -MONSTER:'@',"soldier",(54,14) -MONSTER:'@',"soldier",(54,13) -MONSTER:'@',"soldier",(57,10) -MONSTER:'@',"soldier",(57,09) -MONSTER:'@',"lieutenant",(15,08) +MONSTER:('@',"soldier"),(12,14) +MONSTER:('@',"soldier"),(12,13) +MONSTER:('@',"soldier"),(11,10) +MONSTER:('@',"soldier"),(13,02) +MONSTER:('@',"soldier"),(14,03) +MONSTER:('@',"soldier"),(20,02) +MONSTER:('@',"soldier"),(30,02) +MONSTER:('@',"soldier"),(40,02) +MONSTER:('@',"soldier"),(30,16) +MONSTER:('@',"soldier"),(32,16) +MONSTER:('@',"soldier"),(40,16) +MONSTER:('@',"soldier"),(54,16) +MONSTER:('@',"soldier"),(54,14) +MONSTER:('@',"soldier"),(54,13) +MONSTER:('@',"soldier"),(57,10) +MONSTER:('@',"soldier"),(57,09) +MONSTER:('@',"lieutenant"),(15,08) # Four dragons guarding each side -MONSTER:'D',random,(18,09) -MONSTER:'D',random,(49,10) -MONSTER:'D',random,(33,05) -MONSTER:'D',random,(33,14) +MONSTER:'D',(18,09) +MONSTER:'D',(49,10) +MONSTER:'D',(33,05) +MONSTER:'D',(33,14) # Eels in the moat -MONSTER:';',"giant eel",(17,08) -MONSTER:';',"giant eel",(17,11) -MONSTER:';',"giant eel",(48,08) -MONSTER:';',"giant eel",(48,11) +MONSTER:(';',"giant eel"),(17,08) +MONSTER:(';',"giant eel"),(17,11) +MONSTER:(';',"giant eel"),(48,08) +MONSTER:(';',"giant eel"),(48,11) # The corner rooms treasures -OBJECT:'*',"diamond",(19,06) -OBJECT:'*',"diamond",(20,06) -OBJECT:'*',"diamond",(21,06) -OBJECT:'*',"emerald",(19,13) -OBJECT:'*',"emerald",(20,13) -OBJECT:'*',"emerald",(21,13) -OBJECT:'*',"ruby",(46,06) -OBJECT:'*',"ruby",(47,06) -OBJECT:'*',"ruby",(48,06) -OBJECT:'*',"amethyst",(46,13) -OBJECT:'*',"amethyst",(47,13) -OBJECT:'*',"amethyst",(48,13) +OBJECT:('*',"diamond"),(19,06) +OBJECT:('*',"diamond"),(20,06) +OBJECT:('*',"diamond"),(21,06) +OBJECT:('*',"emerald"),(19,13) +OBJECT:('*',"emerald"),(20,13) +OBJECT:('*',"emerald"),(21,13) +OBJECT:('*',"ruby"),(46,06) +OBJECT:('*',"ruby"),(47,06) +OBJECT:('*',"ruby"),(48,06) +OBJECT:('*',"amethyst"),(46,13) +OBJECT:('*',"amethyst"),(47,13) +OBJECT:('*',"amethyst"),(48,13) diff --git a/dat/medusa.des b/dat/medusa.des index ae65ff6d5..48720d3ba 100644 --- a/dat/medusa.des +++ b/dat/medusa.des @@ -55,28 +55,29 @@ BRANCH:levregion(01,00,79,20),(30,06,46,13) # Non diggable walls NON_DIGGABLE:(30,06,46,13) # Objects -CONTAINER:'`',"statue",(36,10),uncursed,"knight",3,"Perseus" -OBJECT[75%]:'[',"shield of reflection",contained,cursed,+0 -OBJECT[25%]:'[',"levitation boots",contained,random,+0 -OBJECT[50%]:')',"scimitar",contained,blessed,+2 -OBJECT[50%]:'(',"sack",contained +CONTAINER:('`',"statue"),(36,10),uncursed,montype:"knight",3,name:"Perseus" { + [75%]: OBJECT:('[',"shield of reflection"),cursed,+0 + [25%]: OBJECT:('[',"levitation boots"),+0 + [50%]: OBJECT:(')',"scimitar"),blessed,+2 + [50%]: OBJECT:('(',"sack") +} # These aren't really containers, but specifying CONTAINER forces them to be # empty, since CONTAINERs contain only what is explicitly specified. -CONTAINER:'`',"statue",random -CONTAINER:'`',"statue",random -CONTAINER:'`',"statue",random -CONTAINER:'`',"statue",random -CONTAINER:'`',"statue",random -CONTAINER:'`',"statue",random -CONTAINER:'`',"statue",random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +CONTAINER:('`',"statue"),random { } +CONTAINER:('`',"statue"),random { } +CONTAINER:('`',"statue"),random { } +CONTAINER:('`',"statue"),random { } +CONTAINER:('`',"statue"),random { } +CONTAINER:('`',"statue"),random { } +CONTAINER:('`',"statue"),random { } +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -86,27 +87,27 @@ TRAP:random,random TRAP:"board",(38,07) TRAP:"board",(38,12) # Random monsters -MONSTER:'@',"Medusa",(36,10),asleep -MONSTER:';',"giant eel",(11,06) -MONSTER:';',"giant eel",(23,13) -MONSTER:';',"giant eel",(29,02) -MONSTER:';',"jellyfish",(02,02) -MONSTER:';',"jellyfish",(00,08) -MONSTER:';',"jellyfish",(04,18) -MONSTER:'T',"water troll",(51,03) -MONSTER:'T',"water troll",(64,11) -MONSTER:'S',random,(38,07) -MONSTER:'S',random,(38,12) -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random +MONSTER:('@',"Medusa"),(36,10),asleep +MONSTER:(';',"giant eel"),(11,06) +MONSTER:(';',"giant eel"),(23,13) +MONSTER:(';',"giant eel"),(29,02) +MONSTER:(';',"jellyfish"),(02,02) +MONSTER:(';',"jellyfish"),(00,08) +MONSTER:(';',"jellyfish"),(04,18) +MONSTER:('T',"water troll"),(51,03) +MONSTER:('T',"water troll"),(64,11) +MONSTER:'S',(38,07) +MONSTER:'S',(38,12) +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random MAZE:"medusa-2",' ' FLAGS: noteleport @@ -136,7 +137,7 @@ ENDMAP # Dungeon Description REGION:(00,00,74,19),lit,"ordinary" REGION:(02,03,05,16),unlit,"ordinary" -REGION:(61,03,72,16),unlit,"ordinary",unfilled,true +REGION:(61,03,72,16),unlit,"ordinary",unfilled,irregular REGION:(71,08,72,11),unlit,"ordinary" REGION:(67,08,69,11),lit,"ordinary" # Teleport: down to up stairs island, up to Medusa's island @@ -153,28 +154,29 @@ BRANCH:levregion(01,00,79,20),(59,01,73,17) NON_DIGGABLE:(01,02,06,17) NON_DIGGABLE:(60,02,73,17) # Objects -CONTAINER:'`',"statue",(68,10),uncursed,"knight",3,"Perseus" -OBJECT[25%]:'[',"shield of reflection",contained,cursed,+0 -OBJECT[75%]:'[',"levitation boots",contained,random,+0 -OBJECT[50%]:')',"scimitar",contained,blessed,+2 -OBJECT[50%]:'(',"sack",contained -CONTAINER:'`',"statue",(64,08) -CONTAINER:'`',"statue",(65,08) -CONTAINER:'`',"statue",(64,09) -CONTAINER:'`',"statue",(65,09) -CONTAINER:'`',"statue",(64,10) -CONTAINER:'`',"statue",(65,10) -CONTAINER:'`',"statue",(64,11) -CONTAINER:'`',"statue",(65,11) -OBJECT:'`',"boulder",(04,04) -OBJECT:'/',random,(52,09) -OBJECT:'`',"boulder",(52,09) -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +CONTAINER:('`',"statue"),(68,10),uncursed,montype:"knight",3,name:"Perseus" { + [25%]: OBJECT:('[',"shield of reflection"),cursed,+0 + [75%]: OBJECT:('[',"levitation boots"),+0 + [50%]: OBJECT:(')',"scimitar"),blessed,+2 + [50%]: OBJECT:('(',"sack") +} +CONTAINER:('`',"statue"),(64,08) { } +CONTAINER:('`',"statue"),(65,08) { } +CONTAINER:('`',"statue"),(64,09) { } +CONTAINER:('`',"statue"),(65,09) { } +CONTAINER:('`',"statue"),(64,10) { } +CONTAINER:('`',"statue"),(65,10) { } +CONTAINER:('`',"statue"),(64,11) { } +CONTAINER:('`',"statue"),(65,11) { } +OBJECT:('`',"boulder"),(04,04) +OBJECT:'/',(52,09) +OBJECT:('`',"boulder"),(52,09) +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Traps TRAP:"magic",(03,12) TRAP:random,random @@ -182,36 +184,36 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Monsters. -MONSTER:'@',"Medusa",(68,10),asleep -MONSTER:'g',"gremlin",(02,14) -MONSTER:'H',"titan",(02,05) -MONSTER:';',"electric eel",(10,13) -MONSTER:';',"electric eel",(11,13) -MONSTER:';',"electric eel",(10,14) -MONSTER:';',"electric eel",(11,14) -MONSTER:';',"electric eel",(10,15) -MONSTER:';',"electric eel",(11,15) -MONSTER:';',"jellyfish",(01,01) -MONSTER:';',"jellyfish",(00,08) -MONSTER:';',"jellyfish",(04,19) -MONSTER:''',"stone golem",(64,08),asleep -MONSTER:''',"stone golem",(65,08),asleep -MONSTER:''',"stone golem",(64,09),asleep -MONSTER:''',"stone golem",(65,09),asleep -MONSTER:'S',"cobra",(64,10),asleep -MONSTER:'S',"cobra",(65,10),asleep -MONSTER:'A',random,(72,08) -MONSTER:'y',"yellow light",(72,11),asleep -MONSTER:random,random,(17,07) -MONSTER:random,random,(28,11) -MONSTER:random,random,(32,13) -MONSTER:random,random,(49,09) -MONSTER:random,random,(48,07) -MONSTER:random,random,(65,03) -MONSTER:random,random,(70,04) -MONSTER:random,random,(70,15) -MONSTER:random,random,(65,16) -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random +MONSTER:('@',"Medusa"),(68,10),asleep +MONSTER:('g',"gremlin"),(02,14) +MONSTER:('H',"titan"),(02,05) +MONSTER:(';',"electric eel"),(10,13) +MONSTER:(';',"electric eel"),(11,13) +MONSTER:(';',"electric eel"),(10,14) +MONSTER:(';',"electric eel"),(11,14) +MONSTER:(';',"electric eel"),(10,15) +MONSTER:(';',"electric eel"),(11,15) +MONSTER:(';',"jellyfish"),(01,01) +MONSTER:(';',"jellyfish"),(00,08) +MONSTER:(';',"jellyfish"),(04,19) +MONSTER:(''',"stone golem"),(64,08),asleep +MONSTER:(''',"stone golem"),(65,08),asleep +MONSTER:(''',"stone golem"),(64,09),asleep +MONSTER:(''',"stone golem"),(65,09),asleep +MONSTER:('S',"cobra"),(64,10),asleep +MONSTER:('S',"cobra"),(65,10),asleep +MONSTER:'A',(72,08) +MONSTER:('y',"yellow light"),(72,11),asleep +MONSTER:random,(17,07) +MONSTER:random,(28,11) +MONSTER:random,(32,13) +MONSTER:random,(49,09) +MONSTER:random,(48,07) +MONSTER:random,(65,03) +MONSTER:random,(70,04) +MONSTER:random,(70,15) +MONSTER:random,(65,16) +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random diff --git a/dat/mines.des b/dat/mines.des index 8408bbd9d..e9038a200 100644 --- a/dat/mines.des +++ b/dat/mines.des @@ -12,33 +12,33 @@ # specific levels as defined below. # MAZE: "minefill" , ' ' -INIT_MAP: '.' , ' ' , true , true , random , true +INIT_MAP: mines, '.' , ' ' , true , true , random , true NOMAP # STAIR: random, up STAIR: random, down # -OBJECT: '*', random, random -OBJECT: '*', random, random -OBJECT: '*', random, random -OBJECT: '(', random, random -OBJECT: random, random, random -OBJECT: random, random, random -OBJECT: random, random, random +OBJECT: '*', random +OBJECT: '*', random +OBJECT: '*', random +OBJECT: '(', random +OBJECT: random, random +OBJECT: random, random +OBJECT: random, random # -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome lord", random -MONSTER: 'h', "dwarf", random -MONSTER: 'h', "dwarf", random -MONSTER: 'G', random, random -MONSTER: 'G', random, random -MONSTER: 'h', random, random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome lord"), random +MONSTER: ('h', "dwarf"), random +MONSTER: ('h', "dwarf"), random +MONSTER: 'G', random +MONSTER: 'G', random +MONSTER: 'h', random # TRAP: random, random TRAP: random, random @@ -53,78 +53,92 @@ TRAP: random, random # LEVEL: "minetn-1" -ROOM: "ordinary" , lit, (3,3), (center,center), (31,15) -NAME: "town" +ROOM: "ordinary" , lit, (3,3), (center,center), (31,15) { FOUNTAIN: (13, 7) FOUNTAIN: (20, 7) # The Town Watch -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watch captain", random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful -SUBROOM: "shop" , lit, (2,2), (3,4), "town" -CHANCE: 90 -DOOR: false, closed, south, random +SUBROOM: "shop" [90%] , lit, (2,2), (3,4) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "tool shop", lit, (2,9), (3,4), "town" -CHANCE: 90 -DOOR: false, closed, north, random +SUBROOM: "tool shop" [90%], lit, (2,9), (3,4) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "ordinary", unlit, (6,2), (3,4), "town" -DOOR: false, closed, south, random +SUBROOM: "ordinary", unlit, (6,2), (3,4) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", lit, (6,9), (3,4), "town" -DOOR: false, closed, north, random +SUBROOM: "ordinary", lit, (6,9), (3,4) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "food shop", lit, (10,2), (2,3), "town" -CHANCE: 90 -DOOR: false, closed, south, random +SUBROOM: "food shop" [90%], lit, (10,2), (2,3) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "candle shop", lit, (22,2), (3,3), "town" -DOOR: false, closed, south, random +SUBROOM: "candle shop", lit, (22,2), (3,3) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", unlit, (10,10), (2,3), "town" -DOOR: false, locked, east, random -MONSTER: 'G', "gnome", random +SUBROOM: "ordinary", unlit, (10,10), (2,3) { + ROOMDOOR: false, locked, east, random + MONSTER: ('G', "gnome"), random +} -SUBROOM: "ordinary", lit, (19,2), (2,3), "town" -DOOR: false, locked, west, random -MONSTER: 'G', "gnome", random +SUBROOM: "ordinary", lit, (19,2), (2,3) { + ROOMDOOR: false, locked, west, random + MONSTER: ('G', "gnome"), random +} -SUBROOM: "temple", lit, (15,9), (4,4), "town" -DOOR: false, closed, north, random -ALTAR:(02,02),align[0],shrine -MONSTER: 'G', "gnomish wizard", random -MONSTER: 'G', "gnomish wizard", random +SUBROOM: "temple", lit, (15,9), (4,4) { + ROOMDOOR: false, closed, north, random + ALTAR:(02,02),align[0],shrine + MONSTER: ('G', "gnomish wizard"), random + MONSTER: ('G', "gnomish wizard"), random +} -SUBROOM: "ordinary", lit, (22,10), (2,3), "town" -DOOR: false, locked, west, random +SUBROOM: "ordinary", lit, (22,10), (2,3) { + ROOMDOOR: false, locked, west, random +} -SUBROOM: "ordinary", lit, (26,2), (3,3), "town" -DOOR: false, closed, south, random -MONSTER: 'G', "gnome lord", random +SUBROOM: "ordinary", lit, (26,2), (3,3) { + ROOMDOOR: false, closed, south, random + MONSTER: ('G', "gnome lord"), random +} -SUBROOM: "ordinary", unlit, (25,10), (4,3), "town" -DOOR: false, closed, north, random +SUBROOM: "ordinary", unlit, (25,10), (4,3) { + ROOMDOOR: false, closed, north, random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -TRAP: random, random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -MONSTER: 'h', "dwarf", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + TRAP: random, random + MONSTER: ('G', "gnome"), random + MONSTER: ('G', "gnome"), random +} -ROOM: "ordinary" , random, random, random, random -TRAP: random, random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + MONSTER: ('h', "dwarf"), random +} + +ROOM: "ordinary" , random, random, random, random { + TRAP: random, random + MONSTER: ('G', "gnome"), random +} RANDOM_CORRIDORS @@ -133,94 +147,113 @@ RANDOM_CORRIDORS # "Town Square" # LEVEL: "minetn-2" -ROOM: "ordinary" , lit, (3,3), (center,center), (31,15) -NAME: "town" +ROOM: "ordinary" , lit, (3,3), (center,center), (31,15) { FOUNTAIN: (17, 5) FOUNTAIN: (13, 8) # The Town Watch -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watch captain", random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful -SUBROOM: "ordinary", random, (2,0), (2,2), "town" -DOOR: false, closed, west, random +SUBROOM: "ordinary", random, (2,0), (2,2) { + ROOMDOOR: false, closed, west, random +} -SUBROOM: "ordinary", unlit, (5,0), (2,2), "town" -DOOR: false, closed, south, random +SUBROOM: "ordinary", unlit, (5,0), (2,2) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", random, (8,0), (2,2), "town" -DOOR: false, closed, east, random +SUBROOM: "ordinary", random, (8,0), (2,2) { + ROOMDOOR: false, closed, east, random +} -SUBROOM: "ordinary", lit, (16,0), (2,2), "town" -DOOR: false, closed, west, random +SUBROOM: "ordinary", lit, (16,0), (2,2) { + ROOMDOOR: false, closed, west, random +} -SUBROOM: "ordinary", unlit, (19,0), (2,2), "town" -DOOR: false, closed, south, random +SUBROOM: "ordinary", unlit, (19,0), (2,2) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", random, (22,0), (2,2), "town" -DOOR: false, locked, south, random -MONSTER: 'G', "gnome", random +SUBROOM: "ordinary", random, (22,0), (2,2) { + ROOMDOOR: false, locked, south, random + MONSTER: ('G', "gnome"), random +} -SUBROOM: "ordinary", unlit, (25,0), (2,2), "town" -DOOR: false, closed, east, random +SUBROOM: "ordinary", unlit, (25,0), (2,2) { + ROOMDOOR: false, closed, east, random +} -SUBROOM: "ordinary", lit, (2,5), (2,2), "town" -DOOR: false, closed, north, random +SUBROOM: "ordinary", lit, (2,5), (2,2) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "ordinary", lit, (5,5), (2,2), "town" -DOOR: false, closed, south, random +SUBROOM: "ordinary", lit, (5,5), (2,2) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", random, (8,5), (2,2), "town" -DOOR: false, locked, north, random -MONSTER: 'G', "gnome", random +SUBROOM: "ordinary", random, (8,5), (2,2) { + ROOMDOOR: false, locked, north, random + MONSTER: ('G', "gnome"), random +} -SUBROOM: "shop" , lit, (2,10), (4,3), "town" -CHANCE: 90 -DOOR: false, closed, west, random +SUBROOM: "shop" [90%] , lit, (2,10), (4,3) { + ROOMDOOR: false, closed, west, random +} -SUBROOM: "tool shop", lit, (23,10), (4,3), "town" -CHANCE: 90 -DOOR: false, closed, east, random +SUBROOM: "tool shop" [90%], lit, (23,10), (4,3) { + ROOMDOOR: false, closed, east, random +} -SUBROOM: "food shop", lit, (24,5), (3,4), "town" -CHANCE: 90 -DOOR: false, closed, north, random +SUBROOM: "food shop" [90%], lit, (24,5), (3,4) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "candle shop", lit, (11,10), (4,3), "town" -DOOR: false, closed, east, random +SUBROOM: "candle shop", lit, (11,10), (4,3) { + ROOMDOOR: false, closed, east, random +} -SUBROOM: "ordinary", unlit, (7,10), (3,3), "town" -DOOR: false, locked, north, random -MONSTER: 'G', "gnome", random +SUBROOM: "ordinary", unlit, (7,10), (3,3) { + ROOMDOOR: false, locked, north, random + MONSTER: ('G', "gnome"), random +} -SUBROOM: "temple", lit, (19,5), (4,4), "town" -DOOR: false, closed, north, random -ALTAR:(02,02),align[0],shrine -MONSTER: 'G', "gnomish wizard", random -MONSTER: 'G', "gnomish wizard", random +SUBROOM: "temple", lit, (19,5), (4,4) { + ROOMDOOR: false, closed, north, random + ALTAR:(02,02),align[0],shrine + MONSTER: ('G', "gnomish wizard"), random + MONSTER: ('G', "gnomish wizard"), random +} -SUBROOM: "ordinary", lit, (18,10), (4,3), "town" -DOOR: false, locked, west, random -MONSTER: 'G', "gnome lord", random +SUBROOM: "ordinary", lit, (18,10), (4,3) { + ROOMDOOR: false, locked, west, random + MONSTER: ('G', "gnome lord"), random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -TRAP: random, random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -MONSTER: 'h', "dwarf", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + TRAP: random, random + MONSTER: ('G', "gnome"), random + MONSTER: ('G', "gnome"), random +} -ROOM: "ordinary" , random, random, random, random -TRAP: random, random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + MONSTER: ('h', "dwarf"), random +} + +ROOM: "ordinary" , random, random, random, random { + TRAP: random, random + MONSTER: ('G', "gnome"), random +} RANDOM_CORRIDORS @@ -229,89 +262,106 @@ RANDOM_CORRIDORS # "Alley Town" # LEVEL: "minetn-3" -ROOM: "ordinary",lit,(3,3),(center,center),(31,15) -NAME: "town" +ROOM: "ordinary",lit,(3,3),(center,center),(31,15) { FOUNTAIN:(01,06) FOUNTAIN:(29,13) -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watch captain", random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful -SUBROOM:"ordinary",random,(2,2),(2,2),"town" -DOOR: false,closed,south,random +SUBROOM:"ordinary",random,(2,2),(2,2) { + ROOMDOOR: false,closed,south,random +} -SUBROOM:"tool shop",lit,(5,3),(2,3),"town" -CHANCE: 30 -DOOR: false,closed,south,random +SUBROOM:"tool shop" [30%], lit,(5,3),(2,3) { + ROOMDOOR: false,closed,south,random +} -SUBROOM:"ordinary",random,(2,10),(2,3),"town" -DOOR: false, locked, north, random -MONSTER: 'G',random,random +SUBROOM:"ordinary",random,(2,10),(2,3) { + ROOMDOOR: false, locked, north, random + MONSTER: 'G',random +} -SUBROOM:"ordinary",random,(5,9),(2,2),"town" -DOOR: false,closed,north,random +SUBROOM:"ordinary",random,(5,9),(2,2) { + ROOMDOOR: false,closed,north,random +} -SUBROOM:"temple",lit,(10,2),(3,4),"town" -DOOR: false,closed,east,random -ALTAR:(1,1),align[0],shrine -MONSTER: 'G', "gnomish wizard", random -MONSTER: 'G', "gnomish wizard", random +SUBROOM:"temple",lit,(10,2),(3,4) { + ROOMDOOR: false,closed,east,random + ALTAR:(1,1),align[0],shrine + MONSTER: ('G', "gnomish wizard"), random + MONSTER: ('G', "gnomish wizard"), random +} -SUBROOM:"ordinary",random,(11,7),(2,2),"town" -DOOR: false,closed,west,random +SUBROOM:"ordinary",random,(11,7),(2,2) { + ROOMDOOR: false,closed,west,random +} -SUBROOM:"shop",lit,(10,10),(3,3),"town" -DOOR:false,closed,west,random +SUBROOM:"shop",lit,(10,10),(3,3) { + ROOMDOOR:false,closed,west,random +} -SUBROOM:"ordinary",random,(14,8),(2,2),"town" -DOOR:false,locked,north,random -MONSTER: 'G',random,random +SUBROOM:"ordinary",random,(14,8),(2,2) { + ROOMDOOR:false,locked,north,random + MONSTER: 'G',random +} -SUBROOM:"ordinary",random,(14,11),(2,2),"town" -DOOR:false,closed,south,random +SUBROOM:"ordinary",random,(14,11),(2,2) { + ROOMDOOR:false,closed,south,random +} -SUBROOM:"tool shop",lit,(17,10),(3,3),"town" -CHANCE:40 -DOOR:false,closed,north,random +SUBROOM:"tool shop" [40%],lit,(17,10),(3,3) { + ROOMDOOR:false,closed,north,random +} -SUBROOM:"ordinary",random,(21,11),(2,2),"town" -DOOR:false,locked,east,random -MONSTER:'G',random,random +SUBROOM:"ordinary",random,(21,11),(2,2) { + ROOMDOOR:false,locked,east,random + MONSTER:'G',random +} -SUBROOM:"food shop",lit,(26,8),(3,2),"town" -CHANCE:90 -DOOR:false,closed,west,random +SUBROOM:"food shop" [90%],lit,(26,8),(3,2) { + ROOMDOOR:false,closed,west,random +} -SUBROOM:"ordinary",random,(16,2),(2,2),"town" -DOOR:false,closed,west,random +SUBROOM:"ordinary",random,(16,2),(2,2) { + ROOMDOOR:false,closed,west,random +} -SUBROOM:"ordinary",random,(19,2),(2,2),"town" -DOOR:false,closed,north,random +SUBROOM:"ordinary",random,(19,2),(2,2) { + ROOMDOOR:false,closed,north,random +} -SUBROOM:"wand shop",lit,(19,5),(3,2),"town" -CHANCE:30 -DOOR:false,closed,west,random +SUBROOM:"wand shop" [30%],lit,(19,5),(3,2) { + ROOMDOOR:false,closed,west,random +} -SUBROOM: "candle shop",lit,(25,2),(3,3),"town" -DOOR:false,closed,south,random +SUBROOM: "candle shop",lit,(25,2),(3,3) { + ROOMDOOR:false,closed,south,random +} -ROOM: "ordinary", random, random, random, random -STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -TRAP: random, random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random +ROOM: "ordinary", random, random, random, random { + STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -MONSTER: 'h', "dwarf", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + TRAP: random, random + MONSTER: ('G', "gnome"), random + MONSTER: ('G', "gnome"), random +} -ROOM: "ordinary" , random, random, random, random -TRAP: random, random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + MONSTER: ('h', "dwarf"), random +} + +ROOM: "ordinary" , random, random, random, random { + TRAP: random, random + MONSTER: ('G', "gnome"), random +} RANDOM_CORRIDORS @@ -320,80 +370,94 @@ RANDOM_CORRIDORS # "College Town" # LEVEL: "minetn-4" -ROOM: "ordinary",lit,(3,3),(center,center),(30,15) -NAME: "town" +ROOM: "ordinary",lit,(3,3),(center,center),(30,15) { FOUNTAIN:(08,07) FOUNTAIN:(18,07) -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watch captain", random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful -SUBROOM:"book shop",lit,(4,2),(3,3),"town" -DOOR: false,closed,south,random +SUBROOM:"book shop",lit,(4,2),(3,3) { + ROOMDOOR: false,closed,south,random +} -SUBROOM:"ordinary",random,(8,2),(2,2),"town" -DOOR: false,closed,south,random +SUBROOM:"ordinary",random,(8,2),(2,2) { + ROOMDOOR: false,closed,south,random +} -SUBROOM:"temple",lit,(11,3),(5,4),"town" -DOOR: false,closed,south,random -ALTAR:(2,1),align[0],shrine -MONSTER: 'G', "gnomish wizard", random -MONSTER: 'G', "gnomish wizard", random +SUBROOM:"temple",lit,(11,3),(5,4) { + ROOMDOOR: false,closed,south,random + ALTAR:(2,1),align[0],shrine + MONSTER: ('G', "gnomish wizard"), random + MONSTER: ('G', "gnomish wizard"), random +} -SUBROOM:"ordinary",random,(19,2),(2,2),"town" -DOOR: false,closed,south,random -MONSTER: 'G', random, random +SUBROOM:"ordinary",random,(19,2),(2,2) { + ROOMDOOR: false,closed,south,random + MONSTER: 'G', random +} -SUBROOM:"candle shop",lit,(22,2),(3,3),"town" -DOOR:false,closed,south,random +SUBROOM:"candle shop",lit,(22,2),(3,3) { + ROOMDOOR:false,closed,south,random +} -SUBROOM:"ordinary",random,(26,2),(2,2),"town" -DOOR:false,locked,east,random -MONSTER: 'G',random,random +SUBROOM:"ordinary",random,(26,2),(2,2) { + ROOMDOOR:false,locked,east,random + MONSTER: 'G',random +} -SUBROOM:"tool shop",lit,(4,10),(3,3),"town" -CHANCE:90 -DOOR:false,closed,north,random +SUBROOM:"tool shop" [90%],lit,(4,10),(3,3) { + ROOMDOOR:false,closed,north,random +} -SUBROOM:"ordinary",random,(8,11),(2,2),"town" -DOOR:false,locked,south,random -MONSTER: 'k',"kobold shaman",random -MONSTER: 'k',"kobold shaman",random -MONSTER: 'f',"kitten",random -MONSTER: 'f',random,random +SUBROOM:"ordinary",random,(8,11),(2,2) { + ROOMDOOR:false,locked,south,random + MONSTER: ('k',"kobold shaman"),random + MONSTER: ('k',"kobold shaman"),random + MONSTER: ('f',"kitten"),random + MONSTER: 'f',random +} -SUBROOM:"food shop",lit,(11,11),(3,2),"town" -CHANCE:90 -DOOR:false,closed,east,random +SUBROOM:"food shop" [90%],lit,(11,11),(3,2) { + ROOMDOOR:false,closed,east,random +} -SUBROOM:"ordinary",random,(17,11),(2,2),"town" -DOOR:false,closed,west,random +SUBROOM:"ordinary",random,(17,11),(2,2) { + ROOMDOOR:false,closed,west,random +} -SUBROOM:"ordinary",random,(20,10),(2,2),"town" -DOOR:false,locked,north,random -MONSTER:'G',random,random +SUBROOM:"ordinary",random,(20,10),(2,2) { + ROOMDOOR:false,locked,north,random + MONSTER:'G',random +} -SUBROOM:"shop",lit,(23,10),(3,3),"town" -CHANCE:90 -DOOR:false,closed,north,random +SUBROOM:"shop" [90%],lit,(23,10),(3,3) { + ROOMDOOR:false,closed,north,random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -TRAP: random, random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -MONSTER: 'h', "dwarf", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + TRAP: random, random + MONSTER: ('G', "gnome"), random + MONSTER: ('G', "gnome"), random +} -ROOM: "ordinary" , random, random, random, random -TRAP: random, random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + MONSTER: ('h', "dwarf"), random +} + +ROOM: "ordinary" , random, random, random, random { + TRAP: random, random + MONSTER: ('G', "gnome"), random +} RANDOM_CORRIDORS @@ -442,22 +506,22 @@ REGION:(37,13,39,17),lit,"ordinary" REGION:(36,14,40,17),lit,"ordinary" REGION:(59,02,72,10),lit,"ordinary" -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watch captain", random, peaceful -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome lord", random -MONSTER: 'G', "gnome lord", random -MONSTER: 'h', "dwarf", random -MONSTER: 'h', "dwarf", random -MONSTER: 'h', "dwarf", random +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome lord"), random +MONSTER: ('G', "gnome lord"), random +MONSTER: ('h', "dwarf"), random +MONSTER: ('h', "dwarf"), random +MONSTER: ('h', "dwarf"), random # The shops REGION:(25,17,28,19),lit,"candle shop" @@ -471,14 +535,14 @@ DOOR:closed,(07,11) # Gnome homes DOOR:closed,(04,14) DOOR:locked,(01,17) -MONSTER: 'G', "gnomish wizard", (02,19) +MONSTER: ('G', "gnomish wizard"), (02,19) DOOR:locked,(20,16) -MONSTER: 'G', random, (20,18) +MONSTER: 'G', (20,18) DOOR:random,(21,14) DOOR:random,(25,14) DOOR:random,(42,08) DOOR:locked,(40,05) -MONSTER: 'G', random, (38,07) +MONSTER: 'G', (38,07) DOOR:random,(59,03) DOOR:random,(58,06) DOOR:random,(63,03) @@ -487,15 +551,15 @@ DOOR:locked,(71,03) DOOR:locked,(71,06) DOOR:closed,(69,04) DOOR:closed,(67,16) -MONSTER: 'G', "gnomish wizard", (67,14) -OBJECT: '=', random, (70,14) +MONSTER: ('G', "gnomish wizard"), (67,14) +OBJECT: '=', (70,14) DOOR:locked,(69,18) -MONSTER: 'G', "gnome lord", (71,19) +MONSTER: ('G', "gnome lord"), (71,19) DOOR:locked,(73,18) -OBJECT: '(', "chest", (73,19) +OBJECT: ('(', "chest"), (73,19) DOOR:locked,(50,06) -OBJECT: '(', random, (50,03) -OBJECT: '`', "statue", (38,15), "gnome king", 1 +OBJECT: '(', (50,03) +OBJECT: ('`', "statue"), (38,15), montype:"gnome king", 1 # Temple REGION:(29,02,33,04),lit,"temple" DOOR:closed,(31,05) @@ -505,7 +569,7 @@ ALTAR:(31,03),align[0],shrine # "Bustling Town" by Kelly Bailey # MAZE: "minetn-6",' ' -INIT_MAP:'.','-',true,true,lit,true +INIT_MAP:mines,'.','-',true,true,lit,true GEOMETRY:center,top MAP .-----................----------------.- @@ -557,135 +621,153 @@ DOOR:closed,(31,3) DOOR:closed,(35,3) DOOR:closed,(33,7) -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", (14,6) -MONSTER: 'G', "gnome lord", (14,5) -MONSTER: 'G', "gnome", (27,8) -MONSTER: 'G', "gnome lord", random -MONSTER: 'G', "gnome lord", random -MONSTER: 'h', "dwarf", random -MONSTER: 'h', "dwarf", random -MONSTER: 'h', "dwarf", random -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watch captain", random, peaceful -MONSTER: '@', "watch captain", random, peaceful +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), random +MONSTER: ('G', "gnome"), (14,6) +MONSTER: ('G', "gnome lord"), (14,5) +MONSTER: ('G', "gnome"), (27,8) +MONSTER: ('G', "gnome lord"), random +MONSTER: ('G', "gnome lord"), random +MONSTER: ('h', "dwarf"), random +MONSTER: ('h', "dwarf"), random +MONSTER: ('h', "dwarf"), random +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful # "Bazaar Town" by Kelly Bailey # LEVEL: "minetn-7" -ROOM: "ordinary" , lit, (3,3), (center,center), (30,15) -NAME: "town" +ROOM: "ordinary" , lit, (3,3), (center,center), (30,15) { FOUNTAIN: (12, 07) FOUNTAIN: (11, 13) -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watchman", random, peaceful -MONSTER: '@', "watch captain", random, peaceful -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome lord",random -MONSTER:'Y',"monkey",random -MONSTER:'Y',"monkey",random +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watchman"), random, peaceful +MONSTER: ('@', "watch captain"), random, peaceful +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome lord"),random +MONSTER:('Y',"monkey"),random +MONSTER:('Y',"monkey"),random -SUBROOM: "ordinary", random, (2,2), (4,2), "town" -DOOR: false, closed, south, random +SUBROOM: "ordinary", random, (2,2), (4,2) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", random, (7,2), (2,2), "town" -DOOR: false, closed, north, random +SUBROOM: "ordinary", random, (7,2), (2,2) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "ordinary", random, (7,5), (2,2), "town" -DOOR: false, closed, south, random +SUBROOM: "ordinary", random, (7,5), (2,2) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", lit, (10,2), (3,4), "town" -MONSTER:'G',"gnome",random -MONSTER:'Y',"monkey",random -MONSTER:'Y',"monkey",random -MONSTER:'Y',"monkey",random -DOOR: false, closed, south, random +SUBROOM: "ordinary", lit, (10,2), (3,4) { + MONSTER:('G',"gnome"),random + MONSTER:('Y',"monkey"),random + MONSTER:('Y',"monkey"),random + MONSTER:('Y',"monkey"),random + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", random, (14,2), (4,2), "town" -DOOR: false, closed, south, 0 -MONSTER: 'n', random, random +SUBROOM: "ordinary", random, (14,2), (4,2) { + ROOMDOOR: false, closed, south, 0 + MONSTER: 'n', random +} -SUBROOM: "ordinary", random, (16,5), (2,2), "town" -DOOR: false, closed, south, random +SUBROOM: "ordinary", random, (16,5), (2,2) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", unlit, (19,2), (2,2), "town" -DOOR: false, locked, east, random -MONSTER: 'G',"gnome king",random +SUBROOM: "ordinary", unlit, (19,2), (2,2) { + ROOMDOOR: false, locked, east, random + MONSTER: ('G',"gnome king"),random +} -SUBROOM: "food shop", lit, (19,5), (2,3), "town" -CHANCE: 50 -DOOR: false, closed, south, random +SUBROOM: "food shop" [50%], lit, (19,5), (2,3) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "ordinary", random, (2,7), (2,2), "town" -DOOR: false, closed, east, random +SUBROOM: "ordinary", random, (2,7), (2,2) { + ROOMDOOR: false, closed, east, random +} -SUBROOM: "tool shop", lit, (2,10), (2,3), "town" -CHANCE: 50 -DOOR: false, closed, south, random +SUBROOM: "tool shop" [50%], lit, (2,10), (2,3) { + ROOMDOOR: false, closed, south, random +} -SUBROOM: "candle shop", lit, (5,10),(3,3), "town" -DOOR: false, closed, north, random +SUBROOM: "candle shop", lit, (5,10),(3,3) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "ordinary", random, (11,10), (2,2), "town" -DOOR: false, locked, west, random -MONSTER: 'G',random,random +SUBROOM: "ordinary", random, (11,10), (2,2) { + ROOMDOOR: false, locked, west, random + MONSTER: 'G',random +} -SUBROOM: "shop", lit, (14,10), (2,3), "town" -CHANCE: 60 -DOOR: false, closed, north, random +SUBROOM: "shop" [60%], lit, (14,10), (2,3) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "ordinary", random, (17,11), (4,2), "town" -DOOR: false, closed, north, random +SUBROOM: "ordinary", random, (17,11), (4,2) { + ROOMDOOR: false, closed, north, random +} -SUBROOM: "ordinary", random, (22,11), (2,2), "town" -DOOR: false, closed, south, random -SINK: (00,00) +SUBROOM: "ordinary", random, (22,11), (2,2) { + ROOMDOOR: false, closed, south, random + SINK: (00,00) +} -SUBROOM: "food shop", lit, (25,11), (3,2), "town" -CHANCE: 50 -DOOR: false, closed, east, random +SUBROOM: "food shop" [50%], lit, (25,11), (3,2) { + ROOMDOOR: false, closed, east, random +} -SUBROOM: "tool shop", lit, (25,2), (3,3), "town" -CHANCE: 30 -DOOR: false, closed, west, random +SUBROOM: "tool shop" [30%], lit, (25,2), (3,3) { + ROOMDOOR: false, closed, west, random +} -SUBROOM: "temple", lit, (24,6), (4,4), "town" -DOOR: false, closed, west, random -ALTAR:(02,01),align[0],shrine -MONSTER: 'G', "gnomish wizard", random -MONSTER: 'G', "gnomish wizard", random +SUBROOM: "temple", lit, (24,6), (4,4) { + ROOMDOOR: false, closed, west, random + ALTAR:(02,01),align[0],shrine + MONSTER: ('G', "gnomish wizard"), random + MONSTER: ('G', "gnomish wizard"), random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -TRAP: random, random -MONSTER: 'G', "gnome", random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up +} -ROOM: "ordinary" , random, random, random, random -MONSTER: 'h', "dwarf", random - -ROOM: "ordinary" , random, random, random, random -TRAP: random, random -MONSTER: 'G', "gnome", random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + TRAP: random, random + MONSTER: ('G', "gnome"), random + MONSTER: ('G', "gnome"), random +} + +ROOM: "ordinary" , random, random, random, random { + MONSTER: ('h', "dwarf"), random +} + +ROOM: "ordinary" , random, random, random, random { + TRAP: random, random + MONSTER: ('G', "gnome"), random +} RANDOM_CORRIDORS - + # Mine end level variant 1 # "Mimic of the Mines" @@ -715,8 +797,10 @@ MAP ENDMAP # Dungeon Description -RANDOM_PLACES:(08,16),(13,07),(21,08),(41,14),(50,04),(50,16),(66,01) -REGION:(26,01,32,01),unlit,"ordinary",filled,true +$place = { (08,16),(13,07),(21,08),(41,14),(50,04),(50,16),(66,01) } +SHUFFLE: $place + +REGION:(26,01,32,01),unlit,"ordinary",filled,irregular REGION:(20,08,21,08),unlit,"ordinary" REGION:(23,08,25,08),unlit,"ordinary" # Secret doors @@ -732,42 +816,42 @@ STAIR:(36,04),up # Non diggable walls NON_DIGGABLE:(00,00,74,17) # Niches -# Note: place[6] empty -OBJECT:'*',"diamond",place[0] -OBJECT:'*',"emerald",place[0] -OBJECT:'*',"worthless piece of violet glass",place[0] -MONSTER:'m',random,place[0], m_object "luckstone" -OBJECT:'*',"worthless piece of white glass",place[1] -OBJECT:'*',"emerald",place[1] -OBJECT:'*',"amethyst",place[1] -MONSTER:'m',random,place[1], m_object "loadstone" -OBJECT:'*',"diamond",place[2] -OBJECT:'*',"worthless piece of green glass",place[2] -OBJECT:'*',"amethyst",place[2] -MONSTER:'m',random,place[2], m_object "flint" -OBJECT:'*',"worthless piece of white glass",place[3] -OBJECT:'*',"emerald",place[3] -OBJECT:'*',"worthless piece of violet glass",place[3] -MONSTER:'m',random,place[3], m_object "touchstone" -OBJECT:'*',"worthless piece of red glass",place[4] -OBJECT:'*',"ruby",place[4] -OBJECT:'*',"loadstone",place[4] -OBJECT:'*',"ruby",place[5] -OBJECT:'*',"worthless piece of red glass",place[5] -OBJECT:'*',"luckstone",place[5] +# Note: $place[6] empty +OBJECT:('*',"diamond"),$place[0] +OBJECT:('*',"emerald"),$place[0] +OBJECT:('*',"worthless piece of violet glass"),$place[0] +MONSTER:'m',$place[0], m_object "luckstone" +OBJECT:('*',"worthless piece of white glass"),$place[1] +OBJECT:('*',"emerald"),$place[1] +OBJECT:('*',"amethyst"),$place[1] +MONSTER:'m',$place[1], m_object "loadstone" +OBJECT:('*',"diamond"),$place[2] +OBJECT:('*',"worthless piece of green glass"),$place[2] +OBJECT:('*',"amethyst"),$place[2] +MONSTER:'m',$place[2], m_object "flint" +OBJECT:('*',"worthless piece of white glass"),$place[3] +OBJECT:('*',"emerald"),$place[3] +OBJECT:('*',"worthless piece of violet glass"),$place[3] +MONSTER:'m',$place[3], m_object "touchstone" +OBJECT:('*',"worthless piece of red glass"),$place[4] +OBJECT:('*',"ruby"),$place[4] +OBJECT:('*',"loadstone"),$place[4] +OBJECT:('*',"ruby"),$place[5] +OBJECT:('*',"worthless piece of red glass"),$place[5] +OBJECT:('*',"luckstone"),$place[5] # Random objects -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'(',random,random -OBJECT:'(',random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'(',random +OBJECT:'(',random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -776,27 +860,27 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters -MONSTER:'G',"gnome king",random -MONSTER:'G',"gnome lord",random -MONSTER:'G',"gnome lord",random -MONSTER:'G',"gnome lord",random -MONSTER:'G',"gnomish wizard",random -MONSTER:'G',"gnomish wizard",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'h',"hobbit",random -MONSTER:'h',"hobbit",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random -MONSTER:'h',random,random +MONSTER:('G',"gnome king"),random +MONSTER:('G',"gnome lord"),random +MONSTER:('G',"gnome lord"),random +MONSTER:('G',"gnome lord"),random +MONSTER:('G',"gnomish wizard"),random +MONSTER:('G',"gnomish wizard"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('h',"hobbit"),random +MONSTER:('h',"hobbit"),random +MONSTER:('h',"dwarf"),random +MONSTER:('h',"dwarf"),random +MONSTER:('h',"dwarf"),random +MONSTER:'h',random # Mine end level variant 2 @@ -849,47 +933,47 @@ NON_DIGGABLE:(53,14,61,14) # the Trespassers sign is a long-running joke ENGRAVING:(12,03),engrave,"You are now entering the Gnome King's wine cellar." ENGRAVING:(12,04),engrave,"Trespassers will be persecuted!" -OBJECT:'!',"booze",(10,07) -OBJECT:'!',"booze",(10,07) -OBJECT:'!',random,(10,07) -OBJECT:'!',"booze",(10,08) -OBJECT:'!',"booze",(10,08) -OBJECT:'!',random,(10,08) -OBJECT:'!',"booze",(10,09) -OBJECT:'!',"booze",(10,09) -OBJECT:'!',"object detection",(10,09) +OBJECT:('!',"booze"),(10,07) +OBJECT:('!',"booze"),(10,07) +OBJECT:'!',(10,07) +OBJECT:('!',"booze"),(10,08) +OBJECT:('!',"booze"),(10,08) +OBJECT:'!',(10,08) +OBJECT:('!',"booze"),(10,09) +OBJECT:('!',"booze"),(10,09) +OBJECT:('!',"object detection"),(10,09) # Objects # The Treasure chamber... -OBJECT:'*',"diamond",(69,04) -OBJECT:'*',random,(69,04) -OBJECT:'*',"diamond",(69,04) -OBJECT:'*',random,(69,04) -OBJECT:'*',"emerald",(70,04) -OBJECT:'*',random,(70,04) -OBJECT:'*',"emerald",(70,04) -OBJECT:'*',random,(70,04) -OBJECT:'*',"emerald",(69,05) -OBJECT:'*',random,(69,05) -OBJECT:'*',"ruby",(69,05) -OBJECT:'*',random,(69,05) -OBJECT:'*',"ruby",(70,05) -OBJECT:'*',"amethyst",(70,05) -OBJECT:'*',random,(70,05) -OBJECT:'*',"amethyst",(70,05) -OBJECT:'*',"luckstone",(70,05) +OBJECT:('*',"diamond"),(69,04) +OBJECT:'*',(69,04) +OBJECT:('*',"diamond"),(69,04) +OBJECT:'*',(69,04) +OBJECT:('*',"emerald"),(70,04) +OBJECT:'*',(70,04) +OBJECT:('*',"emerald"),(70,04) +OBJECT:'*',(70,04) +OBJECT:('*',"emerald"),(69,05) +OBJECT:'*',(69,05) +OBJECT:('*',"ruby"),(69,05) +OBJECT:'*',(69,05) +OBJECT:('*',"ruby"),(70,05) +OBJECT:('*',"amethyst"),(70,05) +OBJECT:'*',(70,05) +OBJECT:('*',"amethyst"),(70,05) +OBJECT:('*',"luckstone"),(70,05) # Scattered gems... -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'*',random,random -OBJECT:'(',random,random -OBJECT:'(',random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'*',random +OBJECT:'(',random +OBJECT:'(',random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random # Random traps TRAP:random,random TRAP:random,random @@ -898,27 +982,27 @@ TRAP:random,random TRAP:random,random TRAP:random,random # Random monsters. -MONSTER:'G',"gnome king",random -MONSTER:'G',"gnome lord",random -MONSTER:'G',"gnome lord",random -MONSTER:'G',"gnome lord",random -MONSTER:'G',"gnomish wizard",random -MONSTER:'G',"gnomish wizard",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'G',"gnome",random -MONSTER:'h',"hobbit",random -MONSTER:'h',"hobbit",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random -MONSTER:'h',"dwarf",random -MONSTER:'h',random,random +MONSTER:('G',"gnome king"),random +MONSTER:('G',"gnome lord"),random +MONSTER:('G',"gnome lord"),random +MONSTER:('G',"gnome lord"),random +MONSTER:('G',"gnomish wizard"),random +MONSTER:('G',"gnomish wizard"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('G',"gnome"),random +MONSTER:('h',"hobbit"),random +MONSTER:('h',"hobbit"),random +MONSTER:('h',"dwarf"),random +MONSTER:('h',"dwarf"),random +MONSTER:('h',"dwarf"),random +MONSTER:'h',random # "Catacombs" by Kelly Bailey @@ -947,7 +1031,9 @@ MAP --|. - - - - - - - -- - - - -- . - - - --- - - - . . - - - - -- - - - - - - ENDMAP -RANDOM_PLACES:(1,15),(68,6),(1,13) +$place = { (1,15),(68,6),(1,13) } +SHUFFLE: $place + NON_DIGGABLE:(67,3,73,7) NON_DIGGABLE:(0,12,2,16) FOUNTAIN:(12,08) @@ -962,36 +1048,36 @@ MAZEWALK:(36,8),west STAIR:(42,8),up # Objects -OBJECT:'*',"diamond",random -OBJECT:'*',random,random -OBJECT:'*',"diamond",random -OBJECT:'*',random,random -OBJECT:'*',"emerald",random -OBJECT:'*',random,random -OBJECT:'*',"emerald",random -OBJECT:'*',random,random -OBJECT:'*',"emerald",random -OBJECT:'*',random,random -OBJECT:'*',"ruby",random -OBJECT:'*',random,random -OBJECT:'*',"ruby",random -OBJECT:'*',"amethyst",random -OBJECT:'*',random,random -OBJECT:'*',"amethyst",random -OBJECT:'*',"luckstone",place[0] -OBJECT:'*',"flint",place[1] -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'+',random,random -OBJECT:'+',random,random -OBJECT:'+',random,random -OBJECT:'+',random,random -OBJECT:random,random,random -OBJECT:random,random,random -OBJECT:random,random,random +OBJECT:('*',"diamond"),random +OBJECT:'*',random +OBJECT:('*',"diamond"),random +OBJECT:'*',random +OBJECT:('*',"emerald"),random +OBJECT:'*',random +OBJECT:('*',"emerald"),random +OBJECT:'*',random +OBJECT:('*',"emerald"),random +OBJECT:'*',random +OBJECT:('*',"ruby"),random +OBJECT:'*',random +OBJECT:('*',"ruby"),random +OBJECT:('*',"amethyst"),random +OBJECT:'*',random +OBJECT:('*',"amethyst"),random +OBJECT:('*',"luckstone"),$place[0] +OBJECT:('*',"flint"),$place[1] +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'+',random +OBJECT:'+',random +OBJECT:'+',random +OBJECT:'+',random +OBJECT:random,random +OBJECT:random,random +OBJECT:random,random TRAP:random,random TRAP:random,random TRAP:random,random @@ -1000,25 +1086,25 @@ TRAP:random,random TRAP:random,random TRAP:random,random # One-time annoyance factor -TRAP:"level teleport",place[0] -TRAP:"level teleport",place[1] -MONSTER:'M',random,random -MONSTER:'M',random,random -MONSTER:'M',random,random -MONSTER:'M',random,random -MONSTER:'M',random,random -MONSTER:'M',"ettin mummy",random -MONSTER:'V',random,random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'Z',random,random -MONSTER:'V',random,random -MONSTER:'e',random,random -MONSTER:'e',random,random -MONSTER:'e',random,random -MONSTER:'e',random,random +TRAP:"level teleport",$place[0] +TRAP:"level teleport",$place[1] +MONSTER:'M',random +MONSTER:'M',random +MONSTER:'M',random +MONSTER:'M',random +MONSTER:'M',random +MONSTER:('M',"ettin mummy"),random +MONSTER:'V',random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:'Z',random +MONSTER:'V',random +MONSTER:'e',random +MONSTER:'e',random +MONSTER:'e',random +MONSTER:'e',random # end mines.des diff --git a/dat/oracle.des b/dat/oracle.des index 72da0401f..2b7fd8c33 100644 --- a/dat/oracle.des +++ b/dat/oracle.des @@ -8,51 +8,57 @@ LEVEL: "oracle" -ROOM: "ordinary" , lit, (3,3), (center,center), (11,9) -NAME: "central" -OBJECT:'`',"statue",(0,0),"forest centaur",1 -OBJECT:'`',"statue",(0,8),"mountain centaur",1 -OBJECT:'`',"statue",(10,0),"mountain centaur",1 -OBJECT:'`',"statue",(10,8),"forest centaur",1 -OBJECT:'`',"statue",(5,1),"plains centaur",1 -OBJECT:'`',"statue",(5,7),"plains centaur",1 -OBJECT:'`',"statue",(2,4),"plains centaur",1 -OBJECT:'`',"statue",(8,4),"plains centaur",1 -MONSTER: random, random, random -MONSTER: random, random, random +ROOM: "ordinary" , lit, (3,3), (center,center), (11,9) { + OBJECT:('`',"statue"),(0,0),montype:'C',1 + OBJECT:('`',"statue"),(0,8),montype:'C',1 + OBJECT:('`',"statue"),(10,0),montype:'C',1 + OBJECT:('`',"statue"),(10,8),montype:'C',1 + OBJECT:('`',"statue"),(5,1),montype:'C',1 + OBJECT:('`',"statue"),(5,7),montype:'C',1 + OBJECT:('`',"statue"),(2,4),montype:'C',1 + OBJECT:('`',"statue"),(8,4),montype:'C',1 + MONSTER: random, random + MONSTER: random, random -SUBROOM: "delphi" , lit , (4,3) , (3,3), "central" -FOUNTAIN: (0, 1) -FOUNTAIN: (1, 0) -FOUNTAIN: (1, 2) -FOUNTAIN: (2, 1) -MONSTER: '@', "Oracle", (1,1) -DOOR: false , nodoor , random, random + SUBROOM: "delphi" , lit , (4,3) , (3,3) { + FOUNTAIN: (0, 1) + FOUNTAIN: (1, 0) + FOUNTAIN: (1, 2) + FOUNTAIN: (2, 1) + MONSTER: ('@', "Oracle"), (1,1) + ROOMDOOR: false , nodoor , random, random + } +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, up -OBJECT: random,random,random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, up + OBJECT: random,random +} -ROOM: "ordinary" , random, random, random, random -STAIR: random, down -OBJECT: random, random, random -TRAP: random, random -MONSTER: random, random, random -MONSTER: random, random, random +ROOM: "ordinary" , random, random, random, random { + STAIR: random, down + OBJECT: random, random + TRAP: random, random + MONSTER: random, random + MONSTER: random, random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -OBJECT: random, random, random -MONSTER: random, random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + OBJECT: random, random + MONSTER: random, random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: random, random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: random, random +} -ROOM: "ordinary" , random, random, random, random -OBJECT: random, random, random -TRAP: random, random -MONSTER: random, random, random +ROOM: "ordinary" , random, random, random, random { + OBJECT: random, random + TRAP: random, random + MONSTER: random, random +} RANDOM_CORRIDORS diff --git a/dat/sokoban.des b/dat/sokoban.des index 21eb63de5..f5aa0bdff 100644 --- a/dat/sokoban.des +++ b/dat/sokoban.des @@ -60,18 +60,18 @@ NON_DIGGABLE:(00,00,13,12) NON_PASSWALL:(00,00,13,12) # Boulders -OBJECT:'`',"boulder",(02,02) -OBJECT:'`',"boulder",(02,03) +OBJECT:('`',"boulder"),(02,02) +OBJECT:('`',"boulder"),(02,03) # -OBJECT:'`',"boulder",(10,02) -OBJECT:'`',"boulder",(09,03) -OBJECT:'`',"boulder",(10,04) +OBJECT:('`',"boulder"),(10,02) +OBJECT:('`',"boulder"),(09,03) +OBJECT:('`',"boulder"),(10,04) # -OBJECT:'`',"boulder",(08,07) -OBJECT:'`',"boulder",(09,08) -OBJECT:'`',"boulder",(09,09) -OBJECT:'`',"boulder",(08,10) -OBJECT:'`',"boulder",(10,10) +OBJECT:('`',"boulder"),(08,07) +OBJECT:('`',"boulder"),(09,08) +OBJECT:('`',"boulder"),(09,09) +OBJECT:('`',"boulder"),(08,10) +OBJECT:('`',"boulder"),(10,10) # Traps TRAP:"pit",(03,06) @@ -85,16 +85,16 @@ TRAP:"pit",(06,10) TRAP:"pit",(07,10) # A little help -OBJECT:'?',"earth",(02,11) -OBJECT:'?',"earth",(03,11) +OBJECT:('?',"earth"),(02,11) +OBJECT:('?',"earth"),(03,11) # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random MAZE:"soko4-2",' ' @@ -121,20 +121,20 @@ NON_DIGGABLE:(00,00,14,10) NON_PASSWALL:(00,00,14,10) # Boulders -OBJECT:'`',"boulder",(05,02) -OBJECT:'`',"boulder",(06,02) -OBJECT:'`',"boulder",(06,03) -OBJECT:'`',"boulder",(07,03) +OBJECT:('`',"boulder"),(05,02) +OBJECT:('`',"boulder"),(06,02) +OBJECT:('`',"boulder"),(06,03) +OBJECT:('`',"boulder"),(07,03) # -OBJECT:'`',"boulder",(09,05) -OBJECT:'`',"boulder",(10,03) -OBJECT:'`',"boulder",(11,02) -OBJECT:'`',"boulder",(12,03) +OBJECT:('`',"boulder"),(09,05) +OBJECT:('`',"boulder"),(10,03) +OBJECT:('`',"boulder"),(11,02) +OBJECT:('`',"boulder"),(12,03) # -OBJECT:'`',"boulder",(07,08) -OBJECT:'`',"boulder",(08,08) -OBJECT:'`',"boulder",(09,08) -OBJECT:'`',"boulder",(10,08) +OBJECT:('`',"boulder"),(07,08) +OBJECT:('`',"boulder"),(08,08) +OBJECT:('`',"boulder"),(09,08) +OBJECT:('`',"boulder"),(10,08) # Traps TRAP:"pit",(01,02) @@ -149,16 +149,16 @@ TRAP:"pit",(05,08) TRAP:"pit",(06,08) # A little help -OBJECT:'?',"earth",(01,09) -OBJECT:'?',"earth",(02,09) +OBJECT:('?',"earth"),(01,09) +OBJECT:('?',"earth"),(02,09) # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random ### Second level ### @@ -188,29 +188,29 @@ NON_DIGGABLE:(00,00,28,11) NON_PASSWALL:(00,00,28,11) # Boulders -OBJECT:'`',"boulder",(03,02) -OBJECT:'`',"boulder",(04,02) +OBJECT:('`',"boulder"),(03,02) +OBJECT:('`',"boulder"),(04,02) # -OBJECT:'`',"boulder",(06,02) -OBJECT:'`',"boulder",(06,03) -OBJECT:'`',"boulder",(07,02) +OBJECT:('`',"boulder"),(06,02) +OBJECT:('`',"boulder"),(06,03) +OBJECT:('`',"boulder"),(07,02) # -OBJECT:'`',"boulder",(03,06) -OBJECT:'`',"boulder",(02,07) -OBJECT:'`',"boulder",(03,07) -OBJECT:'`',"boulder",(03,08) -OBJECT:'`',"boulder",(02,09) -OBJECT:'`',"boulder",(03,09) -OBJECT:'`',"boulder",(04,09) +OBJECT:('`',"boulder"),(03,06) +OBJECT:('`',"boulder"),(02,07) +OBJECT:('`',"boulder"),(03,07) +OBJECT:('`',"boulder"),(03,08) +OBJECT:('`',"boulder"),(02,09) +OBJECT:('`',"boulder"),(03,09) +OBJECT:('`',"boulder"),(04,09) # -OBJECT:'`',"boulder",(06,07) -OBJECT:'`',"boulder",(06,09) -OBJECT:'`',"boulder",(08,07) -OBJECT:'`',"boulder",(08,10) -OBJECT:'`',"boulder",(09,08) -OBJECT:'`',"boulder",(09,09) -OBJECT:'`',"boulder",(10,07) -OBJECT:'`',"boulder",(10,10) +OBJECT:('`',"boulder"),(06,07) +OBJECT:('`',"boulder"),(06,09) +OBJECT:('`',"boulder"),(08,07) +OBJECT:('`',"boulder"),(08,10) +OBJECT:('`',"boulder"),(09,08) +OBJECT:('`',"boulder"),(09,09) +OBJECT:('`',"boulder"),(10,07) +OBJECT:('`',"boulder"),(10,10) # Traps TRAP:"hole",(12,10) @@ -230,12 +230,12 @@ TRAP:"hole",(25,10) TRAP:"hole",(26,10) # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random MAZE:"soko3-2",' ' @@ -266,22 +266,22 @@ NON_DIGGABLE:(00,00,25,13) NON_PASSWALL:(00,00,25,13) # Boulders -OBJECT:'`',"boulder",(02,03) -OBJECT:'`',"boulder",(08,03) -OBJECT:'`',"boulder",(09,04) -OBJECT:'`',"boulder",(02,05) -OBJECT:'`',"boulder",(04,05) -OBJECT:'`',"boulder",(09,05) -OBJECT:'`',"boulder",(02,06) -OBJECT:'`',"boulder",(05,06) -OBJECT:'`',"boulder",(06,07) -OBJECT:'`',"boulder",(03,08) -OBJECT:'`',"boulder",(07,08) -OBJECT:'`',"boulder",(05,09) -OBJECT:'`',"boulder",(10,09) -OBJECT:'`',"boulder",(07,10) -OBJECT:'`',"boulder",(10,10) -OBJECT:'`',"boulder",(03,11) +OBJECT:('`',"boulder"),(02,03) +OBJECT:('`',"boulder"),(08,03) +OBJECT:('`',"boulder"),(09,04) +OBJECT:('`',"boulder"),(02,05) +OBJECT:('`',"boulder"),(04,05) +OBJECT:('`',"boulder"),(09,05) +OBJECT:('`',"boulder"),(02,06) +OBJECT:('`',"boulder"),(05,06) +OBJECT:('`',"boulder"),(06,07) +OBJECT:('`',"boulder"),(03,08) +OBJECT:('`',"boulder"),(07,08) +OBJECT:('`',"boulder"),(05,09) +OBJECT:('`',"boulder"),(10,09) +OBJECT:('`',"boulder"),(07,10) +OBJECT:('`',"boulder"),(10,10) +OBJECT:('`',"boulder"),(03,11) # Traps TRAP:"hole",(12,10) @@ -298,12 +298,12 @@ TRAP:"hole",(22,10) TRAP:"hole",(23,10) # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random ### Third level ### @@ -333,23 +333,23 @@ NON_DIGGABLE:(00,00,19,11) NON_PASSWALL:(00,00,19,11) # Boulders -OBJECT:'`',"boulder",(02,02) -OBJECT:'`',"boulder",(03,02) +OBJECT:('`',"boulder"),(02,02) +OBJECT:('`',"boulder"),(03,02) # -OBJECT:'`',"boulder",(05,03) -OBJECT:'`',"boulder",(07,03) -OBJECT:'`',"boulder",(07,02) -OBJECT:'`',"boulder",(08,02) +OBJECT:('`',"boulder"),(05,03) +OBJECT:('`',"boulder"),(07,03) +OBJECT:('`',"boulder"),(07,02) +OBJECT:('`',"boulder"),(08,02) # -OBJECT:'`',"boulder",(10,03) -OBJECT:'`',"boulder",(11,03) +OBJECT:('`',"boulder"),(10,03) +OBJECT:('`',"boulder"),(11,03) # -OBJECT:'`',"boulder",(02,07) -OBJECT:'`',"boulder",(02,08) -OBJECT:'`',"boulder",(03,09) +OBJECT:('`',"boulder"),(02,07) +OBJECT:('`',"boulder"),(02,08) +OBJECT:('`',"boulder"),(03,09) # -OBJECT:'`',"boulder",(05,07) -OBJECT:'`',"boulder",(06,06) +OBJECT:('`',"boulder"),(05,07) +OBJECT:('`',"boulder"),(06,06) # Traps TRAP:"hole",(08,09) @@ -364,12 +364,12 @@ TRAP:"hole",(16,09) TRAP:"hole",(17,09) # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random MAZE:"soko2-2",' ' @@ -399,22 +399,22 @@ NON_DIGGABLE:(00,00,19,12) NON_PASSWALL:(00,00,19,12) # Boulders -OBJECT:'`',"boulder",(04,02) -OBJECT:'`',"boulder",(04,03) -OBJECT:'`',"boulder",(05,03) -OBJECT:'`',"boulder",(07,03) -OBJECT:'`',"boulder",(08,03) -OBJECT:'`',"boulder",(02,04) -OBJECT:'`',"boulder",(03,04) -OBJECT:'`',"boulder",(05,05) -OBJECT:'`',"boulder",(06,06) -OBJECT:'`',"boulder",(09,06) -OBJECT:'`',"boulder",(03,07) -OBJECT:'`',"boulder",(04,07) -OBJECT:'`',"boulder",(07,07) -OBJECT:'`',"boulder",(06,09) -OBJECT:'`',"boulder",(05,10) -OBJECT:'`',"boulder",(05,11) +OBJECT:('`',"boulder"),(04,02) +OBJECT:('`',"boulder"),(04,03) +OBJECT:('`',"boulder"),(05,03) +OBJECT:('`',"boulder"),(07,03) +OBJECT:('`',"boulder"),(08,03) +OBJECT:('`',"boulder"),(02,04) +OBJECT:('`',"boulder"),(03,04) +OBJECT:('`',"boulder"),(05,05) +OBJECT:('`',"boulder"),(06,06) +OBJECT:('`',"boulder"),(09,06) +OBJECT:('`',"boulder"),(03,07) +OBJECT:('`',"boulder"),(04,07) +OBJECT:('`',"boulder"),(07,07) +OBJECT:('`',"boulder"),(06,09) +OBJECT:('`',"boulder"),(05,10) +OBJECT:('`',"boulder"),(05,11) # Traps TRAP:"hole",(07,11) @@ -430,12 +430,12 @@ TRAP:"hole",(16,11) TRAP:"hole",(17,11) # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random ### Top (last) level of Sokoban ### @@ -463,34 +463,36 @@ MAP |...|----- --|.....| ----- ------- ENDMAP -RANDOM_PLACES:(16,11),(16,13),(16,15) +$place = { (16,11),(16,13),(16,15) } +SHUFFLE: $place + STAIR:(01,01),down REGION:(00,00,25,17),lit,"ordinary" NON_DIGGABLE:(00,00,25,17) NON_PASSWALL:(00,00,25,17) # Boulders -OBJECT:'`',"boulder",(03,05) -OBJECT:'`',"boulder",(05,05) -OBJECT:'`',"boulder",(07,05) -OBJECT:'`',"boulder",(09,05) -OBJECT:'`',"boulder",(11,05) +OBJECT:('`',"boulder"),(03,05) +OBJECT:('`',"boulder"),(05,05) +OBJECT:('`',"boulder"),(07,05) +OBJECT:('`',"boulder"),(09,05) +OBJECT:('`',"boulder"),(11,05) # -OBJECT:'`',"boulder",(04,07) -OBJECT:'`',"boulder",(04,08) -OBJECT:'`',"boulder",(06,07) -OBJECT:'`',"boulder",(09,07) -OBJECT:'`',"boulder",(11,07) +OBJECT:('`',"boulder"),(04,07) +OBJECT:('`',"boulder"),(04,08) +OBJECT:('`',"boulder"),(06,07) +OBJECT:('`',"boulder"),(09,07) +OBJECT:('`',"boulder"),(11,07) # -OBJECT:'`',"boulder",(03,12) -OBJECT:'`',"boulder",(04,10) -OBJECT:'`',"boulder",(05,12) -OBJECT:'`',"boulder",(06,10) -OBJECT:'`',"boulder",(07,11) -OBJECT:'`',"boulder",(08,10) -OBJECT:'`',"boulder",(09,12) +OBJECT:('`',"boulder"),(03,12) +OBJECT:('`',"boulder"),(04,10) +OBJECT:('`',"boulder"),(05,12) +OBJECT:('`',"boulder"),(06,10) +OBJECT:('`',"boulder"),(07,11) +OBJECT:('`',"boulder"),(08,10) +OBJECT:('`',"boulder"),(09,12) # -OBJECT:'`',"boulder",(03,14) +OBJECT:('`',"boulder"),(03,14) # Traps TRAP:"hole",(08,01) @@ -510,25 +512,25 @@ TRAP:"hole",(21,01) TRAP:"hole",(22,01) TRAP:"hole",(23,01) -MONSTER:'m',"giant mimic", random, m_object "boulder" -MONSTER:'m',"giant mimic", random, m_object "boulder" +MONSTER:('m',"giant mimic"), random, m_object "boulder" +MONSTER:('m',"giant mimic"), random, m_object "boulder" # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random # Rewards DOOR:locked,(23,13) DOOR:closed,(17,11) DOOR:closed,(17,13) DOOR:closed,(17,15) -REGION:(18,10,22,16),lit,"zoo",filled,true -OBJECT:'(',"bag of holding",place[0] -ENGRAVING:place[0],burn,"Elbereth" +REGION:(18,10,22,16),lit,"zoo",filled,irregular +OBJECT:('(',"bag of holding"),$place[0] +ENGRAVING:$place[0],burn,"Elbereth" MAZE:"soko1-2",' ' @@ -554,35 +556,37 @@ MAP |..|..| --|.....| ------- ------- ENDMAP -RANDOM_PLACES:(16,10),(16,12),(16,14) +$place = { (16,10),(16,12),(16,14) } +SHUFFLE: $place + STAIR:(06,15),down REGION:(00,00,25,16),lit,"ordinary" NON_DIGGABLE:(00,00,25,16) NON_PASSWALL:(00,00,25,16) # Boulders -OBJECT:'`',"boulder",(04,04) -OBJECT:'`',"boulder",(02,06) -OBJECT:'`',"boulder",(03,06) -OBJECT:'`',"boulder",(04,07) -OBJECT:'`',"boulder",(05,07) -OBJECT:'`',"boulder",(02,08) -OBJECT:'`',"boulder",(05,08) -OBJECT:'`',"boulder",(03,09) -OBJECT:'`',"boulder",(04,09) -OBJECT:'`',"boulder",(03,10) -OBJECT:'`',"boulder",(05,10) -OBJECT:'`',"boulder",(06,12) +OBJECT:('`',"boulder"),(04,04) +OBJECT:('`',"boulder"),(02,06) +OBJECT:('`',"boulder"),(03,06) +OBJECT:('`',"boulder"),(04,07) +OBJECT:('`',"boulder"),(05,07) +OBJECT:('`',"boulder"),(02,08) +OBJECT:('`',"boulder"),(05,08) +OBJECT:('`',"boulder"),(03,09) +OBJECT:('`',"boulder"),(04,09) +OBJECT:('`',"boulder"),(03,10) +OBJECT:('`',"boulder"),(05,10) +OBJECT:('`',"boulder"),(06,12) # -OBJECT:'`',"boulder",(07,14) +OBJECT:('`',"boulder"),(07,14) # -OBJECT:'`',"boulder",(11,05) -OBJECT:'`',"boulder",(12,06) -OBJECT:'`',"boulder",(10,07) -OBJECT:'`',"boulder",(11,07) -OBJECT:'`',"boulder",(10,08) -OBJECT:'`',"boulder",(12,09) -OBJECT:'`',"boulder",(11,10) +OBJECT:('`',"boulder"),(11,05) +OBJECT:('`',"boulder"),(12,06) +OBJECT:('`',"boulder"),(10,07) +OBJECT:('`',"boulder"),(11,07) +OBJECT:('`',"boulder"),(10,08) +OBJECT:('`',"boulder"),(12,09) +OBJECT:('`',"boulder"),(11,10) # Traps TRAP:"hole",(05,01) @@ -604,22 +608,22 @@ TRAP:"hole",(20,01) TRAP:"hole",(21,01) TRAP:"hole",(22,01) -MONSTER:'m',"giant mimic", random, m_object "boulder" -MONSTER:'m',"giant mimic", random, m_object "boulder" +MONSTER:('m',"giant mimic"), random, m_object "boulder" +MONSTER:('m',"giant mimic"), random, m_object "boulder" # Random objects -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'%',random,random -OBJECT:'=',random,random -OBJECT:'/',random,random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'%',random +OBJECT:'=',random +OBJECT:'/',random # Rewards DOOR:locked,(23,12) DOOR:closed,(17,10) DOOR:closed,(17,12) DOOR:closed,(17,14) -REGION:(18,09,22,15),lit,"zoo",filled,true -OBJECT:'"',"amulet of reflection",place[0] -ENGRAVING:place[0],burn,"Elbereth" +REGION:(18,09,22,15),lit,"zoo",filled,irregular +OBJECT:('"',"amulet of reflection"),$place[0] +ENGRAVING:$place[0],burn,"Elbereth" diff --git a/dat/tower.des b/dat/tower.des index eb017247d..b87f102f5 100644 --- a/dat/tower.des +++ b/dat/tower.des @@ -23,13 +23,13 @@ MAP ENDMAP LADDER:(11,05),down # The lord and his court -MONSTER:'V',"Vlad the Impaler",(06,05) -MONSTER:'V',random,(03,09) -MONSTER:'V',random,(07,09) -MONSTER:'V',random,(11,09) -MONSTER:'V',random,(03,01) -MONSTER:'V',random,(07,01) -MONSTER:'V',random,(11,01) +MONSTER:('V',"Vlad the Impaler"),(06,05) +MONSTER:'V',(03,09) +MONSTER:'V',(07,09) +MONSTER:'V',(11,09) +MONSTER:'V',(03,01) +MONSTER:'V',(07,01) +MONSTER:'V',(11,01) # The doors DOOR:closed,(08,03) DOOR:closed,(10,03) @@ -39,13 +39,13 @@ DOOR:locked,(08,07) DOOR:locked,(10,07) DOOR:closed,(03,06) # treasures -OBJECT:'(',"chest",(07,05) -OBJECT:'(',"chest",(03,09) -OBJECT:'(',"chest",(07,09) -OBJECT:'(',"chest",(11,09) -OBJECT:'(',"chest",(03,01) -OBJECT:'(',"chest",(07,01) -OBJECT:'(',"chest",(11,01) +OBJECT:('(',"chest"),(07,05) +OBJECT:('(',"chest"),(03,09) +OBJECT:('(',"chest"),(07,09) +OBJECT:('(',"chest"),(11,09) +OBJECT:('(',"chest"),(03,01) +OBJECT:('(',"chest"),(07,01) +OBJECT:('(',"chest"),(11,01) # We have to protect the tower against outside attacks NON_DIGGABLE:(00,00,14,10) @@ -68,24 +68,27 @@ MAP --- --- --- ENDMAP # Random places are the 10 niches -RANDOM_PLACES:(03,01),(07,01),(11,01),(01,03),(13,03), - (01,07),(13,07),(03,09),(07,09),(11,09) +$place = { (03,01),(07,01),(11,01),(01,03),(13,03), + (01,07),(13,07),(03,09),(07,09),(11,09) } +SHUFFLE: $place LADDER:(11,05),up LADDER:(03,07),down DOOR:locked,(10,04) DOOR:locked,(09,07) -MONSTER:'&',random,place[0] -MONSTER:'&',random,place[1] -MONSTER:'d',"hell hound pup",place[2] -MONSTER:'d',"hell hound pup",place[3] -MONSTER:'d',"winter wolf",place[4] -CONTAINER:'(',"chest",place[5] -OBJECT:'"',"amulet of life saving",contained -CONTAINER:'(',"chest",place[6] -OBJECT:'"',"amulet of strangulation",contained -OBJECT:'[',"water walking boots",place[7] -OBJECT:'[',"crystal plate mail",place[8] -OBJECT:'+',"invisibility",place[9] +MONSTER:'&',$place[0] +MONSTER:'&',$place[1] +MONSTER:('d',"hell hound pup"),$place[2] +MONSTER:('d',"hell hound pup"),$place[3] +MONSTER:('d',"winter wolf"),$place[4] +CONTAINER:('(',"chest"),$place[5] { + OBJECT:('"',"amulet of life saving") +} +CONTAINER:('(',"chest"),$place[6] { + OBJECT:('"',"amulet of strangulation") +} +OBJECT:('[',"water walking boots"),$place[7] +OBJECT:('[',"crystal plate mail"),$place[8] +OBJECT:('+',"invisibility"),$place[9] # Walls in the tower are non diggable NON_DIGGABLE:(00,00,14,10) @@ -110,29 +113,30 @@ MAP --------------- ENDMAP # Random places are the 10 niches -RANDOM_PLACES:(05,01),(09,01),(13,01),(03,03),(15,03), - (03,07),(15,07),(05,09),(09,09),(13,09) +$place = { (05,01),(09,01),(13,01),(03,03),(15,03), + (03,07),(15,07),(05,09),(09,09),(13,09) } +SHUFFLE: $place BRANCH:(02,05,02,05),(00,00,00,00) LADDER:(05,07),up # Entry door is, of course, locked DOOR:locked,(14,05) # Let's put a dragon behind the door, just for the fun... -MONSTER:'D',random,(13,05) -MONSTER:random,random,(12,04) -MONSTER:random,random,(12,06) -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -MONSTER:random,random,random -OBJECT:')',"long sword",place[0] -TRAP:random,place[0] -OBJECT:'(',"lock pick",place[1] -TRAP:random,place[1] -OBJECT:'[',"elven cloak",place[2] -TRAP:random,place[2] -OBJECT:'(',"blindfold",place[3] -TRAP:random,place[3] +MONSTER:'D',(13,05) +MONSTER:random,(12,04) +MONSTER:random,(12,06) +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +MONSTER:random,random +OBJECT:(')',"long sword"),$place[0] +TRAP:random,$place[0] +OBJECT:('(',"lock pick"),$place[1] +TRAP:random,$place[1] +OBJECT:('[',"elven cloak"),$place[2] +TRAP:random,$place[2] +OBJECT:('(',"blindfold"),$place[3] +TRAP:random,$place[3] # Walls in the tower are non diggable NON_DIGGABLE:(00,00,18,12) diff --git a/dat/yendor.des b/dat/yendor.des index 6bef30231..dcb77c986 100644 --- a/dat/yendor.des +++ b/dat/yendor.des @@ -48,29 +48,29 @@ NON_PASSWALL:(11,00,21,00) NON_PASSWALL:(11,10,27,12) NON_PASSWALL:(21,00,27,10) # The wizard and his guards -MONSTER:'@',"Wizard of Yendor",(16,05),asleep -MONSTER:'d',"hell hound",(15,05) -MONSTER:'V',"vampire lord",(17,05) +MONSTER:('@',"Wizard of Yendor"),(16,05),asleep +MONSTER:('d',"hell hound"),(15,05) +MONSTER:('V',"vampire lord"),(17,05) # The local treasure -OBJECT:'+',"Book of the Dead",(16,05) +OBJECT:('+',"Book of the Dead"),(16,05) # Surrounding terror -MONSTER:';',"kraken",(14,02) -MONSTER:';',"giant eel",(17,02) -MONSTER:';',"kraken",(13,04) -MONSTER:';',"giant eel",(13,06) -MONSTER:';',"kraken",(19,04) -MONSTER:';',"giant eel",(19,06) -MONSTER:';',"kraken",(15,08) -MONSTER:';',"giant eel",(17,08) -MONSTER:';',"piranha",(15,02) -MONSTER:';',"piranha",(19,08) +MONSTER:(';',"kraken"),(14,02) +MONSTER:(';',"giant eel"),(17,02) +MONSTER:(';',"kraken"),(13,04) +MONSTER:(';',"giant eel"),(13,06) +MONSTER:(';',"kraken"),(19,04) +MONSTER:(';',"giant eel"),(19,06) +MONSTER:(';',"kraken"),(15,08) +MONSTER:(';',"giant eel"),(17,08) +MONSTER:(';',"piranha"),(15,02) +MONSTER:(';',"piranha"),(19,08) # Random monsters -MONSTER:'D',random,random -MONSTER:'H',random,random -MONSTER:'&',random,random -MONSTER:'&',random,random -MONSTER:'&',random,random -MONSTER:'&',random,random +MONSTER:'D',random +MONSTER:'H',random +MONSTER:'&',random +MONSTER:'&',random +MONSTER:'&',random +MONSTER:'&',random # And to make things a little harder. TRAP:"board",(16,04) TRAP:"board",(16,06) @@ -82,14 +82,14 @@ TRAP:"sleep gas",random TRAP:"anti magic",random TRAP:"magic",random # Some random loot. -OBJECT:'*',"ruby",random -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'+',random,random -OBJECT:'+',random,random -OBJECT:'+',random,random +OBJECT:('*',"ruby"),random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'+',random +OBJECT:'+',random +OBJECT:'+',random # The middle wizard level. @@ -136,13 +136,13 @@ TRAP:"sleep gas",random TRAP:"anti magic",random TRAP:"magic",random # Some random loot. -OBJECT:'!',random,random -OBJECT:'!',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'+',random,random +OBJECT:'!',random +OBJECT:'!',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'+',random # treasures -OBJECT:'"',random,(04,06) +OBJECT:'"',(04,06) # The bottom wizard level. @@ -191,33 +191,33 @@ NON_PASSWALL:(06,00,27,02) NON_PASSWALL:(16,02,27,12) NON_PASSWALL:(06,12,16,12) # -MONSTER:'L',random,(10,07) -MONSTER:'V',"vampire lord",(12,07) +MONSTER:'L',(10,07) +MONSTER:('V',"vampire lord"),(12,07) # Some surrounding horrors -MONSTER:';',"kraken",(08,05) -MONSTER:';',"giant eel",(08,08) -MONSTER:';',"kraken",(14,05) -MONSTER:';',"giant eel",(14,08) +MONSTER:(';',"kraken"),(08,05) +MONSTER:(';',"giant eel"),(08,08) +MONSTER:(';',"kraken"),(14,05) +MONSTER:(';',"giant eel"),(14,08) # Other monsters -MONSTER:'L',random,random -MONSTER:'D',random,random -MONSTER:'D',random,(26,09) -MONSTER:'&',random,random -MONSTER:'&',random,random -MONSTER:'&',random,random +MONSTER:'L',random +MONSTER:'D',random +MONSTER:'D',(26,09) +MONSTER:'&',random +MONSTER:'&',random +MONSTER:'&',random # And to make things a little harder. TRAP:"board",(10,07) TRAP:"board",(12,07) TRAP:"board",(11,06) TRAP:"board",(11,08) # Some loot -OBJECT:')',random,random -OBJECT:'!',random,random -OBJECT:'?',random,random -OBJECT:'?',random,random -OBJECT:'(',random,random +OBJECT:')',random +OBJECT:'!',random +OBJECT:'?',random +OBJECT:'?',random +OBJECT:'(',random # treasures -OBJECT:'"',random,(11,07) +OBJECT:'"',(11,07) # The former decoy wizard levels. @@ -241,10 +241,10 @@ BRANCH:levregion(01,00,79,20),(0,0,8,7) TELEPORT_REGION:levregion(01,00,79,20),(2,2,6,6) PORTAL:(4,4,4,4),(0,0,0,0),"wizard3" MAZEWALK:(08,05),east -REGION:(04,03,06,06),unlit,"ordinary",unfilled,true -MONSTER:'L',random,(04,04) -MONSTER:'V',"vampire lord",(03,04) -MONSTER:';',"kraken",(06,06) +REGION:(04,03,06,06),unlit,"ordinary",unfilled,irregular +MONSTER:'L',(04,04) +MONSTER:('V',"vampire lord"),(03,04) +MONSTER:(';',"kraken"),(06,06) # And to make things a little harder. TRAP:"board",(04,03) TRAP:"board",(04,05) @@ -269,14 +269,14 @@ STAIR:levregion(01,00,79,20),(0,0,8,7),down BRANCH:levregion(01,00,79,20),(0,0,8,7) TELEPORT_REGION:levregion(01,00,79,20),(2,2,6,6) MAZEWALK:(08,05),east -REGION:(04,03,06,06),unlit,"ordinary",unfilled,true -MONSTER:'L',random,(04,04) -MONSTER:'V',"vampire lord",(03,04) -MONSTER:';',"kraken",(06,06) +REGION:(04,03,06,06),unlit,"ordinary",unfilled,irregular +MONSTER:'L',(04,04) +MONSTER:('V',"vampire lord"),(03,04) +MONSTER:(';',"kraken"),(06,06) # And to make things a little harder. TRAP:"board",(04,03) TRAP:"board",(04,05) TRAP:"board",(03,04) TRAP:"board",(05,04) # treasures -OBJECT:'"',random,(04,04) +OBJECT:'"',(04,04)