home *** CD-ROM | disk | FTP | other *** search
/ Amiga Special: Spiele Hits / Hits-CD.iso / aminet / spiele / ammud1_1.lha / AmigaMUD / Src / Proving / deepSewer.m < prev    next >
Text File  |  1997-06-22  |  55KB  |  1,393 lines

  1. /*
  2.  * Amiga MUD
  3.  *
  4.  * Copyright (c) 1997 by Chris Gray
  5.  */
  6.  
  7. /*
  8.  * deepSewer.m - deep sewer level of the proving grounds.
  9.  */
  10.  
  11. define tp_proving tp_deepSewer CreateTable()$
  12. use tp_deepSewer
  13.  
  14. define tp_deepSewer r_sewerShaft2 CreateThing(r_provingTunnelD)$
  15. SetupRoom(r_sewerShaft2, "in a vertical shaft",
  16.     "Rusty metal wrungs in the wall allow you to climb up here, and a "
  17.     "small opening heads south.")$
  18. Connect(r_sewerShaft1, r_sewerShaft2, D_DOWN)$
  19. Scenery(r_sewerShaft2, "wrung;rusty,metal.opening;small")$
  20.  
  21. define tp_deepSewer r_sewerShaft4 CreateThing(r_provingTunnelD)$
  22. SetupRoom(r_sewerShaft4, "in a vertical shaft",
  23.     "Rusty metal wrungs in the wall allow you to climb up here, and a "
  24.     "small opening heads north.")$
  25. Connect(r_sewerShaft3, r_sewerShaft4, D_DOWN)$
  26. Scenery(r_sewerShaft4, "wrung;rusty,metal.opening;small")$
  27.  
  28. define tp_deepSewer r_sewerChamber1 CreateThing(r_provingTunnelD)$
  29. SetupRoom(r_sewerChamber1, "in a large chamber",
  30.     "This chamber is quite large, but fairly low, and the ceiling is held "
  31.     "up by numerous stone pillars. You can see small openings in the "
  32.     "north, south, east and west walls.")$
  33. Connect(r_sewerShaft2, r_sewerChamber1, D_SOUTH)$
  34. Connect(r_sewerShaft4, r_sewerChamber1, D_NORTH)$
  35. AutoGraphics(r_sewerChamber1, AutoTunnelChamber)$
  36. Scenery(r_sewerChamber1, "ceiling.pillar;numerous,stone.opening;small.wall")$
  37. r_sewerChamber1@p_Image := "Proving/sewerChamber1"$
  38.  
  39. define tp_deepSewer r_sewerTunnel1 CreateThing(r_provingTunnelD)$
  40. SetupRoomP(r_sewerTunnel1, "in a low east-west tunnel", "")$
  41. Connect(r_sewerChamber1, r_sewerTunnel1, D_WEST)$
  42.  
  43. define tp_deepSewer r_sewerTunnel2 CreateThing(r_provingTunnelD)$
  44. SetupRoomP(r_sewerTunnel2, "in a low east-west tunnel", "")$
  45. Connect(r_sewerTunnel1, r_sewerTunnel2, D_WEST)$
  46.  
  47. define tp_deepSewer r_sewerTunnel3 CreateThing(r_provingTunnelD)$
  48. SetupRoomP(r_sewerTunnel3, "in a low east-west tunnel", "")$
  49. Connect(r_sewerTunnel2, r_sewerTunnel3, D_WEST)$
  50.  
  51. define tp_deepSewer r_sewerTunnel4 CreateThing(r_provingTunnelD)$
  52. SetupRoomP(r_sewerTunnel4, "in a low north-south-east tunnel Tee", "")$
  53. Connect(r_sewerTunnel3, r_sewerTunnel4, D_WEST)$
  54.  
  55. define tp_deepSewer r_sewerTunnel5 CreateThing(r_provingTunnelD)$
  56. SetupRoomP(r_sewerTunnel5, "in a low north-south tunnel", "")$
  57. Connect(r_sewerTunnel4, r_sewerTunnel5, D_NORTH)$
  58.  
  59. define tp_deepSewer r_sewerTunnel6 CreateThing(r_provingTunnelD)$
  60. SetupRoomP(r_sewerTunnel6, "at a south and east corner in the low tunnel","")$
  61. Connect(r_sewerTunnel5, r_sewerTunnel6, D_NORTH)$
  62.  
  63. define tp_deepSewer r_sewerTunnel7 CreateThing(r_provingTunnelD)$
  64. SetupRoomP(r_sewerTunnel7, "at a south-east-west Tee in the low tunnel", "")$
  65. Connect(r_sewerTunnel6, r_sewerTunnel7, D_EAST)$
  66.  
  67. define tp_deepSewer r_sewerTunnel8 CreateThing(r_provingTunnelD)$
  68. SetupRoomP(r_sewerTunnel8, "at a south-east-west Tee in the low tunnel","")$
  69. Connect(r_sewerTunnel7, r_sewerTunnel8, D_EAST)$
  70.  
  71. define tp_deepSewer r_sewerTunnel8_5 CreateThing(r_provingTunnelD)$
  72. SetupRoomP(r_sewerTunnel8_5, "at a dead-end in the low tunnel",
  73.     "The tunnel ends here in a blank wall. You can only go to the north.")$
  74. Connect(r_sewerTunnel8, r_sewerTunnel8_5, D_SOUTH)$
  75. Scenery(r_sewerTunnel8_5, "wall;blank")$
  76.  
  77. define tp_proving r_sewerChamber2 CreateThing(r_provingTunnelD)$
  78. SetupRoomP(r_sewerChamber2, "in a large chamber",
  79.     "The ceiling of this chamber is of medium height, and is held up by "
  80.     "numerous stone columns. There is a small opening in the north wall, and "
  81.     "a dark hole in the floor near a back corner.")$
  82. Connect(r_sewerTunnel7, r_sewerChamber2, D_SOUTH)$
  83. AutoGraphics(r_sewerChamber2, AutoTunnelChamber)$
  84. r_sewerChamber2@p_rDownMessage := "You drop through the small hole."$
  85. r_sewerChamber2@p_rDownOMessage := "drops through the small hole."$
  86. Scenery(r_sewerChamber2,
  87.     "ceiling,floor."
  88.     "column;numerous,stone."
  89.     "opening;small."
  90.     "wall;back,north."
  91.     "hole;dark."
  92.     "corner;back")$
  93. define tp_deepSewer o_goblinDagger CreateThing(nil)$
  94. o_goblinDagger@p_oName := "dagger;goblin"$
  95. o_goblinDagger@p_oDesc :=
  96.     "The goblin dagger has some unreadable runes scratched into the hilt, "
  97.     "and is of pretty shoddy workmanship. It is quite serviceable, however."$
  98. o_goblinDagger@p_oHome := r_lostAndFound$
  99. o_goblinDagger@p_Image := "Proving/goblinDagger"$
  100. SetupWeapon(o_goblinDagger, 0, 0, 0, 0, 0, 5, 9)$
  101. SetThingStatus(o_goblinDagger, ts_readonly)$
  102. define tp_deepSewer proc daggerQuestDesc()string:
  103.     "Bring me a goblin dagger."
  104. corp;
  105. define tp_deepSewer proc daggerQuestGive()status:
  106.     thing dagger;
  107.  
  108.     dagger := It();
  109.     if Parent(dagger) = o_goblinDagger then
  110.     GiveToQuestor("goblin dagger");
  111.     succeed
  112.     elif dagger@p_oName = "dagger;goblin" then
  113.     GiveToQuestor("goblin dagger");
  114.     SPrint(TrueMe(), "Questor is not impressed.\n");
  115.     fail
  116.     else
  117.     continue
  118.     fi
  119. corp;
  120. define tp_deepSewer proc daggerQuestHint()string:
  121.     "Don't be afraid of the dark. Look beneath the dirty places."
  122. corp;
  123. QuestGive("Dagger", daggerQuestDesc, daggerQuestGive, daggerQuestHint)$
  124. r_sewerChamber2@p_rLastVisit := 0$
  125. define tp_deepSewer proc chamber2Enter(thing room)void:
  126.     thing me, monster, dagger;
  127.     int now;
  128.  
  129.     now := Time();
  130.     me := Me();
  131.     if me@p_pStandard and now - r_sewerChamber2@p_rLastVisit >= 300 then
  132.     r_sewerChamber2@p_rLastVisit := now;
  133.     monster := CreateMonster(me, m_goblin, r_sewerChamber2);
  134.     /* This, unfortunately, is not really an adequate test. It is possible
  135.        to get more than one dagger if the goblin with the dagger is killed
  136.        outside this chamber, and the dagger is dropped there, but not
  137.        picked up by the player. I saw it happen. */
  138.     if not DoneQuest(daggerQuestGive) and
  139.         CarryingChild(me, o_goblinDagger) = nil and
  140.         ChildHere(r_sewerChamber2, o_goblinDagger) = nil
  141.     then
  142.         dagger := CreateThing(o_goblinDagger);
  143.         SetThingStatus(dagger, ts_public);
  144.         GiveThing(dagger, SysAdmin);
  145.         dagger@p_oCreator := me;
  146.         dagger@p_oCarryer := monster;
  147.         AddTail(monster@p_pCarrying, dagger);
  148.         monster@p_pWeapon := dagger;
  149.     fi;
  150.     ignore CreateMonster(me, m_goblin, r_sewerChamber2);
  151.     fi;
  152. corp;
  153. AddAnyEnterAction(r_sewerChamber2, chamber2Enter, false)$
  154. r_sewerChamber2@p_Image := "Proving/sewerChamber2"$
  155.  
  156. define tp_deepSewer r_sewerTunnel9 CreateThing(r_provingTunnelD)$
  157. SetupRoomP(r_sewerTunnel9, "at a north and west corner in the low tunnel","")$
  158. Connect(r_sewerTunnel4, r_sewerTunnel9, D_SOUTH)$
  159.  
  160. define tp_deepSewer r_sewerTunnel10 CreateThing(r_provingTunnelD)$
  161. SetupRoomP(r_sewerTunnel10,"at a south and east corner in the low tunnel","")$
  162. Connect(r_sewerTunnel9, r_sewerTunnel10, D_WEST)$
  163.  
  164. define tp_deepSewer r_sewerTunnel10_5 CreateThing(r_provingTunnelD)$
  165. SetupRoomP(r_sewerTunnel10_5, "in a low north-south tunnel", "")$
  166. Connect(r_sewerTunnel10, r_sewerTunnel10_5, D_SOUTH)$
  167.  
  168. define tp_deepSewer r_sewerTunnel11 CreateThing(r_provingTunnelD)$
  169. SetupRoomP(r_sewerTunnel11, "in a low north-south tunnel", "")$
  170. Connect(r_sewerTunnel10_5, r_sewerTunnel11, D_SOUTH)$
  171.  
  172. define tp_deepSewer r_sewerTunnel12 CreateThing(r_provingTunnelD)$
  173. SetupRoomP(r_sewerTunnel12,"at a north and east corner in the low tunnel","")$
  174. Connect(r_sewerTunnel11, r_sewerTunnel12, D_SOUTH)$
  175.  
  176. define tp_deepSewer r_sewerTunnel13 CreateThing(r_provingTunnelD)$
  177. SetupRoomP(r_sewerTunnel13, "in a low east-west tunnel", "")$
  178. Connect(r_sewerTunnel12, r_sewerTunnel13, D_EAST)$
  179.  
  180. define tp_deepSewer r_sewerTunnel14 CreateThing(r_provingTunnelD)$
  181. SetupRoomP(r_sewerTunnel14,"at a north and west corner in the low tunnel","")$
  182. Connect(r_sewerTunnel13, r_sewerTunnel14, D_EAST)$
  183.  
  184. define tp_deepSewer r_sewerTunnel15 CreateThing(r_provingTunnelD)$
  185. SetupRoomP(r_sewerTunnel15, "at a south-east-west Tee in the low tunnel", "")$
  186. Connect(r_sewerTunnel14, r_sewerTunnel15, D_NORTH)$
  187.  
  188. define tp_deepSewer r_sewerChamber3 CreateThing(r_provingTunnelD)$
  189. SetupRoomP(r_sewerChamber3, "in a large chamber",
  190.     "This high-ceilinged chamber shows signs of animal habitation. The floor "
  191.     "is littered with twigs, grass, bones, and other less pleasant things. "
  192.     "The stone pillars supporting the dimly visible ceiling are rank with "
  193.     "oozing slime. A small passage leads out of the east wall.")$
  194. Connect(r_sewerTunnel15, r_sewerChamb