Rename game files to lowercase
[spiritwrak.git] / src / miznia.inf
1 ! *******************************************************************
2 ! MIZNIA -- add-on for SPIRITWRAK
3 ! *******************************************************************
4
5
6 Object MIZNIA_GUSStop "Mizniaport"
7    with description "The Great Change certainly hasn't changed the \
8 ultra-swank city of Mizniaport. The entire place is filled with \
9 splashy color and a disturbing sense of moderness. There's a \
10 stairway down here, while side walkways head west and \
11 northeast.",
12         name "color" "moderness" "stairway" "walkway" "walkways",
13         d_to MIZNIA_GUSStation,
14         w_to MIZNIA_Park,
15         ne_to FROBAR_Ent,
16     has light;
17     
18 Object MIZNIA_Park "Miznia Suburbs"
19    with description "Overly cozy-looking homes sprout up all over \
20 the place here. Ridiculously \
21 well-trimmed front lawns remind you that you're still in Miznia. \
22 A nice pebble path heads east and west. You see the entrance to \
23 a swank-looking boutique to the south.",
24         name "homes" "lawns" "pebble" "path",
25         e_to MIZNIA_GUSStop,
26         w_to MIZNIA_Outskirts,
27         s_to MIZNIA_Boutique,
28         in_to MIZNIA_Boutique,
29    has light;
30
31 Object MIZNIA_Boutique "Swank Boutique"
32    with description "A ultra-swank accessory store, filled with \
33 flashy items for the fashion-unconscious shopper. \
34 An exit lies north.",
35         name "items" "accessory",
36         out_to MIZNIA_Park,
37         n_to MIZNIA_Park,
38    has light;
39
40 Object boutique_sign "small sign" MIZNIA_Boutique
41    with description "The sign reads ~PLEASE RING BELL FOR SERVICE~",
42         name "small" "sign",
43    has static;
44    
45 Object MIZNIA_Outskirts "City Limits"
46    with description "The city stops here abruptly. The Miznia jungle \
47 makes its presence known for real here, forming a natural barrier. A \
48 path leads east, while an almost overgrown path leads into the jungle \
49 to the southwest.",
50         name "path" "jungle" "barrier",
51         e_to MIZNIA_Park,
52         sw_to Jungle_Edge,
53    has light;
54   
55 Object c8 "coin" MIZNIA_Boutique class coin_class;
56
57 Object Jungle_Edge "Edge of Jungle"
58    with description "Wild birds and wilder vegetation distract you from \
59 a faint trail through the jungle here. The path leads northeast and \
60 southwest.",
61         name "birds" "vegetation" "trail",
62         ne_to MIZNIA_Outskirts,
63         sw_to Deep_Jungle,
64    has light;
65
66 Object Deep_Jungle "Deep Jungle"
67    with description "You're in very deep jungle, just on the verge of \
68 getting lost. Your surroundings are green and untamed. A path \
69 leads northeast, while a muddy path heads south.",
70         name "mud" "path",
71         ne_to Jungle_Edge,
72         s_to Swamp,
73    has light;
74
75 Object Swamp "Swamp"
76    with description [;
77           print "You're knee-deep in a murky swamp. Huge swamp grasses \
78 wall you in";
79           if (self has general)
80              print ", except for a section to the west";
81           ". Drier land is north or south.";
82         ],
83         name "swamp" "land",
84         n_to Deep_Jungle,
85         s_to Jungle_Clearing,
86         w_to [;
87            if (self hasnt general)
88               "You can't go that way.";
89            else return Jungle_Ruins;
90         ],
91    has light;
92
93 Nearby grasses "grasses"
94    with name "grass" "grasses",
95         description "Tall, thick swampgrass.",
96         before [;
97            Push, Pull, Cut, Attack:
98                "The grass is extremely hardy.";
99            Search:
100                if ((Jungle_Map notin player))
101                   "You hunt around in the grasses for a while and find nothing.";
102                else {
103                   give Swamp general;
104                   Achieved(21);
105                   "You check the jungle map. Sure enough, there's a loose \
106 patch of grass that you could duck under to the west.";
107                }
108            Cast:
109                if (the_spell_was == throck_spell)
110                   "Grasses don't grow much more than this.";
111         ],
112    has scenery;
113
114
115 Object Jungle_Clearing "Jungle Clearing"
116    with description "The Jungle clears out a bit here, so you can actually \
117 see patches of sky and walk ten paces without running into a tree. There's \
118 a path into the jungle undergrowth to the north. \
119 You notice a group of jungle natives gathered here.",
120         name "sky" "path",
121         number 1,
122         n_to Swamp,
123         each_turn [ ;
124            if (Jungle_Clearing.number == 2) {
125               move Shaman to Jungle_Clearing;
126               Jungle_Clearing.number = 5;
127               "^A single native tribesman breaks away from the group and \
128 approaches you.";
129            }
130            if (Jungle_Clearing.number == 1)
131               Jungle_Clearing.number = 2; 
132         ],
133    has light;
134
135 Nearby natives "natives"
136    with name "natives" "group",
137         description "A group of jungle natives in elaborate feather and \
138         fur clothing. They appear to be armed with large spears.",
139         life [;
140 default:  "The group of natives looks at you with distrusting stares.";
141         ],
142         before [;
143 Cast: 
144    if (the_spell_was == espnis_spell or foblub_spell)
145 "They can't understand your language, thus the meaning of \
146 the sermon is lost on them.";
147         ],
148    has animate concealed;
149    
150         
151         
152 Object Jungle_Ruins "Hidden Ruins"
153    with description "Hidden here in some extremely deep jungle \
154         are the ruins of some ancient civilization. Broken sandstone \
155         structures are nearly covered with jungle vines and mosses. \
156         There is a partially intact structure to the north. \
157         It seems to be a short pyramid-like building, with a single \
158         dark entrance hidden amongst vines. Definitely a find to \
159         write the Monastery about, or at least your local \
160         Archeology Guild.",
161         name "sandstone" "structures" "structure" "vines" 
162 "pyramid" "entrance" "mosses",
163         e_to Swamp,
164         n_to TEMPLE_Ent,
165    has light;
166    
167 ! (The ancient temple, unlit, of course)
168 Object TEMPLE_Ent "Pyramid Entrance"
169    with description "A damp, dark, unmarked stone room. You can hear \
170         the sounds of the jungle from the exit to the south. There \
171         are dark passages north and east.",
172         s_to Jungle_Ruins,
173         e_to TEMPLE_Statue_room,
174         n_to TEMPLE_Trap,
175         before [;
176            Listen: "You hear noises of the jungle from the south.";
177         ],
178 ;
179   
180 Object TEMPLE_Statue_room "Statue Room"
181    with description "A tiny dark chamber, with a passage west.",
182         w_to TEMPLE_Ent,
183 ;
184
185 Nearby TEMPLE_Statue "large statue"
186    with name "statue",
187         description "A stone statue of some ancient \
188         warrior, probably intended to frighten off visitors.",
189         before [;        
190            ! manual dealing with PushDir (only 3 possible locs anyway)
191            PushDir:
192               if (self has general)
193                  "The statue is stuck fast and doesn't budge.";
194               if ((self in TEMPLE_Statue_room) && (second == w_obj)) {
195                print "^There's a grinding noise as you push the statue west.^";
196                AllowPushDir(); rtrue;
197               }
198               if ((self in TEMPLE_Ent) && (second == s_obj))
199                  "^The statue doesn't appear to fit through the \
200                  entranceway.";
201               if ((self in TEMPLE_Ent) && 
202                   ((second == n_obj) || (second == e_obj))) {
203                  print "^There's a grinding noise as you push the statue.^";
204                  AllowPushDir(); rtrue;
205               }
206               if ((self in TEMPLE_Trap) && (second == s_obj)) {
207                print "^There's a grinding noise as you push the statue south.^";
208                  AllowPushDir(); rtrue;
209               }
210               if ((self in TEMPLE_Trap) && (second == n_obj)) {
211                  give self general;
212                  move rollers to TEMPLE_Trap;
213                  "You start to push the statue north, and hear a strange \
214                  click. Suddenly, two enormous stone rolling pins slide \
215                  down from the east and west sides of the room! \
216                  Desperately, you topple the statue and hide behind it. \
217                  You hear a huge crash!^^\
218                  You open your eyes, surprised to find yourself not \
219                  squashed into pancake. The statue has wedged itself \
220                  neatly between the two giant rollers, effectively \
221                  blocking them!";
222               }
223               "You can't push the statue that way.";
224             Take:
225               "The statue rocks back and forth a bit, but is \
226 far too heavy to take.";
227             Push:
228               print "The statue ";
229               if (self hasnt general)
230               "rocks back and forth a bit.";
231               else "seems to be stuck.";
232            ],                 
233    has static;
234    
235 Object TEMPLE_Trap "Strange Chamber"
236    with description "This is an odd long hallway running north and south. \
237 The stone floor is noticeably concave, sloping upwards to \
238 the east and west. It's like being in a long stone \
239 channel.",
240         name "slope" "channel",
241         s_to TEMPLE_Ent,
242         e_to "The floor gets too steep, and you slide back down.",
243         w_to "The floor gets too steep, and you slide back down.",        
244         n_to [;
245            if (TEMPLE_Statue hasnt general) {
246               deadflag = 1;
247               "You head north, and hear a strange click. Suddenly, \
248               two huge stone rolling pins roll down from the east \
249               and west sides of the room! Desperately, you try to \
250               escape, but the hall is too long, and the stone \
251               rollers too fast. You are crushed to jelly.";
252            }
253            else {
254               print "You step over and around the jammed rollers and \
255               the statue and head north.^";
256               return TEMPLE_1;
257            }
258         ],
259 ;
260
261 Object rollers "stone rollers"
262    with name "roller" "rollers" "stone",
263         initial "There are two stone rollers pinned against the statue.",
264         description "Massive stone rolling pins.",
265         before [;
266 Push, Pull, Attack, Turn, Shake, Squeeze:
267 "The rollers are huge and stuck fast.";
268         ],
269    has static;
270    
271 Object TEMPLE_1 "Bare Chamber"
272    with description "You are in a bare stone chamber with passages leading \
273 north, east, south and west. A stone ladder also heads upwards through a \
274 dark hole in the ceiling.",
275        name "ladder" "hole",
276        s_to TEMPLE_Trap,
277        n_to TEMPLE_1N,
278        e_to TEMPLE_1E,
279        w_to TEMPLE_1W,
280        u_to TEMPLE_2,
281 ;       
282         
283 Object TEMPLE_1W "Small Chamber"
284    with description "You're in a small bare chamber. On one of the walls, \
285    you notice an engraving, almost worn away with age. It seems to be a \
286    picture of a jungle village, and you recognize the pyramid you are currently in. \
287    An exit lies east.",
288       e_to TEMPLE_1,
289 ;
290
291 Object TEMPLE_1N "Small Chamber"
292    with description "You're in a rather bare chamber. On one of the walls, \
293    you see a worn engraving depicting a group of robed figures standing in \
294    some chamber. They are carrying several long reeds. An exit lies south.",
295         s_to TEMPLE_1,
296 ;
297
298 Object TEMPLE_1E "Small Chamber"
299    with description "You're in a small stone chamber. In the center of the \
300    floor is a strange funnel-like depression, which starts as a large \
301    circular opening, and narrows into a very small tunnel below, \
302    probably no wider than your hand. You also see a small round hole \
303    in the ceiling above. An exit heads west.",
304       w_to TEMPLE_1,
305       d_to "You'd never fit down that opening.",
306       u_to "You can't reach the hole, and besides, you'd never fit through \
307 it if you could.",
308 ;
309
310 Object TEMPLE_1_HOLEU "hole" TEMPLE_1E
311    with name "hole",
312         description "You see a dark small hole in the center of the \
313 ceiling.",
314         before [;
315 Rub, Push, Pull, Touch, Receive, LetGo, Search:
316 "The hole is far above your head.";
317         ],
318    has scenery;
319
320 Object TEMPLE_1_Opening "opening" TEMPLE_1E
321    with name "opening" "funnel" "depression" "tunnel",
322         description "A smooth funnel in the stone in the floor, that descends \
323         into darkness as it narrows.",
324         describe [ x;
325            print "^The opening ";
326            if (children(self) == 0)
327               "appears to be empty.";
328            else {
329          print "contains:^";
330          x = children(self);
331          x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT;
332          WriteListFrom (child(self), x, 1); 
333          rtrue;
334            }
335         ],
336         before [;
337            Receive:
338              if (noun ~= TEMPLE_Artifact)  {
339                 print "That doesn't quite fit -- ";
340                 if (noun.size > TEMPLE_Artifact.size)
341                    "the funnel becomes too narrow too quickly.";
342                 else "strangely...";
343              }
344            LetGo:
345               "You stick your hand down the small hole, but it must be \
346               quite deep, and you can't quite reach.";
347          ],
348          capacity 1,
349          size 10,
350    has static container open;
351    
352 Object TEMPLE_2 "Bare Chamber"
353    with description "You are in a bare stone chamber with passages leading \
354 north, east, south and west. A stone ladder leads upwards and downwards \
355 into dark holes.",
356        name "ladder" "hole",
357        s_to TEMPLE_2S,
358        n_to TEMPLE_2N,
359        e_to TEMPLE_2E,
360        w_to TEMPLE_2W,
361        u_to TEMPLE_3,
362        d_to TEMPLE_1,
363 ;   
364
365 Object TEMPLE_2N "Small Chamber"
366   with description "You're in a small bare chamber. Engravings on the \
367   wall show several robed figures in a low domed chamber. Some of \
368   the figures are pushing what appears to be reeds down a small hole \
369   in the ground, while others stand by and seem to be praying or \
370   engaged in some ceremony. In a separate scene, similar robed \
371   figures can be seen throwing some poor bound individual off the \
372   top of the pyramid, apparently in some sort of ritualistic \
373   sacrifice. An exit heads south.",
374      s_to TEMPLE_2,
375 ;
376
377 Object TEMPLE_2W "Small Chamber"
378    with description "You're in a small bare chamber. Engravings on \
379    the wall depict several robed figures in a room mostly filled \
380    with water. The figures are watching reeds that seem to fall \
381    from the sky and land in the water. Several reeds are floating \
382    towards an apparent drain in the water, where a few reeds that are thin \
383    enough fall through with the flow of the water. An exit lies east.",
384       e_to TEMPLE_2,
385 ;
386
387 Object TEMPLE_2S "Small Chamber"
388    with description "You're in a rather small chamber. Engravings on \
389    the walls depict several robed figures in a strange room with a \
390    circular depression in the ground, filled with water. Water also \
391    flows into the pool in a thin stream from some undrawn source above. \
392    With the stream of water, a few reeds appear to be falling. A single \
393    figure is collecting the reeds as they fall and placing them in \
394    a long thin vase or container. The significance of \
395    this is uncertain. An exit lies north.",
396       n_to TEMPLE_2,
397 ;
398
399 Object TEMPLE_engravings "engravings"
400    with name "engravings" "engraving",
401         description [; <Look>; ],
402         found_in TEMPLE_1W TEMPLE_1N TEMPLE_2N TEMPLE_2W TEMPLE_2S,
403    has scenery;
404
405 Object TEMPLE_2E "Small Chamber"
406    with description [;
407    print "You're in a bare stone chamber which is partially \
408 filled with a sunken pool of dirty blackish water. Near the south wall \
409 is a depression in the floor that was probably a drain for the pool, given the \
410 apparent water stains; however the level of the pool is below \
411 the point where it would overflow into the drain. Near the center \
412 of the ceiling is a small round hole, right above the pool. An \
413 exit lies west";
414    if ((self hasnt general) && (TEMPLE_3 hasnt general) &&
415         (amulet has worn)) {
416       give self general;
417       ".^^Your amulet suddenly gives off a bright purple flash!";
418    }
419    else ".";
420    ],
421    name "stains",
422    before [;
423       Fill:
424 "The blackish water seems like something you really don't want.";
425    ],  
426    w_to TEMPLE_2,
427 ;  
428    
429 Object TEMPLE_2_HOLEU "hole" TEMPLE_2E
430    with name "hole",
431         description "You see a dark small hole in the center of the \
432 ceiling.",
433         before [;
434 Rub, Push, Pull, Touch, Receive, LetGo, Search:
435 "The hole is far above your head.";
436         ],
437    has scenery;
438
439 Object TEMPLE_2_Opening "opening" TEMPLE_2E
440    with name "opening" "drain" "depression",
441         description "A smooth drain opening in the stone in the floor, \
442         that descends into darkness.",
443         before [;
444            Receive:
445              if ((noun ~= TEMPLE_Artifact) && (noun hasnt is_rod)) ! TODO ADD?
446               "Oddly, that doesn't fit through the small round drain.";
447              else {
448                 if (children(TEMPLE_1_Opening) == 0) 
449                    move noun to TEMPLE_1_Opening;
450                 if (TEMPLE_Artifact in TEMPLE_1_Opening &&
451                     children(TEMPLE_Artifact) == 0)
452                    move noun to TEMPLE_Artifact;
453                 else move noun to TEMPLE_1E;  
454                 CDefArt(noun); " drops into the drain and disappears \
455                 out of sight. Moments later you hear a thump from \
456                 somewhere below.";
457              }
458          ],
459          capacity 1,
460          size 10,
461    has scenery container open;
462
463 Object TEMPLE_Pool "pool" TEMPLE_2E
464    with name "pool" "water",
465         describe [;
466 print "^The black pool is disturbingly calm";
467 if (umbrella in self)
468    ". Floating on the surface is a black open umbrella.";
469 else ".";
470         ],
471         description [;
472            print "Murky black water that seems disturbingly calm";
473            if (umbrella notin self)
474            ".";
475            else
476            ". Floating on the surface is a black open umbrella.";
477            ],
478         before [;
479            Cast:
480               if (the_spell_was == frotz_spell)
481                  "There's a strange gurgling noise as you finish the \
482                  chant, and the black water starts to glow! But, \
483                  to your horror, the inky water seems to absorb the \
484                  light and return to its original blackness! The \
485                  chant fails.";
486                  
487           Enter:
488              deadflag = 1;
489              "You notice the water seems unusually cold as you enter \
490              the pool. Without warning, something grabs your legs and \
491              pulls you under! In pitch black liquid that seems to \
492              absorb all light, you can't defend yourself, or even \
493              see your adversary, who devours you shortly.";
494           Search:
495              "You can't see a thing, the water is blacker than night.";
496           Receive:
497              if (noun == toy_volcano) {
498                 remove noun;
499                 "You drop the toy volcano into the black pool and \
500 watch it sink. Moments later, a large large bubble rises, and \
501 pops at the surface, followed by a strange, belch-like noise!";
502              }
503              if ((noun ~= umbrella) || (umbrella hasnt open)) {
504              remove noun;
505              CDefArt(noun); 
506 print " falls into the pool and slowly sinks into the black water. \
507 Suddenly, ", (the) noun, " seems to get pulled into the pool, \
508 and is soon gone! Something dwells in that pool, apparently, \
509 hidden well in a cover of"; " blackness!";
510              }
511              else {
512                 move umbrella to TEMPLE_Pool;
513                 give umbrella ~light;  ! a 'special-effect'?
514                 "The open umbrella sits in the pool, floating on the \
515                 surface like a cloth dome.";
516              }                      
517         ],
518         size 25,
519    has static container open;
520
521                
522 Object TEMPLE_3 "Collapsed Chamber"
523    with description [;
524    print "You are in a stone chamber that has broken and \
525    eroded walls in several places. Broken stones and dirt are everywhere. \
526    It appears there was once an open archway east, however the heavy stones \
527    that framed it have collapsed. A tiny hole remains, \
528    but it would be an exceptionally tight squeeze. \
529    A stone ladder leads downwards into a dark hole";
530    if ((self hasnt general) && (TEMPLE_2E hasnt general) &&
531        (amulet has worn)) {
532       give self general;
533       ".^^Your amulet suddenly gives off a bright purple flash!";
534    }
535    else ".";
536    ],
537    name "stones" "dirt" "archway" "ladder" "hole",
538        e_to [;
539           if (children(player) ~= 0)
540              "You try to squeeze through the hole, to \
541              no avail. You're carrying too much to fit.";
542           else return TEMPLE_3E;
543        ],
544        d_to TEMPLE_2,
545 ;
546
547 Object TEMPLE_3E "Low Chamber"
548    with description "You're in a tiny low room, dimly lit by strange \
549    glowing lichens and mosses. A tiny exit lies west between some \
550    collapsed rock -- it looks like a very tight squeeze. The room is \
551    otherwise filled with broken rock and the like. A tiny round hole \
552    is in the very center of the floor.",
553    name "lichens" "mosses" "rock",
554    w_to [;
555       if (children(player) ~= 0)
556              "You try to squeeze through the hole, to \
557              no avail. You're carrying too much to fit.";
558           else return TEMPLE_3;
559        ],
560    d_to "You can barely fit your hand in the hole.",
561 has light;
562               
563 Nearby TEMPLE_3_Opening "opening"
564    with name "opening" "hole" "tiny" "round",
565         description "A smooth round hole in the stone in the floor \
566         that descends into darkness.",
567         before [;
568            Receive:
569              if (noun hasnt is_rod)  
570                 "Oddly, that doesn't quite fit.";
571              else {
572                 print "The rod slips through with ease. \
573 Moments later you";
574                 if (umbrella notin TEMPLE_Pool) {
575                    remove noun;  
576                    " hear a splash from somewhere below.";
577                 }
578                 else {
579                 if (children(TEMPLE_1_Opening) == 0) 
580                    move noun to TEMPLE_1_Opening;
581                 else {
582                 if (TEMPLE_Artifact in TEMPLE_1_Opening &&
583                     children(TEMPLE_Artifact) == 0) 
584                    move noun to TEMPLE_Artifact;
585                 else move noun to TEMPLE_1E;  
586                 Achieved(22);
587                 }
588                 !   if (TEMPLE_Artifact notin TEMPLE_1_Opening)
589                 !      move noun to TEMPLE_1_Opening;
590                 !   else 
591                 !      move noun to TEMPLE_Artifact;
592                    " hear a thump from below, followed by a rattling noise, \
593                    and finally another thump, much fainter.";
594                 }
595              }
596          ],
597          capacity 1,
598          size 10,
599    has scenery container open;
600
601
602 ! (Super Zmart) (REMOVED)
603
604 Object stuffed_toy "stuffed toy" MIZNIA_Park
605    with name "toy" "stuffed" "alligator",
606         initial "A stuffed toy has been left unattended on someone's lawn.",
607         description "A cute little stuffed toy alligator.",
608         !weight 5,
609         size 15,
610 ;
611
612
613    
614 Object FROBAR_Ent "In Front of Swank House"
615    with description "You're in front of a rather swank looking house to the \
616         northeast. To the southwest is the rest of Mizniaport.",
617         name "house",
618         sw_to MIZNIA_GUSStop,
619         ne_to [;
620            if (Frobar in Delbins)
621               "You walk up to the front door, only to find it locked.";
622            else return FROBAR_Foyer;
623         ],
624         in_to [;
625            if (Frobar in Delbins)
626               "You walk up to the front door, only to find it locked.";
627            else return FROBAR_Foyer;
628         ],
629    has light;
630    
631 Nearby Frobar_mailbox "mailbox"
632    with name "mailbox" "box",
633         description "A mailbox stands in front of the house. The letter \
634         ~F~ is on one side.",
635         capacity 5,
636         size 15,
637         ! block a receive here?
638    has static container openable;
639    
640 Object Ench_mag "copy of ~Enchanter Monthly~" Frobar_mailbox
641    with name "magazine" "monthly" "enchanter" "copy",
642         description "~Enchanter Monthly~ has been somewhat lacking in \
643         quality content these days (The absence of magic probably \
644         being a large factor behind this). For filler, the editors have \
645         been turning in mostly tabloid drivel articles about ~What ever \
646         happened to so-and-so?~. This month's cover story \
647         suggests that Barsap the magician was actually turned into a tortoise \
648         during the Great Cataclysm, and underwent a slow mutation into a \
649         newt.",
650         !weight 5, 
651         size 15,
652 ;
653               
654
655
656
657 ! **********
658 ! critters/people
659 ! **********
660
661 Object Shaman "jungle shaman"
662    with name "shaman" "tribesman" "native",
663         description [;
664 print "A jungle native with a rather elaborate costume \
665         make of bird feathers and animal hides. He seems old, but wise";
666 if (self hasnt general) 
667         ". Unlike the rest of the natives, this one is not wearing a \
668         fancy feather-and-fur headdress.";
669 else ".";
670         ],        
671         life [;
672            Order:
673               if ((action==##Give) && (noun==Jungle_Map) && (Jungle_Map in self))
674                  "You try to convey your desire for the map with \
675                  gestures. The shaman seems to understand. He \
676                  points to the map, then you. Then, he raises his \
677                  hand in a 'stop' gesture. Then, he points to his \
678                  bare head.";
679               "The shaman does not seem to understand.";
680            Give:
681               if (noun==headdress) {
682                  move Jungle_Map to player;
683                  move headdress to Shaman;
684                  give self general;
685                  "The shaman takes the headdress and places it on his \
686                  head. He smiles, and gives you a strange map in return.";
687               }
688               "The shaman smiles and shakes his head.";
689            Attack, ThrowAt:
690               deadflag = 1;
691               "As you make a threatening move, several of the natives \
692               step forward and pierce your body with stout spears. \
693               It appears they've had bad dealings with outsiders \
694               before.";
695            Show: 
696             if (noun == headdress)
697                "The shaman nods and points to the headdress, then \
698                himself.";
699              "The shaman says something in a language you've never \
700              heard before.";             
701            default: "You can't seem to communicate with him; their \
702            language is completely foreign to you.";           
703         ],
704         before [;
705            Cast:
706               if (the_spell_was == foblub_spell or espnis_spell)
707                  "You begin the sermon, but the shaman and natives \
708                  seem very puzzled by your speech, and clearly \
709                  can't understand a word you're saying. The chant \
710                  fails.";
711         ],
712    has animate;  ! transparent?
713    
714 Object Jungle_Map "jungle map" Shaman
715    with name "map" "jungle",
716         description [;
717         print "The map is somewhat crudely drawn:^^";
718         font off;
719         spaces 23; print "xxxx^";
720         spaces 23; print "xxxx^";
721         spaces 23; print "XXXX^";
722         spaces 22; print "/^";
723         spaces 18; print "XXXX^";
724         spaces 18; print "XXXX^";
725         spaces 18; print "XXXX^";
726         spaces 20; print "I^";
727         spaces 18; print "oooo^";
728         spaces 12; print "<#>---oooo^";
729         spaces 18; print "oooo^";
730         spaces 20; print "I^";
731         spaces 18; print "XXXX^";
732         spaces 18; print "XXXX^";
733         spaces 18; print "XXXX^";
734         font on;
735         ],
736          ! weight 10, 
737         size 10,
738 ;
739
740 Object earth_spirit "earth spirit" TEMPLE_3 ! TEMPLE_3E
741   with name "spirit",
742        description "It looks like a large moving mass of mud and earth, \
743                   in a somewhat man-like shape.",
744        each_turn [ i ;
745        ! spirit attack
746        ! (in general, the 4 spirits are _very_ dangerous.
747        ! There's a 1/5 chance of killing outright, and 2
748        ! chances of doing 10 and 5 points of damage respectively.
749        ! In short, the player needs to realize it's time to swanko,
750        ! and do so, quickly)
751        if (self hasnt general) {
752           give self general ~concealed;    
753           "^Some of the dirt and mud in one corner stirs! A form \
754           made of mud and earth suddenly rises to attack!";
755        }
756        i = random(5);
757        if (i == 1) {
758           deadflag = 1;
759           "^The earth creature moves quickly, and blinds you with \
760           a spray of dirt! You clear your eyes, only to see the \
761           brown mass move forward and bury you! You struggle, but \
762           suffocate in short time.";
763        }
764        if (i == 2) 
765           Player_HP_CUR = Player_HP_CUR - 10;
766        if (i==3) 
767           Player_HP_CUR = Player_HP_CUR - 5;
768        if (Player_HP_CUR <= 0) {
769           deadflag = 1;
770           "^The last blow from the earth spirit was too much for \
771           you, I'm afraid to say. The spirit slowly sludges \
772           towards you for the final blow...";
773        } 
774        print "^The earth spirit ";
775        if (i==2)
776           "clubs you with a heavy pseudopod \
777           made of animated soil and rock. Ouch!";
778        if (i==3) {
779           print "throws some loose soil and sand in \
780           your face! The attack knocks you back, and \
781           you fall into the chamber below!";
782           PlayerTo(TEMPLE_2);
783           rtrue;          
784        }
785        "sends a spray of sharp rocks \
786        your way, and you just dodge in time!";
787        ],
788        before [;
789           Cast:
790             if (the_spell_was == swanko_spell) {
791                remove self;
792                "As you speak the chant, the earth spirit falls back \
793                in fear! You finish the chant, and the earth spirit \
794                collapses into a heap of dirt and mud, banished!";
795             }
796             print "The creature makes a banshee-howl as you chant.^"; 
797        ],
798        life [ ;
799           Attack: 
800             print "You ";
801             if (random(20) >= 8)
802             "strike the earth creature, but your attack passes \
803             harmlessly through it! You hear a strange noise from \
804             the creature -- akin to mad laughter from someone \
805             trapped underground in a coffin.";
806             "attack the earth spirit, but miss!";
807           default: "It's too busy trying to kill you.";
808        ],
809    has animate concealed;   
810         
811 ! **********
812 ! spells/scrolls
813 ! **********
814
815 ! TODO (Dan, why is this declared _here_?)
816 Object white_scroll "white scroll" 
817   class scroll_class,
818   with name "white",
819 ;
820
821 Object huncho_spell "send object to higher plane" white_scroll
822   class spell_class,
823   with name "huncho",
824        magic [;
825           if (second == 0)
826 "You see a brief flash of light, but nothing happens.";
827           if (second == player) {
828              print "You finish the chant";
829 !             if ((location == ATRII_8) && (ATRII_8 hasnt general) &&
830 ! (white_rod_piece in player) && (black_rod_piece in player) &&
831 ! (smoke_rod_piece in player) && (gray_rod_piece in player)) {
832              if ((location == ATRII_8) && (ATRII_8 hasnt general)) {
833                give ATRII_8 general;
834                spell_block = 1;
835                print " and notice the \
836 white streaks of light above widen, as though a rift was \
837 being torn in the sky! You feel a force pulling you \
838 upwards, into the unknown!^";
839                StartTimer(Imp_Liv,10);
840                PlayerTo(Imp_Liv);
841                rtrue;
842              }
843              else 
844                 ", and see a short-lived flash
845 of light above, but nothing else.";
846           }
847           if (second has animate) {
848              "You feel a slight rumbling overhead, but nothing else \
849 happens.";
850           }
851           else {
852              if ((second hasnt static) && (second hasnt scenery) &&
853                  (in_atrii == 0)) {
854                 if (second has clothing) give second ~worn;
855                 move second to ATRII_8;
856                 print "There is a flash of light, and "; DefArt(second); 
857                 " suddenly vanishes!";
858              }
859              "Your chant goes unanswered.";
860           }
861       ],
862 ;
863
864 Object muddy_scroll "muddy scroll" Deep_Jungle
865   class scroll_class,
866   with name "muddy",
867        initial "Partially buried in the mud is a scroll.",
868 ;
869
870 Object throck_spell "grow plant" muddy_scroll
871   class spell_class,
872   with name "throck",
873        magic [;
874              "Your chant goes unanswered. It's intended for plants only.";
875        ],
876 ;
877
878 ! **********
879 ! misc objs
880 ! **********
881
882
883 ! 'earth' rod piece -- BLACK
884 Object black_rod_piece "black rod piece" TEMPLE_3E
885   class rod_class,
886   with name "black",
887        initial "In the center of the room is a short black rod.",
888        description "It's a short section of a rod made of some \
889 undeterminable hard substance, \
890 colored an inky black. A piece of the Rod of \
891 the Ancients, I'd warrant!",
892 ;