-+-+-+-+-+-+-+-+ START OF PART 65 -+-+-+-+-+-+-+-+ X 0, 10, 320, 4, 2, 0, 0, 0, 0, '1d1' , 0), `7B 85`7D X('& Wand of Light (%P1 charges)' , 65, '-',%X'00000001', X 0, 200, 1, 10, 1, 0, 0, 0, 0, '1d1' , 2), `7B 86`7D X('& Wand of Lightning Bolts (%P1 charges)' , 65, '-',%X'00000002', X 0, 600, 2, 10, 1, 0, 0, 0, 0, '1d1' , 6), `7B 87`7D X('& Wand of Magic Missile (%P1 charges)' , 65, '-',%X'00002000', X 0, 200, 14, 10, 1, 0, 0, 0, 0, '1d1' , 2), `7B 88`7D X('& Wand of Disarming (%P1 charges)' , 65, '-',%X'00020000', X 0, 700, 18, 10, 1, 0, 0, 0, 0, '1d1' , 12), `7B 89`7D X('& Wand of Lightning Balls (%P1 charges)' , 65, '-',%X'00040000', X 0, 1200, 19, 10, 1, 0, 0, 0, 0, '1d1' , 20), `7B 90`7D X('& Wand of Wonder (%P1 charges)' , 65, '-',%X'00800000', X 0, 250, 24, 10, 1, 0, 0, 0, 0, '1d1' , 10), `7B 91`7D X('& Staff of Light (%P1 charges)' , 55, '_',%X'00000001', X 0, 250, 1, 50, 1, 0, 0, 0, 0, '1d2' , 3), `7B 92`7D X('& Staff of Door/Stair Location (%P1 charges)' , 55, '_',%X'00000002', X 0, 350, 2, 50, 1, 0, 0, 0, 0, '1d2' , 7), `7B 93`7D X('& Staff of Trap Location (%P1 charges)' , 55, '_',%X'00000004', X 0, 350, 3, 50, 1, 0, 0, 0, 0, '1d2' , 7), `7B 94`7D X('& Staff of Detect Invisible (%P1 charges)' , 55, '_',%X'00008000', X 0, 200, 16, 50, 1, 0, 0, 0, 0, '1d2' , 3), `7B 95`7D X('& Potion`7E of Restore Life Levels' , 76, '!',%X'00000080' V, X 0, 400, 321, 4, 1, 0, 0, 0, 0, '1d1' , 0), `7B 96`7D X('& Scroll`7E of Blessing' , 71, '?',%X'00000020' V, X 0, 15, 312, 5, 2, 0, 0, 0, 0, '0d0' , 0), `7B 97`7D X('& Scroll`7E of Word-of-Recall' , 71, '?',%X'00000100' V, X 0, 150, 313, 5, 3, 0, 0, 0, 0, '0d0' , 0), `7B 98`7D X('& Potion`7E of Slow Poison' , 76, '!',%X'00000800' V, X 0, 25, 322, 4, 2, 0, 0, 0, 0, '1d1' , 0), `7B 99`7D X('& Potion`7E of Neutralize Poison' , 76, '!',%X'00001000' V, X 0, 75, 323, 4, 1, 0, 0, 0, 0, '1d1' , 0), `7B100`7D X('& Wand of Stinking Cloud (%P1 charges)' , 65, '-',%X'00200000', X 0, 400, 22, 10, 1, 0, 0, 0, 0, '1d1' , 5), `7B101`7D X('& Iron Spike`7E' , 13, '`7E',%X'0000000 V0', X 0, 1, 1, 10, 1, 0, 0, 0, 0, '1d1' , 1), `7B102`7D X('& Brass Lantern`7E with %P5 turns of light' , 15, '`7E',%X'0000000 V0', X 7500, 35, 2, 50, 1, 0, 0, 0, 0, '1d1' , 1), `7B103`7D X('& Wooden Torch`7E with %P5 turns of light' , 15, '`7E',%X'0000000 V0', X 4000, 2, 270, 30, 5, 0, 0, 0, 0, '1d1' , 1), `7B104`7D X('& Flask`7E of oil' , 77, '!',%X'00040000' V, X 7500, 3, 257, 10, 5, 0, 0, 0, 0, '2d6' , 1) `7B105`7D X`09`09`09`09`09); X X`09store_choice`09:=`09( X`09`7B General Store `7D X(105,104,103,102,102,104,42,105,104,27,26,5,4,3,3,2,2,2,1,1,1,1,1,1,1,1 X), X`09`7B Armory `7D X(30,31,32,33,34,35,36,37,38,39,40,41,43,44,45,46,47,30,33,34,43,44,28,29,30, V31 X), X`09`7B Weaponsmith `7D X( 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 6, 7,23,25,23, V25 X), X`09`7B Temple `7D X(71,72,73,74,59,59,77,79,80,81,84,85,13,14,15,96,97,98,100,79,79,80,80,81,72 V,98 X), X`09`7B Alchemy shop `7D X(55,56,57,58,58,60,61,62,63,64,65,66,75,76,78,82,83,60,61,62,63,64,98,99,98, V98 X), X`09`7B Magic-User store`7D X(67,49,50,51,52,53,54,48,68,69,69,70,86,87,88,89,90,91,92,93,94,95,86,101,68 V,88 X) X`09`09`09`09); X X`09`7B Each store will buy only certain items, based on TVAL `7D X`09store_buy := ( X`09`09`09`09`5B25,30,32,80,77,15,13`5D, X`09`09`09`09`5B30,31,33,34,35,36`5D, X`09`09`09`09`5B10,11,12,20,21,22,23`5D, X`09`09`09`09`5B21,70,71,75,76,91`5D, X`09`09`09`09`5B70,71,75,76`5D, X`09`09`09`09`5B40,45,55,65,70,71,75,76,90`5D X`09`09`09`09); X X`09`7B Store owners have different characteristics for pricing and haggling` V7D X`09`7B Note: Store owners should be added in groups, one for each store ` V7D X`09owners := ( X('Erick the Honest (Human) General Store', X`09 250, 0.75, 0.08, 0.04, 1, 12), X('Mauglin the Grumpy (Dwarf) Armory' , X`0932000, 1.00, 0.12, 0.04, 6, 5), X('Arndal Beast-Slayer (Half-Elf) Weaponsmith' , X`0910000, 0.85, 0.10, 0.05, 2, 8), X('Hardblow the Humble (Human) Temple' , X`09 3500, 0.75, 0.09, 0.06, 1, 15), X('Ga-nat the Greedy (Gnome) Alchemist' , X`0912000, 1.20, 0.15, 0.04, 5, 9), X('Valeria Starshine (Elf) Magic Shop' , X`0932000, 0.75, 0.10, 0.05, 3, 11), X('Andy the Friendly (Halfling) General Store', X`09 200, 0.70, 0.08, 0.05, 4, 15), X('Darg-Low the Grim (Human) Armory' , X`0910000, 0.90, 0.11, 0.04, 1, 9), X('Oglign Dragon-Slayer (Dwarf) Weaponsmith' , X`0932000, 0.95, 0.12, 0.04, 6, 8), X('Gunnar the Paladin (Human) Temple' , X`09 5000, 0.85, 0.10, 0.05, 1, 23), X('Mauser the Chemist (Half-Elf) Alchemist' , X`0910000, 0.90, 0.11, 0.05, 2, 8), X('Gopher the Great! (Gnome) Magic Shop' , X`0920000, 1.15, 0.13, 0.06, 5, 10), X('Lyar-el the Comely (Elf) General Store', X`09 300, 0.65, 0.07, 0.06, 3, 18), X('Mauglim the Horrible (Half-Orc) Armory' , X`09 3000, 1.00, 0.13, 0.05, 7, 9), X('Ithyl-Mak the Beastly (Half-Troll) Weaponsmith' , X`09 3000, 1.10, 0.15, 0.06, 8, 8), X('Delihla the Pure (Half-Elf) Temple' , X`0925000, 0.80, 0.07, 0.06, 2, 20), X('Wizzle the Chaotic (Halfling) Alchemist' , X`0910000, 0.90, 0.10, 0.06, 4, 8), X('Inglorian the Mage (Human?) Magic Shop' , X`0932000, 1.00, 0.10, 0.07, 1, 10) X`09`09`09`09); X X`09`7B Each type of character starts out with a few provisions...`09`7D X`09`7B Note the the entries refer to array elements of INVENTORY_INIT array` V7D X`09player_init := ( X`09`09( 1, 104, 42, 7, 33), `7B Warrior `7D X`09`09( 1, 104, 42, 7, 67), `7B Mage `7D X`09`09( 1, 104, 42, 7, 71), `7B Priest `7D X`09`09( 1, 104, 7, 33, 67), `7B Rogue `7D X`09`09( 1, 104, 42, 7, 67), `7B Ranger `7D X`09`09( 1, 104, 42, 7, 71) `7B Paladin `7D X`09`09`09`09); X X X`09`7B Identified objects flags`09`09`09`09`09`7D X`09object_ident := (max_objects of false); X X`09`7B Traps are just Nasty treasures...`09`09`09`09`7D X`09trap_lista := ( X('an open pit' , 102, ' ',%X'00000000', X 0, 0, 1, 0, 0, 0, 0, 0, 0, '2d6' ,-50), X('an arrow trap' , 101, '.',%X'00000000', X 0, 0, 2, 0, 0, 0, 0, 0, 0, '1d8' , 0), X('a covered pit' , 101, '.',%X'00000000', X 0, 0, 3, 0, 0, 0, 0, 0, 0, '2d6' , 0), X('a trap door' , 101, '.',%X'00000000', X 0, 0, 4, 0, 0, 0, 0, 0, 0, '2d8' , 0), X('a gas trap' , 101, '.',%X'00000000', X 0, 0, 5, 0, 0, 0, 0, 0, 0, '1d4' , 0), X('a loose rock' , 101, '.',%X'00000000', X 0, 0, 6, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('a dart trap' , 101, '.',%X'00000000', X 0, 0, 7, 0, 0, 0, 0, 0, 0, '1d4' , 0), X('a strange rune' , 101, '.',%X'00000000', X 0, 0, 8, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('some loose rock' , 101, '.',%X'00000000', X 0, 0, 9, 0, 0, 0, 0, 0, 0, '2d6' , 0), X('a gas trap' , 101, '.',%X'00000000', X 0, 0, 10, 0, 0, 0, 0, 0, 0, '1d4' , 0), X('a strange rune' , 101, '.',%X'00000000', X 0, 0, 11, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('a blackened spot' , 101, '.',%X'00000000', X 0, 0, 12, 0, 0, 0, 0, 0, 0, '4d6' , 0), X('some corroded rock' , 101, '.',%X'00000000', X 0, 0, 13, 0, 0, 0, 0, 0, 0, '4d6' , 0), X('a gas trap' , 101, '.',%X'00000000', X 0, 0, 14, 0, 0, 0, 0, 0, 0, '2d6' , 0), X('a gas trap' , 101, '.',%X'00000000', X 5, 0, 15, 0, 0, 0, 0, 0, 0, '1d4' , 10), X('a gas trap' , 101, '.',%X'00000000', X 5, 0, 16, 0, 0, 0, 0, 0, 0, '1d8' , 5), X('a dart trap' , 101, '.',%X'00000000', X 5, 0, 17, 0, 0, 0, 0, 0, 0, '1d8' , 10), X('a dart trap' , 101, '.',%X'00000000', X 5, 0, 18, 0, 0, 0, 0, 0, 0, '1d8' , 10) X`09`09`09`09); X X`09`7B Traps: Level represents the difficulty of disarming;`09`7D X`09`7B and P1 represents the experienced gained when disarmed`7D X`09trap_listb := ( X('an open pit' , 102, ' ',%X'00000000', X 1, 0, 1, 0, 0, 0, 0, 0, 0, '2d6' ,-50), X('an arrow trap' , 102, '`5E',%X'00000000' V, X 3, 0, 2, 0, 0, 0, 0, 0, 0, '1d8' ,-10), X('a covered pit' , 102, '`5E',%X'00000000' V, X 2, 0, 3, 0, 0, 0, 0, 0, 0, '2d6' ,-40), X('a trap door' , 102, '`5E',%X'00000000' V, X 5, 0, 4, 0, 0, 0, 0, 0, 0, '2d8' ,-25), X('a gas trap' , 102, '`5E',%X'00000000' V, X 3, 0, 5, 0, 0, 0, 0, 0, 0, '1d4' , 5), X('a loose rock' , 102, ';',%X'00000000', X 0, 0, 6, 0, 0, 0, 0, 0, 0, '0d0' ,-90), X('a dart trap' , 102, '`5E',%X'00000000' V, X 5, 0, 7, 0, 0, 0, 0, 0, 0, '1d4' , 10), X('a strange rune' , 102, '`5E',%X'00000000' V, X 5, 0, 8, 0, 0, 0, 0, 0, 0, '0d0' ,-10), X('some loose rock' , 102, '`5E',%X'00000000' V, X 5, 0, 9, 0, 0, 0, 0, 0, 0, '2d6' ,-10), X('a gas trap' , 102, '`5E',%X'00000000' V, X 10, 0, 10, 0, 0, 0, 0, 0, 0, '1d4' , 5), X('a strange rune' , 102, '`5E',%X'00000000' V, X 5, 0, 11, 0, 0, 0, 0, 0, 0, '0d0' ,-10), X('a blackened spot' , 102, '`5E',%X'00000000' V, X 10, 0, 12, 0, 0, 0, 0, 0, 0, '4d6' , 10), X('some corroded rock' , 102, '`5E',%X'00000000' V, X 10, 0, 13, 0, 0, 0, 0, 0, 0, '4d6' , 10), X('a gas trap' , 102, '`5E',%X'00000000' V, X 5, 0, 14, 0, 0, 0, 0, 0, 0, '2d6' , 5), X('a gas trap' , 102, '`5E',%X'00000000' V, X 5, 0, 15, 0, 0, 0, 0, 0, 0, '1d4' , 10), X('a gas trap' , 102, '`5E',%X'00000000' V, X 5, 0, 16, 0, 0, 0, 0, 0, 0, '1d8' , 5), X('a dart trap' , 102, '`5E',%X'00000000' V, X 5, 0, 17, 0, 0, 0, 0, 0, 0, '1d8' , 10), X('a dart trap' , 102, '`5E',%X'00000000' V, X 5, 0, 18, 0, 0, 0, 0, 0, 0, '1d8' , 10), X`09`7B Special case, see DOOR_LIST below (subvals must agree) `7D X('a closed door' , 105, '+',%X'00000000', X 0, 0, 19, 0, 0, 0, 0, 0, 0, '1d1' , 0) X`09`09`09`09); X X`09`7B Stores are just special traps `09`09`7D X`09store_door := ( X('The entrance to the General Store.' , 110, '1',%X'00000000', X 0, 0, 101, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('The entrance to the Armory.' , 110, '2',%X'00000000', X 0, 0, 102, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('The entrance to the Weapon Smiths.' , 110, '3',%X'00000000', X 0, 0, 103, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('The entrance to the Temple.' , 110, '4',%X'00000000', X 0, 0, 104, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('The entrance to the Alchemy Shop.' , 110, '5',%X'00000000', X 0, 0, 105, 0, 0, 0, 0, 0, 0, '0d0' , 0), X('The entrance to the Magic Shop.' , 110, '6',%X'00000000', X 0, 0, 106, 0, 0, 0, 0, 0, 0, '0d0' , 0) X`09`09`09`09); X X X scare_monster := X('a strange rune' , 102, '`5E',%X'00000000' V, X 0, 0, 99, 0, 0, 0, 0, 0, 0, '0d0' ,-90); X X rubble := X('some rubble' , 103, ':',%X'00000000', X 0, 0, 1, 0, 0, 0, 0, 0, 0, '0d0' , 0); X X X`09`7B Secret door must have same subval as closed door in`09`7D X`09`7B TRAP_LISTB. See CHANGE_TRAP `7D X`09door_list := ( X('an open door' , 104,'''',%X'00000000', X 0, 0, 1, 0, 0, 0, 0, 0, 0, '1d1' , 0), X('a closed door' , 105, '+',%X'00000000', X 0, 0, 19, 0, 0, 0, 0, 0, 0, '1d1' , 0), X('a secret door' , 109, '#',%X'00000000', X 0, 0, 19, 0, 0, 0, 0, 0, 0, '1d1' , 0) X`09`09`09`09); X X up_stair := X('an up staircase ' , 107, '<',%X'00000000', X 0, 0, 1, 0, 0, 0, 0, 0, 0, '1d1' , 0); X X down_stair := X('a down staircase' , 108, '>',%X'00000000', +-+-+-+-+-+-+-+- END OF PART 65 +-+-+-+-+-+-+-+-