! *******************************************************************
! MIZNIA -- add-on for SPIRITWRAK
!
! SPIRITWRAK is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation; either version 3 of the License, or
! (at your option) any later version.
!
! SPIRITWRAK is distributed in the hope that it will be useful, but
! WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with SPIRITWRAK. If not, see .
! *******************************************************************
Object MIZNIA_GUSStop "Mizniaport"
with description "The Great Change certainly hasn't changed the \
ultra-swank city of Mizniaport. The entire place is filled with \
splashy color and a disturbing sense of moderness. There's a \
stairway down here, while side walkways head west and \
northeast.",
name "color" "moderness" "stairway" "walkway" "walkways",
d_to MIZNIA_GUSStation,
w_to MIZNIA_Park,
ne_to FROBAR_Ent,
has light;
Object MIZNIA_Park "Miznia Suburbs"
with description "Overly cozy-looking homes sprout up all over \
the place here. Ridiculously \
well-trimmed front lawns remind you that you're still in Miznia. \
A nice pebble path heads east and west. You see the entrance to \
a swank-looking boutique to the south.",
name "homes" "lawns" "pebble" "path",
e_to MIZNIA_GUSStop,
w_to MIZNIA_Outskirts,
s_to MIZNIA_Boutique,
in_to MIZNIA_Boutique,
has light;
Object MIZNIA_Boutique "Swank Boutique"
with description "A ultra-swank accessory store, filled with \
flashy items for the fashion-unconscious shopper. \
An exit lies north.",
name "items" "accessory",
out_to MIZNIA_Park,
n_to MIZNIA_Park,
has light;
Object boutique_sign "small sign" MIZNIA_Boutique
with description "The sign reads ~PLEASE RING BELL FOR SERVICE~",
name "small" "sign",
has static;
Object MIZNIA_Outskirts "City Limits"
with description "The city stops here abruptly. The Miznia jungle \
makes its presence known for real here, forming a natural barrier. A \
path leads east, while an almost overgrown path leads into the jungle \
to the southwest.",
name "path" "jungle" "barrier",
e_to MIZNIA_Park,
sw_to Jungle_Edge,
has light;
Object c8 "coin" MIZNIA_Boutique class coin_class;
Object Jungle_Edge "Edge of Jungle"
with description "Wild birds and wilder vegetation distract you from \
a faint trail through the jungle here. The path leads northeast and \
southwest.",
name "birds" "vegetation" "trail",
ne_to MIZNIA_Outskirts,
sw_to Deep_Jungle,
has light;
Object Deep_Jungle "Deep Jungle"
with description "You're in very deep jungle, just on the verge of \
getting lost. Your surroundings are green and untamed. A path \
leads northeast, while a muddy path heads south.",
name "mud" "path",
ne_to Jungle_Edge,
s_to Swamp,
has light;
Object Swamp "Swamp"
with description [;
print "You're knee-deep in a murky swamp. Huge swamp grasses \
wall you in";
if (self has general)
print ", except for a section to the west";
". Drier land is north or south.";
],
name "swamp" "land",
n_to Deep_Jungle,
s_to Jungle_Clearing,
w_to [;
if (self hasnt general)
"You can't go that way.";
else return Jungle_Ruins;
],
has light;
Nearby grasses "grasses"
with name "grass" "grasses",
description "Tall, thick swampgrass.",
before [;
Push, Pull, Cut, Attack:
"The grass is extremely hardy.";
Search:
if ((Jungle_Map notin player))
"You hunt around in the grasses for a while and find nothing.";
else {
give Swamp general;
Achieved(21);
"You check the jungle map. Sure enough, there's a loose \
patch of grass that you could duck under to the west.";
}
Cast:
if (the_spell_was == throck_spell)
"Grasses don't grow much more than this.";
],
has scenery;
Object Jungle_Clearing "Jungle Clearing"
with description "The Jungle clears out a bit here, so you can actually \
see patches of sky and walk ten paces without running into a tree. There's \
a path into the jungle undergrowth to the north. \
You notice a group of jungle natives gathered here.",
name "sky" "path",
number 1,
n_to Swamp,
each_turn [ ;
if (Jungle_Clearing.number == 2) {
move Shaman to Jungle_Clearing;
Jungle_Clearing.number = 5;
"^A single native tribesman breaks away from the group and \
approaches you.";
}
if (Jungle_Clearing.number == 1)
Jungle_Clearing.number = 2;
],
has light;
Nearby natives "natives"
with name "natives" "group",
description "A group of jungle natives in elaborate feather and \
fur clothing. They appear to be armed with large spears.",
life [;
default: "The group of natives looks at you with distrusting stares.";
],
before [;
Cast:
if (the_spell_was == espnis_spell or foblub_spell)
"They can't understand your language, thus the meaning of \
the sermon is lost on them.";
],
has animate concealed;
Object Jungle_Ruins "Hidden Ruins"
with description "Hidden here in some extremely deep jungle \
are the ruins of some ancient civilization. Broken sandstone \
structures are nearly covered with jungle vines and mosses. \
There is a partially intact structure to the north. \
It seems to be a short pyramid-like building, with a single \
dark entrance hidden amongst vines. Definitely a find to \
write the Monastery about, or at least your local \
Archeology Guild.",
name "sandstone" "structures" "structure" "vines"
"pyramid" "entrance" "mosses",
e_to Swamp,
n_to TEMPLE_Ent,
has light;
! (The ancient temple, unlit, of course)
Object TEMPLE_Ent "Pyramid Entrance"
with description "A damp, dark, unmarked stone room. You can hear \
the sounds of the jungle from the exit to the south. There \
are dark passages north and east.",
s_to Jungle_Ruins,
e_to TEMPLE_Statue_room,
n_to TEMPLE_Trap,
before [;
Listen: "You hear noises of the jungle from the south.";
],
;
Object TEMPLE_Statue_room "Statue Room"
with description "A tiny dark chamber, with a passage west.",
w_to TEMPLE_Ent,
;
Nearby TEMPLE_Statue "large statue"
with name "statue",
description "A stone statue of some ancient \
warrior, probably intended to frighten off visitors.",
before [;
! manual dealing with PushDir (only 3 possible locs anyway)
PushDir:
if (self has general)
"The statue is stuck fast and doesn't budge.";
if ((self in TEMPLE_Statue_room) && (second == w_obj)) {
print "^There's a grinding noise as you push the statue west.^";
AllowPushDir(); rtrue;
}
if ((self in TEMPLE_Ent) && (second == s_obj))
"^The statue doesn't appear to fit through the \
entranceway.";
if ((self in TEMPLE_Ent) &&
((second == n_obj) || (second == e_obj))) {
print "^There's a grinding noise as you push the statue.^";
AllowPushDir(); rtrue;
}
if ((self in TEMPLE_Trap) && (second == s_obj)) {
print "^There's a grinding noise as you push the statue south.^";
AllowPushDir(); rtrue;
}
if ((self in TEMPLE_Trap) && (second == n_obj)) {
give self general;
move rollers to TEMPLE_Trap;
"You start to push the statue north, and hear a strange \
click. Suddenly, two enormous stone rolling pins slide \
down from the east and west sides of the room! \
Desperately, you topple the statue and hide behind it. \
You hear a huge crash!^^\
You open your eyes, surprised to find yourself not \
squashed into pancake. The statue has wedged itself \
neatly between the two giant rollers, effectively \
blocking them!";
}
"You can't push the statue that way.";
Take:
"The statue rocks back and forth a bit, but is \
far too heavy to take.";
Push:
print "The statue ";
if (self hasnt general)
"rocks back and forth a bit.";
else "seems to be stuck.";
],
has static;
Object TEMPLE_Trap "Strange Chamber"
with description "This is an odd long hallway running north and south. \
The stone floor is noticeably concave, sloping upwards to \
the east and west. It's like being in a long stone \
channel.",
name "slope" "channel",
s_to TEMPLE_Ent,
e_to "The floor gets too steep, and you slide back down.",
w_to "The floor gets too steep, and you slide back down.",
n_to [;
if (TEMPLE_Statue hasnt general) {
deadflag = 1;
"You head north, and hear a strange click. Suddenly, \
two huge stone rolling pins roll down from the east \
and west sides of the room! Desperately, you try to \
escape, but the hall is too long, and the stone \
rollers too fast. You are crushed to jelly.";
}
else {
print "You step over and around the jammed rollers and \
the statue and head north.^";
return TEMPLE_1;
}
],
;
Object rollers "stone rollers"
with name "roller" "rollers" "stone",
initial "There are two stone rollers pinned against the statue.",
description "Massive stone rolling pins.",
before [;
Push, Pull, Attack, Turn, Shake, Squeeze:
"The rollers are huge and stuck fast.";
],
has static;
Object TEMPLE_1 "Bare Chamber"
with description "You are in a bare stone chamber with passages leading \
north, east, south and west. A stone ladder also heads upwards through a \
dark hole in the ceiling.",
name "ladder" "hole",
s_to TEMPLE_Trap,
n_to TEMPLE_1N,
e_to TEMPLE_1E,
w_to TEMPLE_1W,
u_to TEMPLE_2,
;
Object TEMPLE_1W "Small Chamber"
with description "You're in a small bare chamber. On one of the walls, \
you notice an engraving, almost worn away with age. It seems to be a \
picture of a jungle village, and you recognize the pyramid you are currently in. \
An exit lies east.",
e_to TEMPLE_1,
;
Object TEMPLE_1N "Small Chamber"
with description "You're in a rather bare chamber. On one of the walls, \
you see a worn engraving depicting a group of robed figures standing in \
some chamber. They are carrying several long reeds. An exit lies south.",
s_to TEMPLE_1,
;
Object TEMPLE_1E "Small Chamber"
with description "You're in a small stone chamber. In the center of the \
floor is a strange funnel-like depression, which starts as a large \
circular opening, and narrows into a very small tunnel below, \
probably no wider than your hand. You also see a small round hole \
in the ceiling above. An exit heads west.",
w_to TEMPLE_1,
d_to "You'd never fit down that opening.",
u_to "You can't reach the hole, and besides, you'd never fit through \
it if you could.",
;
Object TEMPLE_1_HOLEU "hole" TEMPLE_1E
with name "hole",
description "You see a dark small hole in the center of the \
ceiling.",
before [;
Rub, Push, Pull, Touch, Receive, LetGo, Search:
"The hole is far above your head.";
],
has scenery;
Object TEMPLE_1_Opening "opening" TEMPLE_1E
with name "opening" "funnel" "depression" "tunnel",
description "A smooth funnel in the stone in the floor, that descends \
into darkness as it narrows.",
describe [ x;
print "^The opening ";
if (children(self) == 0)
"appears to be empty.";
else {
print "contains:^";
x = children(self);
x = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT;
WriteListFrom (child(self), x, 1);
rtrue;
}
],
before [;
Receive:
if (noun ~= TEMPLE_Artifact) {
print "That doesn't quite fit -- ";
if (noun.size > TEMPLE_Artifact.size)
"the funnel becomes too narrow too quickly.";
else "strangely...";
}
LetGo:
"You stick your hand down the small hole, but it must be \
quite deep, and you can't quite reach.";
],
capacity 1,
size 10,
has static container open;
Object TEMPLE_2 "Bare Chamber"
with description "You are in a bare stone chamber with passages leading \
north, east, south and west. A stone ladder leads upwards and downwards \
into dark holes.",
name "ladder" "hole",
s_to TEMPLE_2S,
n_to TEMPLE_2N,
e_to TEMPLE_2E,
w_to TEMPLE_2W,
u_to TEMPLE_3,
d_to TEMPLE_1,
;
Object TEMPLE_2N "Small Chamber"
with description "You're in a small bare chamber. Engravings on the \
wall show several robed figures in a low domed chamber. Some of \
the figures are pushing what appears to be reeds down a small hole \
in the ground, while others stand by and seem to be praying or \
engaged in some ceremony. In a separate scene, similar robed \
figures can be seen throwing some poor bound individual off the \
top of the pyramid, apparently in some sort of ritualistic \
sacrifice. An exit heads south.",
s_to TEMPLE_2,
;
Object TEMPLE_2W "Small Chamber"
with description "You're in a small bare chamber. Engravings on \
the wall depict several robed figures in a room mostly filled \
with water. The figures are watching reeds that seem to fall \
from the sky and land in the water. Several reeds are floating \
towards an apparent drain in the water, where a few reeds that are thin \
enough fall through with the flow of the water. An exit lies east.",
e_to TEMPLE_2,
;
Object TEMPLE_2S "Small Chamber"
with description "You're in a rather small chamber. Engravings on \
the walls depict several robed figures in a strange room with a \
circular depression in the ground, filled with water. Water also \
flows into the pool in a thin stream from some undrawn source above. \
With the stream of water, a few reeds appear to be falling. A single \
figure is collecting the reeds as they fall and placing them in \
a long thin vase or container. The significance of \
this is uncertain. An exit lies north.",
n_to TEMPLE_2,
;
Object TEMPLE_engravings "engravings"
with name "engravings" "engraving",
description [; ; ],
found_in TEMPLE_1W TEMPLE_1N TEMPLE_2N TEMPLE_2W TEMPLE_2S,
has scenery;
Object TEMPLE_2E "Small Chamber"
with description [;
print "You're in a bare stone chamber which is partially \
filled with a sunken pool of dirty blackish water. Near the south wall \
is a depression in the floor that was probably a drain for the pool, given the \
apparent water stains; however the level of the pool is below \
the point where it would overflow into the drain. Near the center \
of the ceiling is a small round hole, right above the pool. An \
exit lies west";
if ((self hasnt general) && (TEMPLE_3 hasnt general) &&
(amulet has worn)) {
give self general;
".^^Your amulet suddenly gives off a bright purple flash!";
}
else ".";
],
name "stains",
before [;
Fill:
"The blackish water seems like something you really don't want.";
],
w_to TEMPLE_2,
;
Object TEMPLE_2_HOLEU "hole" TEMPLE_2E
with name "hole",
description "You see a dark small hole in the center of the \
ceiling.",
before [;
Rub, Push, Pull, Touch, Receive, LetGo, Search:
"The hole is far above your head.";
],
has scenery;
Object TEMPLE_2_Opening "opening" TEMPLE_2E
with name "opening" "drain" "depression",
description "A smooth drain opening in the stone in the floor, \
that descends into darkness.",
before [;
Receive:
if ((noun ~= TEMPLE_Artifact) && (noun hasnt is_rod)) ! TODO ADD?
"Oddly, that doesn't fit through the small round drain.";
else {
if (children(TEMPLE_1_Opening) == 0)
move noun to TEMPLE_1_Opening;
if (TEMPLE_Artifact in TEMPLE_1_Opening &&
children(TEMPLE_Artifact) == 0)
move noun to TEMPLE_Artifact;
else move noun to TEMPLE_1E;
CDefArt(noun); " drops into the drain and disappears \
out of sight. Moments later you hear a thump from \
somewhere below.";
}
],
capacity 1,
size 10,
has scenery container open;
Object TEMPLE_Pool "pool" TEMPLE_2E
with name "pool" "water",
describe [;
print "^The black pool is disturbingly calm";
if (umbrella in self)
". Floating on the surface is a black open umbrella.";
else ".";
],
description [;
print "Murky black water that seems disturbingly calm";
if (umbrella notin self)
".";
else
". Floating on the surface is a black open umbrella.";
],
before [;
Cast:
if (the_spell_was == frotz_spell)
"There's a strange gurgling noise as you finish the \
chant, and the black water starts to glow! But, \
to your horror, the inky water seems to absorb the \
light and return to its original blackness! The \
chant fails.";
Enter:
deadflag = 1;
"You notice the water seems unusually cold as you enter \
the pool. Without warning, something grabs your legs and \
pulls you under! In pitch black liquid that seems to \
absorb all light, you can't defend yourself, or even \
see your adversary, who devours you shortly.";
Search:
"You can't see a thing, the water is blacker than night.";
Receive:
if (noun == toy_volcano) {
remove noun;
"You drop the toy volcano into the black pool and \
watch it sink. Moments later, a large large bubble rises, and \
pops at the surface, followed by a strange, belch-like noise!";
}
if ((noun ~= umbrella) || (umbrella hasnt open)) {
remove noun;
CDefArt(noun);
print " falls into the pool and slowly sinks into the black water. \
Suddenly, ", (the) noun, " seems to get pulled into the pool, \
and is soon gone! Something dwells in that pool, apparently, \
hidden well in a cover of"; " blackness!";
}
else {
move umbrella to TEMPLE_Pool;
give umbrella ~light; ! a 'special-effect'?
"The open umbrella sits in the pool, floating on the \
surface like a cloth dome.";
}
],
size 25,
has static container open;
Object TEMPLE_3 "Collapsed Chamber"
with description [;
print "You are in a stone chamber that has broken and \
eroded walls in several places. Broken stones and dirt are everywhere. \
It appears there was once an open archway east, however the heavy stones \
that framed it have collapsed. A tiny hole remains, \
but it would be an exceptionally tight squeeze. \
A stone ladder leads downwards into a dark hole";
if ((self hasnt general) && (TEMPLE_2E hasnt general) &&
(amulet has worn)) {
give self general;
".^^Your amulet suddenly gives off a bright purple flash!";
}
else ".";
],
name "stones" "dirt" "archway" "ladder" "hole",
e_to [;
if (children(player) ~= 0)
"You try to squeeze through the hole, to \
no avail. You're carrying too much to fit.";
else return TEMPLE_3E;
],
d_to TEMPLE_2,
;
Object TEMPLE_3E "Low Chamber"
with description "You're in a tiny low room, dimly lit by strange \
glowing lichens and mosses. A tiny exit lies west between some \
collapsed rock -- it looks like a very tight squeeze. The room is \
otherwise filled with broken rock and the like. A tiny round hole \
is in the very center of the floor.",
name "lichens" "mosses" "rock",
w_to [;
if (children(player) ~= 0)
"You try to squeeze through the hole, to \
no avail. You're carrying too much to fit.";
else return TEMPLE_3;
],
d_to "You can barely fit your hand in the hole.",
has light;
Nearby TEMPLE_3_Opening "opening"
with name "opening" "hole" "tiny" "round",
description "A smooth round hole in the stone in the floor \
that descends into darkness.",
before [;
Receive:
if (noun hasnt is_rod)
"Oddly, that doesn't quite fit.";
else {
print "The rod slips through with ease. \
Moments later you";
if (umbrella notin TEMPLE_Pool) {
remove noun;
" hear a splash from somewhere below.";
}
else {
if (children(TEMPLE_1_Opening) == 0)
move noun to TEMPLE_1_Opening;
else {
if (TEMPLE_Artifact in TEMPLE_1_Opening &&
children(TEMPLE_Artifact) == 0)
move noun to TEMPLE_Artifact;
else move noun to TEMPLE_1E;
Achieved(22);
}
! if (TEMPLE_Artifact notin TEMPLE_1_Opening)
! move noun to TEMPLE_1_Opening;
! else
! move noun to TEMPLE_Artifact;
" hear a thump from below, followed by a rattling noise, \
and finally another thump, much fainter.";
}
}
],
capacity 1,
size 10,
has scenery container open;
! (Super Zmart) (REMOVED)
Object stuffed_toy "stuffed toy" MIZNIA_Park
with name "toy" "stuffed" "alligator",
initial "A stuffed toy has been left unattended on someone's lawn.",
description "A cute little stuffed toy alligator.",
!weight 5,
size 15,
;
Object FROBAR_Ent "In Front of Swank House"
with description "You're in front of a rather swank looking house to the \
northeast. To the southwest is the rest of Mizniaport.",
name "house",
sw_to MIZNIA_GUSStop,
ne_to [;
if (Frobar in Delbins)
"You walk up to the front door, only to find it locked.";
else return FROBAR_Foyer;
],
in_to [;
if (Frobar in Delbins)
"You walk up to the front door, only to find it locked.";
else return FROBAR_Foyer;
],
has light;
Nearby Frobar_mailbox "mailbox"
with name "mailbox" "box",
description "A mailbox stands in front of the house. The letter \
~F~ is on one side.",
capacity 5,
size 15,
! block a receive here?
has static container openable;
Object Ench_mag "copy of ~Enchanter Monthly~" Frobar_mailbox
with name "magazine" "monthly" "enchanter" "copy",
description "~Enchanter Monthly~ has been somewhat lacking in \
quality content these days (The absence of magic probably \
being a large factor behind this). For filler, the editors have \
been turning in mostly tabloid drivel articles about ~What ever \
happened to so-and-so?~. This month's cover story \
suggests that Barsap the magician was actually turned into a tortoise \
during the Great Cataclysm, and underwent a slow mutation into a \
newt.",
!weight 5,
size 15,
;
! **********
! critters/people
! **********
Object Shaman "jungle shaman"
with name "shaman" "tribesman" "native",
description [;
print "A jungle native with a rather elaborate costume \
make of bird feathers and animal hides. He seems old, but wise";
if (self hasnt general)
". Unlike the rest of the natives, this one is not wearing a \
fancy feather-and-fur headdress.";
else ".";
],
life [;
Order:
if ((action==##Give) && (noun==Jungle_Map) && (Jungle_Map in self))
"You try to convey your desire for the map with \
gestures. The shaman seems to understand. He \
points to the map, then you. Then, he raises his \
hand in a 'stop' gesture. Then, he points to his \
bare head.";
"The shaman does not seem to understand.";
Give:
if (noun==headdress) {
move Jungle_Map to player;
move headdress to Shaman;
give self general;
"The shaman takes the headdress and places it on his \
head. He smiles, and gives you a strange map in return.";
}
"The shaman smiles and shakes his head.";
Attack, ThrowAt:
deadflag = 1;
"As you make a threatening move, several of the natives \
step forward and pierce your body with stout spears. \
It appears they've had bad dealings with outsiders \
before.";
Show:
if (noun == headdress)
"The shaman nods and points to the headdress, then \
himself.";
"The shaman says something in a language you've never \
heard before.";
default: "You can't seem to communicate with him; their \
language is completely foreign to you.";
],
before [;
Cast:
if (the_spell_was == foblub_spell or espnis_spell)
"You begin the sermon, but the shaman and natives \
seem very puzzled by your speech, and clearly \
can't understand a word you're saying. The chant \
fails.";
],
has animate; ! transparent?
Object Jungle_Map "jungle map" Shaman
with name "map" "jungle",
description [;
print "The map is somewhat crudely drawn:^^";
font off;
spaces 23; print "xxxx^";
spaces 23; print "xxxx^";
spaces 23; print "XXXX^";
spaces 22; print "/^";
spaces 18; print "XXXX^";
spaces 18; print "XXXX^";
spaces 18; print "XXXX^";
spaces 20; print "I^";
spaces 18; print "oooo^";
spaces 12; print "<#>---oooo^";
spaces 18; print "oooo^";
spaces 20; print "I^";
spaces 18; print "XXXX^";
spaces 18; print "XXXX^";
spaces 18; print "XXXX^";
font on;
],
! weight 10,
size 10,
;
Object earth_spirit "earth spirit" TEMPLE_3 ! TEMPLE_3E
with name "spirit",
description "It looks like a large moving mass of mud and earth, \
in a somewhat man-like shape.",
each_turn [ i ;
! spirit attack
! (in general, the 4 spirits are _very_ dangerous.
! There's a 1/5 chance of killing outright, and 2
! chances of doing 10 and 5 points of damage respectively.
! In short, the player needs to realize it's time to swanko,
! and do so, quickly)
if (self hasnt general) {
give self general ~concealed;
"^Some of the dirt and mud in one corner stirs! A form \
made of mud and earth suddenly rises to attack!";
}
i = random(5);
if (i == 1) {
deadflag = 1;
"^The earth creature moves quickly, and blinds you with \
a spray of dirt! You clear your eyes, only to see the \
brown mass move forward and bury you! You struggle, but \
suffocate in short time.";
}
if (i == 2)
Player_HP_CUR = Player_HP_CUR - 10;
if (i==3)
Player_HP_CUR = Player_HP_CUR - 5;
if (Player_HP_CUR <= 0) {
deadflag = 1;
"^The last blow from the earth spirit was too much for \
you, I'm afraid to say. The spirit slowly sludges \
towards you for the final blow...";
}
print "^The earth spirit ";
if (i==2)
"clubs you with a heavy pseudopod \
made of animated soil and rock. Ouch!";
if (i==3) {
print "throws some loose soil and sand in \
your face! The attack knocks you back, and \
you fall into the chamber below!";
PlayerTo(TEMPLE_2);
rtrue;
}
"sends a spray of sharp rocks \
your way, and you just dodge in time!";
],
before [;
Cast:
if (the_spell_was == swanko_spell) {
remove self;
"As you speak the chant, the earth spirit falls back \
in fear! You finish the chant, and the earth spirit \
collapses into a heap of dirt and mud, banished!";
}
print "The creature makes a banshee-howl as you chant.^";
],
life [ ;
Attack:
print "You ";
if (random(20) >= 8)
"strike the earth creature, but your attack passes \
harmlessly through it! You hear a strange noise from \
the creature -- akin to mad laughter from someone \
trapped underground in a coffin.";
"attack the earth spirit, but miss!";
default: "It's too busy trying to kill you.";
],
has animate concealed;
! **********
! spells/scrolls
! **********
! TODO (Dan, why is this declared _here_?)
Object white_scroll "white scroll"
class scroll_class,
with name "white",
;
Object huncho_spell "send object to higher plane" white_scroll
class spell_class,
with name "huncho",
magic [;
if (second == 0)
"You see a brief flash of light, but nothing happens.";
if (second == player) {
print "You finish the chant";
! if ((location == ATRII_8) && (ATRII_8 hasnt general) &&
! (white_rod_piece in player) && (black_rod_piece in player) &&
! (smoke_rod_piece in player) && (gray_rod_piece in player)) {
if ((location == ATRII_8) && (ATRII_8 hasnt general)) {
give ATRII_8 general;
spell_block = 1;
print " and notice the \
white streaks of light above widen, as though a rift was \
being torn in the sky! You feel a force pulling you \
upwards, into the unknown!^";
StartTimer(Imp_Liv,10);
PlayerTo(Imp_Liv);
rtrue;
}
else
", and see a short-lived flash
of light above, but nothing else.";
}
if (second has animate) {
"You feel a slight rumbling overhead, but nothing else \
happens.";
}
else {
if ((second hasnt static) && (second hasnt scenery) &&
(in_atrii == 0)) {
if (second has clothing) give second ~worn;
move second to ATRII_8;
print "There is a flash of light, and "; DefArt(second);
" suddenly vanishes!";
}
"Your chant goes unanswered.";
}
],
;
Object muddy_scroll "muddy scroll" Deep_Jungle
class scroll_class,
with name "muddy",
initial "Partially buried in the mud is a scroll.",
;
Object throck_spell "grow plant" muddy_scroll
class spell_class,
with name "throck",
magic [;
"Your chant goes unanswered. It's intended for plants only.";
],
;
! **********
! misc objs
! **********
! 'earth' rod piece -- BLACK
Object black_rod_piece "black rod piece" TEMPLE_3E
class rod_class,
with name "black",
initial "In the center of the room is a short black rod.",
description "It's a short section of a rod made of some \
undeterminable hard substance, \
colored an inky black. A piece of the Rod of \
the Ancients, I'd warrant!",
;