Re: spell templates/misc (fwd)

From: Eric Pilcher (rasta@CSOS.ORST.EDU)
Date: 03/30/94

> Spec_procs for rooms would be nice - adding certain room types, such as
> 'RIVER', would be even nicer!  Teleport rooms, a la Silly code, provide
> much to play with as far as adventure building goes (note that this is
> NOT the same thing as mere building - "teleport rooms" provide the sense
> of time passing, and give more meaning to waiting to see what happens.

A fellow God on Kallisti and I were talking about a way that we could
relatively painlessly implement 'conveyor/elevator' type rooms. 

Basically we want water currents to be able to carry you downstream,
undertows that can drag you under water, avalanches and rockslides
that can knock your butt down the mountainside, freefall for if you 
happen to fall off a cliff, or if your fly spell wears off while you're

We ended up calling such forced movement:  'Flow'

Okay, we wanted to avoid numerous special procedures for a variety of
reasons.  Mainly we wanted a system in which builders would have a lot
of freedom and would be 100% compatible to the existing world files
so we wouldn't have to go back through and edit the crap out of
everything that already exists.

We looked at the sector types and sector_flag bit vectors.  Adding to those
seemed very grubby.  Then we got to Doors, and at the point it hit me.

What we came up with:

{ F<direction>
  <wait counter> <type>

Direction (standard)
0 North
1 East
2 South
3 West
4 Up
5 Down

Message - optional, basically what it echo's to the player just before it
pushes them into the next room.

Wait Counter - 1 Wait counter is defined to be an equivalent unit of time
to one wait state (typically about 4 seconds real time).  Basically this is 
the length of time a player will remain in the room before it sends them
into the next one.  The units here (for reality sake) would be (seconds/room)
So if you wanted to convert this to velocity (in rooms/second), to get
some kind of realistic idea, just take the inverse.

Type - Basically you can have as many of these as you feel like defining.
Here are a few we came up with:
0 Water Current - for use in water_swim, water_noswim, and water_submerged
		  rooms.  Note that if the current pulls you under and you
		  have no water_breathing spell, there is a chance you
		  will take damage, but this is based on water_submerged
		  room routines, not Flow itself.
1 Rock Slide    - we wanted earthquake like damage to be done but it should
		  a percentage based on max, instead of a set damage dice.
		  so we came up with 1d<vict_level>+<vict_level>.
2 Avalanche     - similar to above only add chill_touch affects.
3 Free_fall     - for use with flying room, and the lack of a fly spell
		  Start a counter if they hit a !flying room, then take
		  <counter> * <char_weight> damage.  *SPLAT*
4 Wind		- This is the hardest so far to set up.  Basically if the 
		  victim is flying, they get blown around, but if they are
		  on the ground instead, you have to take weight, dex, strength
		  into consideration.

Anyway, the F flag would be fully optional just as a D or and E flag
would be.  For the record, I've not seen the actual implementation of
this but I am told that it worked great on Circle 2.1 code.

-Eric:  rasta@CSOS.ORST.EDU, | mud.CSOS.ORST.EDU 4000
"We expect such comments coming from you." - Robert & | God is not dead.  He is
 Sara (Pestilence & Destiny) Implementors of Apoc IV  | wizinvis w/ a headache!

This archive was generated by hypermail 2b30 : 12/07/00 PST