Full Circle MUX Globals

Globals from the now-defunct Full Circle MUX. A skilled coder might be able to go through them and make something of them.

Author: Full Circle MUX
Category: Globals
Features: color substitutions.

Instructions

Copy and paste the below code into a compatible MUSH or MUX.

MUSHCode for Full Circle MUX Globals

@create Who Are the New Characters? Code Item=55
&NEW_FILTER Who Are the New Characters? Code Item=hasflag(%0,uninspected)
&CMD_NEW Who Are the New Characters? Code Item=$+new:@pemit %#=[setq(0,filter(me/new_filter,lwho()))]%r[center(New Characters!!!,75)][iter(%q0,%r[center(fullname(##),75)])]%r[center(List courtesy of Sour's Sweet Emporium,75)]
@Desc Who Are the New Characters? Code Item=A large black box with a large video screen. The screen is flashing the words TYPE +NEW repeatedly.
@set Who Are the New Characters? Code Item=PARENT_OK
@create Global Object <GOB>=5
&PSHOWATTR Global Object <GOB>=$+attrs:@switch get(%#/set_attr)=1,{@trig #35/xshowattr=%#,%#,1},@pemit %#=You do not have attributes set on your character. Contact a member of staff for help.
&PSHOWABIL Global Object <GOB>=$+abils:@switch get(%#/set_abil)=1,{@trig #35/xshowabil=%#,%#,1},@pemit %#=You do not have abilities set on your character. Contact a member of staff for help.
&PSHOWADVS Global Object <GOB>=$+advs:@switch get(%#/started)=1,{@trig #35/xshowadvs=%#,%#,1},@pemit %#=You do not have advantages set on your character. Contact a member of staff for help.
&PSHOWMISC Global Object <GOB>=$+misc:@switch get(%#/started)=1,{@trig #35/xshowmisc=%#,%#},{@pemit %#=You do not have stats set on your character. Contact a member of staff for help.}
&PSHOWCOM Global Object <GOB>=$+com:@switch get(%#/set_attr)=1,{@switch get(%#/set_abil)=1,{@switch get(%#/started)=1,{@trig #35/xshowcom=%#,%#,0},{@pemit %#=You do not have stats set on your character. Contact a member of staff for help.}},{@pemit %#=You do not have abilities set on your character. Contact a member of staff for help.}},{@pemit %#=You do not have attributes set on your character.}
&PSHOWSTATS Global Object <GOB>=$+stats:@switch get(%#/set_attr)=1,{@trig #35/xshowattr=%#,%#,0},{@pemit %#=You do not have attributes set on your character. Contact a member of staff for help.}; @switch get(%#/set_abil)=1,{@trig #35/xshowabil=%#,%#,0},{@pemit %#=You do not have abilities set on your character. Contact a member of staff for help.}; @switch get(%#/started)=1,{@trig #35/xshowadvs=%#,%#,0; @trig #35/xshowmisc=%#,%#},{@pemit %#=You do not have stats set on your character. Contact a member of staff for help.}
&CHARGEN Global Object <GOB>=$+chargen:@pemit %#=You can enter chargen through the New Players Room off of the OOC Nexus. You must have completed your background first. Please page a staff member if you need assistance.
&NATURE Global Object <GOB>=$+nature *:@switch hasattr(%#,nature)=1,{@pemit %#=%chNATURE:%cn You already have a nature set. Talk to staff if you need assistance.},{@pemit %#=%chNATURE:%cn Your nature has been set to %ch%0%cn.;&nature %#=%0}
&DEMEANOR Global Object <GOB>=$+demeanor *:@pemit %#=%chDEMEANOR:%cn Your demeanor has been set to %ch%0%cn.;&demeanor %#=%0
&SPEND Global Object <GOB>=$+spend *:@switch setr(0,match(u(%va/spendareas),[before(%0,=)]*))=0,{@pemit %#=You can't spend that.},{@switch sign(setr(1,switch(after(%0,=),,1,floor(after(%0,=)))))=-1,{@pemit %#=You can only spend positive points.},{@pemit %#=You spend %q1 point[ifelse(eq(%q1,1),,s)] of [extract(u(%va/spendareas),%q0,1)].;@switch [setq(0,extract(u(%va/spendpools),%q0,1))][match(WOUNDS PARADOX BANALITYP,%q0)]=0,{&%q0 %#=sub(u(%#/%q0),%q1)},{&%q0 %#=add(u(%#/%q0),%q1)}}}
@set Global Object <GOB>=INHERIT
@set Global Object <GOB>=SAFE



@create Global Functions Object <GFO>=10
&TYPELOAD Global Staff Object <GSOB>=$+type/load *:@switch u(isadmin,%#)=0,{@pemit %#=Permission denied.},{@switch [setq(0,match(u(%va/types),%0*))]%q0=0,{@pemit %#=That is not a valid type.},{@pemit %#=[setq(1,elements(u(%va/types),%q0))][ifelse(not(hasattr(%va,find_%q1)),That type is locked and can not be loaded automatically.,[setq(2,search(eplayer=\[[get(%va/find_%q1)]\]))][set(%va,type_%q1:[setdiff(%q2,u(%va/ignore_%q1))])]Loaded [words(u(%va/type_%q1))] players into type %q1%,[setq(3,setinter(%q2,u(%va/ignore_%q1)))] [words(%q3)] players ignored.[ifelse(strmatch(%q3,u(%va/ignore_%q1)),,%r%(Extra players removed from ignore list that were not part of type.%)[set(%va,ignore_%q1:%q3)])])]}}
@VA Global Staff Object <GSOB>=#3511
&TYPELIST1 Global Staff Object <GSOB>=$+types:@pemit %#=The following types are recognized:%r[u(%va/types)]
&TYPELIST2 Global Staff Object <GSOB>=$+type *:@switch u(isjudge,%#)=0,{@pemit %#=Permission denied.},{@pemit %#=[setq(0,match(u(%va/types),%0*))][ifelse(%q0,There are [words(u(%va/type_[elements(u(%va/types),%q0)]))] players in type [elements(u(%va/types),%q0)]:%r[iter(u(%va/type_[elements(u(%va/types),%q0)]),name(##))],That is not a valid type.)]}
&TYPEADD Global Staff Object <GSOB>=$+type/add *=*:@switch u(isadmin,%#)=0,{@pemit %#=Permission denied.},{@switch [setq(0,match(u(%va/types),%0*))][setq(1,elements(u(%va/types),%q0))]%q0=0,{@pemit %#=That is not a valid type.},{@switch [setq(2,pmatch(%1))][hastype(%q2,player)]=0,{@pemit %#=That is not a valid player.},{&type_%q1 %va=[setq(3,setunion(u(%va/type_%q1),%q2))]%q3;&ignore_%q1 %va=[setq(3,setdiff(u(%va/ignore_%q1),%q2))]%q3;@pemit %#=Added.}}}
&TYPEREM Global Staff Object <GSOB>=$+type/remove *=*:@switch u(isadmin,%#)=0,{@pemit %#=Permission denied.},{@switch [setq(0,match(u(%va/types),%0*))][setq(1,elements(u(%va/types),%q0))]%q0=0,{@pemit %#=That is not a valid type.},{@switch [setq(2,pmatch(%1))][match(u(%va/type_%q1),%q2)]=0,{@pemit %#=The player does not belong to that type.},{&type_%q1 %va=[setq(3,remove(u(%va/type_%q1),%q2))]%q3;&ignore_%q1 %va=[setq(3,setunion(u(%va/ignore_%q1),%q2))]%q3;@pemit %#=Removed.}}}
&TYPETIME Global Staff Object <GSOB>=$+timeon/type *:@switch u(isjudge,%#)=0,{@pemit %#=Permission denied.},{@pemit %#=[setq(0,match(u(%va/types),%0*))][ifelse(%q0,%cc%ch[center([elements(u(%va/types),%q0)] Connect Time Stats%ch,78)]%r[repeat(=,78)]%r%ch%cB%bName[space(16)]Duty Idle[space(10)]Total To Date[space(6)]Total This Week%cn%r[repeat(-,78)]%r%b[iter(u(%va/type_[elements(u(%va/types),%q0)]),[ljust(name(##),20)][ljust(switch(and(hasflag(##,connected),not(hasflag(##,dark))),0,---,1,[switch(hasattr(#21,duty_##),1,[u(#21/duty_##)],ON)]),5)][rjust(switch(hasflag(##,connected),1,[u(#21/idletime,##)]),4)]%b%b [rjust(u(#3190/writetime,u(#3190/addtime,##,totconned)),20)] [rjust(u(#3190/writetime,u(#3190/addtime,##,xpconned)),20)]%r)][repeat(-,78)],That is not a valid type.)]}
&TYPEWHO Global Staff Object <GSOB>=$+who/type* *:@switch u(isjudge,%#)=0,{@pemit %#=Permission denied.},{@pemit %#=[setq(0,match(u(%va/types),%1*))][ifelse(%q0,{[repeat(=,78)]%r%ch%cBName[space(13)]Class[space(14)]Idle%b%bLocation[space(13)][setq(1,%#)]#/Flags[space(8)]%cn%r[repeat(=,78)][iter(switch(%0,,setinter(u(%va/type_[elements(u(%va/types),%q0)]),lwho()),/all,u(%va/type_[elements(u(%va/types),%q0)])),{%r[ljust(mid(name(##),0,15),17)][ljust(mid(u(##/class),0,16),19)][ifelse(hasflag(##,connected),rjust([u(#17/fn_idle,idle(##))],4),AWAY)]%b%b[ljust(mid(name(loc(##)),0,19),21)][loc(##)]/[flags(loc(##))]})]%r[repeat(=,78)]},That is not a valid type.)]}
@lock/EnterLock Global Staff Object <GSOB>=*Taffy
@VB Global Staff Object <GSOB>=#17
@VC Global Staff Object <GSOB>=#15
&TIMENIGHT Global Staff Object <GSOB>=$+time/night*:@switch u(isadmin,%#)=0,{@pemit %#=Permission denied.},{@set %vb=ic_time:[switch(%0,,It is nighttime until further notice.,%0)]; @set %vc=time_check:[name(%#)]%(%#%) at [time()]; @set #12=hour_override:20:00:00; @pemit %#=IC time set to night.}
&TIMEDAY Global Staff Object <GSOB>=$+time/day*:@switch u(isadmin,%#)=0,{@pemit %#=Permission denied.},{@set %vb=ic_time:[switch(%0,,It is daytime until further notice.,%0)]; @set %vc=time_check:[name(%#)]%(%#%) at [time()]; @set #12=hour_override:08:00:00; @pemit %#=IC time set to day.}
&TIMENOTE Global Staff Object <GSOB>=$+time/note *:@switch u(isadmin,%#)=0,{@pemit %#=Permission denied.},{@switch hasattr(%vb,ic_time)=1,{&time_note %vc=%r--> Note set by [name(%#)]%(%#%) at [time()]:%r%0;@pemit %#=Judgenote set on IC time.},{@pemit %#=Can't judgenote IC time if IC time hasn't been set.}}
&TIMECHECK Global Staff Object <GSOB>=$+time/check:@pemit %#=[ifelse(hasattr(%vb,ic_time),IC time set by [get(%vc/time_check)]:%r[u(%vb/ic_time)] [u(%vc/time_note)],IC time is not set.)]
&TIMECLEAR Global Staff Object <GSOB>=$+time/clear:@set %vb=ic_time:; @set %vc=time_check:; @set %vc=time_note:; @set #12=hour_override:; @pemit %#=IC time cleared.
&DECK Global Staff Object <GSOB>=$+deck *:@switch u(isjudge)=1,{@switch num(*%0)=#-1,{@pemit %#=That's not a player.},{@pemit %#=[center(| %ch[name(*%0)]%cn |,79,~)]%r%r[ifelse(hasattr(*%0,drawn_bunks),%chBunks currently drawn:%cn[iter(u(*%0/Drawn_Bunks),%r[rjust(##,5)]. [ifelse(gt(1000,##),[extract(u(%vd/bunk_##),1,1,|)],[extract(u(%vd/nightmare_[sub(##,1000)]),1,1,|)] %cr%(NIGHTMARE%)%cn)])]%r%r,)]The Bunks currently in [poss(*%0)] deck are:[iter(u(*%0/Current_Bunks),%r[rjust(##,5)]. [ifelse(gt(1000,##),[extract(u(%vd/bunk_##),1,1,|)],[extract(u(%vd/nightmare_[sub(##,1000)]),1,1,|)] %cr%(NIGHTMARE%)%cn)])]%r%rThe Arts currently in [poss(*%0)] deck are:%r[u(#3437/fn_5columns,u(*%0/arts_list))]The Realms currently in [poss(*%0)] deck are:%r[u(#3437/fn_5columns,u(*%0/realms_list))][repeat(~,79)]}},{@pemit %#=Permission denied.}
@VD Global Staff Object <GSOB>=#3435
&LIST_BUNKS Global Staff Object <GSOB>=$+bunk/list * *:@pemit %# = [repeat(~,79)]%rLevel %1 bunks for [setr(0,[extract([u(#3437/arts)],[match(u(#3437/arts),%0*)],1)])][setq(1,%1)]:%r[iter(filter(#3437/fn_show_bunks,lattr(%vd/bunk_*)),%r[rjust([rest(##,_)],5)]. [extract(u(%vd/##),1,1,|)])]%r%r[repeat(~,79)]
&SHOW_BUNK Global Staff Object <GSOB>=$+bunk/show *:@pemit %#=[switch([or(hasattr(%vd,bunk_%0),hasattr(%vd,nightmare_[setr(1,sub(%0,1000))]))],0,[capstr(%0)] is not a valid bunk number.,[ifelse(gt(1000,%0),{[center(Bunk #%0 - [extract(u(%vd/bunk_%0),1,1,|)],79,~)]%RArt: [extract(u(%vd/bunk_%0),3,1,|)]%RNumber of Successes: [extract(u(%vd/bunk_%0),4,1,|)][switch([extract(u(%vd/bunk_%0),2,1,|)],ALL,,%RKith : [extract(u(%vd/bunk_%0),2,1,|)])]%R%R[space(5)][extract(u(%vd/bunk_%0),5,1,|)]%R%R[repeat(~,79)]},{[center(Nightmare #%0 - [extract(u(%vd/nightmare_%q1),1,1,|)],79,*)]%rLevel: [extract(u(%vd/nightmare_%q1),2,1,|)]%r%r[space(5)][extract(u(%vd/nightmare_%q1),3,1,|)]%R%R[repeat(*,79)]})])]
&NATURE Global Staff Object <GSOB>=$+nature *=*:@switch type(*%0)=PLAYER,{@set *%0=nature:%1; @pemit %#=%chNATURE:%cn You set [name(*%0)]'s nature to %ch%1%cn.;@pemit *%0=%chNATURE:%cn Your nature has been changed to %ch%1%cn by %N.},{@pemit %#=%chNATURE:%cn Unknown player.}
&DEMEANOR Global Staff Object <GSOB>=$+demeanor *=*:@switch type(*%0)=PLAYER,{@pemit %#=%chDEMEANOR:%cn You set [name(*%0)]'s demeanor to %ch%1%cn.;@pemit *%0=%chDEMEANOR:%cn Your demeanor has been changed to %ch%1%cn by %N.},{@pemit %#=%chDEMEANOR:%cn Unknown player.}
&IS_DARK Global Staff Object <GSOB>=[not(hasflag(*%0,DARK))]
&MWHO Global Staff Object <GSOB>=$MWHO:@switch [orflags(%#,WZ?)]=1,{@pemit %#=Character[space(11)]Idle Concept[iter(lwho(),switch(u(##/race),mortal,%r[setq(1,add(r(1),1))][ljust(name(##),20)][rjust(switch(gte(setr(0,idle(##)),60),1,[div(r(0),60)]m ,[mod(r(0),60)]s ),4)] [u(##/concept)],))]%r%q1 mortals connected.},{@pemit %#=Permission denied.}
@set Global Staff Object <GSOB>=INHERIT
@set Global Staff Object <GSOB>=SAFE
@parent Global Staff Object <GSOB>=Global Stats Object <GST>
@chzone Global Staff Object <GSOB>=Global Stats Object <GST>


@create Staff Data Object=10
&SPOS_#46 Staff Data Object=Mortal Admin
&SPOS_#47 Staff Data Object=Asst. Chief of Staff
&SPOS_#49 Staff Data Object=Mistress of OOC Games
&SPOS_#1 Staff Data Object=God Character
&SPOS_#60 Staff Data Object=Goddess/Chief of Staff
&SPOS_#67 Staff Data Object=Building Wizard (Retired)
&SPOS_#992 Staff Data Object=Shifter Wizard (Retired)
&SPOS_#2700 Staff Data Object=Code Wizard
&SPOS_#419 Staff Data Object=Shifter Admin (Retired)
&SPOS_#2701 Staff Data Object=Head Storyteller (Retired)
&SPOS_#2210 Staff Data Object=Mortal Wizard
&SPOS_#3037 Staff Data Object=Mortal Admin
&SPOS_#2107 Staff Data Object=STORYTELLER: No Mages (Retired)
&SPOS_#2579 Staff Data Object=Vampire Wizard (Retired)
&SPOS_#1271 Staff Data Object=Sabbat/Independent Vampire Admin
&SPOS_#3315 Staff Data Object=Law Admin
&SPOS_#3125 Staff Data Object=Coding Admin
&SPOS_#2533 Staff Data Object=Weapons Master
&SPOS_#1936 Staff Data Object=Mage Helper
&SPOS_#2134 Staff Data Object=Head Storyteller
&SPOS_#3408 Staff Data Object=Changeling Wizard
&SPOS_#3682 Staff Data Object=Building Wizard
&SPOS_#779 Staff Data Object=Camarilla Admin
&SPOS_#3778 Staff Data Object=Crime Admin
&SPOS_#1263 Staff Data Object= Influence/Contact Admin
&SPOS_#942 Staff Data Object=Mortal+/Hunter Admin
&SPOS_#2 Staff Data Object=Super Slack Wonder Wizard Coder
&SPOS_#3115 Staff Data Object=Changeling Admin
&SPOS_#3913 Staff Data Object=STORYTELLER
&SPOS_#1036 Staff Data Object=STORYTELLER: Crime
&SPOS_#736 Staff Data Object=Shifter Wizard (On Leave)
&SPOS_#3541 Staff Data Object=Vampire Wizard
&SPOS_#4052 Staff Data Object=Site Administrator
&SPOS_#2790 Staff Data Object=Mortal Admin
&SPOS_#3505 Staff Data Object=STORYTELLER
&SPOS_#3253 Staff Data Object=STORYTELLER
&SPOS_#804 Staff Data Object=STORYTELLER
&JUDGE_#3913 Staff Data Object=Garou and Vampires
&JUDGE_#1036 Staff Data Object=Gypsies, Garou and Vampires
&JUDGE_#3505 Staff Data Object=No Mages
&JUDGE_#3253 Staff Data Object=Vampires
&JUDGE_#2937 Staff Data Object=Vampires, Garou and Mages
&JUDGE_#804 Staff Data Object=Changelings, Mages and Vampires
&SPOS_#51 Staff Data Object=Acting Garou Admin
@set Staff Data Object=INHERIT
@set Staff Data Object=NO_COMMAND
@set Staff Data Object=HALTED
@lock Global Stats Object <GST>=*Taffy
&HELP Global Stats Object <GST>=$+stathelp:@switch u(isstaff,%#)=1,{@pemit %#=Use '+clearchar <name>' to clear the stats of a pre statted char or espcially of a half statted char.%r+setattr <name>=<attr> <val>%r+setabil <name>=<abil> <val>%r+setbg <name>=<bg> <val>%r+setvir <name>=<virtue> <val>%r+setpow <name>=<power> <val>%r+setwill <name>=<value>%r+sethu <name>=<value>%r+setpath <name>=<path>%/<value>%r+setbp <name>=<value>%r+setclan <name>=<clan name> <generation>%r+settrad <name>=<tradition name>%/<essence>%r+setarete <name>=<val>%r+setghoul <name>=<master> - creates ghoul, sets bps to 10.%r+setmortal <name>%[=<type>] - makes a character mortal.%r+setmortal+ <name>=<type> - sets a special mortal, such as numia mortals.%r+setkin <name>=<tribe> - Sets a kinfolk to <tribe>%r+setgypsie <name>=<family>/<element> - Sets up a Gypsie character.%r+setgarou <name>=<tribe>%/<breed>%/<auspice>%r+setrage <name>=<val>%r+setgnosis <name>=<val>%r+setseelie <name>=<seeming>/<kith>/<house> - Sets up a Seelie Changeling%r+setunseelie <name>=<seeming>/<kith>/<house> - Sets up an Unseelie Changeling%r+setshadow <name>=<seeming>/<kith>/<house> - Sets up a Shadow Court Changeling%r+setglamour <name>=<val>%r+setbanality <name>=<val>%r+setba <name>=<val>%r+setka <name>=<val>%r+setsekhem <name>=<val>%r+setrank <name>=<rank>%r+setandroid <name>=<type>%r+addgift <name>=<gift name>%r+addrite <name>=<rite name>%r+addritual <name>=<ritual name>%r+addinvest <name>=<investment>%r+addspell <name>=<spell name>%r+addderangement <player>=<derangement>%r+addpassion <player>=<passion name>%r+addfetters <player>=<fetter name>%r+addm/f <name>=<merit/flaw name and size>%r+rmthing <name>=%[gift|rite|ritual|investment|spell|mf%] <number in character's list>%rUse '+initchar <name>=<concept>' to prepare a character for new stats. use '+clearchar' to clear a character with messed up stats, partly complete stats etc. Use '+dochar' to convert a chargen format char into a normal format char.%rStats can be set on objects other than players. A <name> may be a player name, *player name, db ref, object name etc.},@pemit %#=Huh?%b (Type "help" for help.)
&SETATTR Global Stats Object <GST>=$+setattr *=* *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))][setq(1,match(lcstr(get(#35/attrnames)),[lcstr(%1)]*))]; @switch r(0)=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch r(1)=0,{@pemit %#=No such attribute %1},{@switch member(lnum(11),%2)=0,{@pemit %#=Silly stat value: %2},{@pemit %#=Value of [u(#35/attrname,r(1))] was [u(#35/gvattr,r(0),r(1))], now %2.; &attr [r(0)]=replace(get(r(0)/attr),r(1),%2); &tattr [r(0)]=replace(get(r(0)/attr),r(1),%2)}}}},@pemit %#=Huh? (Type "help" for help.)
&SETABIL Global Stats Object <GST>=$+setabil *=* *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))][setq(1,match(lcstr(get(#35/abilnames)),[lcstr(%1)]*))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch [r(1)]=0,{@pemit %#=No such ability %1},{@switch member(lnum(11),%2)=0,{@pemit %#=Silly stat value: %2},{@switch %2=0,{@trig me/rmitem=r(0),abils,abilvals,r(1); @pemit %#=[u(#35/abilname,r(1))] of [u(#35/gcabil,r(0),r(1))] removed.},{@pemit %#=Value of [u(#35/abilname,r(1))] was [u(#35/gcabil,r(0),r(1))], now %2.;@trig me/additem=r(0),abils,abilvals,r(1),%2}}}}},@pemit %#=Huh? (Type "help" for help.)
&SETSABIL Global Stats Object <GST>=$+setsabil *=* *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))][setq(1,match(lcstr(get(#35/sabilnames)),[lcstr(%1)]*))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch [r(1)]=0,{@pemit %#=No such secondary ability %1},{@switch member(lnum(11),%2)=0,{@pemit %#=Silly stat value: %2},{@switch %2=0,{@trig me/rmitem=r(0),sabils,sabilvals,r(1); @pemit %#=[u(#35/sabilname,r(1))] of [u(#35/gcsabil,r(0),r(1))] removed.},{@pemit %#=Value of [u(#35/sabilname,r(1))] was [u(#35/gcsabil,r(0),r(1))], now %2.;@trig me/additem=r(0),sabils,sabilvals,r(1),%2}}}}},@pemit %#=Huh? (Type "help" for help.)
&SETBG Global Stats Object <GST>=$+setbg *=* *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))][setq(1,match(lcstr(get(#35/bgnames)),[lcstr(%1)]*))]; @switch r(0)=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch r(1)=0,{@pemit %#=No such background %1},{@switch member(lnum(6),%2)=0,{@pemit %#=Silly stat value: %2},{@switch %2=0,{@trig me/rmitem=r(0),bgnds,bgndvals,r(1); @pemit %#=[u(#35/bgname,r(1))] of [u(#35/gcbg,r(0),r(1))] removed.},{@pemit %#=Value of [u(#35/bgname,r(1))] was [u(#35/gcbg,r(0),r(1))], now %2.;@trig me/additem=r(0),bgnds,bgndvals,r(1),%2}}}}},@pemit %#=Huh? (Type "help" for help.)
&SETVIR Global Stats Object <GST>=$+setvir *=* *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))][setq(1,match(lcstr(get(#35/virtnames)),[lcstr(%1)]*))]; @switch r(0)=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch r(1)=0,{@pemit %#=No such virtue %1},{@switch 1=0,{@pemit %#=Silly stat value: %2},{@switch %2=0,{@trig me/rmitem=r(0),virts,virtvals,r(1); @pemit %#=[u(#35/virtname,r(1))] of [u(#35/gcvirt,r(0),r(1))] removed.},{@pemit %#=Value of [u(#35/virtname,r(1))] was [u(#35/gcvirt,r(0),r(1))], now %2.;@trig me/additem=r(0),virts,virtvals,r(1),%2}}}}},@pemit %#=Huh? (Type "help" for help.)
&SETPOW Global Stats Object <GST>=$+setpow *=* *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))][setq(1,match(lcstr(get(#35/pownames)),[lcstr(%1)]*))]; @switch r(0)=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch r(1)=0,{@pemit %#=No such power %1},{@switch member(lnum(11),%2)=0,{@pemit %#=Silly stat value: %2},{@switch %2=0,{@trig me/rmitem=r(0),powers,powvals,r(1); @pemit %#=[u(#35/powname,r(1))] of [u(#35/gcpow,r(0),r(1))] removed.},{@pemit %#=Value of [u(#35/powname,r(1))] was [u(#35/gcpow,r(0),r(1))], now %2.;@trig me/additem=r(0),powers,powvals,r(1),%2}}}}},@pemit %#=Huh? (Type "help" for help.)
&SETHU Global Stats Object <GST>=$+sethu *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(11),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of humanity was [get(r(0)/hu)], now %1.;&hu [r(0)]=%1}}},@pemit %#=Huh? (Type "help" for help.)
&SETWILL Global Stats Object <GST>=$+setwill *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(11),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of willpower was [get(r(0)/wp)], now %1.;&wp [r(0)]=%1; &wpp [r(0)]=%1}}},@pemit %#=Huh? (Type "help" for help.)
&SETBP Global Stats Object <GST>=$+setbp *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(100),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of blood pool was [get(r(0)/bp)], now %1.;&bp [r(0)]=%1; &bpp [r(0)]=%1}}},@pemit %#=Huh? (Type "help" for help.)
&SETRAGE Global Stats Object <GST>=$+setrage *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(11),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of rage was [get(r(0)/rage)], now %1.;&rage [r(0)]=%1; &rp [r(0)]=%1; &race [r(0)]=were}}},@pemit %#=Huh? (Type "help" for help.)
&SETGNOSIS Global Stats Object <GST>=$+setgnosis *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(11),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of gnosis was [get(r(0)/gnosis)], now %1.;&gnosis [r(0)]=%1; &gps [r(0)]=%1; &race [r(0)]=were}}},@pemit %#=Huh? (Type "help" for help.)
&SETSEKHEM Global Stats Object <GST>=$+setsekhem *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(101),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of sekhem was [get(r(0)/sekhem)], now %1.;&sekhem [r(0)]=%1; &sek [r(0)]=%1; &race [r(0)]=mummy}}},@pemit %#=Huh? (Type "help" for help.)
&SETBA Global Stats Object <GST>=$+setba *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(11),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of ba was [get(r(0)/ba)], now %1.;&ba [r(0)]=%1; &ten [r(0)]=10; &race [r(0)]=mummy}}},@pemit %#=Huh? (Type "help" for help.)
&SETKA Global Stats Object <GST>=$+setka *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(11),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of ka was [get(r(0)/ka)], now %1.;&ka [r(0)]=%1; &ten [r(0)]=10; &race [r(0)]=mummy}}},@pemit %#=Huh? (Type "help" for help.)
&INITCHAR Global Stats Object <GST>=$+initchar *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@unlock [r(0)]/race; &abils [r(0)]; &abilvals [r(0)]; &sabils [r(0)]; &sabilvals [r(0)]; &bgnds [r(0)]; &bgndvals [r(0)]; &virts [r(0)]; &virtvals [r(0)]; &hu [r(0)]; &wp [r(0)]; &wpp [r(0)]; &powers [r(0)]; &powvals [r(0)]; &bp [r(0)]; &bpp [r(0)]; &rage [r(0)]; &rp [r(0)]; &gnosis [r(0)]; &gps [r(0)]; &ba [r(0)]; &ka [r(0)]; &sekhem [r(0)]; &sek [r(0)]; &xp [r(0)]; &generation [r(0)]; &attr2 [r(0)]; &abils2 [r(0)]; &abilvals2 [r(0)]; &bgnds2 [r(0)]; &bgndvals2 [r(0)]; &virts2 [r(0)]; &virtvals2 [r(0)]; &hu2 [r(0)]; &wp2 [r(0)]; &freebies [r(0)]; &virp [r(0)]; &bacp [r(0)]; &atp1 [r(0)]; &atp2 [r(0)]; &atp3 [r(0)]; &abp1 [r(0)]; &abp2 [r(0)]; &abp3 [r(0)]; &class [r(0)]; &rank [r(0)]; &gifts [r(0)]; &rites [r(0)]; &rituals [r(0)]; &spells [r(0)];&investments [r(0)];&mfs [r(0)]; &ll [r(0)]; &lang [r(0)]; &npc [r(0)]; &attr [r(0)]=0 0 0 0 0 0 0 0 0; &tattr [r(0)]=* * * * * * * * *; &race [r(0)]=mortal;&tribe [r(0)]=;&auspice [r(0)]=;&breed [r(0)]=;&tradition [r(0)]=;&essence [r(0)];&wounds [r(0)]=0;&xp [r(0)]=0; &concept [r(0)]=%1;&started [r(0)]=1; &set_attr [r(0)]=1; &set_abil [r(0)]=1; &done [r(0)]=1; @link [r(0)]=#5; @pemit %#=Reset and initialised stats on [name(r(0))]!}},@pemit %#=Huh? (Type "help" for help.)
&CLEARCHAR Global Stats Object <GST>=$+clearchar *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{&tattr [r(0)]; &attr [r(0)]; &abils [r(0)]; &abilvals [r(0)]; &sabils [r(0)]; &sabilvals [r(0)]; &bgnds [r(0)]; &bgndvals [r(0)]; &virts [r(0)]; &virtvals [r(0)]; &hu [r(0)]; &wp [r(0)]; &wpp [r(0)]; &powers [r(0)]; &powvals [r(0)]; &race [r(0)]; &bp [r(0)]; &bpp [r(0)]; &rage [r(0)]; &rp [r(0)]; &gnosis [r(0)]; &gps [r(0)]; &ba [r(0)]; &ka [r(0)]; &sekhem [r(0)]; &sek [r(0)]; &xp [r(0)]; &wounds [r(0)]; &concept [r(0)]; &started [r(0)]; &set_attr [r(0)]; &set_abil [r(0)]; &done [r(0)]; &generation [r(0)]; &attr2 [r(0)]; &abils2 [r(0)]; &abilvals2 [r(0)]; &bgnds2 [r(0)]; &bgndvals2 [r(0)]; &virts2 [r(0)]; &virtvals2 [r(0)]; &hu2 [r(0)]; &wp2 [r(0)]; @drain [r(0)]; &freebies [r(0)]; &virp [r(0)]; &bacp [r(0)]; &atp1 [r(0)]; &atp2 [r(0)]; &atp3 [r(0)]; &abp1 [r(0)]; &abp2 [r(0)]; &abp3 [r(0)]; &class [r(0)]; &rank [r(0)]; &gifts [r(0)]; &rites [r(0)]; &rituals [r(0)]; &spells [r(0)]; &ll [r(0)]; &lang [r(0)]; &npc [r(0)]; &chanauth [r(0)]; @pemit %#=Cleared stats from [name(r(0))]! }},@pemit %#=Huh? (Type "help" for help.)
&DOCHAR Global Stats Object <GST>=$+dochar *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{&tattr=[get(%#/attr)]; &abils [r(0)]=[u(tidy,get(r(0)/abils)]; &abilvals [r(0)]=[u(tidy,get(r(0)/abilvals)]; &sabils [r(0)]=[u(tidy,get(r(0)/sabils)]; &sabilvals [r(0)]=[u(tidy,get(r(0)/sabilvals)]; &bgnds [r(0)]=[u(tidy,get(r(0)/bgnds)]; &bgndvals [r(0)]=[u(tidy,get(r(0)/bgndvals)]; &virts [r(0)]=[u(tidy,get(r(0)/virtvals)]; &powers [r(0)]=[u(tidy,get(r(0)/powers)]; &powvals [r(0)]=[u(tidy,get(r(0)/powvals)]; &attr2 [r(0)]; &abils2 [r(0)]; &abilvals2 [r(0)]; &bgnds2 [r(0)]; &bgndvals2 [r(0)]; &virts2 [r(0)]; &virtvals2 [r(0)]; &hu2 [r(0)]; &wp2 [r(0)]; @pemit %#=Converted stats on [name(r(0))]! }},@pemit %#=Huh? (Type "help" for help.)
&SETTRAD Global Stats Object <GST>=$+settrad *=*:@switch u(issetter,%#)=1,{@switch [setr(0,u(findpc,%#,%0))]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{&race %q0=mage; &class %q0=[before(%1,/)];&tradition %q0=[before(%1,/)];&essence %q0=[after(%1,/)]; &quint %q0=0; &paradox %q0=0;@pemit %#=[name(%q0)] is now a [secure(%1)] mage.}},@pemit %#=Huh? (Type "help" for help.)
&SETCLAN Global Stats Object <GST>=$+setclan *=* *:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Whic&ADDPASSION Global Stats Object <GST>=$+addpassion *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch words(get(r(0)/passions),|)=0,{&passions [r(0)]=[secure(%1)]},{&passions [r(0)]=[get(r(0)/passions)]|[secure(%1)]}; @wait 0=@pemit %#=[setq(7,get(r(0)/passions))]--Passions[repeat(-,65)][iter(u(lwnum,words(r(7),|)),switch(mod(##,3),1,%r%b%b[ljust(index(r(7),|,##,1),23)],[ljust(index(r(7),|,##,1),23)]))]%r[repeat(-,72)]}},@pemit %#=Huh? (Type "help" for help.
&SETSEELIE Global Stats Object <GST>=$+setseelie *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{&class [r(0)]=Seelie;&seeming [r(0)]=[index(%1,/,1,1)];&kith [r(0)]=[index(%1,/,2,1)];&house [r(0)]=[index(%1,/,3,1)]; &race [r(0)]=changeling; @pemit %#=[name(r(0))] is now a Seelie [secure(%1)] changeling.}},@pemit %#=Huh? (Type "help" for help.)
&SETUNSEELIE Global Stats Object <GST>=$+setunseelie *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{&class [r(0)]=Unseelie;&seeming [r(0)]=[index(%1,/,1,1)];&kith [r(0)]=[index(%1,/,2,1)];&house [r(0)]=[index(%1,/,3,1)]; &race [r(0)]=changeling; @pemit %#=[name(r(0))] is now an Unseelie [secure(%1)] changeling.}},@pemit %#=Huh? (Type "help" for help.)
&SETCORPUS Global Stats Object <GST>=$+setcorpus *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(100),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of Corpus was [get(r(0)/corpus)], now %1.;&corpus [r(0)]=%1; &corpusp [r(0)]=%1}}},@pemit %#=Huh? (Type "help" for help.)
&SETPATHOS Global Stats Object <GST>=$+setpathos *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(100),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of Pathos was [get(r(0)/pathos)], now %1.;&pathos [r(0)]=%1; &pathosp [r(0)]=%1}}},@pemit %#=Huh? (Type "help" for help.)
&SETGLAMOUR Global Stats Object <GST>=$+setglamour *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(100),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of Glamour was [get(r(0)/glamour)], now %1.;&glamour [r(0)]=%1; &glamourp [r(0)]=%1}}},@pemit %#=Huh? (Type "help" for help.)
&SETBANALITY Global Stats Object <GST>=$+setbanality *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{@switch member(lnum(100),%1)=0,{@pemit %#=Silly stat value: %1},{@pemit %#=Value of Banality was [get(r(0)/banality)], now %1.;&banality [r(0)]=%1; &banalityp [r(0)]=0}}},@pemit %#=Huh? (Type "help" for help.)
&SETWOUND Global Stats Object <GST>=$+setwound *=*:@switch u(isjudge,%#)=1,{@switch [setr(0,u(findpc,%#,%0))]=#-1,{@pemit %#=Cannot see %0.},{&wounds [r(0)]=[min(%1,8)]; @pemit %#=[name(r(0))]'s wound level set to %1.}},@pemit %#=Huh? (Type "help" for help.)
&HELP2 Global Stats Object <GST>=$staffhelp:@switch u(isstaff,%#)=1,{@pemit %#=Stats Commands (Judges Only):%r+abils <name>%r+advs <name>%r+attrs <name>%r+misc <name>%r+stats <name>%r+com <name> - shows handy combat stat summary.%r+tmpattr <name>=<attr> <value> - sets a temporary attribute value.%r+resetattr <name> - resets the temporary attribute values back to normal.%r+addpool <name>=<pool> <modify amount>%r+setpool <name>=<pool> <value>%r+addwound <name>=<amount>%r+setwound <name>=<wounds>%r+deck <name> - shows the cards in a changelings deck.%r+bunk/list <art> <level> - shows all bunks of a particular art and level.%r+bunk/show <num> - shows the description of a bunk or nightmare.%r%rpools are: will blood gnosis rage ba ka sekhem paradox quint corpus pathos glamour banality%rWound level is numeric, with 0 = unhurt.%r%rSWHO - shows Story staff (only) a list of connected supers%r%rWizards and Admins may set stats (see +stathelp for info).%rWizards only may: +addxp <player>=<amount to add>},@pemit %#=Huh? (Type "help" for help.)
&DO_SETPOOL Global Stats Object <GST>=$+setpool *=* *:@switch u(isjudge,%#)=1,{@switch [setr(0,u(findpc,%#,%0))][setq(1,lcstr(%1))]=#-1,{@pemit %#=Cannot see %0.},{@switch [member(v(pools),%q1)]=0,{@pemit %#=No such pool: %1.},{@switch [member(lnum(100),%2)]=0,{@pemit %#=%2 is not a sensible pool value.},{@trig me/setpool=%q0,%q1,%2;@pemit %#=[name(%q0)]'s %q1 pool set to %2.}}}},@pemit %#=Huh? (Type "help" for help.)
&ADDWOUND Global Stats Object <GST>=$+addwound *=*:@switch u(isjudge,%#)=1,{@switch [setr(0,u(findpc,%#,%0))]=#-1,{@pemit %#=Cannot see %0.},{&wounds [r(0)]=[max(0,min(add(get(r(0)/wounds),%1),8))];@wait 1=@pemit %#=[name(r(0))]'s wound level set to [get(r(0)/wounds)].}},@pemit %#=Huh? (Type "help" for help.)
&SETSHADOW Global Stats Object <GST>=$+setshadow *=*:@switch u(issetter,%#)=1,{&null me=[setq(0,u(findpc,%#,%0))]; @switch [r(0)]=#-1,{@pemit %#=Cannot locate [secure(%0)]},#-2,{@pemit %#=Which [secure(%0)]?},{&class [r(0)]=Shadow Court;&seeming [r(0)]=[index(%1,/,1,1)];&kith [r(0)]=[index(%1,/,2,1)];&house [r(0)]=[index(%1,/,3,1)]; &race [r(0)]=changeling; @pemit %#=[name(r(0))] is now Shadow Court [secure(%1)] changeling.}},@pemit %#=Huh? (Type "help" for help.)
@set Global Stats Object <GST>=INHERIT
@set Global Stats Object <GST>=STICKY
@set Global Stats Object <GST>=VISUAL
@set Global Stats Object <GST>=SAFE


@create Global Vampire Object <GVO>=10
&MAXSTAT Global Vampire Object <GVO>=10 10 10 9 8 7 6
&PUMPSTAT Global Vampire Object <GVO>=$+pump *:setq(0,match(get(me/legal),%0*));@switch [get(%#/generation)]<=8,setq(1,extract(get(me/maxstat),get(%#/generation),1)),setq(1,5);@switch [match(get(me/pumplist),get(%#/race))]=0,{@pemit %#=You cannot use blood to raise your stats.},{@switch [get(%#/bpp)]=0,{@pemit %#=You do not have any blood to use.},{@switch [r(0)]=0,{@pemit %#=That is not a legal attribute to raise.},{&tattr %#=[replace(get(%#/tattr),r(0),add(1,extract(get(%#/tattr),r(0),1)))];@pemit %#=You pump blood into [extract(get(me/legal),r(0),1)].;&bpp %#=[sub(u(%#/bpp),1)]}}}
&CLEAREM Global Vampire Object <GVO>=$+relax:@pemit %#=You relax as you calm down from the rush of the blood.;&tattr %#=[get(%#/attr)]
&LEGAL Global Vampire Object <GVO>=strength dexterity stamina
&PUMPLIST Global Vampire Object <GVO>=vampire ghoul kindred pvampire
@Adesc Global Vampire Object <GVO>=@Pemit owner(me)=(Type fanghelp for help)
&FANGHELP Global Vampire Object <GVO>=$+vhelp:@switch [member(get(me/pumplist),get(%#/race))]=0,@pemit %#=There is no help for creatures that do not exist.,@pemit %#=[center(Vampire Help,60,-)]%r[ljust(+pump *,10)]-Use blood to raise <Attribute>.%r[ljust(+relax,10)]-Resets stats after the scene is over.%r%r[setq(0,)][setq(1,[ljust(+vshift <form>,10)]-Usable with Protean%, lets you shapeshift into Bat%, Man or Wolf. If you want a special desc for each%, set them in the attributes '&desc_man'%, '&desc_bat' and '&desc_wolf'. If you don't set any desc%, it won't be changed.%r)][r(u(shiftlock,bat))][center(,60,-)]
&SHIFTLOCK Global Vampire Object <GVO>=[and(sign(member(man bat wolf,lcstr(%0))),gt(extract(u(%#/powvals),member(u(%#/powers),75),1),3))]
&SHIFT Global Vampire Object <GVO>=$+vshift *:@pemit %#=[setq(0,{Huh? (Type "help" for help.)})][setq(1,You shapeshift to [capstr(lcstr(%0))] form.)][r(u(shiftlock,%0))];@oemit %#=[setq(0,)][setq(1,{%n becomes blurry... In a second, %p shape is not the same!})];&tattr %#=[setq(1,iter(rest(lnum(10)),switch(lte(0,add(extract(u(%#/attr),##,1),extract(u(shift_%0),##,1))),0,0,add(extract(u(%#/attr),##,1),extract(u(shift_%0),##,1)))))][setq(0,)][r(u(shiftlock,%0))];@desc %#=[setq(0,get(%#/desc))][setq(1,get(%#/desc_%0))][r(and(u(shiftlock,%0),words(u(%#/desc_%0))))];&current_%# me=[setq(0,)][setq(1,lcstr(%0))][r(u(shiftlock,%0))]
&SHIFT_MAN Global Vampire Object <GVO>=0 0 0 0 0 0 0 0 0
&SHIFT_WOLF Global Vampire Object <GVO>=1 1 1 0 -1 0 0 0 0
&SHIFT_BAT Global Vampire Object <GVO>=-2 1 0 0 0 0 0 0 0
&CURRENT_#2 Global Vampire Object <GVO>=bat
@Desc Global Vampire Object <GVO>=[lattr(me)]
&CURRENT_#509 Global Vampire Object <GVO>=man
@set Global Vampire Object <GVO>=INHERIT
@set Global Vampire Object <GVO>=STICKY
@set Global Vampire Object <GVO>=SAFE


@create Umbral Parent=5
&INSIDE Umbral Parent=[comp(%!,%l)]
&UMBRA_OK Umbral Parent=[switch(get_eval(%0/IN_UMBRA),,0,1)]
&U_OBJLIST Umbral Parent=[iter(u(U_OBJS),%r[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])])]
&U_OBJS Umbral Parent=[filter(UMBRA_OK,remove(lcon(here),%!))]
&U_EXITLIST Umbral Parent=[iter([iter(lexits(here),[switch(hasflag(##,dark),1,,{[name(##)]%b})])],##)]
&DO_UGO Umbral Parent=$UGO *:@sel locate(%!,%0,ce)=#-*,{@pemit %#=Can't locate that exit.},{@dolist [setq(2,switch(u(%#/NAME_UMBRA),,name(%#),u(%#/NAME_UMBRA)))][setq(3,u(%0/odrop))][setq(4,u(%0/osucc))][setq(5,u(%0/succ))][u(u_objs)]={@pemit/contents ##=%q2 %q4%r%q2 has left.};@pemit %#=%q5;move/quiet %0;@pemit/contents %!=[get_eval(%!/IDESC)];@dolist [u(U_OBJS)]={@pemit/contents ##=%q2 %q3%r%q2 has arrived.}}
&DESC_UMBRA Umbral Parent=[iter(revwords(lcon(%!)),[ifelse(hasattr(##,DESC_UMBRA),u(##/DESC_UMBRA),u(##/DESC))])]
&NAME_UMBRA Umbral Parent=[iter(revwords(lcon(%!)),[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])])]
&DO_UHELP Umbral Parent=$UHELP:@pemit %#=[get_eval(%!/UHELP)]
&UHELP Umbral Parent=[center(| %ch%ccUmbra Help%cn |,79,=)]%r%b%b%chugo <direction>%cn -- Travels in specified <direction>%r%b%b%chuenter <object>%cn -- Enter an object in the umbra.%r%b%b%chuleave%cn[space(10)]-- Leave an object in the umbra.%r%b%b%chll <object>%cn[space(5)]-- Look at an object in the umbra.%r%b%b%chleave%cn[space(11)]-- Leave the umbra at this location.%r%b%b%ch.<text>%cn[space(9)]-- Say <text> in the umbra.%r%b%b%ch.:<text>%cn[space(8)]-- Pose <text> in the umbra.%r%b%b%ch.;<text>%cn[space(8)]-- Pose with no space.%r%b%b%chpeer%cn[space(12)]-- Peer into the real world.%r%b%b%ch+umbra%cn[space(10)]-- Step into the umbra.%r[repeat(=,79)]
@Aenter Umbral Parent=@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] enters the Umbra at this location.
@Desc Umbral Parent=Nothing is here. Please react accordingly.
@Aleave Umbral Parent=@switch %#=v(user),{&in_umbra %!=;@emit [name(%#)] steps out of thin air!;@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] leaves the Umbra at this location.;@tel me=*%#},
@Idesc Umbral Parent=[name(loc(me))]%r[u(loc(me)/desc_umbra)]%r[ifelse([gt([words(u(u_objlist))],0)],Contents:[u(u_objlist)]%r,)]Obvious exits:%r[u(u_exitlist)]
&GO_UMBRA Umbral Parent=$+umbra:&in_umbra %!=Yes;@pemit %#=You step sideways into the umbra.;@tel me=loc(%#);@tel %#=me;@emit [name(%#)] steps into nothingness!
&PEER Umbral Parent=$peer:@pemit %#=[name(here)]%r[u(here/desc)]%r[ifelse(gt(words(u(contents)),1),u(contents)%r,)]Obvious Exits:%r[u(u_exitlist)]
@Adesc Umbral Parent=@switch %#=[u(user)],{@pemit %#=Type 'uhelp' for help.}
&CHIP_MSG Umbral Parent=[not(or(hasflag(%0,dark),and(hasflag(%0,player),not(hasflag(%0,connected)))))]
&LOCKER Umbral Parent=[comp(%#,[u(user)])]
&CONTENTS Umbral Parent=Contents:[iter([lcon(here)],[switch(and(or(andflags(##,Pc!D),andflags(##,!P!D)),not(strmatch(##,%#))),1,%r[name(##)],0,)])]
&DO_USAY Umbral Parent=$.*:@switch u(in_umbra)=Yes,{@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][setq(0,trim(%0))][switch(mid(r(0),0,1),:,{%b[mid(r(0),1,strlen(r(0)))]},;,{[mid(r(0),1,strlen(r(0)))]},{%bsays "[r(0)]"})];@pemit %#=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][setq(0,trim(%0))][switch(mid(r(0),0,1),:,{%b[mid(r(0),1,strlen(r(0)))]},;,{[mid(r(0),1,strlen(r(0)))]},{%bsays "[r(0)]"})]},@pemit %#=You have to be in the Umbra for people there to hear or see you.
&LL Umbral Parent=$ll *:@switch u(in_umbra)=Yes,{@pemit %#=[setq(2,iter(filter(umbra_ok,lcon(here)),[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])]|))][setq(1,match(%q2,*%0*,|))][ifelse(%q1,[trim([elements(%q2,%q1,|)])]%r[u(elements(filter(umbra_ok,lcon(here)),%q1)/desc_umbra)],There isn't anything by that name in the Umbra here.)]},@pemit %#=You have to be in the Umbra to look at things there.
&DO_UENTER Umbral Parent=$UENTER *:@sel locate(%!,%0,n)=#-*,{@pemit %#=I can't tell what you want to enter.},{@switch and(elock(%0/EnterLock,%#),hasflag(%0,enter_ok))=0,{@pemit %#=You can't enter that!},{@dolist [setq(2,switch(u(%#/NAME_UMBRA),,name(%#),u(%#/NAME_UMBRA)))][setq(3,u(%0/oenter))][setq(4,u(%0/oxenter))][setq(5,u(%0/enter))][u(u_objs)]={@pemit/contents ##=%q2 %q4%r%q2 has left.};@pemit %#=%q5;enter/quiet %0;@pemit/contents %!=[get_eval(%!/IDESC)];@dolist [u(U_OBJS)]={@pemit/contents ##=%q2 %q3%r%q2 has arrived.}}}
&DO_ULEAVE Umbral Parent=$ULEAVE:@switch elock(%0/LeaveLock,%#)=0,{@pemit %#=You can't leave here!},{@dolist [setq(2,switch(u(%#/NAME_UMBRA),,name(%#),u(%#/NAME_UMBRA)))][setq(3,u(%0/oxleave))][setq(4,u(%0/oleave))][setq(5,u(%0/leave))][u(u_objs)]={@pemit/contents ##=%q2 %q4%r%q2 has left.};@pemit %#=%q5;leave/quiet;@pemit/contents %!=[get_eval(%!/IDESC)];@dolist [u(U_OBJS)]={@pemit/contents ##=%q2 %q3%r%q2 has arrived.}}
@set Umbral Parent=QUIET
@set Umbral Parent=HALTED
@set Umbral Parent=SAFE


@create Parent Bartender=10
&ORDER Parent Bartender=$order *:@pemit %#=[u(say_order,%0)];@oemit %#=[u(osay_order,%0)];@wait 5={@pemit %#=[u(say_give,%0)];@oemit %#=[u(osay_give,%0)]}
&SAY_ORDER Parent Bartender=The bartender says, "Sure, I can get you a %0."
&OSAY_ORDER Parent Bartender=The bartender scribbles down %N's order.
&SAY_GIVE Parent Bartender=The bartender gives you your %0.
&OSAY_GIVE Parent Bartender=The bartender gives %N %p %0.
&REQUEST Parent Bartender=$request * by *:@switch [u(is_playing)]=1,{&on_q me=[u(on_q)]"%0" by %1|},{&playing me="%0" by %1;&is_playing me=1;&on_q me="%0" by %1|;@wait 1=@trigger/quiet me/play_song};@pemit %#=[u(say_request,%0,%1)];@oemit %#=[u(osay_request)]
&PLAY_SONG Parent Bartender=@wait 1=&playing me=[extract([get(me/on_q)],1,1,|)];@wait %va=@emit [u(osay_play)];@wait %vb=@emit [u(osay_end)];@wait [add(%va,%vb,1)]=&on_q me=[ldelete(u(on_q),1,|)];@wait [add(%va,%vb,1)]=@switch [words(u(on_q))]=0,&is_playing me=0,@trigger/quiet me/play_song
&SAY_REQUEST Parent Bartender=You request "%0" by %1.
&OSAY_REQUEST Parent Bartender=%N requests a song.
&OSAY_PLAY Parent Bartender=[u(playing)] starts to play.
&OSAY_END Parent Bartender=[u(playing)] ends.
&IS_PLAYING Parent Bartender=0
&HELP Parent Bartender=$+barhelp:@pemit %#=%r%chorder <drink>%cn - This will allow you to order <drink>.%r%chrequest <song> by <artist>%cn - This allows you to request a song.%r
@Adesc Parent Bartender=@pemit %#=%ch<OOC>%cn You can type %ch+barhelp%cn for a list of commands.
@set Parent Bartender=VISUAL
@set Parent Bartender=PARENT_OK



@create PARENT: Tables=10
&JOINTABLE1 PARENT: Tables=$sit at #*:@switch 0=[not(member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#))],{@pemit %#=Don't you think you should 'stand' first?},[lte(%0, v(maxtables))],{@pemit %#=It would help if there were that many tables.},[gt(v(maxseats%0), words(v(table%0names)))],{@pemit %#=There aren't any free seats at that table.},{@oemit %#=%N sits down at [v(table%0)].;@pemit %#=You sit down at [v(table%0)].;@dolist [v(table%0names)]=@pemit ##=%N sits down and joins you.;&table%0names me=[v(table%0names)] %#}
&JOINTABLE PARENT: Tables=$sit with *:[setq(0, extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]),member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), num(%0)), 1))];@switch 0=[member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]),num(%0))],{@pemit %#=There isn't anyone named '%0' sitting here.},[not(member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#))],{@pemit %#=Don't you think you should 'stand' first?},[lte(r(0), v(maxtables))],{@pemit %#=It would help if there were that many tables.},[gt(v(maxseats[r(0)]), words(v(table[r(0)]names)))],{@pemit %#=There aren't any free seats at the table %0 is at.},{@oemit %#=%N sits down at [v(table[r(0)])].;@pemit %#=You sit down at [v(table[r(0)])].;@dolist [v(table[r(0)]names)]=@pemit ##=%N sits down and joins you.;&table[r(0)]names me=[v(table[r(0)]names)] %#}
&STANDTABLE PARENT: Tables=$stand:@switch [member(iter(rest(lnum(add(v(maxtables), 1))),[v(table##names)]), %#)]=0,{@pemit %#=Well, you stretch, but standing is hard considering you already are.},{[setq(0, [extract(s(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])])), member(iter(s(rest(lnum(add(v(maxtables), 1)))), [v(table##names)]), %#), 1)])];&table[r(0)]names me=[remove(v(table[r(0)]names), %#)];@pemit %#=You stand and stretch, leaving your seat.;@dolist [v(table[r(0)]names)]=@pemit ##=%N stands, leaving the table.}
&TALK PARENT: Tables=$tt *:@switch [member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)]=0,{@pemit %#=Try sitting down at a table first, perhaps?},{@dolist [v(table[extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)]names)]={@pemit ##=At your table, %N[switch(mid(%0, 0, 1), :, %b[delete(%0, 0, 1)], ;, [delete(%0, 0, 1)], %bsays "%0")]}}
&TABLE_CMD PARENT: Tables=$tables:@dolist [rest(lnum(add(v(maxtables), 1)))]=@pemit %#=[capstr(v(table##))] ({#}##) has [switch(sub(v(maxseats##), words(v(table##names))), 0, no, [sub(v(maxseats##), words(v(table##names)))])] empty [switch(sub(v(maxseats##), words(v(table##names))), 1, seat, seats)].[switch(words(v(table##names)), 0,,1, %rSeated is: %b[name(v(table##names))].,%rSeated are: %b[u(me/table_look, v(table##names))])]
&TABLEHELP PARENT: Tables=$tablehelp:@pemit %#=get_eval(me/help)
&CONFIGURE PARENT: Tables=$configure * tables:@switch controls(%#,me)=1,{@switch isnum(%0)=0,@pemit %#=The number of tables needs to be a number!,{@pemit %#=You configure %0 tables.;&CLEANUPSEATSA me=get(me/CLEANUPSEATSA);&CLEANUPSEATSB me=get(me/CLEANUPSEATSB);@set me=monitor;&MAXTABLES me=%0;@dolist [lnum(v(maxtables))]={&maxseats[add(##, 1)] me=[add(rand(9), 1)];&table[add(##, 1)] me=table [add(##, 1)]}}},@pemit %#=Huh?%b (Type "help" for help.)
@Desc PARENT: Tables=This is the table object. To use this do the following:%r%r

@create <object>%r@parent <object>=#57 (you may have already done this)%r@lock <object>=me%rdrop <object>%rconfigure <number of tables> tables%r%rThis will set up the numbler of tables you want with a random maximum of seats per table, and a name for each table of 'table <number>'. These can be reset by typing:%r%r&maxseats<table number> <object>=<number of seats>%r%rThe tables can be renamed by typing:%r%r&table<table number> <object>=<new table name>%r%rThe table name should not start with a capital letter, or end in a period. One final note, due to the fact that the object listens for messages (it MUST be set MONITOR) it cannot be set dark to hide it.
&CREDITS PARENT: Tables=Table code parent from Dark Web. Coder unknown. Originaly from Damned?
&CLEANUPSEATSA PARENT: Tables=^* has left.:@switch member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##,words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)])];&table[r(0)]names me=[remove(v(table[r(0)]names), %#)];@dolist [v(table[r(0)]names)]={@pemit ##=%N stands, leaving the table.};@pemit %#=You stand, leaving your seat.}
&CLEANUPSEATSB PARENT: Tables=^* has disconnected.:@switch member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)])];@dolist [v(table[r(0)]names)]={@pemit ##=%N stands, leaving the table.};&table[r(0)]names me=[remove(v(table[r(0)]names), %#)]}
&TABLE_LOOK PARENT: Tables=[iter(%0, [switch(##, first(revwords(%0)), [name(##)]., first(rest(revwords(%0))), {[name(##)], and }, {[name(##)],%b})])]
&HELP PARENT: Tables=%rTables are a virtual 'place' to sit. You remain in the same room, but%rjoin a group of people within that room who may or may not be having a%rquiet conversation at that table. Credit for this concept goes to%rGahron@AmberMUSH for the original idea.%r%r[space(2)]Commands:%r[space(2)]---------%r[space(2)]Sit at #<num>[space(15)]Sits you at table #<num>.%r[space(2)]Sit with <name>[space(13)]Sits you at the table with <name>.%r[space(2)]Stand[space(23)]Removes you from your table.%r%r[space(2)]Tt <message>[space(16)]Relays a message to all those at your table.%r[space(30)]This command takes ':' and '\;' substitutions.%r%r[space(2)]Tables[space(22)]Lists who's sitting at all tables.%r
@set PARENT: Tables=MONITOR
@set PARENT: Tables=OPAQUE
@set PARENT: Tables=VISUAL
@set PARENT: Tables=PARENT_OK
@set PARENT: Tables=SAFE


@create Table Functions and Data Object=10
&CLEANUPSEATSB Table Functions and Data Object=^* has disconnected.:@switch member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)])];@dolist [v(table[r(0)]names)]={@pemit ##=%N stands, leaving the table.};&table[r(0)]names me=[remove(v(table[r(0)]names), %#)]}
&HELP Table Functions and Data Object=Tables are a virtual 'place' to sit. You remain in the same room, but%rjoin a group of people within that room who may or may not be having a%rquiet conversation at that table. Credit for this concept goes to%rGahron@AmberMUSH for the original idea.%r%r[space(2)]Commands:%r[space(2)]---------%r[space(2)]Sit <table name>[space(12)]Sits you at <tablename> (Disabled)%r[space(2)]Sit at #<num>[space(15)]Sits you at table #<num>.%r[space(2)]Sit with <name>[space(13)]Sits you at the table with <name>.%r[space(2)]Stand[space(23)]Removes you from your table.%r%r[space(2)]Tt <message>[space(16)]Relays a message to all those at your table.%r[space(30)]This command takes ':' and '\;' substitutions.%r%r[space(2)]Tables[space(22)]Lists who's sitting at all tables.%r[space(2)]Table <num>[space(17)]Lists who's sitting at table <num>. (Disabled)
&DISABLED Table Functions and Data Object=listen *| configure * for * tables | sweep tables
&MAXSEATS Table Functions and Data Object=9
&TABLE_LOOK Table Functions and Data Object=[iter(%0, [switch(##, first(revwords(%0)), [name(##)]., first(rest(revwords(%0))), {[name(##)], and }, {[name(##)],%b})])]
@Desc Table Functions and Data Object=This is the data object for #3755, the table parent object.
&CREDITS Table Functions and Data Object=Table code parent from Dark Web. Coder unknown. Originaly from Damned?
&CLEANUPSEATSA Table Functions and Data Object=^* has left.:@switch member(iter(rest(lnum(add(v(maxplaces), 1))), [v(place##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxplaces), 1))), [switch(words(v(place##names)), 0,, [repeat(%b##,words(v(place##names)))])]), member(iter(rest(lnum(add(v(maxplaces), 1))), [v(place##names)]), %#), 1)])];&place[r(0)]names me=[remove(v(place[r(0)]names), %#)];@dolist [v(place[r(0)]names)]={@pemit ##=%N stands, leaving the place.};@pemit %#=You stand, leaving your seat.}
@set Table Functions and Data Object=VISUAL
@set Table Functions and Data Object=SAFE


@create Boat Parent=10
@lock Boat Parent=*BoatBLDR
&MOVE_BOAT Boat Parent=@switch [u(loc(me)/depth)]=0,{move oc0;@wait 10=move oc1;@wait 20=move %0;@wait 25=move oc0},1,{move oc1;@wait 10=move %0;@wait 15=move oc0},2,{move %0;@wait 5=move oc0}
@Listen Boat Parent=*
&DOCKED Boat Parent=No
&CHART Boat Parent=$+chart:@pemit %#=[center(| New Hope Island Chart |,79,=)]%r%b-_<7>___[space(57)]%\[space(8)]/%r[space(9)]~%\__________________________%b%b___________________________/ Marsh /%r__[space(16)]___________________||_______[space(22)]/~~~~~%r%b<6>[space(8)]<2>_-~[space(28)]~~~~~~~~~~~~%\%b%b<1>%b%b%b|_%r%b%b/~[space(10)]/[space(12)]_______________________________/`[space(9)]~~~~%\%r~~[space(12)]~~------~~~~~[space(10)]||[space(28)]<3>%b%b%b|%r%b%b/~%\__[space(30)]||[space(34)]<5>%r%b%b%\%b%b%b%b<4>[space(30)] O--North--->[space(22)]%\%r%b%b%b`~%\__-~%r[center(| Key |,79,=)]%r[space(13)]<1> Inlet Delta North[space(10)]<5> Harbinger Isle%r[space(13)]<2> Inlet Delta South[space(10)]<6> Little Tall Island%r[space(13)]<3> Lighthouse[space(17)]<7> Secluded Beach%r[space(13)]<4> Moonlight Isle%r%r[center(The boat's current location: [name(loc(me))],79)][repeat(=,79)]
@Idesc Boat Parent=%r[space(5)][u(interior)]%r%rThe boat is currently located at: [name(loc(me))].[switch(u(docked),No,{%rYou may [switch(hasattrp(here,nav_ok),1,+nav%b)][switch(and(hasattrp(here,nav_ok),hasattrp(here,chart_ok)),1,and%b)][switch(hasattrp(here,chart_ok),1,+chart%b)]here. Use '+boathelp' for help.%r},{%rUse '+boathelp' for help.})]
&LAUNCH Boat Parent=$+launch:@switch u(useok)=0,@pemit %#=[u(failmsg)],{@switch [u(docked)]=No,{@pemit %#=The boat isn't docked, how can you launch it?},{@pemit %#=You unmoor the boat and launch.;&docked me=No;move launch}}
&DOCK Boat Parent=$+dock:@switch u(useok)=0,@pemit %#=[u(failmsg)],{@switch [u(docked)]=Yes,{@pemit %#=The boat is already docked!},{@switch [hasattr(loc(me),dock)]=0,{@pemit %#=There is no dock available for landing.},{@pemit %#=You dock the boat.;&docked me=Yes;move dock}}}
&CHART2 Boat Parent=$+chart *:@switch u(useok)=0,@pemit %#=[u(failmsg)],{@switch hasattrp(loc(me),chart_ok)=0,{@pemit %#=You cannot chart a course here. You'll need to get closer to the open ocean.},{@switch [or(lt(%0,0),gt(%0,7)]=1,{@pemit %#=Invalid destination.},{@switch hasattr(me,chart_ok)=0,{@pemit %#=You cannot chart a course. This boat is too small for the open ocean.},{@pemit/contents me=%N plots a course for [u(#710/name_%0)].;@trigger me/move_boat=[u(#710/dest%0)]}}}}
&STOP Boat Parent=$+stop:@switch u(useok)=0,@pemit %#=[u(failmsg)],{@switch [u(docked)]=Yes,{@pemit %#=How do you stop a docked boat?},{@pemit %#=Stopped.;@halt me}}
&HELP Boat Parent=$+boathelp:@pemit %#=%r%chBoat Help%cn%r---------%r%chUsed by anyone:%cn%rlook/out[space(13)]-- Look at the location outside of the boat.%rlook/out <object>[space(4)]-- Look at an object outside the boat.%r+chart[space(15)]-- Displays the Chart Map.%r%r%chUsed only by those with key if boat is locked:%cn%r+launch[space(14)]-- Launch the boat from the dock.%r+dock[space(16)]-- Dock the boat at a dock.%r+chart <destination> -- Selects a destination and goes there.%r+nav <direction>[space(5)]-- Moves the boat in a specific direction.%r+stop[space(16)]-- Stops the boat during a +charted course.%r%rSee +boathelp2.%r
&NAV Boat Parent=$+nav *:@switch u(useok)=0,@pemit %#=[u(failmsg)],{@switch not(hasattrp(loc(%0),nav_ok))=1,{@pemit %#=You can't +nav there. Use +chart or +dock instead.},{@switch [u(docked)]=Yes,{@pemit %#=The boat is docked, you can't navigate a docked boat.},{@switch and(hasattrp(loc(%0),shallow),not(hasattr(me,shallow)))=1,{@pemit %#=The water is to shallow to go in that direction.},{@pemit/contents me=%N navigates the boat.;move %0}}}}
@Prefix Boat Parent=From the [name(me)],
&CRISTEN Boat Parent=$+christen *:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],{@pemit %#=You christen the boat.;@name me=%0}
&PLUS_DESC Boat Parent=$+desc/out *:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],{@pemit %#=You describe the exterior of the boat.;@desc me=%0}
@Desc Boat Parent=A speedboat.
&PLUS_DESC2 Boat Parent=$+desc/in *:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],{@pemit %#=You describe the interior of the boat.;&interior me=%0}
&OWN Boat Parent=$+own *:&owner me=%0;@lock/use me=*%0&inlock/0;@pemit %#=The boat is now registered in %0's name.
&OWNER Boat Parent=Taffy
&INTERIOR Boat Parent=This is a cool speedboat.
&INLOCK Boat Parent=[not([member([lcon(me)],%#)])]
&CHART_OK Boat Parent=1
@Lalias Boat Parent=out;o;exit
@Oleave Boat Parent=climbs out of the boat.
@Oxleave Boat Parent=climbs out of the [name(me)].
@Oenter Boat Parent=climbs into the boat.
@Oxenter Boat Parent=climbs into the [name(me)].
@Filter Boat Parent=* has left.,* has arrived.
@Inprefix Boat Parent=Outside the boat,
&SHALLOW Boat Parent=1
&REALBOAT Boat Parent=bouncy
&FAILMSG Boat Parent=You need the key to the boat to do that.
&USEOK Boat Parent=ifelse(hasattr(me,lockuse),[member([u(allowusers)],%#)],1)
&LOCKIT Boat Parent=$+lock boat:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],@pemit %#=You lock the boat.;&lockuse me=1
&OWNMSG Boat Parent=Only the boat's owner can use that command.
&UNLOCKIT Boat Parent=$+unlock boat:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],@pemit %#=You unlock the boat.;&lockuse me=
&USEADD Boat Parent=$+use/add *:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],@pemit %#=You add %0 to the list of allowed users.;&allowusers me=[insert(v(allowusers),1,num(*%0))]
&USEREM Boat Parent=$+use/remove *:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],@pemit %#=You remove %0 from the list of allowed users.;&allowusers me=[remove(v(allowusers),num(*%0))]
&USELIST Boat Parent=$+use/list:@switch member(v(owner),%#)=0,@pemit %#=[u(ownmsg)],@pemit %#=Allowed users:%r[iter(v(allowusers),%r[name(##)][space(5)]##)]%r
&HELP2 Boat Parent=$+boathelp2:@pemit %#=%r%chUsed only by the boat's owner:%cn%r+lock boat[space(11)]-- Lock the boat so only allowed players can use it.%r+unlock boat[space(9)]-- Unlock the boat so anyone can use it.%r+use/add <player>[space(4)]-- Give <player> key to boat.%r+use/remove <player> -- Take back key for <player>.%r+use/list[space(12)]-- List who has keys to the boat.%r+christen <name>[space(5)]-- Christens the boat to <name>.%r+desc/in <text>[space(6)]-- Describes the boat's interior.%r+desc/out <text>[space(5)]-- Describes the boat's exterior.%r%r%chMOVEMENT NOTES:%cn%r+nav will not work on the open sea, and +chart will not work in smaller, more narrow channels. Located in the boat's interior description is a note telling you which commands of the two (or both) can be used at that location.%r
&FULL Boat Parent=[gte(words(lcon(me)),v(seats))]
&SEATS Boat Parent=4
@Efail Boat Parent=You try to enter the [name(me)], but it is full.
@Oefail Boat Parent=tries to enter the [name(me)], but it is full.
@set Boat Parent=OPAQUE
@set Boat Parent=QUIET
@set Boat Parent=NO_COMMAND
@set Boat Parent=AUDIBLE
@set Boat Parent=ENTER_OK
@set Boat Parent=HALTED
@set Boat Parent=MYOPIC
@set Boat Parent=TRANSPARENT


@create Ride Parent=10
@lock Ride Parent=*Taffy
&JOINTABLE1 Ride Parent=$sit in #*:@switch 0=[not(member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#))],{@pemit %#=Don't you think you should 'stand' first?},[lte(%0, v(maxtables))],{@pemit %#=It would help if there were that many [v(carname)]s.},[gt(v(maxseats%0), words(v(table%0names)))],{@pemit %#=There aren't any free seats in that [v(carname)].},{@oemit %#=%N gets on the [v(ridename)] in [v(table%0)].;@pemit %#=You wait for the [v(ridename)] to stop and get into [v(table%0)].;@dolist [v(table%0names)]=@pemit ##=%N sits down and joins you.;&table%0names me=[v(table%0names)] %#}
&JOINTABLE Ride Parent=$sit with *:[setq(0, extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]),member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), num(%0)), 1))];@switch 0=[member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]),num(%0))],{@pemit %#=There isn't anyone named '%0' on this ride.},[not(member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#))],{@pemit %#=Don't you think you should 'stand' first?},[lte(r(0), v(maxtables))],{@pemit %#=It would help if there were that many [v(carname)]s.},[gt(v(maxseats[r(0)]), words(v(table[r(0)]names)))],{@pemit %#=There aren't any free seats in the [v(carname)] %0 is in.},{@oemit %#=%N gets on the [v(ridename)] in [v(table[r(0)])].;@pemit %#=You wait for the [v(ridename)] to stop and get into [v(table[r(0)])].;@dolist [v(table[r(0)]names)]=@pemit ##=%N sits down and joins you.;&table[r(0)]names me=[v(table[r(0)]names)] %#}
&STANDTABLE Ride Parent=$stand:@switch [member(iter(rest(lnum(add(v(maxtables), 1))),[v(table##names)]), %#)]=0,{@pemit %#=Well, you stretch, but standing is hard considering you already are.},{[setq(0, [extract(s(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])])), member(iter(s(rest(lnum(add(v(maxtables), 1)))), [v(table##names)]), %#), 1)])];&table[r(0)]names me=[remove(v(table[r(0)]names), %#)];@pemit %#=You get off the [v(ridename)] when it stops.;@dolist [v(table[r(0)]names)]=@pemit ##=%N gets off the [v(ridename)] when it stops.}
&TALK Ride Parent=$rt *:@switch [member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)]=0,{@pemit %#=Try getting on the ride first, perhaps?},{@dolist [v(table[extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)]names)]={@pemit ##=In your [v(carname)], %N[switch(mid(%0, 0, 1), :, %b[delete(%0, 0, 1)], ;, [delete(%0, 0, 1)], %bsays "%0")]}}
&TABLE_CMD Ride Parent=$riders:@dolist [rest(lnum(add(v(maxtables), 1)))]=@pemit %#=[capstr(v(table##))] ({#}##) has [switch(sub(v(maxseats##), words(v(table##names))), 0, no, [sub(v(maxseats##), words(v(table##names)))])] empty [switch(sub(v(maxseats##), words(v(table##names))), 1, seat, seats)].[switch(words(v(table##names)), 0,,1, %rSeated is: %b[name(v(table##names))].,%rSeated are: %b[u(#26/table_look, v(table##names))])]
&CONFIGURE Ride Parent=$configure * tables:@switch isnum(%0)=0,@pemit %#=The number of tables needs to be a number!,{&CLEANUPSEATSA me=get(#66/CLEANUPSEATSA);&CLEANUPSEATSB me=get(#66/CLEANUPSEATSB);@set me=monitor;&MAXTABLES me=%0;@dolist [lnum(v(maxtables))]={&maxseats[add(##, 1)] me=[add(rand(9), 1)];&table[add(##, 1)] me=table [add(##, 1)]}}
@Desc Ride Parent=This is the ride object, which is based very closely on the table object. To use this do the following:%r%r

@create <object>%r@parent <object>=#723 (you may have already done this)%r@lock <object>=me%rdrop <object>%rconfigure <number of tables> tables%r%rThis will set up the numbler of tables you want with a random maximum of seats per table, and a name for each table of 'table <number>'. These can be reset by typing:%r%r&maxseats<table number> <object>=<number of seats>%r%rThe tables can be renamed by typing:%r%r&table<table number> <object>=<new table name>%r%rThe ride name is specified by typing:%r%r&ridename <object>=<name of ride>%r%rThe generic name for the cars (tables) is set by typing:%r%r&carname <object>=<name of cars>%r%rThe table name should not start with a capital letter, or end in a period. One final note, due to the fact that the object listens for messages (it MUST be set MONITOR) it cannot be set dark to hide it.
&CREDITS Ride Parent=Table code parent from Dark Web. Coder unknown. Originaly from Damned?
&CLEANUPSEATSA Ride Parent=^* has left.:@switch member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##,words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)])];&table[r(0)]names me=[remove(v(table[r(0)]names), %#)];@dolist [v(table[r(0)]names)]={@pemit ##=%N gets off the [v(ridename)] when it stops.};@pemit %#=You get off the [v(ridename)] when it stops.}
&CLEANUPSEATSB Ride Parent=^* has disconnected.:@switch member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)])];@dolist [v(table[r(0)]names)]={@pemit ##=%N gets off the [v(ridename)] when it stops.};&table[r(0)]names me=[remove(v(table[r(0)]names), %#)]}
&RIDEHELP Ride Parent=$ridehelp:@pemit %#=%rThis ride has a number of virtual 'places' to sit as you enjoy it. Everyone in this room is on the same ride, or waiting in line for it. :) You can get on any [v(carname)] which has empty seats and use these commands to talk only with people in your [v(carname)]. This concept is of course very similiar to tables.%r%r[space(2)]Commands:%r[space(2)]---------%r%r[space(2)]Sit in #<num>[space(15)]Sits you in [v(carname)] #<num>.%r[space(2)]Sit with <name>[space(13)]Sits you in the [v(carname)] with <name>.%r[space(2)]Stand[space(23)]Removes you from your [v(carname)].%r%r[space(2)]Rt <message>[space(16)]Relays a message to all those on your [v(carname)].%r[space(30)]This command takes ':' and '\;' substitutions.%r%r[space(2)]Riders[space(22)]Lists who's riding in which [v(carname)].%r
&RIDENAME Ride Parent=ride
&CARNAME Ride Parent=car
@set Ride Parent=MONITOR
@set Ride Parent=OPAQUE
@set Ride Parent=NO_COMMAND
@set Ride Parent=HALTED
@set Ride Parent=SAFE


@create Item=10
@lock Item=*TheatreBLDR
@Succ Item=You pick up the [name(me)] and place it in a pocket.
@Osucc Item=picks up the granite [name(me)] and places it in %p pocket.
@Drop Item=You ease the [name(me)] out of your pocket and with a huff drop it onto the floor.
@Odrop Item=eases a stone [name(me)], possibly granite, out of %p pocket and with a huff drops it onto the floor.
@Fail Item=The [name(me)] is far too heavy for you to pick it up.
@Ofail Item=tries in vain to pick the stone [name(me)], possibly granite, up.
@Desc Item=A tablet of purest granite enscribed with runes and empowered with mystical abilities. You can't help but wonder if typing 'thelp page' would show you the help page.
&SHOW_HELP Item=$thelp *:@pemit %#=[center(< Tablet help page. >,79,=)]%r[switch(comp(v(HELP_[edit(%0,%b,_)]),),0,center(There is no help on that topic. Type 'thelp page'.,79,),u(HELP_[edit(%0,%b,_)]))]%r[center(< Coded by Monolith@VenusMUSH >,79,=)]
&HELP_PAGE Item=[center(< List of sub-menus page >,79,-)]%rtype 'THelp <subject>'%r%r%t[ljust(Subject,10)]- Description of subject%r%t[ljust(Startup,10)]: Important instructions that should be followed before use.%r%t[ljust(Descer,10)]: Multi descer functions.%r%t[ljust(Notepad,10)]: Useful note taking functions.%r%t[ljust(Friends,10)]: Lists of players that are friends and useful functions.%r%t[ljust(Locations,10)]: Useful private @teleporter.
&HELP_STARTUP Item=IMPORTANT: Before you use the Tablet you should do the following.%r%tType: @lock [name(me)]=me%r%tType: @lock/use [name(me)]=me%r%tType: @set [name(me)]=inherit%r%tType: @set [name(me)]=dark
&HELP_DESCER Item=%t[ljust(DAdd <title>,21)]: Save current description, name and omove.%r%t[ljust(DRem <title>,21)]: Remove a current saved description.%r%t[ljust(DSet <title>,21)]: Set you @desc, @name, @omove to the ones stored.%r%t[ljust(DEmit <title>=<emit>,21)]: Set @emit that is made when desc changed.%r%t[ljust(DView <title>,21)]: View a saved desc.%r%t[ljust(DList,21)]: List all current descriptions saved.
&ADD_DESC Item=$DADD *:&DESC_[setq(0,edit(%0,%b,_))][r(0)] me=[get(%#/DESC)]; &DATA_[r(0)] me=[name(%#)]|[get(%#/SEX)]|[get(%#/OMOVE)]|; @pemit %#=Description saved.
&REM_DESC Item=$DREM *:@switch comp(v(DESC_[setq(0,edit(%0,%b,_))][r(0)]),)=0, {@pemit %#=Desc is unknown.}, {&DESC_[r(0)] me=; &DATA_[r(0)] me=; @pemit %#=Description removed.}
&VIEW_DESC Item=$DVIEW *:@pemit %#=[switch(comp(v(DESC_[setq(0,edit(%0,%b,_))][r(0)]),),0,Description unkown,{[center(< Desciption >,79,=)]%r[ljust(Name,15)]: [u(DATA,name)]%r[ljust(Sex,15)]: [u(DATA,sex)]%r[ljust(Omove,15)]: [u(DATA,name)] [u(DATA,omove)]%r[ljust(Description,15)]:%r[u(DESC_[r(0)])]%r[repeat(=,79)]})]
&LIST_DESC Item=$DLIST:@pemit %#=[center(< Descriptions stored >,79,=)]%r[center(iter(lattr(me/DESC_*),[capstr(lcstr(edit(delete(##,0,5),_,%b)))]%,),79,)]%r[repeat(=,79)]
&HELP_NOTEPAD Item=%tNQuick <title>=<text>%t: Write a quick note.%r%tNOpen <title>%t%t: Open a note.%r%t`<text>%t%t%t: Add text to an opened note.%r%tNEdit <old>/<new>%t: Edit a note.%r%tNClose%t%t%t: Close current note.%r%tNToss%t%t%t: Toss current note.%r%tNCR%t%t%t: Add carriage return to note.%r%tNLJust <text>/<number>%t: Add left adj. text into <number> spaces.%r%tNRJust <text>/<number>%t: Add right adj. text into <number> spaces.%r%tNCJust <text>/<number>%t: Add centre adj. text into <number> spaces.%r%tNSpace <number>%t%t: Add <number> spaces.%r%tNList%t%t%t: List all notes.%r%tNView <title>%t%t: View a note.%r%tNView%t%t%t: View currently open note.%r%tNPrint <title>%t%t: Creates an object and desc as note text.%r%tNPrint%t%t%t: As above but with current note.%r%tNRem <title>%t%t: Remove a note.
&QUICK_NOTE Item=$nquick *=*:@pemit %#=You write a quick note.; &NOTE_[edit(%0,%b,_)] me=%1; &CURRENT me=[edit(%0,%b,_)]
&OPEN_NOTE Item=$nopen *:@pemit %#=You [switch(comp(v(NOTE_[edit(%0,%b,_)]),),0,start a new,open an old)] note.; &CURRENT me=[edit(%0,%b,_)]
&ADD_NOTE Item=$`*:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@pemit %#=You append the note '[edit(v(CURRENT),_,%b)]'.; &NOTE_[v(CURRENT)] me=[v(NOTE_[v(CURRENT)])] %0}
&EDIT_NOTE Item=$nedit */*:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@pemit %#=You replace '%0' with '%1' in the note '[edit(v(CURRENT),_,%b)]'.; &NOTE_[v(CURRENT)] me=[edit(v(NOTE_[v(CURRENT)]),%0,%1)]}
&CLOSE_NOTE Item=$nclose:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@pemit %#=You close the note '[edit(v(CURRENT),_,%b)]'.; &CURRENT me=}
&TOSS_NOTE Item=$ntoss:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@pemit %#=You toss the note '[edit(v(CURRENT),_,%b)]'.; &NOTE_[v(CURRENT)] me=; &CURRENT me=}
&CR_NOTE Item=$ncr:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@pemit %#=Carriage Return added.; &NOTE_[v(CURRENT)] me=[v(NOTE_[v(CURRENT)])]%r}
&LJUST_NOTE Item=$nljust */*:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@switch isnum(%1)=0, {@pemit %#=Invalid number for justify.}, {@pemit %#=Left justified test added.; &NOTE_[v(CURRENT)] me=[v(NOTE_[v(CURRENT)])] %[ljust(%0,%1)%]}}
&RJUST_NOTE Item=$nrjust */*:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@switch isnum(%1)=0, {@pemit %#=Invalid number for justify.}, {@pemit %#=Right justified test added.; &NOTE_[v(CURRENT)] me=[v(NOTE_[v(CURRENT)])] %[rjust(%0,%1)%]}}
&CJUST_NOTE Item=$ncjust */*:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@switch isnum(%1)=0, {@pemit %#=Invalid number for justify.}, {@pemit %#=Centre justified test added.; &NOTE_[v(CURRENT)] me=[v(NOTE_[v(CURRENT)])] %[center(%0,%1,)%]}}
&SPACE_NOTE Item=$nspace *@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@switch isnum(%0)=0, {@pemit %#=Invalid number.}, {@pemit %#=%0 spaces added.; &NOTE_[v(CURRENT)] me=[v(NOTE_[v(CURRENT)])][space(%0)]}}
&LIST_NOTE Item=$nlist:@pemit %#=[center(< Notes stored >,79,=)]%r[center(Current Note: [edit(v(CURRENT),_,%b)],79,)]%r[center(iter(lattr(me/NOTE_*),[Capstr(lcstr(edit(delete(##,0,5),_,%b)))]%,),79,)]%r[repeat(=,79)]
&SHOW_NOTE Item=$nview *:@switch comp(v(NOTE_[edit(%0,%b,_)]),)=0, {@pemit %#=That note does not exist.}, {@pemit %#=[u(DISP_NOTE,%0)]}
&PROOF_NOTE Item=$nview:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@pemit %#=[u(DISP_NOTE,[edit(v(CURRENT),_,%b)])]}
&PRINT_NOTE Item=$nprint *:@switch comp(v(NOTE_[edit(%0,%b,_)]),)=0, {@pemit %#=That note does not exist.}, {@pemit %#=Note is being printed.; @tr me/DO_PRINT=edit(%0,%b,_)}
&PRINT_CNOTE Item=$nprint:$nprint:@switch comp(v(CURRENT),)=0, {@pemit %#=There is no note in progress.}, {@pemit %#=Note is being printed.; @tr me/DO_PRINT=v(CURRENT)}
&REM_NOTE Item=$nrem *:@switch comp(v(NOTE_[edit(%0,%b,_)]),)=0, {@pemit %#=That note does not exit.}, {@pemit %#=Note removed from list.; &NOTE_[edit(%0,%b,_)] me=}
&HELP_FRIENDS Item=%tFAdd <player>%t: Add a friend to list.%r%tFRem <number>%t: Remove a friend from list.%r%tFList%t%t: List all players.%r%tFPage <text>%t: Page all friends.%r%tFMail <subject>%t: Set +mail up for Mailing all friends.%r%r%t'THelp Friend Locks' has help on @locks using the friend list.
&ADD_FRIEND Item=$fadd *:@switch num(*%0)=#-1, {@pemit %#=Unknown player.}, {@pemit %#=[name(*%0)] added to list of friends.; &FRIENDS me=[v(FRIENDS)] [num(*%0)]}
&REM_FRIEND Item=$frem *:@switch and(isnum(%0),lte(%0,words(v(FRIENDS))))=0, {@pemit %#=Invalid number.}, {@pemit %#=[name(extract(v(FRIENDS),%0,1))] removed from friends list.; &FRIENDS me=[ldelete(v(FRIENDS),%0)]}
&LIST_FRIENDS Item=$flist:@pemit %#==%[ # %]=%[ Name %]==============%[ Sex : Con : Location %]==========================[iter(v(FRIENDS),%r %b%b[setq(9,add(r(9),1))][ljust(r(9),6)][ljust(name(##),23)][switch(get(##/SEX),m*,M,f*,F,-)][space(5)][switch(hasflag(##,connected),1,Y,-)][space(4)][switch(loc(##),#-1,center(= Unfindable =,35,-),mid([switch(hasflag(loc(##),jump_ok),1,<J>%b)][name(loc(##))],0,35))])]%r[repeat(=,79)]
&PAGE_FRIENDS Item=$fpage *:@pemit %#=Friends Page: [switch(pos(:,%0),1,{Long distance to Friends: %n [delete(%0,0,1)]},{You paged friends with '%0'})]; @dolist [v(FRIENDS)]=@pemit ##=Friends Page: [switch(pos(:,%0),1,{From Afar, %n [delete(%0,0,1)]},{%n pages: %0})]
&DISP_NOTE Item=[center(< %0 >,79,=)]%r[u(NOTE_[edit(%0,%b,_)])]%r[repeat(=,79)]
&SET_DESC Item=$DSET *:@switch comp(v(DESC_[setq(0,edit(%0,%b,_))][r(0)]),)=0, {@pemit %#=Desc is unknown.}, {@desc %#=[v(DESC_[r(0)])]; @femit %#=[u(DATA,emit)]; @sex %#=[u(DATA,sex)]; @omove %#=[u(DATA,omove)]; @name %#=[u(DATA,name)]; @pemit %#=Description updated.}
&DATA Item=[extract(u(DATA_[r(0)]),switch(%0,name,1,sex,2,omove,3,emit,4),1,|)]
&DATA_TEMP Item=Monolith|Granite|omove|emit
&TEL_TO Item=$ttel *:@switch u(ISLOC,%0)=0, {@pemit %#=That is not a valid location.}, {@tel %#=[extract(v(LOCNUMS),%0,1)]; @pemit %#=You have been transported.}
&SHOW_LOCS Item=$locs:@pemit %#==%[ # %]=%[%b db# %b%]===%[ Location Name %]=================================%[ Flags %]=[iter(v(LOCNUMS),%r[space(3)][setq(0,add(r(0),1))][r(0)][rjust(##,10)][space(3)]:[space(3)][ljust(mid(name(##),0,47),49)] [flags(##)])]%r[repeat(-,79)]%r[center(use 'ttel <num>' to @tel to a location.,79,)]%r[repeat(=,79)]
&ADD_LOC Item=$ladd:&LOCNUMS me=[v(LOCNUMS)] [loc(%#)]
&ISLOC Item=[and(isnum(%0),and(gte(%0,1),lte(%0,words(v(LOCNUMS)))))]
&HELP_LOCATIONS Item=%tLocs%t%t: Display all locations stored.%r%tLAdd%t%t: Add your current location to the list.%r%tLRem <num>%t: Remove location from list.%r%TTTel <num>%t: @teleport to a location on list.
&THELP Item=$thelp:@pemit %#=[center(< Tablet help page. >,79,=)]%r[center(Try 'thelp page' for the help page.,79,)]%r[center(< Coded by Monolith@VenusMUSH >,79,=)]
&THELP_HELP Item=[iter(lattr(me/HELP_*),capstr(lcstr(edit(delete(##,0,5),_,%b)))%,)]
&EMIT_DESC Item=$demit *=*:@switch comp(v(DESC_[edit(%0,%b,_)]),)=0, {@pemit %#=Description unknown.}, {@pemit %#=Emit messages stored.; &DATA_[edit(%0,%b,_)] me=[extract(v(DATA_[edit(%0,%b,_)]),1,3,|)]|%1}
&MAIL_FRIENDS Item=$fmail *:@fo %#=@mail [u(FRIENDS)]=%0
&X_WHO Item=$xwho:@va me=[lwho()]; @vb me=[sort(iter(%va,switch(not(loc(##)),0,##)))]; @pemit %#==%[ # %]=%[ Name %]============%[ Sex : Idle : Location %]===========================[iter(%va,%r[space(3)][u(S_RANK,##)][space(5)][ljust(name(##),21)][switch(get(##/SEX),m*,M,f*,F,-)][space(3)][center(u(IDLE_FOR,##),6,)][space(2)][mid(u(FIND_LOC,##),0,36)])]%r[repeat(=,79)]
@VA Item=#3092 #11170 #3702 #8853 #8333 #9790 #10118 #6744 #9620 #6585 #4954 #1622 #10132 #4769 #10720 #7509 #1147 #5326 #4624 #6329 #2989 #7259 #9087 #5402 #2734
&S_RANK Item=[switch(1,hasflag(%0,wiz),W,hasflag(%0,admin),A,hasflag(%0,staff),S,hasflag(%0,judge),J,-)]
&IDLE_FOR Item=[setq(0,idle(%0))][switch(gte(r(0),60),0,[r(0)]s,[div(r(0),60)]m)]
&FIND_LOC Item=[switch(loc(%0),#-1,X [mid(u(HIDDEN_LOC,%0,%vb),0,34)],- [mid(name(loc(%0)),0,34)])]
&HIDDEN_LOC Item=[switch(words(%1),0,{[center(= Unindable =,34,-)]},{[switch(nearby(%0,first(%1)),1,name(loc(first(%1))),u(HIDDEN_LOC,%0,ldelete(%1,1)))]})]
@VB Item=#3092 #5402 #7259 #9087 #9620 #10118
&DO_PRINT Item=

@create Note: [setq(0,edit(%0,_,%b))][r(0)]; @desc Note: [r(0)]=[center(< [r(0)] >,79,=)]%r[v(NOTE_%0)]%r[repeat(=,79)]; drop Note: [r(0)]
&REM_LOC Item=$lrem *:@switch u(ISLOC,%0)=0, {@pemit %#=That is not a valid location.}, {&LOCNUMS me=[ldelete(v(LOCNUMS),%0)]; @pemit %#=Location removed from list.}
@Sex Item=[v(FRIENDS)]
&FRIEND_LOCK Item=[sign(match(v(FRIENDS),%#))]
&HELP_FRIEND_LOCKS Item=The friends list can be used to @lock doors so that friends may pass. Allowing you to update door @locks easily and efficiently. To do so do the following to the doors in question.%r%r%t&CAN_PASS <door>=%[u(%!/FRIEND_LOCK)%]%r%t@set <door>=inherit%r%tThen use CAN_PASS/1 in the @lock.%r%te.g. @lock <door>=me|CAN_PASS/1%r%tThis will let you and anyone on the friend list pass.
&HELP_WRAITH Item=%t
&ARGOSA1 Item=Tempestpeek|Perception|6|n/a|Allows a Wraith to peek into the Tempest.
&ARGOSA2 Item=Tempest Threshold|Strength|7|n/a|Opens a hole into the Tempest.
&ARGOSA3 Item=Orienteering|Perception|8|n/a|Navigates through the Tempest; 1-3 succs: Standard time; 4 succs: 1/2 Standard time; 5 succs: 1/4 Standard time.
&ARGOSA4 Item=Track|Perception|6|n/a|Tracks another Wraith who has fled into the Tempest; quarry can resist with a Dexterity + Argos (diff 6)
&ARGOS1 Item=Enshroud|Dexterity|7|none|Makes the Wraith invisible for one turn per success. No non-argos Arcanos can be used without breaking the effect.
&ARGOS2 Item=Phantom Wings|Stamina|6|none|Lets the Wraith fly at Running speed for one turn per success.
&ARGOS3 Item=Flicker|Dexterity|6|1P|Reduces travel time over shorty distances lowered by 1 turn per success.
&ARGOS4 Item=Jump|Stamina|8-fetter|3P|Lets a Wraith travel quickly to one of their fetters.
&ARGOS5 Item=Oubliette|Strength|WP|3P|Sends a target Wraith into the Tempest may be opposed by WP.
&CASTIGATEA1 Item=Soulsight|Perception|8|n/a|Determines the Strenght of another Wraith's shadow.
&CASTIGATEA2 Item=Bulwark|Stamina|Malstr+3|special|Protects the Wraith and those he touches from the Maelstorm; cost is one Pathos per Maelstorm level.
&CASTIGATE1 Item=Coax|Charisma|6|+1A|Lets the Wraith add or subtract one Shadow Die per two successes from any given task.
&CASTIGATE2 Item=Dark Secrets|Perception|WP|1P|Lets teh Wraith ask one question about a target per success. May be opposed by Angst.
&CASTIGATE4 Item=Casting Out|Charisma|7|none|Drives all Spectres (not Dopple gangers) from area for 1 turn per success. May be resisted by Angst.
&CASTIGATE5 Item=Defiance|Charisma|Angst or Angst+3|none|Prevents a Shadow from controlling a Wraith; reduces Angst by one point per success. Gives 1 A for each '1' rolled.
&EMBODYA1 Item=Ghostly Touch|Strength|Shroud|n/a|Produces a touch (about the strength of a keystroke) in the matterial world.
&EMBODYA2 Item=Maintain Material Form|Stamina|7|1P/succ|Adds successes to those already gained for Embody power being used; a botch dissupates form.
&EMBODY1 Item=Whispers|Manipulation|Shroud|1P|Lets one short sentance be heard in the material world per success.
&EMBODY2 Item=Phantom|Charisma|Shroud|1P|Makes the Wraith appear as a translucent figure for one turn per success.
&EMBODY3 Item=Statue|Stamina|Shroud|1P|Makes a Wraith appear solid (but motionless) for one scene per success.
&EMBODY4 Item=Life-in-Death|Manipulation|Shroud|2P|Makes the Wraith appear as idealized version of self for one scene per success.
&EMBODY5 Item=Materialize|Manipulation|Shroud|3P+1W|Makes a Wraith nearly human for one breath (or one hour if attuned to viewer) per success.
&FATALISMA1 Item=Kismet|Perception|6|n/a|Allows you to tell what fate deems "important" in a room.
&FATALISM1 Item=Fatal Vision|Perception|Sub.WP|none|Tells about how a subject died (or will die in the near future); adds 1 die/success to later Interpretation.
&FATALISM2 Item=Danger Sense|Perception|6|none|Warns a Wraith of impending danger (1 turn warning/success); diff may vary.
&FATALISM3 Item=Interpretation|Manipulation|sub.WP|2P|Gives one cryptic answer per succcess about subject's past or future.
&FATALISM4 Item=Lachesis' Measure|Perception|6|2P|Gives information about current and future situation.
&FATALISM5 Item=Luck|Wits|6|1W|Lets player ignore one '1' for each success; roll for this only at start of story.
&INHABITA1 Item=Sense Gremlin|Perception|6|n/a|Determines wether or not something is inhabiting a machine now (or, with 3 succs, in the near past.)
&INHABIT1 Item=Surge|Wits|Shroud|none|Temporarily cuts power to one electronic device per success. May damage sensetive electronics.
&INHABIT2 Item=Ride the Electron Highway|Intelligence|Shroud|2P+1P/passenger|Lets a Wraith transport theirself and other wraiths through the computer network.
&INHABIT3 Item=Gremlinize|Dexterity|Shroud|3P+1P/effect|Controls a machine; attunement is required for major effect.
&INHABIT4 Item=Claim|Strength|Shroud|2P|Lets a Wraith inhabit an Object for one scene per success; one succ needed for small object. five for house sizes objects.
&INHABIT5 Item=Empower|Wits|Shroud|varies|Invests one of a Wraith's Arcanos Arts into an item.
&KEENINGA1 Item=Perfect Pitch|Perception|6|n/a|Senses when someone else is using Keening to influence or manipulate emotions resisted by Sotto Voce.
&KEENINGA2 Item=Sotto Voce|Manipulation|6|n/a|Conceals Keening in normal speech or song; resists Perfect Pitch (greater succs wins)
&KEENING1 Item=Dirge|Charisma|8|1P|Provokes "dark" emotions for one turn per success (for wraiths), or longer for mortals (a week is 5 succs)
&KEENING2 Item=Ballad|Manipulation|8|2P|Provokes "light" feelings for the same length of time as Dirge.
&KEENING3 Item=Muse|Manipulation|sub.WP|3P|Makes subject (wraith or Mortal) believe and idea is their own; min diff is 7.
&KEENING4 Item=Crescendo|Stamina|8|2P+1P/succ|Does one corpus damage per success to all wraiths in normal hearing range; if embodied does 1 health per 2 succs to other listeners.
&KEENING5 Item=Requiem|Strength|7|3P+1/succ|Paralyzes subject for one turn per success; resisted by WP; may inflict mental damage.
&LIFEWEBA1 Item=Locate Fetter|Per or Int|6|n/a|With Perception, scans the area around a given fetter; with Intelligence, detects range and direction to the fetter.
&LIFEWEB1 Item=Sense Strand|Perception|8|none|Determines the relationship between a wraith and their fetters, or wether something is a fetter.
&LIFEWEB2 Item=Web Presence|Charisma|8|1P/turn|Lets a Wraith affect the area surrounding a Fetter without being there.
&LIFEWEB3 Item=Splice Strand|Manipulation|7|1P+1P/day|Makes something the Wraith is touching into a temporary fetter (rating 1); only one such Fetter can be maintained at a time.
&LIFEWEB4 Item=Sever Strand|Strength|owner.WP|2P+1W|Severs target's connection to Fetter (requires WP os Splice to repair).
&LIFEWEB5 Item=Soul Pact|Charisma|sub.WP|9P|Makes a willing mortal a fetter (rating 1)
&MOLIATEA1 Item=Shapesense|Perception|special|n/a|Detects wether and how another Wraith has been Moliated; difficulty is original shaper's Dexterity + Moliate.
&MOLIATEA2 Item=Glow|Charisma|7|1P|Causes a Wraith to glow with a given colour and intensity for one scene per success.
&MOLIATEA3 Item=Return of Death's Visiage|Manipulation|6 to 10|1P|Returns Wraith to original State; diff depends on degree of change.
&MOLIATE1 Item=Imitate|Dexterity|4 to 8|1P|Molds wraith's face to match another's; diff 5 if Wraith can see face, 8 if not, but 4 if wraith has a skinmask.
&MOLIATE2 Item=Sculpt|Manipulation|7|1P|Changes subject wraith's shape; cannot alter subject's abilities; subject loses a Corpus Level; can also heal aggravated damage.
&MOLIATE3 Item=Martiarly|Int/Str + 3|3P+1P/succ|Molds wraith's body into weaponry (does 1 die damage per succs) or armous.
&MOLIATE4 Item=Rend|Strength|sub.Stamina+3|1P+1A|Does aggravated damage to target (1 die/succ, plus 1 die/pathos spent); must touch target.
&MOLIATE5 Item=Bodyshape|Wits|varies|1P+1P/turn|Transforms wraith's whole body and appearance for 1 scene per success; difficulty depends on form assumed.
&OUTRAGEA1 Item=Leap of Range|Dexterity|Shroud|n/a|Improves leaps and jumps(adds successes to those scored while making leap or Jump); diff 6 in tempest or Shadowlands.
&OUTRAGE1 Item=Ping|Strength|Shroud|1P|Moves a very small object just a little bit. (Can be a brush, a push ect.)
&OUTRAGE2 Item=Wraithgrasp|Strength|Shroud|2P|Lifts heavier objects with a feat of strength; objects cannot be moved in any other way then a lift.
&OUTRAGE3 Item=Stonehand Punch|Strength|Shroud|2P|Physically strikes the target; does one health level or corpus level per success.
&OUTRAGE4 Item=Death's Touch|Dexterity|8|3P|Lets wraith manipulate objects for one minute per success gained; or start fires (using strength insead of dexterity)
&OUTRAGE5 Item=Obliviate|Strength|Shroud|3P+1A|Does one level aggrivated damage per success; sends destroyed objects into oblivion; diff stamina + 3 when used against wraiths.
&PANDEMONIUMA1 Item=Sense Chaos|Perception|7|n/a|Determines whether a particular even has been caused by pandemonium or whether an object or a mortal has been touched by a shadow of a wraith or a spectre.
&PANDEMONIUM1 Item=Weirdness|Charisma|Shroud|1P|Causes something strange to happen to one individual at a time (A hot flash, hallucination, ect.).
&PANDEMONIUM2 Item=Befuddlement|Intellegence|targ's WP|1P|Confuses target for one turn per success; target must make an intellegence roll vs. difficulty 8 each turn to think clearly.
&PANDEMONIUM3 Item=Dark Ether|Intellegence|Shroud|1P+1P/turn|Affects weather or light in a small area; 5 successes can do one of damage to those in the area.
&PANDEMONIUM4 Item=Foul Humour|Intellegence|Shroud|4P+1C/success|Causes a rain of vermin, strem of blood, or other bizarre effect; Damaging effects do 1 die damage per 2 successes.
&PANDEMONIUM5 Item=Tempus Fugit|Intellgence|Shroud|4P|Distorts the flow of time or space, speeding up/slowing down actions or altering distances.
&PHANTASMA1 Item=Sleepsense|Perception|6|n/a|Lets wraith determine subjects sleep state, or observe a subject's dream for one turn per success.
&PHANTASM1 Item=Elysia|Dexterity|6 to 8|1P|Removes a sleeping mortal's soul harmlessly for one turn/success;REM Sleep = Diff. 6, transitional sleep= Diff. 7, Deep Sleep = Diff. 8.
&PHANTASM2 Item=Lucidity|Manipulation|varies|2P|Changes a mortal's dream; difficulty depends on extent of change.
&PHANTASM3 Item=Dreams of Sleep|Charisma|sub. WP|1P|Makes other wraiths fall asleep and dream; roll needed only if subject unwilling; may be opposed by Intellegence + Subterfuge.
&PHANTASM4 Item=Agon|Strength|8|3P+1A|Rips a sleeping mortal's soul from his body for 1 scene/success; does 1 health level/success to subject; may be opposed by Wits+Subertfuge roll. (diff 8)
&PHANTASM5 Item=Phantasmagoria|Charisma|6|3P+1P|Creates Illusions using wraith's pathos and corpus for 1 turn per success.
&PUPPETRYA1 Item=Detect Possession|Perception|7 or 9|n/a|Detects current possession of a subject (diff. 7 resisted by possessors appearence + subterfuge at diff 7), or past possession at diff. 9.
&PUPPETRY1 Item=Skinride|Dexterity|sub. WP|1P|Lets wraith passively enter mortal's body; must be used before other possession abilities.
&PUPPETRY2 Item=Sudden Movement|Strength|sub. WP|1P|Takes brief control of subjects arm or leg; resisted by WP.
&PUPPETRY3 Item=Master's Voice|Intellegence|sub. WP|1P|Lets wraith speak through mortal for onr breath per success; voice is combination of mortal's and wraith's.
&PUPPETRY4 Item=Rein in the Mind|Manipulation|sub. WP|4P+1A|Let's wraith control attuned mortal completely for one scene per success; min. difficulty is local shroud.
&PUPPETRY5 Item=Obliterate the Soul|Strength|sub. WP|5P+2W+1A|Lets the wraith permanently control mortal (but body decays after one week); success must equal host's WP.
&USURYA1 Item=Assessment|Perception|6|n/a|Senses the amount of life (Stamina/Health/Corpus) in an individual or area.
&USURY1 Item=Transfer|Manipulation|varies|none|Transfer pathos to a wraith (diff. = sub. pathos) or from onr (diff. = sub. WP); target wraith must be touched.
&USURY2 Item=Early Withdrawl|Manipulation|sub. WP|none|Moves target's health or corpus levels to wraith (1 per success); target must be touched (mortals must be physically touched).
&USURY3 Item=Charitable Trust|Stamina|special|1P|Moves wraith's corpus levels to target (up to 1 level per success);diff is targets current Health or Corpus Levels.
&USURY4 Item=Exchange Rate|Intellegence|6|none|Converts wraith's corpus to Pathos (up to 1 point per success)
&USURY5 Item=Investment|Intellegence|7|none|"Invests" up to a set number of Pathos or Corpus points into a relic for later use.
&TEMP Item=$show *:@pemit %#=%tName%t%tStat%t%tDiff%tCost%r[repeat(-,79)]%r[iter(v(%0),%t##,|)]%r[repeat(-,79)]
&FRIENDS Item=#517 #992 #932 #934 #60 #444 #897 #460 #530 #3297 #776 #2526 #3986
&NOTE_JOAN Item=Joan Lemaistre . Head of Trauma h"0a!#2666gzrpQRuw{9T+I1 e_^HLfssi|hGq2xs
&CURRENT Item=vampires
&DESC_BASE Item=%R[space(5)]You see a you man, maybe in his mid twenties. He stands about five feet six inches tall and weighs 145 pounds and seems to be physically fit and healthy. He has medium length, dirty blond hair, reaching down to just below his ears. His hair is slightly curly. He is caucassion, though his skin is slghtly tanned. He is clean shaven and you can see a few freckles on the bridge of his nose. His eyes are a golden hazel and easily show his emotions.
&DATA_BASE Item=Alexie|male||
&DESC_NUDE Item=%R[space(5)]You see a you man, maybe in his mid twenties. He stands about five feet six inches tall and weighs 145 pounds and seems to be physically fit and healthy. He has medium length, dirty blond hair, reaching down to just below his ears. His hair is slightly curly. He is caucassion, though his skin is slghtly tanned. He is clean shaven and you can see a few freckles on the bridge of his nose. His eyes are a golden hazel and easily show his emotions.%R[space(5)]He isnt wearing clothing right now and doesn't appear the least bit embarrassed by it. Infact, he doesnt have a tan line. His body is lithe, but muscular and you can tell he works out alot by the muscles. His body is mostly hairless. His chest is broad and tapers to his waist. a wild patch of brown pubic hair cover his groin, his manhood standing erect. His thighs are thick and calves strong, giving the impression he runs alot.%R
&DATA_NUDE Item=Alexie|male||
&DESC_CASUAL Item=%R[space(5)]You see a you man, maybe in his mid twenties. He stands about five feet six inches tall and weighs 145 pounds and seems to be physically fit and healthy. He has medium length, dirty blond hair, reaching down to just below his ears. His hair is slightly curly. He is caucassion, though his skin is slghtly tanned. He is clean shaven and you can see a few freckles on the bridge of his nose. His eyes are a golden hazel and easily show his emotions.{%R[space(5)]He is dressed casually. He wears a red silk shirt with black buttons, the top button left undone. He wears a pair of black slacks with pleats over the pockets with a thin leather belt wrapped around his waist, a golden belt buckle holding it fastened. On his feet are a pair of casual, black shoes with blac laces tied in a bow. Though the clothes are nice, he looks casual and calm in them. He wear a gold weding band.%R
&DATA_CASUAL Item=Alexie|male||
&DESC_VAMPIRE Item=%R%TYou see a young man, maybe in his mid-twenties. He stands about five feet, six inches tall, weighing about 145 pounds. He seems to be physically fit and healthy. He has medium length, dirty blonde hair, reaching down to just below his ears, his hair slicked back. He is caucassion, but right now his face is covered in white face. He wears deep red lip stick and you can see his fangs, when he smiles. He seems to talk in a lisp. His eyes are a a bright red.%R%THe is wearing a pair of black tights, a pair of knee high, bucket, leather boots, also black in color, cover his feet. He wears a billowing, white silk shirt, the chest and shoulders puffy. The collar and wrists lined with frills. His neck and chest also seem to be the same pale white as is his face. He wears a 3/4 cloak, a light black material, over his shoulders, a simple, brass clasp holding it about his neck. %R
&DATA_VAMPIRE Item=Alexie|male|walks in, cloak billowing behind him.|
&NOTE_VAMPIRES Item=Ranjith <obfuscate>|bryan <gangrel>
&LOCNUMS Item= #3478 #709
&DESC_LEATHER Item=%R[space(5)]You see a you man, maybe in his mid twenties. He stands about five feet six inches tall and weighs 145 pounds and seems to be physically fit and healthy. He has medium length, dirty blond hair, reaching down to just below his ears. His hair is slightly curly. He is caucassion, though his skin is slghtly tanned. He is clean shaven and you can see a few freckles on the bridge of his nose. His eyes are a golden hazel and easily show his emotions.%R%THe is wearing a pair of tight, black leather pants that show every contour of his body. His chest and arms almost bare as he only wears a black leather vest. You can see he works out alot from his physique. On his feet are a pair of black cowboy boots, silver caps on the toe and heels. He wears little in the war of jewelry, just a wedding band.%R
@set Item=DARK
@set Item=INHERIT


@create Boats=10
@lock Boats=*Taffy
&MAXTABLES Boats=6
&MAXSEATS1 Boats=2
&TABLE1 Boats=Kiss and Tell
&MAXSEATS2 Boats=2
&TABLE2 Boats=Passion's Embrace
&MAXSEATS3 Boats=2
&TABLE3 Boats=True Loves
&MAXSEATS4 Boats=2
&TABLE4 Boats=Just Friends
&MAXSEATS5 Boats=2
&TABLE5 Boats=First Date
&MAXSEATS6 Boats=3
&TABLE6 Boats=Menage a Trois
&CLEANUPSEATSA Boats=^* has left.:@switch member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##,words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)])];&table[r(0)]names me=[remove(v(table[r(0)]names), %#)];@dolist [v(table[r(0)]names)]={@pemit ##=%N gets off the [v(ridename)] when it stops.};@pemit %#=You get off the [v(ridename)] when it stops.}
&CLEANUPSEATSB Boats=^* has disconnected.:@switch member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#)=>0,{[setq(0, [extract(iter(rest(lnum(add(v(maxtables), 1))), [switch(words(v(table##names)), 0,, [repeat(%b##, words(v(table##names)))])]), member(iter(rest(lnum(add(v(maxtables), 1))), [v(table##names)]), %#), 1)])];@dolist [v(table[r(0)]names)]={@pemit ##=%N gets off the [v(ridename)] when it stops.};&table[r(0)]names me=[remove(v(table[r(0)]names), %#)]}
&RIDENAME Boats=boat
&CARNAME Boats=boat
&TABLE2NAMES Boats= #2196 #3725
@set Boats=DARK
@set Boats=MONITOR
@parent Boats=Ride Parent


@create Umbral Parent=10
&INSIDE Umbral Parent=[comp(%!,%l)]
&UMBRA_OK Umbral Parent=[switch(get_eval(%0/IN_UMBRA),,0,1)]
&U_OBJLIST Umbral Parent=[iter(u(U_OBJS),%r[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])])]
&U_OBJS Umbral Parent=[filter(UMBRA_OK,remove(lcon(here),%!))]
&U_EXITLIST Umbral Parent=[iter([iter(lexits(here),[switch(hasflag(##,dark),1,,{[name(##)]%b})])],##)]
&DO_UGO Umbral Parent=$UGO *:@sel locate(%!,%0,ce)=#-*,{@pemit %#=Can't locate that exit.},{@pemit/contents/list [u(U_OBJS)]=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][u(%0/osucc)]%r[setq(1,u(%0/odrop))][switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] has left.;move/quiet %0;@pemit/contents %!=[get_eval(%!/IDESC)];@pemit/contents/list [u(U_OBJS)]=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] [r(1)]%r[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] has arrived.}
&DESC_UMBRA Umbral Parent=[iter(revwords(lcon(%!)),%r[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])]: [get_eval(##/DESC_UMBRA)])]
&NAME_UMBRA Umbral Parent=[iter(revwords(lcon(%!)),[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])]%b)]
&DO_UHELP Umbral Parent=$UHELP:@pemit %#=[get_eval(%!/UHELP)]
&UHELP Umbral Parent=[center(| %ch%ccUmbra Help%cn |,79,=)]%r%b%b%chugo <direction>%cn -- Travels in specified <direction>%r%b%b%chll <object>%cn[space(5)]-- Look at an object in the umbra.%r%b%b%chleave%cn[space(11)]-- Leave the umbra at this location.%r%b%b%ch.<text>%cn[space(9)]-- Say <text> in the umbra.%r%b%b%ch.:<text>%cn[space(8)]-- Pose <text> in the umbra.%r%b%b%ch.;<text>%cn[space(8)]-- Pose with no space.%r%b%b%chpeer%cn[space(12)]-- Peer into the real world.%r%b%b%ch+umbra%cn[space(10)]-- Step into the umbra.%r[repeat(=,79)]
@Aenter Umbral Parent=@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] enters the Umbra at this location.
@Desc Umbral Parent=Nothing is here. Please react accordingly.
@Aleave Umbral Parent=&in_umbra %!=;@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] leaves the Umbra at this location.;@tel me=*%#
@Idesc Umbral Parent=[name(loc(me))]%r[u(loc(me)/desc_umbra)]%rContents:[u(u_objlist)]%r[u(u_exitlist)]
&LL Umbral Parent=$ll *:@pemit %#=[iter(lcon(here),switch(member(trim(ucstr(get_eval(##/name_umbra))),ucstr(%0),|),1,[u(##/desc_umbra)]))]
&DO_USAY2 Umbral Parent=$.*:@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][setq(0,trim(%0))][switch(mid(r(0),0,1),:,{%b[mid(r(0),1,strlen(r(0)))]},;,{[mid(r(0),1,strlen(r(0)))]},{%bsays "[r(0)]"})];@pemit %#=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][setq(0,trim(%0))][switch(mid(r(0),0,1),:,{%b[mid(r(0),1,strlen(r(0)))]},;,{[mid(r(0),1,strlen(r(0)))]},{%bsays "[r(0)]"})]
&GO_UMBRA Umbral Parent=$+umbra:@switch %#=[u(user)],{&in_umbra %!=Yes;@pemit %#=You step sideways into the umbra.;@tel me=loc(%#);@tel %#=me}
&PEER Umbral Parent=$peer:@pemit %#=[name(loc(me))]%r[u(loc(me)/desc)]%rContents:%r[setq(1,filter(#2202/cont,lcon(loc(me))))][iter(%q1,[name(##)]%r)]%r[u(u_exitlist)]
@Adesc Umbral Parent=@switch %#=[u(user)],{@pemit %#=Type 'uhelp' for help.}
&CHIP_MSG Umbral Parent=[not(or(hasflag(%0,dark),and(hasflag(%0,player),not(hasflag(%0,connected)))))]
&LOCKER Umbral Parent=[comp(%#,[u(user)])]
@set Umbral Parent=PARENT_OK
@set Umbral Parent=NO_COMMAND


@create Notebook=10
@lock Notebook=*3 Musketeers
@lock/UseLock Notebook=*3 Musketeers
@lock/EnterLock Notebook=*3 Musketeers
&C_SCAN Notebook=$scan/* *:@switch 0=[isnum(%0)],{@switch 0=[member([ucstr([get(me/L_NOTEBOOKS)])],[ucstr(%0)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_SCAN=%0,%1,%N}},{@switch 1=[member([get(me/L_NOTEBOOKS)],[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_SCAN=[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],%1,%N}}
&P_SCAN Notebook=@switch 0=[isnum(%1)],{@switch 0=[member([ucstr([get(me/L_NOTES_%0)])],[ucstr(%1)],|)],{@pemit *%2=You have no such note.},{@pemit *%2=The note named '%1' reads:%b[u(me/n_%0_%1)]}},{@switch 1=[member([get(me/L_NOTES_%0)],[extract([get(me/L_NOTES_%0)],[add(%1,1)],1,|)],|)],{@pemit *%2=You have no such note.},{@pemit *%2=The note named '[extract([get(me/L_NOTES_%0)],[add(%1,1)],1,|)]' reads:%b[u(me/n_%0_[extract([get(me/L_NOTES_%0)],[add(%1,1)],1,|)])]}}
&C_DEFAULT_SCAN Notebook=$scan *:@trigger me/P_SCAN=[get(me/L_DEFAULT_NOTEBOOK)],%0,%N
&C_NDEFAULT Notebook=$ndefault *:@switch 0=[isnum(%0)],{@switch 0=[member([ucstr([get(me/L_NOTEBOOKS)])],[ucstr(%0)],|)],{@pemit *%N=You do not have that notebook.},{@pemit *%N=Default set.;&L_DEFAULT_NOTEBOOK me=%0}},{@switch 1=[member([get(me/L_NOTEBOOKS)],[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],|)],{@pemit *%N=You do not have that notebook.},{@pemit *%N=Default set.;&L_DEFAULT_NOTEBOOK me=[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)]}}
&C_NCREATE Notebook=$ncreate *:@switch 0=[switch(%0,*`*,0,*%%*,0,*%(*,0,*%),0,*!*,0,*%[*,0,*%]*,0,*%{*,0,*%}*,0,*:*,0,*;*,0,*"*,0,*'*,0,*%,*,0,1)],{@pemit *%N=Invalid notebook name},[switch(%0,*%,*,0,*<*,0,*>*,0,*/*,0,*%b*,0,*%r*,0,*%t*,0,*%|*,0,1)],{@pemit *%N=Invalid notebook name},[switch(%0,[edit(edit(edit(%0,?,),%\,),*,)],1,0)],{@pemit *%N=Invalid notebook name},[gt(15,[strlen(%0)])],{@pemit *%N=Invalid notebook name.},{@switch [member([get(me/L_NOTEBOOKS)],%0,|)]=0,{&l_notes_%0 me=|;@edit me/l_notebooks=$,%0|;@pemit *%N=Notebook added.},{@pemit *%N=Notebook already exsists.}}
&C_NLIST Notebook=$nlist:@pemit *%N=You have the following notebooks:;@wait me={@dolist/delimit | {[get(me/l_notebooks)]}={@pemit *%N=%b%b[get(me/counter)].%b##;&counter me=[add([get(me/counter)],1)]}};@wait me={&counter me=1};@notify/all me
&C_NOTE Notebook=$note/* *=*:@switch 0=[isnum(%0)],{@switch 0=[member([ucstr([get(me/L_NOTEBOOKS)])],[ucstr(%0)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_NOTE=%0,%1,%2,%N}},{@switch 1=[member([get(me/L_NOTEBOOKS)],[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_NOTE=[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],%1,%2,%N}}
&P_NOTE Notebook=@switch 0=[switch(%1,*`*,0,*%%*,0,*%(*,0,*%),0,*!*,0,*%[*,0,*%]*,0,*%{*,0,*%}*,0,*:*,0,*;*,0,*"*,0,*'*,0,*%,*,0,1)],{@pemit *%3=Invalid note name},[switch(%1,*%,*,0,*<*,0,*>*,0,*/*,0,*%b*,0,*%r*,0,*%t*,0,*%|*,0,1)],{@pemit *%3=Invalid note name},[switch(%1,[edit(edit(edit(%1,?,),%\,),*,)],1,0)],{@pemit *%3=Invalid note name},[gt(15,[strlen(%1)])],{@pemit *%3=Invalid note name.},{@switch 0=[member([ucstr([get(me/L_NOTES_%0)])],[ucstr(%1)],|)],{&N_%0_%1 me=%2;&L_NOTES_%0 me=[edit([get(me/L_NOTES_%0)],$,%1|)];@pemit *%3=You write a note.},{@pemit *%3=Note already exists.}}
&C_DEFAULT_NOTE Notebook=$note *=*:@trigger me/P_NOTE=[get(me/L_DEFAULT_NOTEBOOK)],%0,%1,%N
&C_DEL Notebook=$del/* *:@switch 0=[isnum(%0)],{@switch 0=[member([ucstr([get(me/L_NOTEBOOKS)])],[ucstr(%0)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_DEL=%0,%1,%N}},{@switch 1=[member([get(me/L_NOTEBOOKS)],[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_DEL=[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],%1,%N}}
&P_DEL Notebook=@switch 0=[isnum(%1)],{@switch 0=[member([ucstr([get(me/L_NOTES_%0)])],[ucstr(%1)],|)],{@pemit *%2=You have no such note.},{&N_%0_%1 me=;&L_NOTES_%0 me=[remove(v(l_notes_%0),extract(v(l_notes_%0),member(ucstr(v(l_notes_%0)),ucstr(%1),|),1,|),|)];@pemit %2=Note discarded.}},{@switch 1=[member([get(me/L_NOTES_%0)],[extract([get(me/L_NOTES_%0)],[add(%1,1)],1,|)],|)],{@pemit *%2=You have no such note.},{&N_%0_[extract([get(me/L_NOTES_%0)],[add(%1,1)],1,|)] me=;&L_NOTES_%0 me=[remove(v(L_NOTES_%0),extract(v(L_NOTES_%0),[add(%1,1)],1,|),|)];@pemit *%2=Note discarded.}}
&C_DEFAULT_DEL Notebook=$del *:@trigger me/P_DEL=[get(me/L_DEFAULT_NOTEBOOK)],%0,%N
&C_LIST Notebook=$list/*:@switch 0=[isnum(%0)],{@switch 0=[member([ucstr([get(me/L_NOTEBOOKS)])],[ucstr(%0)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_LIST=%0,%N}},{@switch 1=[member([get(me/L_NOTEBOOKS)],[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_LIST=[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],%N}}
&P_LIST Notebook=@pemit *%1=The notebook named '%0' contains the following notes:;@wait me={@dolist/delimit | {[get(me/l_notes_%0)]}={@pemit *%1=%b%b[get(me/counter)].%b##;&counter me=[add([get(me/counter)],1)]}};@wait me={&counter me=1};@notify/all me
&C_DEFAULT_LIST Notebook=$list:@trigger me/P_LIST=[get(me/L_DEFAULT_NOTEBOOK)],%N
&L_NOTEBOOKS Notebook=|Notebook|Do|mail|misc|
&L_DEFAULT_NOTEBOOK Notebook=Notebook
&COUNTER Notebook=5
@Desc Notebook=A small black notepad with a pen in the spiral.
&C_NDEL Notebook=$ndel *:@switch 0=[isnum(%0)],{@switch 0=[switch(%0,[get(me/L_DEFAULT_NOTEBOOK)],0,1)],{@pemit *%N=You cannot erase the default notebook.},[member([ucstr([get(me/L_NOTEBOOKS)])],[ucstr(%0)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_NDEL=%0,%N}},{@switch 0=[switch([extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],[get(me/L_DEFAULT_NOTEBOOK)],0,1)],{@pemit *%N=You cannot erase the default notebook.},{@switch 1=[member([get(me/L_NOTEBOOKS)],[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],|)],{@pemit *%N=You do not have that notebook.},{@trigger me/P_NDEL=[extract([get(me/L_NOTEBOOKS)],[add(%0,1)],1,|)],%N}}}
&P_NDEL Notebook=&l_notebooks me=[remove(v(l_notebooks),extract(v(l_notebooks),member(ucstr(v(l_notebooks)),ucstr(%0),|),1,|),|)];@wait me={@dolist/delimit | {[u(me/l_notes_%0)]}={&n_%0_## me=}};@wait me=&l_notes_%0 me=;@notify/all me;@pemit *%1=Notebook discarded.
&L_NOTES_NOTEBOOK Notebook=|ArcanumOffice|Insane_asylum|MailArcanists|Lizzy|
&L_NOTES_DO Notebook=|approval|plots_and_bgs|
&N_DO_APPROVAL Notebook=Things to do concerning approvals: Page new characters and ask if they need help in chargen. When going through the approval process, ex them, to see if they have a desc, sex, short-desc, auras, nature and demeanor set.
&N_DO_PLOTS_AND_BGS Notebook=if you see any good plot hooks @mail reeses and lS and suggest they have a story teller follow up on it.
&L_NOTES_MAIL Notebook=|Marzipan1|Chocolate1|Chocolate2|Gobstopper1|Gobstopper2|Clairvoyance|Telekinesis|Telepathy|Mace1|Mace2|BraveInfo1|Paul_NSA_idea|Pauls_release|Paul_to_Brave|Inquisition|Getting_guns|Sammi_n_Chang|SammiInSwamps|ChangIncident|
&N_MAIL_MARZIPAN1 Notebook=http://www.sar.usf.edu/~hall is the WWW address of Marzipan's Full Circle character page.
&N_MAIL_CHOCOLATE1 Notebook=I send this @mail mainly to Fundip, but send copies to Phoebe and Coco so everyone is informed and can input into the matter. :) Sayoko has gone through quite a bit ICly of late and is RPing strengthening her True Faith as well as spending the XPs to raise it. She has expressed interest in becoming a vampire hunter as she was in her background. I've talked to Fundip about this and he says it won't unbalance things as long as she doesn't grab a bung of garou to help her out. So the plan is, as long as there are no objections, to let her become a vamp hunter in secret and away from the sept. If the sept find out she should be punished for violating the peace treaty. Let me know your thoughts on all this. (Her alias is 'sk' if you want to look her over.)
- Pez

-----------------------------------------------------

The above is FYI. Sayoko is kinfolk so will probably going through Pez for anything that she needs, but you might want to touch bases with him. Cheers.

- Chocolate
&N_MAIL_CHOCOLATE2 Notebook=Sayoko has become a vampire hunter, but, since she is also a kinfolk, her main sphere will be Garou (Pez), rather than mortal+ (3 Musketeers).
&N_MAIL_GOBSTOPPER1 Notebook=Milosh has been appropriated by the INS and is currently not in New hope but in one of thier holding facilities.

Any questions just @mail.
&N_MAIL_GOBSTOPPER2 Notebook=Okay Milosh is done after much explaining. He now has an identity, known as Milosh Szurgal Jhanaki Ravnos, born in Texas, and currently residing in New Hope. He also has an assault charge against him for which he paid the fine in cash. There was a report of a battery as well, but that is unsubstantiated, and is not being taken seriously.
&N_MAIL_CLAIRVOYANCE Notebook=Clairvoyance is the ability to extend the senses beyond the normal range, it usually requires some focus such as someone or something the psychic knows is present in the area to be observed.

The roll is Perception + Alertness, Diff 8, cost 1 WP.

1 dot -- The psychic can sees events in a hazy dream like way, in any room of the building he is in. These visions can be misunderstood.
2 dots -- Fifty mile radius, can hear also with 3 successes, although sound may be distorted.
3 dots -- 250 mile radius, can hear and see, can touch objects with 3 successes although they feel vague
4dots -- 2000 mile radius, can see, hear and touch.
5 dots -- The Master Psychic can use all 5 senses on any object anywhere in the world.
&N_MAIL_TELEKINESIS Notebook=Telekineses is the power to move objects with thought.

The roll is Wits + Athletics, diff 8, cost 1 WP. The object must be within view. A botch causes objects to fly about the room randomly.

1 dot -- Can levitate small objects with difficulty. Must use physical gestures or diff goes up to 9.
2 dots -- Can leviate small objects (bend spoons, lift glass of water). Must use physical gestures or diff goes up to 9
3 dots -- Can now throw an object into another room. Gesturing helps. Can lift objects that require halt his Intellignece (determined as if Intelligence replaced Strenght) to lift.
4 dots -- Can lift items that require full Intelligence (as though Inteligence were strenght). No gestures needed. Can pick up any item withing a 200 foot radius. Can handle more than one object with concentration.
5 dots -- Can lift anything in sight which Intelligence times 2 can handle. Can manipulate as many items as he has points of Dex.
&N_MAIL_TELEPATHY Notebook=Telepathy is the ability to read minds.

The roll is Intelligence + Intuition, diff targets WP., cost 1 WP.

1 dot -- Can feel current emotions and sense mood of target in view.
2 dots -- Can read surface thoughts of target in view (what they are currently thinking about).
3 dots -- Can read recent memories and plans for near future of target within sight
4 dots -- Can read deep thoughts and plans for distant future, can read people in other nearby rooms, but must have a description of the person to work from.
5 dots -- Can read multiple minds and discover deep secrets. Can read the mind of people anywhere in the world as long as he can see an image of them.
&N_MAIL_MACE1 Notebook=Mace was utterly confused, but the little man was obviously concerned. If it werent for his bona fides, she would have thrown him out and reported him fifty-one fifty. Instead she holstered her Colt and offered him a hot drink. Mace moved into the kitchen while the little man thought, his face only showing his brain hard at work.
Mace was in control again and her interest very piqued in who her guest really was..i. "Would you care for some green tea or coffee, Mister...?" He answered a minute later, "I would very much enjoy some tea, please Ms. Jones and you may call me Doctor Lester." She brewed the teas and delivered them, she noticed the time as 0230. Taking a seat across from him, Dr. Lester smiled and poured milk into his mug. "I can understand how alarming this must be to you, Ms. Jones, but I assure you - your work is very important and neccesary. Would you consider remaining in Investigations in some manner? Perhaps if not for an agency, then how about privately? I am assuming you will have no difficulty with permits and bonds?" Mace considered this, his manner so concerned that she felt compelled to cooperate.
"Frankly Doctor, I have considered licensing as a private investigator. Even more frank, I want to know what I was dealing with. On both cases you tipped us on... How can I put this?" She hesitated searching for the right words to discuss what she felt were supernatural and non-existant things. Her confusion was obviously clear to Lester who interrupted.
&N_MAIL_MACE2 Notebook="Frankly Doctor, I have considered licensing as a private investigator. Even more frank, I want to know what I was dealing with. On both cases you tipped us on... How can I put this?" She hesitated searching for the right words to discuss what she felt were supernatural and non-existant things. Her confusion was obviously clear to Lester who interrupted.
&L_NOTES_MISC Notebook=|Dance|my_desc|+toe|RejectionNote|Sammi_escape|
&N_MISC_DANCE Notebook=Kingdom of Caid webpage is where LynoSong pictures are. That's the group that does music for Chocolate's SCA dance club. Some photos of Chocolate and her crew may be posted there eventually.
&N_MISC_MY_DESC Notebook=A pale, handsome youth, with raven-black hair (c), a piercing gaze (tm), cat-like grace (R), and a pair of Doc Martins(c)(TM)(R).
&N_MISC_+TOE Notebook=+toe <name> will tell you when <name> was approved.
&N_MISC_REJECTIONNOTE Notebook=I regret to inform you that your Hunter application will not be approved. Though Miguel's background was creative and well-written, he would not work well in a MU* environment, where killing PCs is highly discouraged. Also, due to the fact that there are only a few Hunters on this MUX at any given time, I am being very picky about the backgrounds I approve; they must be long (at least a page and a half), and very detailed. If you choose to submit another Hunter background be sure that all of the stats that you want your character to have are justified somewhere therein. If you have any questions, feel free to page or @mail me any time. Thank you for taking an interest in my sphere.
&N_NOTEBOOK_ARCANUMOFFICE Notebook=The exit is #712. The street it's on is #220.
&N_MISC_SAMMI_ESCAPE Notebook=I had Sammi roll Dexterity + Stealth, with a difficulty of Brave's Perception + Alertness + 2, to slip out of the latter's arms while he was asleep. I decided that Sammi's one success was sufficient to complete the task, and told Brave that he would not realize she was gone untile he awoke.
&N_MAIL_BRAVEINFO1 Notebook=Blaize and Torin were on the beach when they heard shouting and splashing, then a scream. Them Katrina washed up on the beach, and Torin called 911, Blaize did her best to cover the wounds, didn't work though. Tara arrived, did what she could, and Brave also came in. Brad quickly arrived and having First Aid:4 and Medicine:2 I didn't make him roll to know what to do to get her moving. They got into hospital, where Brad told the emergency team what happened and Katrina is now in a hospital room, recovering from her wounds (Crippled.)
&N_NOTEBOOK_INSANE_ASYLUM Notebook=Talk to Mars. Should Brianna work for the mental ward, when Sean is sent there? Or should the Arcanum actually be in control of the ward?
&N_MAIL_PAUL_NSA_IDEA Notebook=As you both know by now, Paul is locked up in a holding cell in the custody of the NSA's Department of Scientific Intelligence. I really only see two workable solutions to this. One, he's killed. The other, he strikes up quid pro quo with the director of the NSA and the head of DSI, agreeing to feed them information directly on matters of national security in New Hope, in return for them partially reinstating him and getting off his back. Also, they have to replace the security deposit on his apartment, since it's their fault it got all messed up. Plus they have the pay the cat's medical bills. ;)He'll also agree to work part-time as an instructor for the NSA, maybe spending a few weeks there every few months, working with their covert action groups.
&N_MAIL_PAULS_RELEASE Notebook=Well DSI is letting Paul go because of the Arcanum's influence in the matter. They will no longer want anythign to do with Paul, but if he does leak any information, they will be forced to take appropriate actions. (OOC: Death, or worse). In essence they are leaving him totally in Arcanum's hands. He (if you saw the movie Mission:Impossible) is now one of the Disavowed.
&N_MAIL_PAUL_TO_BRAVE Notebook=I understand there is some confusion as to what exactly Paul said to Brave. All that Paul told Brave was this: that Paul had once worked for the NSA, and that if the NSA found Paul, Paul might vanish one morning and end up vivasected 'like a few others of my team were.' This was disinformation Paul was feeding Brave -- no member of Team 7, to Paul's knowledge, was vivasected. It's purpose was to shake Brave some and try to get him to talk. Well, it didn't quite work out the way Paul wanted, but that's fine. Paul has never mentioned that he is a member of the Arcanum, IC, or OOC.
&N_MAIL_INQUISITION Notebook=A message from Mars: This would perhaps be handled best via the creation of an NPC Inquisition leader sent to New Hope to help 'organize' a new cell here. This NPC would be Catholic with a Jesuit upbringing, close to 60 years old, and very dangerous of Kindred tried to directly confront him. He wouldn't discriminate on actual religion, just Faith and Determination. We could try recruited from among current PC's, if any seem interested, and he'd get to know people in the local religious circles.
&N_NOTEBOOK_MAILARCANISTS Notebook=Ask Bishop and Brianna for descriptions of their major contacts. In order for them to have access to any major contacts, or in order for me to put any of their major contacts into their RP, I must know who the contacts are and what they're like. They can, if they wish, just let me invent their major contacts, but they I may not create the types of contacts that they want.
&N_MAIL_GETTING_GUNS Notebook=1)Application must include a signature of the applicant and must be sworn to before a notray public.(Thusly since most notary public offices are open during the day, this poses a problem for vampires, among others)
2)Applications must be accompanied by a check or money order. (Those without any resources therefore cannot aquire legal weapons)
3)3 photographs must accompany; head +shoulders, full face, no hat, no dark glasses and a light background. Photographs must have been taken in the last 30 days. (I'm sure we can all appreciate the addition of this, basically it works for law enforcement that if they need to investigate a crime made by a specific type of weapon they can get a list and descriptions of people who legally own that type of gun.)%r%b%b4)Applications must be accompanied by (1) Blue and White FBI fingerprint card, and (1) brown and white CJIS fingerprint card. (Thusly, if the weapon is used in a crime, the fingerprints can and will be run against thier databases)%r%b%b5)Applicants who are employed as Security guards, Private Detectives, Special Policemen (Rent-A-Cop in other words), must submit a certification of qualification with a handgun. (I.E. Gotta have at least Firearms 1. This qualification comes from the State, and therefore Police types can find out that you are qualified with a handgun.)%r%b%b6)Renewals are the responsibility of the applicant.

&N_MAIL_SAMMI_N_CHANG Notebook=Hi there. I began judging a scene last night with Samantha, Robert, Chang Li, and Leah. The scene began in Nature's Promise. (A couple of other people were there but did not get involved; I'm sorry, but I was too zoned to remember who they were. Maybe Gobstopper can help.) Samantha paged me saying that Chang Li wanted to meet her and she was afraid for her life, so could she please set up police reinforcements at Nature's Promise during the meeting. Gobby and I arranged for this. When the meeting was over, Leah Dominated Samantha into just letting Chang Li go, but Leah only got 1 success so I said that Samantha would not go to the extra effort of going up to the plainclothes officers and telling them to change their plans. So when CL and L left, the cops arrested them. Robert left just a few moments afterwards, and asked that a police officer allow him to take some pictures. He did, and those pictures will be turning up in the paper as soon as I get the article written.
Leah was in a bad mood OOC and was starting to make noises about how she was just hoping the sun would rise and she'd fry. I don't think she really meant it, but she didn't struggle and just let the cops cuff her and put her in the cruiser. Chang Li protested this, and said that he wouldn't go quietly unless they let her go. The cops said they needed to check both of their identities.
At this point I had to go offline, so Mentos very graciously offered to continue judging the scene for me. I do not know if it turned into a firefight or not; last I heard, Chang Li was considering going quietly as long as the cops took the cuffs off Leah and didn't cuff him. I'm not sure where he is now. I'll write a newspaper article as soon as I figure out exactly how everything turned out, along with some very nice pictures by Robert (who rolled very well on his photography skill, even though the difficulty was pretty high because of the chaos :) ) . Incidentally, Samantha didn't witness any of this, since, as she put it, she was in the bathroom getting sick. :)n the bathroom getting sick. :)to make noises about how she was just hoping the sun would rise and she'd fry. I don't think she really meant it, but she didn't struggle and just let the cops cuff her and put her in the cruiser. Chang Li protested this, and said that he wouldn't go quietly unless they let her go. The cops said they needed to check both of their identities.
At this point I had to go offline, so Mentos very graciously offered to continue judging the scene for me. I do not know if it turned into a firefight or not; last I heard, Chang Li was considering going quietly as long as the cops took the cuffs off Leah and didn't cuff him. I'm not sure where he is now. I'll write a newspaper article as soon as I figure out exactly how everything turned out, along with some very nice pictures by Robert (who rolled very well on his photography skill, even though the difficulty was pretty high because of the chaos :) ) . Incidentally, Samantha didn't witness any of this, since, as she put it, she was in the bathroom getting sick. :)
&N_MAIL_SAMMIINSWAMPS Notebook=Okay, this is particularly important for those of you who deal with Garou, so listen up. Croyd and Samantha, not being happy with exploring all the vampires' secret places, decided to rent a boat to explore the marshes. Ack! When Sammi paged me telling me this, I told her she was going to get a runaround from the people at the boathouse, saying that they refuse to rent boats out there. She insisted on RP'ing the scene, so she and Croyd came into my room and went through the conversation with the boathouse worker, a lanky, chain-smoking kid named Charlie.
Sammi flashed her badge which got the kid nervous and talking. He said that there were some troubles a few years ago, when an unspecified number of boats got damaged and an unspecified number of people got hurt and sued. It settled out of court. Since then, Charlie's father, who owns the boathouse, put it into his contracts that no boats will go out to the marshes.
Sammi thinks OOC that the damage to the boats and/or people was caused by the toxic dumping that was going on there a few game-months ago. Apparently Star told her IC about the dumping. The kid also mentioned alligators, but it doesn't look like either Croyd or Samantha took him seriously when he said that they were what his dad was really afraid of.
I wouldn't be surprised if Sammi and Croyd start exploring the marshes. I may have to judge those scenes. I wouldn't mind doing it but I'd like to talk to people with Garou alts and Pop Rocks and Elle/Phoebe if she's ever around and make sure that we have our stories straight. Also, it's looking like both of them are looking in the papers/police records for anything funny that's happened in the marshes over the past couple of years. I need to know what has made it into those records. I hope I did this scene okay, I was kind of at a loss because no Garou staff were online at the moment and I had to come up with a reason for them not to get boats really quick. :) I think everything I said was pretty much in line with Phoebe's earlier policies. Please write if there is more that I need to know.be's earlier policies. Please write if there is more that I need to know.. Apparently Star told her IC about the dumping. The kid also mentioned alligators, but it doesn't look like either Croyd or Samantha took him seriously when he said that they were what his dad was really afraid of.
I wouldn't be surprised if Sammi and Croyd start exploring the marshes. I may have to judge those scenes. I wouldn't mind doing it but I'd like to talk to people with Garou alts and Pop Rocks and Elle/Phoebe if she's ever around and make sure that we have our stories straight. Also, it's looking like both of them are looking in the papers/police records for anything funny that's happened in the marshes over the past couple of years. I need to know what has made it into those records. I hope I did this scene okay, I was kind of at a loss because no Garou staff were online at the moment and I had to come up with a reason for them not to get boats really quick. :) I think everything I said was pretty much in line with Phoebe's earlier policies. Please write if there is more that I need to know.
&N_MAIL_CHANGINCIDENT Notebook=Message from Mentos: The scene with Chang Li ended as follows: He and Leah agreed to go peacefully so long as they weren't cuffed. Chang Li used Presence 1 (awe), and suceeded in 'impressing' 2 officers so much that they were almost stepping on him to assist the Really Cool Guy into the squad car :). Everyone trooped down to the police station. Once there, Leah and Chang's ID were checked, and then they were released, since there wasn't actually anything they were being held for.
This came up as an issue: Leah said her character had an int of 4, and so should be smart enough to make sure she had 'legal' ID. Plus, that she had taken a trip and would have a passport left over from that. Zots might want to set some sort of standard for vampires having/getting fake ID.
&N_NOTEBOOK_LIZZY Notebook=Write a letter to little Lizzy, apologizing for disappearing when she asked about getting a point of Telepathy.
@Listen Notebook=*
@Ahear Notebook=@pemit *mu=%0
@set Notebook=DARK


@create Small Cellular Phone=10
@lock Small Cellular Phone=*Trayce
@lock/UseLock Small Cellular Phone=*Trayce
@Desc Small Cellular Phone=%rYour typical small black cellular phone that flips open.%r
&STATUS Small Cellular Phone=inactive
@parent Small Cellular Phone=PARENT: Cellular Phone


@create Weapon Object=10
&NO_SLAVE Weapon Object=[hasflag(%#,slave)]
&EQUIP_SHOW Weapon Object=$+equip/show *:@switch [or(match(%l,loc(*%0)),hasflag(%#,staff))]=1,{@pemit %#=[u(equip_fn,%0)]},{@pemit %#=Permission denied, or something.}
&EQUIP_FN Weapon Object=[topwave()]%R%cr[center(Weapon list for [name(*%0)],75)]%r%cg[repeat(-,75)]%cw%ch[iter(sort(lattr(*%0/equipshown-*)),%r[get(*%0/##)])]%r%cn%cg[repeat(-,75)]%r%cr[center(End of list.,75)]%r[bottomwave()]
&EQUIP_SHOW2 Weapon Object=$+equip/show:@pemit %#=[u(weapon2_fn,%#)]
&WEAPON2_FN Weapon Object=[topwave()]%R%cr[center(Weapon list for %n,75)]%r%cg[repeat(-,75)]%cw%ch[iter(sort(lattr(%0/equipshown-*)),%r[after(##,-)]: [get(%0/##)])]%r%cn%cg[repeat(-,75)]%cw%ch[iter(sort(lattr(%0/equiphidden-*)),%r[after(##,-)]: [get(%0/##)])]%r%cn%cg[repeat(-,75)]%r%cr[center(End of list.,75)]%r[bottomwave()]
&EQUIP_HIDE Weapon Object=$+equip/hide *:@switch [hasattr(%#,equipshown-%0)]=1,{@cpattr %#/equipshown-%0=%#/equiphidden-%0;&equipshown-%0 %#=;@Pemit %#=Equipment hidden.},0,{@pemit %#=You don't have that piece of equipment unhidden.}
&EQUIP_UNHIDE Weapon Object=$+equip/unhide *:@switch [hasattr(%#,equiphidden-%0)]=1,{@cpattr %#/equiphidden-%0=%#/equipshown-%0;&equiphidden-%0 %#=;@pemit %#=Equipment unhidden.},0,{@pemit %#=You don't have that piece of equipment hidden.}


@create Umbra Maker=505
&MAKE Umbra Maker=$+setup *:

@create Shadow;@set shadow=!halted;@set shadow=!no_command;@link shadow=#2754;@set shadow=dark;@set shadow=inherit;@set shadow=opaque;@set shadow=quiet;@set shadow=myopic;@set shadow=unfindable;@set shadow=safe;@set shadow=silent;@parent shadow=#53;&user shadow=[num(*%0)];@lock/use shadow=[num(*%0)];@lock shadow=[num(*%0)];drop shadow;@pemit %#=Done. Shadow has been dropped.
@Desc Umbra Maker=This makes Umbra Toys called 'Shadows'. The command to create one is%r%r+setup <player>%r%rThis creates the toy, and sets it up completely for the user.
&LOCKER Umbra Maker=[comp(%#,[u(user)])]
@set Umbra Maker=INHERIT


@create All you ever wanted to know and then some about Gaki=10
@lock All you ever wanted to know and then some about Gaki=*Assia
@Desc All you ever wanted to know and then some about Gaki=[repeat(-=,39)]-%r[space(5)]This object contains all White Wolf information concerning the Bloodline known as the Gaki. It is created as a help to the staff here when dealing with this character for plots, judging, or other such activities, as well as an information module to them. With due credit to White Wolf, this object is make for usefullness, not publishing or to take away from their sales. It should encourage sales, as any who see intrest in the Gaki should see more in the _A World of Darkness_ Vampire supplement. Type 'gakihelp' for helpful information.%r[repeat(=-,39)]=%r
&DO.READ All you ever wanted to know and then some about Gaki=$!read *:@switch/first [hasattr(me,TEXT.%0)]=1,{@pemit %#=[repeat(-=,39)]-%r[center([capstr(%0)],79)]%r[get_eval(me/TEXT.%0)][repeat(=-,39)]=},0,{@pemit %#=There is no text located in the library called '%0'.}
&TEXT.GAKI1 All you ever wanted to know and then some about Gaki=%r[space(5)]Buddism teachs that after death people reincarnate into one of the Six Realms of Existence. Some go to a heaven or a hell or to the Realm of Fightin Spirits. The rest reincarnate into our mortal world; some as humans or animals and some, for their sins, as Gaki, hungry spirits.%r[space(5)]Buddist lore lists many different sorts of Gaki besides the Jiki-ketsu, the blood suckers. There are the Jiki-niku who eat flesh; the Jiki-da who eat tears; the Jiki-fun who eat excrement; the Jiki-doku who eat poison; the Jiki-fu who eat wind; the Jiki-ke who eat smells; and the Jiki-ka who eat fire.%r[space(5)]The only known gaki are the Jiki-ketsu. They claim their bloodline stems from teh firstborn child of Izanagi and Izanami, the Kami who created Japan. Japanese legend records that when these two first experimented with sex, the female Kami initiated it, and their child was a blood-sucking leech. The next time, the male Kami initiated sex and their child was Amaterasu, the Kami of the Sun, the founder of teh Japanese Imperial Line. Some Gaki harmonize this myth with Western Vampire lore by equating Izanagi with Caine and Izanami with Lilith, Adam's first wife, the Semitic demon godess who sucked children's blood by night. They therefore consider Japan to be the original Land of Nod.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.GAKI1
&TEXT.GAKI2 All you ever wanted to know and then some about Gaki=%r[space(5)]The standard Gaki initiation is held in a Gaki Buddist temple, in front of the bloodparents' friends and kindred. The new Gaki swears an oath of loyalty to the bloodparent for at least one lifetime and to the parent's Daimyo for seven lifetimes. The priest officiating then creates an ihai, a memorial tablet, bearing the Blood Name of the new Gaki. After the ceremony, this is kept in the temple. Due to the powerful psychological and mystical factors involved in the ritual, repudiating the oath sworn during the ceremony causes a Derangement if not a loss of Willpower as well.%r[space(5)]The new Gaki may undergo four of five years of euphoria in which social rules seem meaningless, much like the Japanese university student who revels in academic freedom and then, after graduating and getting a job, settles down. Perhaps this early maturation is due to being oathbound. In any case, a Gaki is accepted as a responsible member of immortal society almost immediately after becoming initiated. But until every mortal friend or relative or lover has died, a young Gaki is still called a wakemono, an apprentice, bound by ties of affection as much to the mortal as to the immortal world.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.GAKI2
&TEXT.GAKI3 All you ever wanted to know and then some about Gaki=%r[space(5)]Most Gaki are samurai, oathbound to a daimyo. A Gaki who is not oathbound to a Daimyo is called Ronin (literally wave-person, someone whose life is as unsettled as an ocean wave). So is a gaki who was repudiated by their daimyo, usually for 12 years, though sometimes for as long as a century. Sometimes such repudiation is conditional: "You are no samurai of mine as long as you permit this insult to me to go unavenged." A humiliated Gaki who has lost significant Status in the eyes of friends and daimyo may vow to go Ronin until they have accomplished some notable deed. Or perhaps the gaki will vow to go on a pilgrimage to 33 Chibo temples. If the humiliation is too great, the Gaki will commit suicide, since a newly reborn Gaki has standard Status.%r[space(5)]Two noble bloodlines of Gaki began in the 12th century when the great wars between the Heike and Genji shook Japan. The final combat was at teh bay of Dan-no-Ura when the Genji triumphed over the Heike, and Emperor Antoku and his followers leapt into the sea rather than surrender.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.GAKI3
&TEXT.GAKI4 All you ever wanted to know and then some about Gaki=%r[space(5)]Today each major Japanese city has two Gaki daimyo who try to ignore one another's existence; one Heike, one Genji. Smaller cities only have one daimyo - usually a Heike in the west, near the old Imperial capitol of Kyoto, a Genji in the east near the modern capitol of Tokyo. Some cities have daimyo named for one of the major feudal clans, such as the Takeda or the Oda.%r[space(5)]The Heike are proud of their ancient heritage and follow the old traditions, including loyalty to their samurai. Of course, they expect similar loyalty in return. At home, they usually dress in traditional Japanese grab, delighting in the arts of flower arranging, samisen playing, and swordsmanship and thinking of engineers and programmers as new sorts of magicians. All of them have at least one level of Dominate or Presense.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.GAKI4
&TEXT.GAKI5 All you ever wanted to know and then some about Gaki=%r[space(5)]The Genji also pride themsevles on their noble birth but are more interested in creating a glorious future than in dwelling on the past. They are the conspiritors who heped drive the Japanese into making the first cheap and then high-quality cars, televisions, VCRs, and other high-tech items. They are interested in computers, and it has been rumored some have a near-supernatural ability with electronics and hi-tech items. All of them have at least some talents similar to Dominate or Presense.%r[space(5)]These two bloodlines, besides greatly affecting the growth of technology in Japan, have begun looking for ways to expand Japan's influence (and thus their own). Despite the fact taht for most of their history they have remained on Japan and its associated islands, during and after World War II they have expanded into Hong Kong, Shanghai and other nearby areas. Indeed, they are making a concerted effort to become the primary force of Undead on Hong Kong when it is turned over to China, a fact which does not sit well with those other Eastern Vampires aware of their plans.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.GAKI5
&TEXT.GAKI6 All you ever wanted to know and then some about Gaki=%r[space(5)]The other Gaki bloodlines do not have as great an interest in areas outside Japan as do the Heike and Genji, but members of their houses have made trips to Hong Kong.%r[space(5)]The Iga and the Koga are ancient ninja clans, organized into groups of one or two dozen people. Some Iga groups serve the Heike, some the Genji; some Koga groups serve the Heike and some serve the Genji. All Iga pay tribute to their clan chief, the Iga Kashira, who is not allied with either Heike or Genji. All Koga likewise pay tribute to the Koga Kashira. At times Iga and Koga cooperate, but it is an uneasy alliance; they are old enemies. Some of them know the new lore of technology. All of them are experts in martial arts and stealth; many are experts in drugs and poisons.%r[space(5)]The Chibo are Buddhist priests, who have a special scripture, unknown to other Buddhists: The Blood Sutra. They chant Na Myoho Kyo (Hail the Famous Blood Sutra) and are experts in Maho rituals (similar to Western Thaumaturgy).%r
@lock All you ever wanted to know and then some about Gaki/TEXT.GAKI6
&TEXT.GAKI7 All you ever wanted to know and then some about Gaki=%r[space(5)]Other major Gaki bloodlines are affiliated with verions of the zaibatsu, the companies which domiante Japanese business and politics. The zaibatsu guarantee employment for the employee's lifetime, and those affiliated with a Gaki stay on with the firm even after they've died. A few bloodlines are affiliated with various yakuza mobs, gambler ganges controlling Japanese crime much as the Mafia runs it in the United States.%r[space(5)]The Gaki do not number their generations, because adoption is too widespread a custom: a Gaki's status depends on the current bloodparent, not the initial one. Some Gaki have two bloodparents: their first contact and the city's daimyo. Some Gaki were initiated by the daimyo but then adopted by someone of lower Status. Vampire sociologists claim the distribution of Generations is much the same among Gaki as among Wester Vampires, but that their youngest Kindred appear to be 10th generation or even earlier.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.GAKI7
&TEXT.GAKI8 All you ever wanted to know and then some about Gaki=%r[space(5)]Most Gaki are prejudiced against non-Japanese, even against people of pure Japanese ancestry who were brought up in another country and do not speak the language fluently. They distrust gaiji (foreigners) as donors, partially do to the rumor that many of them carry the HIV virus. A gaijin who has the Linguistics points to speak Japanese still counts as having a Speech Impediment and must gain an additional Linguistics point to be able to read Japanese or count as Illiterate. They are one level lower Status than usual as seen by Japanese.%r[space(5)]Some Gaki believe that Hengeyokai, shapechanging Cats, are above them in the karmic order. Bu they still consider themselves more cultured than hegeyokai and believe that their donors enjoy a better life, particularly since a Gaki is able to give immortatily to a donor, while an animal cannot.%r[space(5)]A few Gaki have persuaded Hengeyokai Cats to serve them. Mostly, Gaki have mortal servants, sometimes hirelings, sometimes old friends or lovers who serve them out of affection. A number of Heike and Genji have mortal families who pride themselves on being samurai to the undead. No Japanese Gaki are known to have vitae-fed mortal servants like the Western Vampire's Ghoul.%r
&TEXT.DIFFERENCE1 All you ever wanted to know and then some about Gaki=%r[space(5)]Gaki have a highly limited class of potential victims. They can only feed from people who have the right temperament to become Gaki themselves. The Chibo priests explain that this is part of the Karmic Wheel, which punishes sins of Unrestrained Desire with one or more lifetimes plagued with Hunger. Certainly, the Gaki cannot feed upon people either too young to desire fame, power or pleasure or too enlightened for such desires. Gaki also do not feed on the blood of animals or of other Gaki. As yet, no research has been done to indicate if Western Vampires are able to feed on the blood of Gaki.%r[space(5)]The Hunger affects Gaki perception. If they are down to wo or fewer Blood Points, their vision becomes focused on seeking a Donor. They literally lose sight of the rest of the world and see only potential victims and drifting fog. They can temporarily focus on the blurred world only as an act of Willpower. A direct and active threeat will break this tunnel vision for the legth of combat or flight plus one additional turn.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.DIFFERENCE1
&TEXT.DIFFERENCE2 All you ever wanted to know and then some about Gaki=%r[space(5)]Gaki are virtually immune to sunlight in any region of heavy smog, such as that of Tokyo or Los Angeles, as long as they wear sunglasses and a high SPF sun cream over any skin not covered by clothing. Even with only light smog, they take only half the damage points from sunlight taht a Western Vampire would take.%r[space(5)]Gaki fear sleep and seldom do. What sleep they do get is troubled by nightmares of mingled desire and fear: trapped in a wilderness with nothing to drink but the blood of their dearest friends, or running endlessly over a field of bones from the approach of Fugen, a Buddhist spirit wreathed in fire and whose sword is a long flame. Avoiding sleep is an Easy Willpower roll, but oen that must be repeated each noon the Gaki is at maximum Blood Points, safe from attack, and without any ongoing project.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.DIFFERENCE2
&TEXT.DIFFERENCE3 All you ever wanted to know and then some about Gaki=%r[space(5)]While sleep remains a problem for them, Gaki can eat and drink as do normal humans. They can enjoy the food; it just provides them with no nutrition. Additionally, they are forced to excrete what they take in since while they digest, they cannot turn food into energy.%r[space(5)]Socially, most Gaki respect Japan's two native religions, Shintoism and Buddhism. They cannon pass under the torii gate marked the entrace to the Shinto shrine, which is taboo to anyone ill, injured, in mourning, or bleeding (including mestruating women). Most Gaki cannot enter a non-Chibo Buddhist temple or any room sealed with o-fude, strips of papers on which the Buddhist scriptures have been written.%r[space(5)]A few Gaki honor some Western figures as among the Buddha's many incarnations. For instance, one temple in Tokyo honors the Buddha as incarnate not just in Gautama but also in Jesus, Socrates and Einstein. Gaki who patronize this temple will also honor o-fude inscribed with the writings of Jesus, Socrates and Einstein as much as those inscribed with the Blood Sutra.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.DIFFERENCE3
&TEXT.DIFFERENCE4 All you ever wanted to know and then some about Gaki=%r[space(5)]The few Gaki immune to these religious effects claim that the others are only superstitious, but it should be noted that tese Gaki seem to be the ones most of out touch with their former humanity, the ones most dominated by what a Western Vampire would term the Beast.%r[space(5)]All too sure of reincarnating after death, most Gaki will commit suicide to wipe out a humiliation, expiate a wrong, protest against a wrong that they cannot stop a superior from committing - or to forestall death by a more painful method. This suicide is not termed seppuku or hara-kiri (both meaning literally belly-cutting) but jisatsu (self-destruction).%r
@lock All you ever wanted to know and then some about Gaki/TEXT.DIFFERENCE4
&TEXT.VOCABULARY All you ever wanted to know and then some about Gaki=%r[space(5)]Gaki refer to normal humans either as "Mortals" or sometimes "Carrots" (a pun on the resemblance of 'ninjin' (human being) and 'ningen' (carrot)).%r[space(5)]A mortal utilized as a blood source is most politely referred to as a Donor, most rudely refered to as a nomimono (beverage). The victim of a hengeyokai, especially if not suitable as a Gaki blood source, is usually termed as a "mouse."%r[space(5)]The passage of a mortal into immortality by becoming a Gaki is termed Initiation. The initiator is the bloodparent. The new Gaki is termed an apprentice until all the people they cared for are either dead or also Gaki.%r[space(5)]The conflict which Vampires term Beast vs. Human is usually spoken of by Gaki as Beast vs. Buddha Nature, the pure spirit within each mortal which is believed will eventually find Enlightenment and reach Nirvana.%r[space(5)]Some Gaki refer to their traditional creation myth by calling the Emperor 'nephew' and by calling death by sunlight 'the younger sister's kiss'.%r
&DO.LIST All you ever wanted to know and then some about Gaki=$!list:@pemit %#=[repeat(=,79)]%r[center(The Following information is available:,79)]%r[repeat(=,79)];@dolist [lattr(me/TEXT.*)]=@pemit %#=[ljust([capstr(lcstr([extract(##,2,10,.)]))],15)]: [u(sum_[extract(##,2,10,.)])]
&TEXT.RIFT All you ever wanted to know and then some about Gaki=%r[space(5)]The Gaki's personal nightmares, so horrible they avoid sleep at all costs, remain a part of them even in their waking hours. These nightmares are no mere constructs of their own brittle psyche; they manifest as actual dimensional rifts, personalized for the individual Gaki. Since making contact with the West, some Gaki have compared their own situations with that of the Christian damned, caught up in an individual hell.%r[space(5)]Each rift differs substantially from any other. Based on the gaki's own traumas, fears, shames and guilt, the rift epitomizes all the tragedy of her existence. When they sleep, their mind fills with images from this realm - demons, fears, shames; all the travesties they have perpatrated return to them a hundredfold.%r[space(5)]However, the Gaki manifest at least some control of their rifts. Young Gaki learn to extend their rift out ot touch other people. As they grow older, they learn to draw others in. Using the realm of one's own nightmares can be a terrifying experience. Use of any of the powers listed below, successful or not, requires a Courage roll against a difficulty of the power's level; failure costs the Gaki a minimum of one Willpower point, and botchs can send the Gaki writhing in disgust at her own sins.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.RIFT
&TEXT.RIFT1 All you ever wanted to know and then some about Gaki=%r[space(5)]Level 1: The Joining%r%r[space(5)]Sometimes called 'tsutaeru' by the Gaki, this power allows them to silently communicate with both those around them and other Gaki. While this does not allow mind reading, attempts to communicate with Gaki are automatically successful unless teh other Gaki is blocking such contact, and can be made over any distance. Communicating with non-Gaki requires the user of this power to be within eyesight of his target and make a Wits + Linguistics roll against a difficulty of 7.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.RIFT1
&TEXT.RIFT2 All you ever wanted to know and then some about Gaki=%rLevel 2: Glimpse of the Pain%r%r[space(5)]With the second level of Rift, the gaki begins to draw others into her realm of agony, if only for a moment. This power, called 'tsukamu', allows (forces) a target to see the Gaki's own rift. This look at a whole microverse of guilt, sin, frustration, and horror is often more than most can handle. Being blind or closing one's eyes can lessen the agony, but the rift is a complete sensory and psychic experience, so the victim may still be affected (Storyteller's discretion).%r[space(5)]The target, if a Vampire or Gaki, must make a Courage roll with a difficulty of his own Humanity + 2 not to fall into a Courage Frenzy. For others, the Gaki must make a Perception + Intimidation roll with a difficulty of 6, resisted by the target's Willpower roll against the same difficulty. Each additional success the Gaki achieves means the target is incapacitated for an additional turn, frozen with horror at the monstrosity just seen.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.RIFT2
&TEXT.RIFT3 All you ever wanted to know and then some about Gaki=%rLevel 3: Crossing the Iron Bridge%r%r[space(5)]At this stage in a Gaki's development, she begins to deal with her own inner demons. This power allows her to enter into her rift, confronting all that which makes it such hell. The Gaki actually disappears from teh place she was, and will reappear there shortly.%r[space(5)]This is by no means a pleasant experience, and teh character must make a Self-Control roll with a difficulty of her own Conscience for every turn they remain here. Some Gaki use this power for protection, some use it to deal with their own guilt, and some are rumored to have entering into their rift never to return again.%r
&TEXT.RIFT4 All you ever wanted to know and then some about Gaki=%rLevel 4: Journeying the Iron Bridge%r%r[space(5)]When a Gaki first becomes able to Cross the Iron Bridge, all he can take with him are tose inanimate items which have a personal connection - clothes keepsakes, etc. - and these for just a short time. With the fourth level of this power, the Gaki can take anything with him, but he must make a Stamina + Survival roll against a difficulty of 6. Failure means any item brought in falls from wherever the Gaki was holding it. In addition, the Gaki can stay in the rift for as long as he wants... or can.%r
@lock All you ever wanted to know and then some about Gaki/TEXT.RIFT4
&TEXT.RIFT5 All you ever wanted to know and then some about Gaki=%rLevel 5: Passing the Inner Realm%r%r[space(5)]At this point the Gaki begins to learn how to manipulate the rift, using this horror to her own advantage. While the rift is not infinite, it is subject only to the limits placed on it by the Storyteller. Thus the Gaki can travel through it, invisible to the outside world, to any point he could see before entering the rift. She can even enter the rifts of other Gaki she could see before using this power.%r
&SUM_GAKI1 All you ever wanted to know and then some about Gaki=The Gaki's thoughts on their creation.
&SUM_GAKI2 All you ever wanted to know and then some about Gaki=Gaki initiation description.
&SUM_GAKI3 All you ever wanted to know and then some about Gaki=Oaths and Gaki thinking.
&SUM_GAKI4 All you ever wanted to know and then some about Gaki=The Heike Bloodline
&SUM_GAKI5 All you ever wanted to know and then some about Gaki=The Genji Bloodline
&SUM_GAKI6 All you ever wanted to know and then some about Gaki=The Iga and Koga Bloodlines.
&SUM_GAKI7 All you ever wanted to know and then some about Gaki=The Gaki and generations...
&SUM_GAKI8 All you ever wanted to know and then some about Gaki=Prejudice, Enemies, and Ghouling
&SUM_DIFFERENCE1 All you ever wanted to know and then some about Gaki=Feeding restrictions and hungry frenzies.
&SUM_DIFFERENCE2 All you ever wanted to know and then some about Gaki=Sunlight and sleep
&SUM_DIFFERENCE3 All you ever wanted to know and then some about Gaki=Eating and Drinking and religious superstition
&SUM_DIFFERENCE4 All you ever wanted to know and then some about Gaki=The Beast and reincarnation
&SUM_VOCABULARY All you ever wanted to know and then some about Gaki=Some common Gaki vocabulary words.
&SUM_RIFT All you ever wanted to know and then some about Gaki=A description of the Rift Discipline and its general overview.
&SUM_RIFT1 All you ever wanted to know and then some about Gaki=Rift Level 1: The Joining
&SUM_RIFT2 All you ever wanted to know and then some about Gaki=Rift Level 2: Glimpse of the Pain
&SUM_RIFT3 All you ever wanted to know and then some about Gaki=Rift Level 3: Crossing the Iron Bridge
&SUM_RIFT4 All you ever wanted to know and then some about Gaki=Rift Level 4: Journey the Iron Bridge
&SUM_RIFT5 All you ever wanted to know and then some about Gaki=Rift Level 5: Passing the Inner Realm
&HELP.GAKI All you ever wanted to know and then some about Gaki=$gakihelp:@pemit %#=[repeat(=,79)]%r[space(5)]The following commands are available on the Gaki machine. Note that all commands are text related, in most cases, spammy.%r%r!list - Lists all the texts located on the machine as well as a short summary.%r!read <text> - Reads the text named <text>.%r!show <name>=<text> - Show's <name> the text stored as <text>.%rgakihelp - Brings up this screen.%r%r[repeat(=,79)]
&DO.SHOW All you ever wanted to know and then some about Gaki=$!show *=*:@swi/first [type(*%0)][hasattr(me,TEXT.%1)]=PLAYER1, {@pemit *%0=[repeat(=,79)]%r[center([ucstr(%1)],79)]%r%r[get_eval(me/TEXT.%1)][repeat(=,79)];@pemit %#=Shown.},PLAYER0,{@pemit %#=That is not a valid text from the library.}, *, {@pemit %#=That player does not exist.}
@set All you ever wanted to know and then some about Gaki=DARK
@set All you ever wanted to know and then some about Gaki=INHERIT
@set All you ever wanted to know and then some about Gaki=STICKY
@set All you ever wanted to know and then some about Gaki=PARENT_OK
@set All you ever wanted to know and then some about Gaki=SAFE


@create Rumor Function Object <RFO>=10
@lock Rumor Function Object <RFO>=*Taffy
&MARK_READ Rumor Function Object <RFO>=@dolist %vt={&READERS-## %vd=setunion(get(%vd/readers-##),%0)};@fo me={@pemit %0=That's all the rumors.;@notify me}
&SEE_ARENA Rumor Function Object <RFO>=[ifelse(hasattr(#417,arena_[before(%0,:)]),u(arena_[before(%0,:)],%#),gt(maxstat(after(%0,:)),0))]
&NAMELIST Rumor Function Object <RFO>=[setq(9,extract(get(%vd/%0),%1,1,|))][switch(words(%q9),0,,%r[setq(8,iter(%q9,[name(##)]%,))]%2:%b[delete(%q8,sub(strlen(%q8),1),1)])]
&NEXTNUM Rumor Function Object <RFO>=first(setdiff(rest(lnum(add(words(get(%VD/index)),2))),get(%VD/index)))
&ADDROLL Rumor Function Object <RFO>=[setq(9,first(%0,|))][switch(gt(%q9,0),1,min(add(%q9,%1),10),max(sub(%q9,%1),-10))]|[rest(%0,|)]
&INVESTIGATE Rumor Function Object <RFO>=[iter(extract(get(%vd/%0),%1,1,|),switch(gt(%q0,u(fn_roll,add(stat(##,manipulation),stat(##,%2)),%3)),1,%r[name(##)] %4))]
&READ Rumor Function Object <RFO>=[neq(member(get(%vd/readers-%0),%#),0)]
&HEARD Rumor Function Object <RFO>=[setq(6,grab(v(arenas),[extract(get(%VD/info-%0),4,1,|)]:*,|))][setq(7,maxstat(after(%q6,:)))][switch(hasattr(#417,arena_[before(%q6,:)]),1,setq(9,switch(u(arena_[before(%q6,:)],%#),1,u(fn_roll,add(%q1,%q7),4),-1)),setq(9,max(switch(%q7,0,-1,u(fn_roll,add(%q1,%q7),4)),switch(setr(8,stat(%#,city-secrets)),0,-1,u(fn_roll,add(%q1,%q8),6)),-1)))][and(gt(%q9,0),gt(add(%q9,first(get(%vd/info-%0),|)),5))]
&STRENGTH Rumor Function Object <RFO>=[switch(div(abs(%0),2),0,quiet and dying,1,quiet,2,whispered,3,muttered,4,wide-spread,widely discussed)]
&SHOWRUMOUR Rumor Function Object <RFO>=[after(iter(%0,%r[setq(8,get(%vd/info-##))]##%)%b[extract(%q8,4,1,|)]:%b[extract(%q8,5,1,|)]%r%t<A [u(strength,first(%q8,|))] rumor[switch(sign(first(%q8,|)),-1,%bbelieved to be started by [name(extract(%q8,2,1,|))])].>),%r)]
&MERGE Rumor Function Object <RFO>=trim(setunion(extract(r(3),%0,1,|),extract(r(4),%0,1,|)))
&ARENAS Rumor Function Object <RFO>=Financial:Finance|Political:Politics|Society:Etiquette|Street:Streetwise|Computer:Computer|Boats:Boat-Handling Sailing|Occult:Occult|Police:Police-Procedure|Legal:Law|Medical:Medicine Psychology|Scientific:Science Biology Chemistry Geology Mathematics Physics|Art:Expression Crafts Art-Appreciation Artistry Art-History|Music:Music Performance Singing|Vampire:Status|Camarilla:Status
&START-UPDATE Rumor Function Object <RFO>=@tr me/do-update=get(%vd/index)
&DO-UPDATE Rumor Function Object <RFO>=@swi first(%0)=,{@wait 43200=@tr me/start-update;},@wait me={@swi [setq(0,first(%0))][setq(1,get(%vd/info-%q0))][setq(2,switch(gt(sub(convsecs(vtime()),extract(%q1,3,1,|)),get(%vd/fast-decay)),1,2,1))][lte(abs(first(%q1,|)),%q2)]=1,{&INFO-%q0 %vd=;&READERS-%q0 %vd=;&TRACE-%q0 %vd=;&OLDTRACE-%q0 %vd=;&INDEX %VD=[remove(get(%vd/index),%q0)];@notify me;@tr me/do-update=rest(%0)},{&INFO-%q0 %vd=u(addroll,%q1,-%q2);&OLDTRACE-%q0 %vd=[setq(3,get(%vd/oldtrace-%q0))][setq(4,get(%vd/trace-%q0))][map(merge,1|2|3,|)];&TRACE-%q0 %vd=||;@notify me;@tr me/do-update=rest(%0)}}
&FN_ROLL Rumor Function Object <RFO>=[setq(9,%1)][fold(dice,lnum(%0),0)]
&DICE Rumor Function Object <RFO>=[setq(8,add(rand(10),1))][add(%0,switch(1,eq(%q8,1),-1,gte(%q8,%q9)))]
@VD Rumor Function Object <RFO>=#3600
&HEARD_OLD Rumor Function Object <RFO>=[setq(6,grab(v(arenas),[extract(get(%VD/info-%0),4,1,|)]:*,|))][setq(7,maxstat(after(%q6,:)))][setq(8,stat(%#,city-secrets))][setq(9,max(switch(%q7,0,switch(u(arena_[before(%q6,:)],%#),1,u(fn_roll,%q1,4),-1),u(fn_roll,add(%q1,%q7),4)),switch(%q8,0,-1,u(fn_roll,add(%q1,%q8),6)),-1))][and(gt(%q9,0),gt(add(%q9,first(get(%vd/info-%0),|)),5))]
&HEARD_NEW Rumor Function Object <RFO>=[setq(6,grab(v(arenas),[extract(get(%VD/info-%0),4,1,|)]:*,|))][setq(7,maxstat(after(%q6,:)))][switch(hasattr(#417,arena_[before(%q6,:)]),1,setq(9,switch(u(arena_[before(%q6,:)],%#),1,u(fn_roll,add(%q1,%q7),4),-1)),setq(9,max(switch(%q7,0,-1,u(fn_roll,add(%q1,%q7),4)),switch(setr(8,stat(%#,city-secrets)),0,-1,u(fn_roll,add(%q1,%q8),6)),-1)))][and(gt(%q9,0),gt(add(%q9,first(get(%vd/info-%0),|)),5))]
&ARENA_VAMPIRE Rumor Function Object <RFO>=[or(match(u(%0/race),*vampire),match(u(%0/race),*ghoul))]
&ARENA_CAMARILLA Rumor Function Object <RFO>=[strmatch(Camarilla,u(%#/vamp_org))]
@set Rumor Function Object <RFO>=INHERIT
@set Rumor Function Object <RFO>=VISUAL
@set Rumor Function Object <RFO>=NO_COMMAND
@set Rumor Function Object <RFO>=SAFE


@create Commands=10
@lock Commands=*Michael
@lock/EnterLock Commands=*Michael
@VN Commands=#2427
@VR Commands=desc2
&COPY Commands=$cp */* to */*:@fo %#=&%3 %2=\[get\(%0/%1)]
&JOIN Commands=$+join *:@pemit *%0=*** [name(me)] is joining you. ***;@tel loc(*%0)
&GOH Commands=$goh:@fo %#=@tel %#=home
&PALL Commands=$pall *:p [remove(lwho(),num(me))]=%0
&CMD_SKIM Commands=$+skim:@force %#=@mail/list
&CMD_READ Commands=$+read *:@force %#=@mail/read %0
&CMD_PROOF Commands=$+proof:@fo %#=@mail/proof
&CMD_TOSS Commands=$+toss:@fo %#=@mail/abort
&COMMANDS_CMD Commands=$+commands *:@pemit %#=[setq(0,switch(%0,me,%#,here,%L,%0))][repeat(-^-_,19)]-^-%r[center({Commands on object: [fullname(%q0)] (%q0)},79)]%r[repeat(-,79)][iter([lattr(%q0)],[switch([strmatch([get(%q0/##)],$*)],1,%r%t##[space(sub(35,strlen(##)))][after({[before({[get(%q0/##)]},:)]},$)],{})])]%r[repeat(-,79)]
&CMD_CARD Commands=$.card *:@pemit %0=Michael tucks two fingers briefly into a pocket in his suit jacket and pulls out a card, handing it to you. It reads "Michael Samuels. Owner, Samuels Productions." and has a phone number on it.
&CMD_DEL Commands=$+delete *:@fo %#=@mail/clear %0
&CMD_FLUSH Commands=$+flush:@fo %#=@mail/purge
&CMD_GOE Commands=$goe:@fo %#=@tel %#=#341
&CONF Commands=$.conf:@pemit %#=[setq(0,iter(v(frieends),switch(hasflag(##,connected),1,##)))][switch(words(%q0),0,No friends currently connected.,Connected friends:%r<[extract(v(fr_aliases),member(v(frieends),first(%q0)),1)]> [switch(strmatch(name(first(%q0)),extract(v(fr_defs),member(v(frieends),first(%q0)),1,&)),1,[name(first(%q0))],[name(first(%q0))] ([extract(v(fr_defs),member(v(frieends),first(%q0)),1,&)]))] [iter(rest(%q0),- <[extract(v(fr_aliases),member(v(frieends),##),1)]> [switch(strmatch(name(##),extract(v(fr_defs),member(v(frieends),##),1,&)),1,name(##),[name(##)] ([extract(v(fr_defs),member(v(frieends),##),1,&)]))])])]
&ADDF Commands=$.addf *=*=*:@switch [setq(0,lcstr(%2))][strmatch(num(*%0),#-1)][sign(member(v(frieends),num(*%0)))][sign(member(v(fr_aliases),%q0))][sign(member(v(fn_offlimits),%q0))]=1???,{@pemit %#=No player '%0'.},0000,{@pemit %#=Added player '[name(*%0)]'.;&frieends me=[v(frieends)] [num(*%0)];&fr_defs me=[v(fr_defs)][switch(words(v(fr_defs)),0,,&)][edit(%1,&,%b)];&fr_aliases me=[v(fr_aliases)] %q0},01??,{@pemit %#=Player '[name(*%0)]' already on your list.},001?,{@pemit %#=You already have assigned alias '%q0'.},0001,{@pemit %#=You have specified an alias that won't work.}
&DELF Commands=$.delf *:@switch num(*%0)=#-1,{@pemit %#=No player '%0'.},{@switch member(v(frieends),num(*%0))=0,{@pemit %#=Player '[name(*%0)]' not on your list.},{@pemit %#=Deleted player '[name(*%0)]'.;&fr_defs me=[remove(v(fr_defs),extract(v(fr_defs),member(v(frieends),num(*%0)),1,&),&)];&fr_aliases me=[remove(v(fr_aliases),extract(v(fr_aliases),member(v(frieends),num(*%0)),1))];&frieends me=[remove(v(frieends),num(*%0))]}}
@set Commands/DELF = no_command
&LISTF Commands=$.listf:@pemit %#=Friends you have set:%r<[extract(v(fr_aliases),1,1)]> [switch(strmatch(name(first(v(frieends))),extract(v(fr_defs),1,1,&)),1,name(first(v(frieends))),[name(first(v(frieends)))] ([extract(v(fr_defs),1,1,&)]))] [iter(rest(v(frieends)),- <[extract(v(fr_aliases),member(v(frieends),##),1)]> [switch(strmatch(name(##),extract(v(fr_defs),member(v(frieends),##),1,&)),1,name(##),[name(##)] ([extract(v(fr_defs),member(v(frieends),##),1,&)]))])]
&FHELP Commands=$.fhelp:@pemit %#=[setq(0,30)]%rHelp on FriendTracker%r[repeat(-,add(8,strlen(name(me))))]%r%r[ljust(.listf,%q0)]List all friends you currently have set.%r[ljust(.conf,%q0)]List all friends that are currently connected.%r[ljust(.addf <name>=<page alias>,%q0)]Add a player to your list of friends.%r.addf <name>=<known as>=<page alias>%r[space(%q0)]Add a player to your list of friends with a %r[space(%q0)]name they are better known as.%r[ljust(.delf <name>,%q0)]Remove a player from your list of friends.%r[ljust(p<page alias> <message>,%q0)]Pages a friend with <message>.%r[ljust(.cleanup,%q0)]Erases anything from your list that is no%r[space(%q0)]longer a player.%r
@Desc Commands=A simple object to keep track of when friends are on. Type '.fhelp' for help.
@Succ Commands=You pick up [name(me)].
@Fail Commands=You can't get [name(me)].
@Drop Commands=You drop [name(me)].
@Odrop Commands=drops [name(me)].
@Osucc Commands=picks up [name(me)].
&GEN_ADDF Commands=$.addf *=*:@switch [setq(0,lcstr(%1))][strmatch(num(*%0),#-1)][sign(member(v(frieends),num(*%0)))][sign(member(v(fr_aliases),%q0))][strmatch(%1,*=*)][sign(member(v(fn_offlimits),%q0))]=1??0?,{@pemit %#=No player '%0'.},00000,{@pemit %#=Added player '[name(*%0)]'.;&frieends me=[v(frieends)] [num(*%0)];&fr_defs me=[v(fr_defs)][switch(words(v(fr_defs)),0,,&)][edit(name(*%0),&,%b)];&fr_aliases me=[v(fr_aliases)] %q0},01?0?,{@pemit %#=Player '[name(*%0)]' already on your list.},0010?,{@pemit %#=You already have assigned alias '%q0'.},00001,{@pemit %#=You have specified an alias that won't work.}
&CMD_MAILVAMPS Commands=$mailvamps *:@fo %#=@mail [get(me/vamplist)]=%0
&VAMPLIST Commands=#1650 #553 #589 #1289 #1384 #1720 #1875 #1525 #1471 #1387 #441 #1094 #303 #421 #1860 #1321 #1841 #317 #1421 #1524 #316 #710 #1664 #267
&CMD_HUG Commands=$hug *:@fo %#=p %0=:\[u\(rc,h)]\[u\(rc,u)]\[u\(rc,g)]\[u\(rc,s)] \[u\(rc,:%))]
&LIST Commands=$+list: @pemit %#=You have the following descs stored:%r[get(%#/desclist)]
&STORE Commands=$+store *: &DESC.[lcstr(%0)] %#=get(%#/desc) ; &DESCLIST %#=setunion(get(%#/desclist),lcstr(%0)); @pemit %#=Your current desc is stored as [lcstr(%0)].
&GET Commands=$+get *: @switch member(get(%#/desclist),lcstr(%0))=0,@pemit %#=You have no desc called [lcstr(%0)].,{@desc %#=get(%#/DESC.[lcstr(%0)]) ; @pemit %#=Changed to desc [lcstr(%0)]. }
&DESCHELP Commands=$+deschelp: @pemit %#=%t%t>>>Angel's Descer Help<<<%r%t%t*==*==*==*==*==*==*==*==*==*==*==*%r%r+show%t%tLists your stored descs.%r+store NAME%tStores your current desc as NAME.%r+get NAME%tSets your desc to the stored desc NAME.%r+rid NAME%tRemoves the desc called NAME.%r
&RID Commands=$+rid *: @switch member(get(%#/desclist),lcstr(%0))=0,@pemit %#=You have no desc called [lcstr(%0)].,{ &DESC.[lcstr(%0)] %#= ; &DESCLIST %#=remove(get(%#/desclist),lcstr(%0)); @pemit %#=The stored desc [lcstr(%0)] is removed. }
&SHOW Commands=$+show:@pemit %#=You have the following descs stored:%r[get(%#/desclist)]
&CMD_GOL Commands=$gol:@fo %#=@tel %#=#1888
&EDIT1 Commands=$ed */*:@pemit %#=[setq(0,[switch(%0,me,%#,here,%l,[locate(%#,%0,*)])])]FugueEdit > &%1 %q0=[get(%q0/%1)];&veen me=%q0;&veer me=%1
&VEEN Commands=#428
&VEER Commands=me/desc
&EDIT2 Commands=$ed *:@pemit %#=[setq(0,v(veen))][switch(%0,*/*,,FugueEdit > &%0 %q0=[get(%q0/%0)])];&veer me=%0
&EDIT3 Commands=$ed:@pemit %#=[setq(0,v(veen))][setq(1,v(veer))]FugueEdit > &%q1 %q0=[get(%q0/%q1)]
&EDIT4 Commands=$ne *:@pemit %#=[setq(0,[switch(%0,me,%#,here,%l,[locate(%#,%0,*)])])]FugueEdit > @name %q0=[fullname(%q0)];&veen me=%q0
&EDITHELP Commands=$edithelp:@pemit %#=%red <obj>/<attr> - This command will pull <object>'s <attribute> into input.%red <attr> %b %b %b - Pulls the <attribute> of the last object edited into input.%red %b %b %b %b %b %b %b- Pulls the last attribute edited into input.%rne <obj> %b %b %b %b- Pulls in the full name of <obj>. Useful for renaming exits.%r
&CMD_+MAIL Commands=$+mail *=*:@fo %#=@mail %0=%1
&CMD_WW Commands=$ww *:@fo %#=%0 who
&CMD_PAGE Commands=$p* *:@switch [sign(member(v(fr_aliases),%0))]=0,{@pemit %#=Huh? %b(Type "help" for help.)},{@fo %#=page [extract(v(frieends),member(v(fr_aliases),%0),1)]=[escape(%1)]}
&FRIEENDS Commands= #2 #418 #820 #49 #3674 #476
&FR_DEFS Commands=Piouhgd&Molly&Morgan&Saffron&Matty&Isabella
&FR_ALIASES Commands=k m g s t i
&CLEANUP Commands=$.cleanup:@pemit %#=Cleaned.;@dol v(frieends)={@switch strmatch(PLAYER,type(##))=1,{},{&fr_defs me=[remove(v(fr_defs),extract(v(fr_defs),member(v(frieends),##),1,&),&)];&fr_aliases me=[remove(v(fr_aliases),extract(v(fr_aliases),member(v(frieends),##),1))];&frieends me=[remove(v(frieends),##)]}}
&TESTDELF Commands=$.delf *:@switch [strmatch(num(*%0),#-1)][sign(member(v(frieends),num(*%0)))]=1?,{@pemit %#=No player '%0'.},00,{@pemit %#=Player '[name(*%0)]' not on your list.},01,{@pemit %#=Deleted player '[name(*%0)]'.;&fr_defs me=[remove(v(fr_defs),extract(v(fr_defs),member(v(frieends),num(*%0)),1,&),&)];&fr_aliases me=[remove(v(fr_aliases),extract(v(fr_aliases),member(v(frieends),num(*%0)),1))];&frieends me=[remove(v(frieends),num(*%0))]}
&FN_OFFLIMITS Commands=a ag age o os ose
&FC_VERSION Commands=4.0
@set Commands=DARK
@set Commands=INHERIT


@create pinball <ooc object>=10
@lock pinball <ooc object>=*Esperanza
@Desc pinball <ooc object>=[space(12)]%cW[repeat(%b,50)]%cn%r[space(12)]%cW%b%cX%b[repeat(%b,10)]%ch.[repeat(%b,17)].%b%b.[repeat(%b,15)]%cn%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,14)]%cf%ch.%cn%cX[repeat(%b,14)]%cy%ch.[repeat(%b,13)]%cn%cX%cw%ch.%b%b%b%b%cn%cW%b%cn%r[space(12)]%cW%b%cX%b%cy%ch-+-[repeat(%b,8)]%cn%cX%ch.[repeat(%b,11)]%cf-+-%b%b%b%b%cn%cX%cc%(-%cC%cr%ch%cf.%cn%cX%cc-)[repeat(%b,5)]%(-%cn%cC%cr%ch%cf.%cn%cX%cc-)%b%b%cn%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,6)]%cG%b%b%b%cX%b%cG%b%b%b%cX%b%cG%b%b%b%cX%b%cG%b%b%b%cX[repeat(%b,7)]%cy%ch.[repeat(%b,6)]%cn%cX%cc%(-%cC%cr%ch%cf.%cn%cX%cc-)[repeat(%b,8)]%cW%b%cn%r[space(12)]%cW%b%cX%b%ch.%b%b%b%b%cn%cG%b%cX%b%b%b%b%cG%b%cX%b%b%cG%b%cX%b%cG%b%cX%b%cG%b%cX%b%cG%b%cX[repeat(%b,14)]%cy%ch%cf.[repeat(%b,12)]%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,6)]%cG%b%b%b%cX%b%b%cG%b%cX%b%b%cG%b%b%b%cX%b%cG%b%b%b%cX%b%b%b%cy%ch.%b%crHIGH SCORE:[rjust([get(me/highscore)],9)]%b%b%cW%b%cn%r[space(12)]%cW%b%cX%b%b%cy%ch.[repeat(%b,5)]%cG%b%cX%b%b%cG%b%cX%b%b%cG%b%cX%b%cG%b%cX%b%cG%b%cX%b%cG%b%cX[repeat(%b,6)]%cw.[repeat(%b,15)].[repeat(%b,4)]%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,6)]%cG%b%b%b%cX%b%b%cG%b%cX%b%b%cG%b%cX%b%cG%b%cX%b%cG%b%cX%b%b%cG%b%cX[repeat(%b,4)]%cr%chPLAYER:[rjust([get(me/highplayer)],13)]%b%b%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,11)]%ch.[repeat(%b,18)]%cy.[repeat(%b,10)].[repeat(%b,6)]%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,6)]%ch.[repeat(%b,15)].%b%b%b%b%cf.[repeat(%b,6)]%cn%cX%ch.[repeat(%b,13)]%cW%b%cn%r[space(12)]%cW%b%cX%b%b%cr%chCURRENT SCORE:%cf[rjust([get(me/currentscore)],8)]%b%b%cG%b%b%b%cX%b%cG%b%b%b%cX%b%cG%b%b%b%cX%b%b%cG%b%b%b%cX[repeat(%b,6)]%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,14)]%ch%cf.[repeat(%b,8)].%b%b%cG%b%cX%b%b%b%b%cG%b%cX%b%b%cG%b%cX%b%cG%b%cX%b%b%cG%b%cX[repeat(%b,8)]%cW%b%cn%r[space(12)]%cW%b%cX%b%b%cr%chBALLS:[rjust([get(me/balls)],4)][repeat(%b,14)]%cG%b%b%cX%b%b%b%cG%b%cX%b%b%cG%b%b%b%cX%b%b%cG%b%b%cX%b%b%b%ch%cf%cw.%b%b%b%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,12)]%cM%b%cX[repeat(%b,7)]%cy%ch%cf%\|/%b%b%b%cG%b%cX%b%b%b%b%cG%b%cX%b%b%cG%b%cX%b%cG%b%cX%b%b%cG%b%cX[repeat(%b,6)]%cn%cX%ch.%b%cW%b%cn%r[space(12)]%cW%b%cX%b%b%b%ch.[repeat(%b,6)]%cy>%cM%b%b%b%b%cX%cb======%cy%cf*-%b%b%b%cG%b%cX%b%b%b%cG%b%b%b%cX%b%cG%b%cX%b%b%cG%b%cX%b%cG%b%b%b%cX%b%b%cn%cX%ch%cf.%b%b%b%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,8)]%ch.[repeat(%b,11)]%cy%cf/|%\%b%b.[repeat(%b,17)]%cn%cX%cy%ch.%b%b%b%b%cW%b%cn%r[space(12)]%cW%b%cX[repeat(%b,6)]%ch-+-[repeat(%b,19)].%b%b-+-%b%b%b.[repeat(%b,10)]%cW%b%cn%r[space(12)]%cW[repeat(%b,50)]%cn
&HIGHSCORE pinball <ooc object>=0
&HIGHPLAYER pinball <ooc object>=Esperanza
&CURRENTSCORE pinball <ooc object>=0
&BALLS pinball <ooc object>=3
&STATUS pinball <ooc object>=off
&START pinball <ooc object>=$play pinball:@switch [get(me/status)]=off,{&STATUS me=waiting ; &BALLS me=3 ; &CURRENTSCORE me=0 ; &PLAYERNUM me=%# ; &PLAYERNAME me=[name(%#)] ; @wait 2=@pemit %#=Type 'shoot' when you're ready to begin. ; @wait 1=@emit [name(%#)] pops a quarter into the pinball machine.},@pemit %#=You will have to wait until [get(me/playername)] is finished before you can play.
@set pinball <ooc object>=DARK
@set pinball <ooc object>=NO_COMMAND


@create bg object=10
@Desc bg object=This is nothing really, it hold my 6 attr background is all I swear
&BGONE bg object=Morgan Deluccia, as her name might suggest was born into a eccentric family, some 21 yrs ago in New York. Her parents as different as night and day. They hated each other, using Morgan almost from the moment of birth as a pawn to get back at each other. Her mother, French by descent, a one time actress, and model, that is until most of Ca fell into the ocean. Her father, Italian, part of small yer powerful mafia family. Her parents were not meant for each other, it was obvious. They met When he came to Dragon Moon, the shop her mother owned, for a tattoo. The one night stand layered on booze ended up porducing a marriage and Morgan. As soo as Morgan could say 'ga ga' her mother taught her french, just because it would piss her father off. When she was five her mother sent her to piano lessons and 'jazz' dancing lessons. Morgan didn't much care for either. During the same time her father, who said, it wa because she was going to be so pretty, that she needed to learn sefl defense. So In addition to the piano and jazz she took a beginning course in self defense, even at that age her agility was quite apparent. As Morgan entered into school she began to act out some, she disliked most of school save for phsysical education and art classes, she loved to draw, but even more, she loved to paint. Not paying much attention to other things like math and science She after fourth grade she stopped the piano and dance, instead prefering to goto to art camps in the summer, her father thought she had potential to be a better athelete but she was too young and didn't care too much about sports. She did like to use her hands and to run but that was about all she liked at that time.
&BGTWO bg object=As she entered into Middle school at the age of 11 she took every elective possible in art, and artistic study. After her first year she was sent to a private art school in New York. She flourished in art and theory. Still able to live at home she spent her weekends working in Dragon Moon, constantly watching her mother work, Morgan learned a few things, first how to take care of people, and sterilize needles and the wounds created from the tats and piercings. She was allowed to prep clients but not much more then that, her mother fearing she was still to young. Her third year of middle school brought several changes for Morgan. She was passing through puberty, and gave up the frilly bright, fields and cherries type or painting, and art, turning towards the darker side of expression. Her resentment of her mothers and fathers extreme hatred, yet oiverwhemlinbg passion for one another began to rub off, she became violent acting out more, but mostly towards herself, as if she was punishing herself for being born and giving them something to fight over. For she knew as they told her over and over if it was not for her they would not be together, but her father being the good italian man he was couldnt let a child be born out of wed lock. As she turned 13 and was in her last yr of middle school her father was less and less involved with Morgan, he was gaining more power with the Don of the city and was not home much. He did however force her to continue running, and to work out with a personal trainer three times a week. As she entered into highschool she stayed atthe private school, her grades suffering as she spent so much time working with her mother. Her designs were being used now, gaining her some attention for her work. Morgan felt better then most people, using that throwing it in their faces and if they got on her, which they did she would physically show them she was not going to listen to them. She became more and more violent almost getting tossed out of the school for throwing a chair at a fellow classmate. As she entered into 10th grade her father saw her agression and felt he could put it to use. So against her mothers wishes Morgan began to work with Antontio the son of the Don that her father was working with. Antontio being some twenty years older then her and married. Her father felt his 'little girl' was safe with him.
&BGTHREE bg object=Morgan began in that summer by staying with Antontio's family, working at Dragon moon on the weekends. Antontio first taught her more about self defense helping her work on her agility and stamina. for the first two months of that summer all was well, though Morgan was developing a strong crush on this man, he knew it and did nothing to curb it, he flirted right back. She found a fondness for this whip she was givin, Antonio had not meant for her to learn to use it but since she handled it so well, her tall boyishly thin body and nimble strong hands make it east for her to learn to use it. She was playing one night and hit him with it, then again and again, something snapped in her and she really wanted to hurt him and tried, he became enraged and grabbed her she freaked out as he tied her done and raped her several times, violently, cutting her whipping her showing her she'd better not try and hurt him again. For the restof the summer he taught her a differnt type of skill, the art of torture and mostly through example she learned, things such as the pressure points and how to manipulate them, how to make people talk, binding, gagging them, she also, only because he'd never let her go if she didn't, learned how to escape from being bound. She would then try to make ways that she didn't know to get out of then attempt to. She would push Antontio, as far as she could, she wanted him to hurt her, part of her enjoyed the abuse, the sex, the violence, and part of her was terrified, feeling ashamed and fearful of what was happening to her inside. She was beginning to warp inside, the outside showwing in her art, her designs became morbidly expressive, much to her mothers delight, she though Antontio was good for her creativity, if she only knew. She went home after that summer and attemtped to returned for her next year of school, she didn't see antonio much for a while, spending more time with her mother learning more about tat's and pericing, and was allowed to preform simple one color tatto's and nose, and ear peircings at that time. Her own designs much mor inctricate she was not allowed to do as of yet. She garned some attention for the work she was doing, but more for her designs at that point then for her actual artwork.
&BGFOUR bg object=During xmas break of that year her parents wanted to go on vacation as they felt it migh help their marriage to get away. Leaving Darkfire in the care of Antontio and his family. Using that time Darkfire and Antonio spent most of the time in bed abusing each other. He almost killed her trying to show her the pleasures of haivng three quarters of the oxygen cut off. Passing out saved her life. She was angry, she thought he tried to kill her and lashed out at him in a nonseuxal viscious way, he overpowered her and beat her up good. She was docile for the rest of the week recoiling into herelf away from Antonio. The bruises not quite gone when her parents returned she was forced into explaining exactly what she had been learing from Antonio. Her mother called her a whore, her father was homicidal Morgan full of shame yet deeply in love with Antonio lashed out at her family, tearing the house apart before collapsing in tears in her mothers arms. She felt like she was slipping, slipping away, she loved her parents, yet hated them, and loved antontio yet....hated him for what he was doing, the lines between it all began to blur, she was not acting on reason anymore only instinct as she snuck out of her house and went to Antonio's apt. with the eyes of a child and the intent ofa demon she asked to dom him, to show him what she had been learning from him, the ways around the human body, how to abuse, and pleasure. He thinking she was finally beginning to grow up and understand agreed. She tied him up, daring him to escape, he couldn't she began to whip him, then harder, actually hurting him, her rage, she was lost. After causing him serious bodily injury she fucked him, then was about the let him go when he said, I am going to kill you when you untie me, she froze, totally stopped, not even breathing, she could feel he was serious, she knew him, she could sense it. And in a split second she advanced on him, strnagling him as he had done to her, except she never stopped, until he was gone. falling back she she sat there till almost dawn. Untying him, she went and got a razor slitting his throat letting his blood drain, she cleaned up after herself, using the knowledge he had told her about how to do this and left, calm, yet a swirling monster on the inside.
&BGFIVE bg object=This no one finding out thing didn't quite work. Within a day antontio' father knew, and he apparently knew all along what was happening with df and antonio. He found Morgan in her room, and beat her up almost to the point of death then reconsidered. Instead he forced her to watch and participate in the murder of her parents. Brutally visciously she almost liked it, the rush, the power. Until the guilt. By law she got everything, he house, Dragon Moon, the cars, the inheritance, money from her mothers career as an actress, everything. She has come here to reopen Dragon Moon, hoping to put everything that has happened to her in the past, behind her, hoping the past will remain the past and she can get on with her life.
&BGSIX bg object=So there I sat downing beer after beer pondering where my next meal was gonna come from and why I had been so mean to the only ones who took enough pity on me to feed me. A man came in, one I had never seen before, and probably never will again. He touched my hair, they always do...always the hair. I played the part, be nice, look cute maybe he is kindred, I thought maybe he can feed me. He touched my face, with wet fingers. I was curious for all of ten minutes until I felt the drugs hit my system. I felt good, but my goal, was always present. He asked what I did, then wanted a tattoo of a serpent on his back. I took him home and set about working on the art. I seemed like it took forever, they drugs wraping my reality slightly. Once I was done, I was stalling, trying to make excuses to get him to stay. As I pondered the same thing he asked, like so often they do, Are you kindred, something about my auras always makes them ask. I laughed in his face not sure if he was for real. Offended at my laughter, the next thing I felt was the slice of his tongue against my cheek. I knew then. I stopped laughing then he started, I explained I was not kindred and he asked why, I told him I really didn't know, except people wanted slaves, and I could play that part. He told me, that there was something more to serve then just some idiot trapped into the Camarilla. My attention quite peaked as I never truly felt all of their laws and traditions were for me. Well they never accepted me anyhow. I mean no one knew I couldn't really be their thrall, but still they were so damned snotty, I hated that...He went on and on about how I could make a temple for all of Set's children, his voice almost hyptnotizing the soft hiss and ever present smirk, lulled me almost to sleep. The history of the clan he went on and on about, I had heard before bits and pieces about the old ones and what had happened to Set, but nothing in as much detail. Growing bored my attention waning, rudly I asked him to feed me. He laughed, sounded almost like that guy from the seven-up comericals. My turn to be offended, but I presisted. He told me he had been watching me, for a long time. Started telling me about my life, and he even knew about the fact I could never be bound to him or anyone. He said it was time I grew up and realized my final destiny was not to be an arrogant art fag's ghoul, but to serve set and to turn this city into a stronghold for the clan, and for Set. Not quite sure what he was saying, I just did one of those blond nodding and possibly pretending to understand things. Before I finished the nod he was upon me. Not a word, no warning as he began to drain my blood. I thought oh god this is it, I fought so hard to stay alive and now he is going to kill me...I should have resisted. The thought wavered as I slipped from consciousness, only to be awakened by a dull sensation of blood dripping into my mouth, his blood. Shocked and dreadfully hungry, a hunger like I could have never imagined, yet he stopped me. And pushed me away. He said to me no more nights of stealing blood from vampires, now hunting for myself, alone. He impressed the importance of staying hidden and never tell anyone I was embraced, until it is too late, how would they know he said, you have been in midst for so long. Before he left he said once more always mind my goal, and live my unlife to undermine the camarilla and to serve set. He left a number, and a name, only a first name, Cahlie. He told me to get word to him if I need him, or if anything happens important. Then he was gone...
@set bg object=DARK


@create influence object=10
@lock influence object=*Taffy
&SET_INFLUENCE influence object=$!clout *,*=*:@switch [or(hasflag(%#,wizard),match(num(*td),%#))]=1,{@switch [setq(0,num(*%0))][setq(1,v(influence_db))][setq(2,get(r(1)/areas))][setq(3,match(r(2),%1*,|))][or(not(isdbref(r(0)))),not(r(3)),not(isnum(%2)))]=1,{@pemit %# = Syntax: +clout <person>,<area>=\[+|-\]<value>},{&INFLUENCES [r(0)] = [setq(4,get(r(0)/influences))][setq(5,[r(4)] [repeat(0%b,sub(words(r(2),|),words(r(4))))])][setq(6,replace(r(5),r(3),[add(extract(r(5),r(3),1),%2)]))][setq(7,extract([r(6)],r(3),1))][r(6)]; @set [r(1)]=list_[r(3)]:[switch(r(7),0,[remove(get(r(1)/list_[r(3)]),r(0))],[setunion(get(r(1)/list_[r(3)]),r(0))])]; @pemit %# = [name(r(0))]'s [extract(r(2),r(3),1,|)] influence has been changed to [r(7)].} },{@pemit %# = You aren't allowed to use this command.}
&CHECK_INFLUENCE influence object=$!influence*:@switch [setq(0,ifelse(gt(strlen(%0),0), trim(num(*%0)),%#))][setq(9,v(influence_db))][setq(8,add(or(hasflag(%#,wizard), hasflag(%#,Royalty), hasflag(%#,staff)),mul(strmatch(%#,r(0)),2)))][r(8)]=0,@pemit %#=Permission denied.,{@pemit %#=[setq(7,get([r(9)]/areas))][setq(1,get([r(0)]/influences))][setq(2,[r(1)] [repeat(0%b,sub(words(r(7),|),words(r(1))))])][switch(r(0),%#,You have,[name(r(0))] has)] the following Influence percentages:[iter(rest(lnum(add(words(r(2)),1))),%r [extract(r(7),##,1,|)]: [switch(extract(r(2),##,1),0,None,[extract(r(2),##,1)]%%)])]}
&INFLUENCE_DB influence object=#56
&CHECK_AREAS influence object=$!area *:@switch [or(hasflag(%#,wizard),hasflag(%#,royalty),hasflag(%#,staff))]=1,{@pemit %#=[setq(0,v(influence_db))][setq(1,get(r(0)/areas))][setq(2,match(r(1),%0*,|))][switch(r(2),0,'%0' is not a valid influence area.,Players with influence in [extract(r(1),r(2),1,|)]:[switch([setq(5,get(r(0)/list_[r(2)]))][words(r(5))],0,%bNone.,[iter(r(5),[switch(gte(words([setq(3,get(##/influences))][r(3)]),r(2)),1,[switch(sign([setq(4,extract(r(3),r(2),1))][r(4)]),1,%r%t[name(##)] -- [r(4)])])])])])]},{@pemit %# = You aren't allowed to use this command.}
@set influence object=INHERIT
@chzone influence object=Chewy Code Zone
I don't see that here.


@create Chewy Code Zone=10
@lock/EnterLock Chewy Code Zone=*Caramel|*Raven
@set Chewy Code Zone=NO_COMMAND


@create VO Parent Object <VPO>=10
@Desc VO Parent Object <VPO>=[lattr(me)]
&RANGED_PISTOL.LT VO Parent Object <VPO>=Conceal:Jacket~Ammo:Normal/17/17~Rate:4~Diff:7~Damage:4~Range:20
&RANGED_PISTOL.LT_DESC VO Parent Object <VPO>=This 9 mm pistol is made of a black plastic polymer frame.
@set VO Parent Object <VPO>=NO_COMMAND


@create Sanguinus Compatibility Functions <SCF>=10
@VM Sanguinus Compatibility Functions <SCF>=#35
&FN_STAT Sanguinus Compatibility Functions <SCF>=add(0,switch(0,[setq(9,match(get(%vm/attrnames),%1))][not(%q9)],switch(%2,p*,extract(get(%0/ATTR),%q9,1),extract(get(%0/TATTR),%q9,1)),[setq(9,match(get(%vm/abilnames),%1))][not(%q9)],extract(get(%0/abilvals),match(get(%0/ABILS),%q9),1),[setq(9,match(get(%vm/sabilnames),%1))][not(%q9)],extract(get(%0/sabilvals),match(get(%0/SABILS),%q9),1),[setq(9,match(get(%vm/bgnames),%1))][not(%q9)],extract(get(%0/BGNDVALS),match(get(%0/BGNDS),%q9),1),[setq(9,match(get(%vm/virtnames),%1))][not(%q9)],extract(get(%0/VIRTVALS),match(get(%0/VIRTS),%q9),1),[setq(9,match(get(%vm/pownames),%1))][not(%q9)],extract(get(%0/POWVALS),match(get(%0/POWERS),%q9),1),[setq(9,match(get(%vm/miscnames),%1))][not(%q9)],switch(%2,p*,get(%0/[extract(get(%vm/miscids),%q9,1)]),get(%0/[extract(get(%vm/poolids),%q9,1)])),-1))
&FN_HASACCESS Sanguinus Compatibility Functions <SCF>=or(orflags(%0,WZ?),member(v(ACCESS_%1),num(%0)))
&FN_ICSTATUS Sanguinus Compatibility Functions <SCF>=switch(1,hasflag(%0,HAVEN),OOC,hasflag(room(%0),HAVEN),OOC,IC)
&EXPORT-FUNCTIONS Sanguinus Compatibility Functions <SCF>=stat hasaccess icstatus
&SETUP Sanguinus Compatibility Functions <SCF>=@dolist get(#971/export-functions)={@function/privileged ##=#971/fn_##;@admin function_access=## wizard}
&FN_MAXSTAT Sanguinus Compatibility Functions <SCF>=fold(maxstat,%0)
&MAXSTAT Sanguinus Compatibility Functions <SCF>=max(stat(%#,%0),stat(%#,%1))
&FN_STAT2 Sanguinus Compatibility Functions <SCF>=add(0,switch(0,[not(setr(9,match(get(%vm/attrnames),%1)))],switch(%2,p*,extract(get(%0/ATTR),%q9,1),extract(get(%0/TATTR),%q9,1)),[not(setr(9,match(get(%vm/abilnames),%1)))],ifelse(setr(9,match(get(%0/ABILS),%q9)),extract(get(%0/abilvals),%q9,1),-1),[not(setr(9,match(get(%vm/sabilnames),%1)))],ifelse(setr(9,match(get(%0/SABILS),%q9)),extract(get(%0/sabilvals),%q9,1),-1),[not(setr(9,match(get(%vm/bgnames),%1)))],ifelse(setr(9,match(get(%0/BGNDS),%q9)),extract(get(%0/BGNDVALS),%q9,1),-1),[not(setr(9,match(get(%vm/virtnames),%1)))],ifelse(setr(9,match(get(%0/VIRTS),%q9)),extract(get(%0/VIRTVALS),%q9,1),-1),[not(setr(9,match(get(%vm/pownames),%1)))],ifelse(setr(9,match(get(%0/POWERS),%q9)),extract(get(%0/POWVALS),%q9,1),-1),[not(setr(9,match(get(%vm/miscnames),%1)))],switch(%2,p*,get(%0/[extract(get(%vm/miscids),%q9,1)]),get(%0/[extract(get(%vm/poolids),%q9,1)])),-2))
@set Sanguinus Compatibility Functions <SCF>=INHERIT
@set Sanguinus Compatibility Functions <SCF>=NO_COMMAND
@set Sanguinus Compatibility Functions <SCF>=SAFE


@create Hungry Diner Playing cards=10
&DECK Hungry Diner Playing cards=2-C 3-C 4-C 6-C 9-C 91-C J-C Y-C Z-C 2-S 3-S 4-S 6-S 8-S 9-S 91-S J-S Q-S Y-S Z-S 2-D 3-D 4-D 5-D 6-D 7-D 8-D 9-D Q-D Y-D Z-D 3-H 4-H 5-H 6-H 7-H 8-H 91-H J-H Q-H Y-H Z-H
&TEMPNUM Hungry Diner Playing cards=14
&HAND-#2210 Hungry Diner Playing cards=2-H 5-C 5-S 8-C 91-D
&HAND-#3299 Hungry Diner Playing cards=7-C 7-S 9-H J-D Q-C
@parent Hungry Diner Playing cards=PARENT: Deck of Playing Cards
***End of List***
@lock me=*Eileen
&RSUMMON me=#3
@Sex me=Female
&ATTR me=2 4 3 2 2 6 3 3 3
&TATTR me=2 4 3 2 2 6 3 3 3
&RACE me=changeling
&WOUNDS me=0
&XP me=0
&CONCEPT me=NPC CHnageling for TP
&STARTED me=1
&SET_ATTR me=1
&SET_ABIL me=1
&DONE me=1
&POSITION me=Jezebel in Hell.
&ABILS me=2 3 5 6 11 24 27 31 34 35 36 54 58 72
&ABILVALS me=3 2 3 3 3 5 2 4 2 4 3 2 1 5
&SABILS me=22 235 237 238
&SABILVALS me= 2 2 2 2
&POWERS me=106 111
&POWVALS me=4 2
&VIRTS me=18 19
&VIRTVALS me= 3 5
&MFS me=Past Lives <5M>|Fae Eternity <2M>|Cursed <5F>
&BGNDS me=13 24
&BGNDVALS me= 3 5
&WP me=6
&WPP me=6
&BANALITY me=6
&BANALITYP me=0
&GLAMOUR me=6
&GLAMOURP me=6
@lock/UseLock me=*Eileen
&CLASS me=Seelie
&SEEMING me=Wilder
&KITH me=Sidhe
&HOUSE me=None
&APPROVAL me=Approved by Skittle on Wed Jul 31 16:11:08 1996.
@Desc me=%r%tBarely past adolescence, this girl looks like she's maybe about 15. She promises to be a true beauty when she ages, though.Already she's tall, about 5 and a half feet, and the structure of her bones indicates her willow-thin frame will always be just that.%r%tHer blond hair has been sun-bleached to almost white in spots. She wears it cut rather shaggily, about shoulder length.Her face is tanned slightly, with the red of sunburn brushed across her cheeks and the tip of her nose. Her eyes are a brilliant blue.%r%tHer clothes are simple; an old t-shirt which appears to be a couple sizes too large for her, a pair of jeans, and worn out sneakers on her feet.%r%tThe observant might notice the lines of 3 or 4 scars cutting like hatch marks across each of her wrists.%r
&DESC_FAE me=%r%tIn her fae seeming, she looks older than as a human...definitely a wilder, and one who has been such for a while.She is tall, reaching 6 feet, and willow thin, almost delicate in appearance. Don't let it fool you, though...her back is straight with confidence and strength.%r%tHer hair is a pale blond, almost white. It's cut to hang to about shoulder length, and looks a bit shaggy. Her skin is milk-pale and smooth.Fine, high cheekbones sweep up into eyes which are slightly almond-shaped. Her eyes are intense, a dark cobalt blue, framed by the delicate arch of pale brows. The points of her ears poke out from beneath her hair...here is beauty to break the heart.%r%tHer clothes are simple...no frequent visitor to courts is she. A grey linen tunic falls down over grey leggings, short suede boots on her feet. She has no jewelry, no ornaments or finery, only a sword in a leather scabbard, scraped and tired from years of use. The sword itself...at least what's visible...is a little off-color for steel.%r%tStrips of white cloth are wrapped around each of her wrists and reach from there across each palm, rather like bandages. She carries with her an air of sadness or melancholy...it seems that perhaps she's never smiled.
@Aconnect me=@mail; @doing Victims...aren't we all.
&TOTCONNED me=35689
&XPCONNED me=35689
@Mailcurf me=0
@set me/Mailcurf = no_command
@Adesc me=@pemit me=%n looked at you.
&LANGS_MAX me=1
&LANGS_REMAIN me=0
&KNOWN_LANGS me=Gaelic
&LAST_BUNK_DATE me=838963691
&ARTS_LIST me=Chicanery 1 | Chicanery 2 | Chicanery 3 | Chicanery 4 | Wayfare 1 | Wayfare 2 |
&CURRENT_BUNKS me=1 11 6 77 81
&REALMS_LIST me=Actor 1 | Actor 2 | Actor 3 | Fae 1 | Fae 2 | Fae 3 | Fae 4 | Fae 5 |
&DRAWN_BUNKS me= 10
@set me=ANSI
@set me=UNFINDABLE
@set me=ENTER_OK
@chzone me=Changeling Globals Object <CG>
@open Stairs Down <SD>;sd;down;d;out;o;exit;leave
@Desc Stairs Down <SD>=A heavy oaken door. A stairwell leads from Eric's Garage.
@Succ Stairs Down <SD>=You walk downstairs
@Osucc Stairs Down <SD>=leaves down the stairs
@Odrop Stairs Down <SD>=arrives from upstairs.
@Drop Stairs Down <SD>=You step off the stairs.


@create motd object=10
@lock motd object=*Taffy
&SETMOTD motd object=$+setmotd:@motd [u(%va/MOTD)][u(%va/MOTD2)][u(%va/MOTD3)][u(%va/MOTD4)]; @motd/wizard [u(%va/WIZMOTD)];@motd/down [u(%va/DOWNMOTD)];@motd/full [u(%va/FULLMOTD)];@pemit %#=GAME: MoTDs set.
&DO.LIST motd object=$+listmotd:@switch/first [hasflag(%#,WIZARD)]=0,{@pemit %#=You do not have the privs to use this command.},1,{@pemit %#=[repeat(-,79)]%rCurrent MoTD settings:%r%b[iter([u(%va/MOTD.TYPES)],%r[ljust(%ch[capstr(##)]:%cn,10)][u(%va/##)])]%r[repeat(-,79)]}


@create mdoor=10
@lock mdoor=mdoor
@Fail mdoor=I don't see that here.
@VA mdoor=^* enters from the offices. The door emits a harsh, loud squeak as it opens.:@dolist {[u(me/ROOMLIST)]}=@remit ##=The metal door upstairs screetches /loudly/...someone is moving about up there.
&ROOMLIST mdoor=#1246 #1249 #722
@Desc mdoor=I don't see that here.
@set mdoor=DARK
@set mdoor=MONITOR
@set mdoor=HALTED
@set mdoor=SAFE


@create Ambulance=10
@lock Ambulance=*Brad|*Amber|ISSTAFF/1
@Listen Ambulance=*
@Ahear Ambulance=@pemit here=*
@Lalias Ambulance=o;out;exit
&SIRENS1 Ambulance=$sirens on:@pemit %#=You reach over and flip the switch for the sirens, turning it on.;@emit/room The Ambulance's sirens blare to life! Sending the familiar sounds through the area.
&SIRENS2 Ambulance=$sirens off:@pemit %#=You reach over and flip the switch for the sirens, turning them off.;@emit/room The Ambulance's sirens fade away and go silent.
&LIGHTS1 Ambulance=$lights on:@pemit %#=You reach over and flip the switch for the lights, turning them on.;@emit/room The Ambulance's lights come to life, sending bright flashes of red and blue across the area!
&LIGHTS2 Ambulance=$lights off:@pemit %#=You reach over and flips the switch for the lights, turning them off.;@emit/room The Ambulance's lights stop flashing abruptly.
@Idesc Ambulance=You enter into a normal looking Emergency Ambulance. The cab of this vehicle has many switches, along with a cb and radio. In the back of the ambulance is enough room for two stretchers and all the gear required for immediate life saving techniques.%r%r[center(*- 'Carhelp' and 'Ambhelp' are at your disposal -*,78)]
&AMBHELP Ambulance=[repeat(+-,39)]%r[center(Ambulance Special Commands,78)]%r[repeat(-,78)]%r%r%t%tSirens on%r%t%tSirens off%r%t%tLights on%r%t%tLights off%r%r[repeat(+-,39)]
&AMBHELP2 Ambulance=$ambhelp:@pemit %#=[u(me/ambhelp)]
@Desc Ambulance=You see before you, a New Hope Ambulance vehicle. The vehicle has red and blue lights on it, and the insignia of New Hope Hospital on it's side.
@lock/UseLock Ambulance=*Brad|*Amber|ISSTAFF/1
&ISSTAFF Ambulance=[orflags(%#, WwZ)]
&SPEED Ambulance=0
&ENGINE Ambulance=off
@set Ambulance=JUMP_OK
@set Ambulance=AUDIBLE
@set Ambulance=ENTER_OK
@set Ambulance=TERSE
@parent Ambulance=PARENT: Car Type Thing


@create Old Captain Sam=10
@lock Old Captain Sam=Boats
@Desc Old Captain Sam=[repeat(~^,39)]%r[space(5)]Old Captain Sam is quite the old codger. He stands a good 5'10" when he actually rises from the old crate that he calls his chair. His face is old and ruddy, the years of ocean air having taken its toll on the poor old man's skin. He has bushy white eyebrows and what hair he has left he keeps hidden below his prized Captain's hat, the hat itself a great contrast to his attire... it seems brand new, though all of his other clothing reeks of dead fish and sea air. He wears an old overcoat of thick, rough material.. its surface marked by the grease and nastiness of the area. Under his coat his clothes are hidden, some even joke that he wears nothing below it... or that his old boots that show below the trenchcoat's hem are his only other clothes.%r[repeat(^~,39)]^
&DO.PUPPET Old Captain Sam=^*:@swi/first [hasattr(#1389,OLD.SAM)]=1, {@pemit #1389=Old-> %0}, 0,
&DO.STORY Old Captain Sam=$tell *:@swi/first [hasattr(me,TELLING)][hasattr(me,STORY.%0)]=00,{@remit loc(me)=%n asks the old captain to tell a story. Glancing up at %o curiously%, Old Sam shakes his head... not knowing the requested story.},01,{@remit loc(me)=A small smile begins to creep across the old captain's face as %n requests a story from him. He slowly lets the smile fade back to a very serious gaze%, showing that he takes this very serious. He says quietly%, "C'mon%, listen to this one..." he says quietly and begins...; &TELLING me=STORY.%0 ; @wait 3=@tr me/DO.TELL},1*,{@remit loc(me)=Old Captain Sam glances at %n. He pauses for a moment from his story "Don't interrupt.. I'll get to ye in a minute."}
&DO.TELL Old Captain Sam=@vc me=0;@wait %vd=@tr me/loop
&LOOP Old Captain Sam=@vc me=add(%vc,1);@switch [setq(0,extract(u(u(telling)),%vc,1,|))]%q0=@,@tr me/endloop,,{@tr me/endloop},^*,{:pauses to collect his thoughts...;&telling me=[mid(%q0,1,strlen(%q0))];@vc me=0;@wait %vd=@tr me/loop},:*,{:[mid(%q0,1,strlen(%q0))];@wait %vd=@tr me/loop},{"%q0.;@wait %vd=@tr me/loop}
@VD Old Captain Sam=4
&ENDLOOP Old Captain Sam=:settles back, his story finished.;&telling me=
@VC Old Captain Sam=4
&STORY.NICE Old Captain Sam=So there was this little girl, you see..|and well..|She was going to the store...|And she got killed.|:smiles, "thats my favorite.. I especially like the end."|@
&STORY.CHANTY Old Captain Sam=:sings,"Whey! Hey! Up she rises!"|:sings, "Whey Hey! Up she rises!"|:sings, "Whey! Hey! Up she rises, er-ly in the morn-in'!"|:sings, "What do you do with a drunken sailor?"|:sings, "What do you do with a drunken sailor?"|:sings, "What do you do with a drunken sailor er-ly in the morn-in'?"|^Chanty.[rand(0)]
&CHANTY.0 Old Captain Sam=:cries out, "Shave his belly with a rusty razor!"|:sings, "Shave his belly with a rusty razor."|:sings, "Shave his belly with a rusty razor."|:sings, "Er-ly in the morn-in'!"|^story.chanty
&CHANTY.1 Old Captain Sam=:cries out, "Make him eat Cookies' biscuits!"|:sings, "Make him eat Cookies' biscuits."|:sings, "Make him eat Cookies' biscuits."|:sings, "Er-ly in the morn-in'"|^story.chanty
&CHANTY.2 Old Captain Sam=:cries out, "Put him into bed with the Capt'n's daughter!"|:sings, "Put him into bed with the Cap'n's daughter."|
&STORY.DEVIL_WORSHIP Old Captain Sam=:looks around suspiciously "They say ther's demons on the beachs...."|Evil tings... deadly...|:nods his head slowly, sagely, "The cults come out at night... to dance their little wicked dances." he relates, "I've seen em from me ship while going along the coast."|^DEVIL_WORSHIP.1
&DEVIL_WORSHIP.1 Old Captain Sam=Once... when I was bringin' in a load of fish I seens em cutting the head offa old woman.|:shakes his head sadly "She was screamin' bloody terror... but there weren't nothing to be done."|:taps his temple "Ol' Cap aint stupid... I know better than t'mess with the Demonfolk... they can track you by the spirit... you'd be smart to leave them be too."|@
&DO.STOP Old Captain Sam=$stop the captain:@swi/first [hasattr(me,TELLING)]=0, {:blinks as %n hushes him%, looking quiet shocked as he proclaims "Hush someone who's doing something! Not me!"}, 1, {&TELLING me=; :hrmphs%, looking very preturbed as he ends his going's on prematurely.}
&KNOWN.STORIES Old Captain Sam=:considers for a moment, then begins to tell of the stories he knows.|Well... I know one about ~Devil_Worship~... its pretty frightening, though.|:slowly points his cane out toward the ocean, "I know an ol' story about a young sailor woman. Female ~Pirate~ she was."|:chuckles, "Then there's me ~whale~ story.. I n'er tire of that one."|:glances around and then whispers suspiciously, "I know a ~Chanty~ too... if ye wanna hear."|@
&DO.LIST Old Captain Sam=$list stories:@swi/first [hasattr(me,TELLING)]=1,{@remit loc(me)=%n tries to ask something of the Old Captain%, but is hushed as the Captain is already busy telling a story.},0,{&TELLING me=Known.stories;@wait 3=@tr me/DO.TELL}
&STORY.PIRATE Old Captain Sam=:remains quiet, a gloomy air seeming to surround him. His old eyes slowly closing. He speaks with a hushed tone, quietly, "This ol' story... its a legend of New Hope... and e'rry word is truth... or may God strike me dead."|You see... ol' Lacey Jane didn'a like her name spread around...|:pauses, glancing around with a sense of paranoia, "Legend says... you say her name... when she's close... and she'll..." he whispers "come back ta get ye.."|:stands from his crate shakily, looking around as he speaks "She sailed a French Pinance that she'd hijacked... peoples say the old captain was chopped up and stuck up in the crow's nest for the gulls."|:jumps slightly, trying to frighten, "JANE!" he yells, "She was a mean ol' wench when that ship of hers went down... she caterwauled till the last bubble of breath left 'er."|^PIRATE.2
&PIRATE.2 Old Captain Sam=:looks toward the ocean as he begins to speak in a wistful tone, "Ol' Jane was headed out after comin' in for supplies when she saw it.."|:raises a hand to shield his eyes as though looking out off the side of a ship, "There is was... a Spanish Galleon... loaded with silver and gold from Mexico... bound for E'spain-ol'."|She moved in... took that little Pinance to full speed..." he pauses with a 'in case you don't know' smirk, "Thats pretty face for such a tiny ship.|:stabs his cain forward at the air, "Took it up that Galleon's hiney... comin' full tilt the only way a Pinance can... knowing the 40 guns on that Galleon could give her more than a tiny salute if she did one thing wrong."|She was smart, though... and those Spanish never saw her comin'... luck was on that gal's side... at least it was then...|^PIRATE.3
&PIRATE.3 Old Captain Sam=:yells aloud, "CRASH! The wood snapped when the ships collided."|:looks around, his eyes flashing, "The Spanish were goin' stir crazy... out of the night some loony wench had attacked them..."|:places his cane at his shoulder like a rifle, "Pop! Pop! They fired off their ol' muskets." he chuckles "But her people weren't even on that Pinance for more than a few minutes after she hit the Galleon... they swarmed like little ants... greed guiding them... and that same ol' luck."|:chuckles as he slowly retakes his seat "That greed was the last thing them Spanish had to worry about... cuz she had made a fatal mistake... her lil' ship was fillin' up... takin on water..."|^PIRATE.4
&PIRATE.4 Old Captain Sam=:nods sagely, "Her little dingy drug that Galleon to the ocean floor.. gold, silver, and all.."|:chuckles, "She was screamin' bloody murder when she reached the deck and felt the Galleon start ta roll... screamin' about how this wasn'a gunna happen to her."|:shakes his head "Too bad... it did happen... and when it was over, all hands lost... the sea quieted again."|You see, the old woman of the sea takes care of her own problems... and greed ain't something you want... when yer out of sight of coast.. Jane learned that|:pauses for a moment "You learn that too.. remember it... or ye'll end up on the bottom too... with Jane's ol' hands throttlin' ya for comin' after her gold."|@
@Adesc Old Captain Sam=@pemit %#=%r[center('[ansi(hw,caphelp)]' for more information.,79)]%r
&DO.HELP Old Captain Sam=$caphelp:@pemit %#=[repeat(~^,39)]~%r[center([ansi(h,Old Captain Sam: Storyteller Supreme)],79)]%r%rType the following to communicate with the ol' Captain...%r%r%b%b%b[ansi(h,list stories)] - Typing this asks the Captain to list the stories he knows. The appropriate title of the story is surrounded by the wave marks ~.%r%r%b%b%b[ansi(h,tell <title>)] - Typing this asks the Cap to tell the story ~title~.%r%r%b%b%b[ansi(h,stop the captain)] - Typing this command stops the captain from telling whatever it is he is telling. Remember.. he wont be happy about that %;%).%r%r%b%b%b[ansi(h,capinfo)] - Gives you some IC background information on the old Cap.%r%rIf you note problems with the Old Captain, its probably just his crazy mind... but report it to Lollipop anyway, just in case. Enjoy!%r[repeat(~^,39)]~
&DO.INFO Old Captain Sam=$capinfo:@pemit %#=[repeat(~^,39)]~%r[center(Captain Sam D'Rock,79)]%r%r[space(5)]Old Captain Sam, as he's become known, grew up here in New Hope Beach. His real age isn't quite clear, though, by appearance, you can judge him to be around 70-80 years of age. Through the years he's become known for his storytelling and tall tales... nobody can be quite sure anymore as to what is truth and what is the fiction created in an old man's mind. He is somewhat famous in the area (Fame 3)... and tourists normally remember him even after the trip... he's always happy to take a picture with the kids or the wife... a true ol' sea dog.%r%r[repeat(~^,39)]~
&LISTEN.ARRIVE Old Captain Sam=^* has arrived.:@wait [rand(3)]=:glances at %n as %s arrives... mumbling below his breath.
&ATTR Old Captain Sam=1 2 3 3 3 1 3 3 3
&TATTR Old Captain Sam=1 2 3 3 3 1 3 3 3
&RACE Old Captain Sam=mortal
&WOUNDS Old Captain Sam=0
&XP Old Captain Sam=0
&CONCEPT Old Captain Sam=NPC Sea Captain
&STARTED Old Captain Sam=1
&SET_ATTR Old Captain Sam=1
&SET_ABIL Old Captain Sam=1
&DONE Old Captain Sam=1
&ABILS Old Captain Sam=2 3 6 9 11 26 31 33 36 48
&ABILVALS Old Captain Sam=2 2 2 2 3 2 2 2 3 2
&BGNDS Old Captain Sam=1 2 3 4
&BGNDVALS Old Captain Sam=2 3 2 3
&VIRTS Old Captain Sam=1 2 3
&VIRTVALS Old Captain Sam=4 4 4
&HU Old Captain Sam=6
&WP Old Captain Sam=6
&WPP Old Captain Sam=6
&MFS Old Captain Sam=Illiterate <1F>|Uneducated <5F>|Compulsion: Tall Tales <1F>|Jack-of-all-Trades <5M>
&SABILS Old Captain Sam=108 165
&SABILVALS Old Captain Sam=1 3
&AURAS Old Captain Sam=5 25 20
@Sex Old Captain Sam=Male
&STORY.WHALE Old Captain Sam=:chuckles, thinking back.|Back in me day in the U.S. Navy I served a big un... battleship she was.|:smiles and motions his cane around, "It was back in '41... just before WW II."|We sailed outta Pearl, headed for San Fran. I guess... thinkin' back," he chuckles, "We was almost to port when it happened...|^WHALE.2
&WHALE.2 Old Captain Sam=:stands up to pace around, "I was walkin' about the deck on the 'bama... Alabama that is... with me chum, Gaylord."|:walks about slowly, supported by his cane, "All the sudden..." he pauses, turning toward you, "WHAM! The ship just seems ta -leap- up!"|Ol' Gaylord stumbles, and," he chuckles "You know it... he tumbles -right- off the deck.|:shakes his head a bit, "Don't get me wrong... tis a serious matter when a chum goes flying offa the deck and into the wake... and when it happens... it scares the b-jezus out of ye."|Alarms were goin' off all over the place... and when I got to the edge of the bow... I saw it... blood and guts everywhere...|^WHALE.3
&WHALE.3 Old Captain Sam=There Gaylord was... a floatin' on what looked to be a half a'whale.|:chuckles, a bit of humor in his eyes "He didn't seem to pleased, mind you... he had some parta that huge fish all over him." he winks "And he'd lost his glasses."|:grins a half-grin, his eyes squinted, "We'd slapped right through a sperm whale, cut that b'stard right in half."|:shakes his head "Its had been under the surf... just out of eyesight.. and not deep enough for sonar..." he chuckles "And now Gaylord was a'ridin it."|He was even less pleased, Gaylord that is... the whale never felt anything else, 'm sure.... when we pulled him back on board... took days for him ta stop smellin' like fish.|:chuckles and wipes a humorous tear from his eye.|@
@set Old Captain Sam=MONITOR
@set Old Captain Sam=SAFE


@create Code Center=10
@lock Code Center=*Caramel
&VIEW_TEST Code Center=test
@set Code Center=NO_COMMAND


@create shipobj=10
@lock/UseLock shipobj=!*RadioBLDR
@Desc shipobj=%rThis is the controller for the Casino-Boat. It currently has 3 commands.%r%r[space(5)]+allaboard[space(10)]- send the ship on a cruise%r[space(5)]+dock[space(15)]- return the ship to it's docking space%r[space(5)]+announce <message> - send a message to all IC rooms on the ship.%r
&ALLABOARD shipobj=$+allaboard:@switch/first [u(me/atsea)]=yes,@pemit %n=The ship is already on a cruise.,no,{@pemit %n=1) Announce to the ship that it is leaving;@trigger/quiet me/announce=1;@wait 10=@pemit %n=2) Lock the ashore door (& change name), set the dock door dark (& locked);@lock #1464=me;@set #1464=dark;@lock #1490=me;@name #1490=[u(#1490/cruisename)];@desc #1490=[u(#1490/desc_cruise)];@wait 10=@trigger/quiet me/announce=2;@desc #1464=[u(#1464/desc_cruise)];&atsea me=yes},@pemit %n=Tell Licorice that her code sucks!
&CRUISE shipobj=$+cruise:@pemit %n=1) Emits to boat at random/ constant intervals%r2) Turn on any gambling code.
&DOCK shipobj=$+dock:@switch/first [u(me/atsea)]=no,@pemit %n=The ship is already docked.,yes,{@pemit %n=1) Emits to boat that dock is being approached.;@trigger/quiet me/announce=3;@lock #1496=me;@wait 5=@pemit %n=2) Unlock, set !dark ashore door and dock door.;@wait 5=@remit #1903=The croupiers stop the spinning wheels and pack up the cards. Payments are made and chips are exchanged and finally, politely, customers are shown the way out.;@wait 5=@trigger/quiet me/announce=4;@name #1490=[u(#1490/dockname)];@desc #1490=[u(#1490/desc_dock)];@unlock #1490;@unlock #1464;@set #1464=!dark;@wait 5=@pemit %n=3) Appropriate emits (ie. ship has docked);@wait 5=@trigger/quiet me/announce=5;@desc #1464=[u(#1464/desc_docked)];&atsea me=no},@pemit %n=Tell Licorice that her code sucks!
@VZ shipobj=#1487 #1495 #1498 #1492
&LEAVEANNOUNCE shipobj=@dolist %vz=@remit ##=A slightly tinny male voice resonates through the intercom, "The ship is ready to depart. Will everyone who is not planning on joining us for the cruise around the islands please disembark. I repeat, the ship is ready to depart."
&ANNOUNCE shipobj=@dolist %vz=@remit ##=[u(me/announce_%0)]
&ANNOUNCE_1 shipobj=A slightly tinny male voice resonates through the intercom, "The ship is ready to depart. Will everyone who is not planning on joining us for the cruise around the islands please disembark. I repeat, the ship is ready to depart."
&ANNOUNCE_2 shipobj=The tinny intercom wakes into life again with a hiss of white noise before the familiar male voice says "Ladies and Gentlemen, we have left the docks at New Hope Beach and will be cruising the islands for an hour and a half. The casino is now open. On behalf of the captain and crew, I hope you enjoy your trip."
&ANNOUNCE_3 shipobj=There is a brief crackle on the intercom, "Ladies and Gentlemen,", the male voice announces, "We will shortly be docking at New Hope Beach. The Casino is now closed."
&ANNOUNCE_4 shipobj=The boat shudders as the engines are reversed, allowing her to slip smoothly into dock. There are footsteps and shouts from the dockside as ropes are tossed from the ship to the shore.
&ANNOUNCE_5 shipobj="On behalf of the captain and crew of 'The Spirit of Free Enterprise'", the tinny male voice announces, "I hope you have enjoyed your cruise. The ship has now docked and you are free to disembark at your leisure."
&ATSEA shipobj=no
&TANNOY shipobj=$+announce *:@dolist %vz=@remit ##=From the intercom, a tinny male voice announces, "%0"
@set shipobj=DARK


@create Police Cruiser=10
@lock Police Cruiser=*Gobstopper
@lock/UseLock Police Cruiser=*Adeline
@Listen Police Cruiser=*
@Idesc Police Cruiser=Blue vinyl. Black metal brackets: a warrant computer, and a shotgun in a locked rack. You're in a police car.This one is oddly clean, though.The radio beeps and whistles piercingly. Voices drawl through the speaker. The warrant computer screen glows orange with its keyboard lit by a maplight. A tough metal screen separates the front seat from the back.
@Desc Police Cruiser=A police cruiser: marked with the legend "NEW HOPE POLICE" and the city seal across the doors. It's a recent Crown Vic with a bar of blue lights, spotlights, a push-grille, and a winch for pulling RV's off the beach.
&ENGINE Police Cruiser=off
&SPEED Police Cruiser=0
@set Police Cruiser=AUDIBLE
@set Police Cruiser=ENTER_OK
@set Police Cruiser=HALTED
@set Police Cruiser=MYOPIC
@parent Police Cruiser=PARENT: Car Type Thing


@create Node_Register=10
@Desc Node_Register=%r%r1. Old, Plantation Island (@tel #1818): There is a gazebo that registers a weak node, approximately 1 point of quintescence per 3 months. Near dead. Not regisred under normal scan (but pinpointed under your acute scan). Territory is secure and guarded with cameras and occsional patrols.
@set Node_Register=NO_COMMAND


@create Chess Game (table #2)=10
@Desc Chess Game (table #2)=A marbled chess board, built into one of the tables. To figure out how to use the game type 'use chess'.
&NDB Chess Game (table #2)=#1960
&BOARD Chess Game (table #2)=WRWNWBWQWKWBWNWR WPWPWPWPWPWPWPWP ---------------- ---------------- ---------------- ---------------- BPBPBPBPBPBPBPBP BRBNBBBQBKBBBNBR
&PLAYING Chess Game (table #2)=#421
&WATCHERS Chess Game (table #2)=#421
@parent Chess Game (table #2)=Chess Parent
@open North <N>;n;north
@Desc North <N>=A sewer tunnel leading north.
@Succ North <N>=You walk down the sewer tunnel heading north.
@Osucc North <N>=walks down the sewer tunnel to the north.
@Odrop North <N>=walks in from the south.
I don't see that here.


@create Cards Parent=10
@lock Cards Parent=*Natalia
&DECK Cards Parent=Kc Qc Jc 10c 9c 8c 7c 6c 5c 4c 3c 2c Ac Ks Qs Js 10s 9s 8s 7s 6s 5s 4s 3s 2s As Kd Qd Jd 10d 9d 8d 7d 6d 5d 4d 3d 2d Ad Kh Qh Jh 10h 9h 8h 7h 6h 5h 4h 3h 2h Ah Jj JJ
&NJ_DECK Cards Parent=Kc Qc Jc 10c 9c 8c 7c 6c 5c 4c 3c 2c Ac Ks Qs Js 10s 9s 8s 7s 6s 5s 4s 3s 2s As Kd Qd Jd 10d 9d 8d 7d 6d 5d 4d 3d 2d Ad Kh Qh Jh 10h 9h 8h 7h 6h 5h 4h 3h 2h Ah
&JOKERS Cards Parent=$+jokers:@switch [match([num(%n)],[u(dealer)])]=0,{@pemit *%n=[u(n_cards)]},{@pemit/contents here=%N makes certain that there are jokers in the deck.;&card_no me=54;&use_deck me=[u(deck)]}
&N_CARDS Cards Parent=You don't have the cards! Type: chelp
&USE_DECK Cards Parent=Kc Qc Jc 10c 9c 8c 7c 6c 5c 4c 3c 2c Ac Ks Qs Js 10s 9s 8s 7s 6s 5s 4s 3s 2s As Kd Qd Jd 10d 9d 8d 7d 6d 5d 4d 3d 2d Ad Kh Qh Jh 10h 9h 8h 7h 6h 5h 4h 3h 2h Ah
&DEALER_N Cards Parent=$+dealer:@pemit/contents here=%N collects the cards and prepares to deal.;@pemit *%n=The default deck has no jokers. Type +jokers before you shuffle to add jokers.;&shuffled me=1;&card_no me=52;@dolist [u(players)]=&b[##] me;@dolist [u(players)]=&t[##] me;@dolist [u(players)]=&wc[##] me;@dolist [u(players)]=&rc[##] me;@dolist [u(players)]=&bc[##] me;&players me;&use_deck me=[u(nj_deck)];&dealer me=[num(%n)]
&SHUFFLE Cards Parent=$shuffle:@switch [match([num(%n)],[u(dealer)])]=0,{@pemit *%n=[u(n_cards)]},{@pemit/contents here=%N shuffles the cards.;&shuffled me=0;&use_deck me=[shuffle([u(use_deck)])]}
&DEALER Cards Parent=#802
&CARD_NO Cards Parent=52
&DEAL_TO Cards Parent=$deal * to *:@switch [match([num(%n)],[u(dealer)])]=0,{@pemit *%n=[u(n_cards)]},{@switch [and(match(loc(me),loc(%1)),hasflag(%1,connect))]=0,{@pemit *%n=There is no %1 here.},{@switch [and(isnum(%0), lte(u(shuffled),0),gte([u(card_no)],%0))]=0,{@pemit *%n=[u(card_no)] card(s) remain. Either your input is wrong or you didn't shuffle before dealing.},{@switch [match(%0,1)]=1,{@switch [member([u(players)],[num(%n)])]=0,{&players me=[u(players)] [num(%1)];&t[num(%1)] me=[extract([u(use_deck)],1,1)];&card_no me=[add([u(card_no)],-1)];&use_deck me=[extract([u(use_deck)],2,100)];@switch [match([u(dealer)],[num(%1)])]=1, {@pemit/contents here=%N takes a card from the deck for [%o]self.},{@pemit/contents here=%N deals a card to [capstr(%1)].}},{&t[num(%1)] me=[u(t[num(%1)])] [extract([u(use_deck)],1,1)];&card_no me=[add([u(card_no)],-1)];&use_deck me=[extract([u(use_deck)],2,100)];@switch [match([u(dealer)],[num(%1)])]=1, {@pemit/contents here=%N takes a card from the deck for [%o]self.},{@pemit/contents here=%N deals a card to [capstr(%1)].}}},{@switch [member([u(players)],[num(%n)])]=0,{&players me=[u(players)] [num(%1)];&t[num(%1)] me=[extract([u(use_deck)],1,[%0])];&card_no me=[add([u(card_no)],-[%0])];&use_deck me=[extract([u(use_deck)],[add([%0],1)],100)];@switch [match([u(dealer)],[num(%1)])]=1,{@pemit/contents here=%N takes %0 cards from the deck for [%o]self.},{@pemit/contents here=%N deals %0 cards to [capstr(%1)].}},{&t[num(%1)] me=[u(t[num(%1)])] [extract([u(use_deck)],1,[%0])];&card_no me=[add([u(card_no)],-[%0])];&use_deck me=[extract([u(use_deck)],[add([%0],1)],100)];@switch [match([u(dealer)],[num(%1)])]=1,{@pemit/contents here=%N takes %0 cards from the deck for [%o]self.},{@pemit/contents here=%N deals %0 cards to [capstr(%1)].}}}}}}
&OUT_MSG Cards Parent=You haven't been dealt into the game. Type: chelp
&LO_TBL Cards Parent=$tbl:@pemit *%n=Cards on Table;@dolist [u(players)]=@pemit *%n=[name(##)]'s cards: [u(b[##])]
&CL_TBL Cards Parent=$cl tbl:@switch [match([u(players)],[num(%n)])]=0,{@pemit *%n=Only players may clear the table. Type: chelp.},{@dolist [u(players)]=&b[##] me;@pemit/contents here=%N clears all of the cards off the table.}
&GT_TBL Cards Parent=$gt * tbl:@switch [member([u(players)],[num(%n)])]=0,{@pemit *%n=[u(out_msg)]},{@switch [member([u(b[num(%n)])],%0)]=0,{@pemit *%n=You have no "[%0]" on the table.},{&b[num(%n)] me=[remove([u(b[num(%n)])],%0)];&t[num(%n)] me=[u(t[num(%n)])] %0;@pemit/contents here=%N takes %p %0 from the table.}}
&GT_ALL Cards Parent=$gt all:@switch [member([u(players)],[num(%n)])]=0,{@pemit *%n=[u(out_msg)]},{&t[num(%n)] me=[u(t[num(%n)])] [u(b[num(%n)])];@pemit/contents here=%N gets all of %p cards from the table: [u(b[num(%n)])];&b[num(%n)] me}
&PT_ALL Cards Parent=$pt all:@switch [member([u(players)],[num(%n)])]=0,{@pemit *%n=[u(out_msg)]},{&b[num(%n)] me=[u(b[num(%n)])] [u(t[num(%n)])];@pemit/contents here=%N puts all of %p cards on the table: [u(t[num(%n)])];&t[num(%n)] me}
&CHAND Cards Parent=$hand:@switch [member([u(players)],[num(%n)])]=0,{@pemit *%n=[u(out_msg)]},{@pemit *%n=Cards in hand: [u(t[num(%n)])]}
&DIS_CARD Cards Parent=$dis *:@switch [member([u(players)],[num(%n)])]=0,{@pemit *%n=[u(out_msg)]},{@switch [member([u(t[num(%n)])],%0)]=0,{@pemit *%n=You don't have a "[%0]" in your hand.},{&t[num(%n)] me=[remove([u(t[num(%n)])],%0)];@pemit/contents here=%N discards.}}
&DLR_CMDS Cards Parent=$dealer cmds:@pemit *%n=%rThe person who types "+dealer" becomes the dealer.%r%rCommands restricted to the dealer...%r+jokers[repeat(.,28)]Used before "shuffle" to add jokers.%rshuffle[repeat(.,28)]Randomizes the deck.%rdeal <no. of cards> to <player>....Example "deal 2 to Martin"%r[repeat(_,80)]
&PLR_CMDS Cards Parent=$player cmds:@pemit *%n=%rCommands with a ** by them may be used by anyone.%rPlayer commands...%rhand[repeat(.,36)]Displays your cards to you.%rtbl[repeat(.,37)]Displays the cards on the table.**%rdis <card>[repeat(.,30)]Exa: "dis Kc" discards the Kc.%rpt all[repeat(.,34)]Puts all cards in hand on the table.%rgt all[repeat(.,34)]Gets all of your cards from the table.%rpt <card> tbl[repeat(.,27)]Exa: "pt Kc tbl" puts Kc on the table.%rgt <card> tbl[repeat(.,27)]Exa: "gt Kc tbl" gets Kc from table.%rgt <player>'s <card>[repeat(.,20)]Exa: "gt Martin's Jj"%rcl tbl[repeat(.,34)]Clears everyone's cards from the table.%r[repeat(_,80)]
&PT_TBL Cards Parent=$pt * tbl:@switch [member([u(players)],[num(%n)])]=0,{@pemit *%n=[u(out_msg)]},{@switch [member([u(t[num(%n)])],%0)]=0,{@pemit *%n=You don't have a "[%0]" in your hand.},{&b[num(%n)] me=[u(b[num(%n)])] %0;&t[num(%n)] me=[remove([u(t[num(%n)])],%0)];@pemit/contents here=%N places a %0 on the table.}}
&NOTATE Cards Parent=$notation:@pemit *%n=The cards are notated very simply. The first position indicates the value of the card, while the second position defines the suite of the card.%r%rA-Ace, K-King, Q-Queen, J-Jack, 10-ten... and so forth.%rc-clubs, d-diamonds, s-spades and h-hearts%r%rSo for example a "Jc" would be a Jack of clubs and an "Ah" would be an Ace of hearts.%rSpecial case: JJ & Jj are jokers.%r[repeat(_,80)]
&CHELP Cards Parent=$chelp:@pemit *%n=Here are the various commands for help...%rnotation%rdealer cmds%rplayer cmds%rcredits%r%rTo start a game type +dealer. Please don't do this in the middle of someone else's game.
@Desc Cards Parent=This is a standard deck of cards sitting on a table. Type: %chchelp%cn
&DEAL_BAK Cards Parent=$TTT@switch [match([num(%n)],[u(dealer)])]=0,{@pemit *%n=[u(n_cards)]},{@switch [and(match(loc(me),loc(%1)),hasflag(%1,connect))]=0,{@pemit *%n=There is no %1 here.},{@switch [and(isnum(%0),gte([u(card_no)],%0))]=0,{@pemit *%n=[u(card_no)] card(s) remain. Check your input.},{@switch [match(%0,1)]=1,{@switch [member([u(players)],[num(%n)])]=0,{&players me=[u(players)] [num(%1)];&t[num(%1)] me=[extract([u(use_deck)],1,1)];&card_no me=[add([u(card_no)],-1)];&use_deck me=[extract([u(use_deck)],2,100)];@switch [match([u(dealer)],[num(%1)])]=1, {@pemit/contents here=%N takes a card from the deck for [%o]self.},{@pemit/contents here=%N deals a card to [capstr(%1)].}},{&t[num(%1)] me=[u(t[num(%1)])] [extract([u(use_deck)],1,1)];&card_no me=[add([u(card_no)],-1)];&use_deck me=[extract([u(use_deck)],2,100)];@switch [match([u(dealer)],[num(%1)])]=1, {@pemit/contents here=%N takes a card from the deck for [%o]self.},{@pemit/contents here=%N deals a card to [capstr(%1)].}}},{@switch [member([u(players)],[num(%n)])]=0,{&players me=[u(players)] [num(%1)];&t[num(%1)] me=[extract([u(use_deck)],1,[%0])];&card_no me=[add([u(card_no)],-[%0])];&use_deck me=[extract([u(use_deck)],[add([%0],1)],100)];@switch [match([u(dealer)],[num(%1)])]=1,{@pemit/contents here=%N takes %0 cards from the deck for [%o]self.},{@pemit/contents here=%N deals %0 cards to [capstr(%1)].}},{&t[num(%1)] me=[u(t[num(%1)])] [extract([u(use_deck)],1,[%0])];&card_no me=[add([u(card_no)],-[%0])];&use_deck me=[extract([u(use_deck)],[add([%0],1)],100)];@switch [match([u(dealer)],[num(%1)])]=1,{@pemit/contents here=%N takes %0 cards from the deck for [%o]self.},{@pemit/contents here=%N deals %0 cards to [capstr(%1)].}}}}}}
&SHUFFLED Cards Parent=1
&GT_PLYR_TBL Cards Parent=$gt *'s *:@switch [member([u(players)],[num(%n)])]=0,{@pemit *%n=[u(out_msg)]},{@switch [member([u(b[num(%0)])],%1)]=0,{@pemit *%n=[capstr(%0)] isn't part of the game or doesn't have a "[%1]" on the table.},{&t[num(%n)] me=[u(t[num(%n)])] [%1];&b[num(%0)] me=[remove([u(b[num(%0)])],%1)];@pemit/contents here=%N takes [capstr(%0)]'s %1 from the table.}}
&CREDITS Cards Parent=$credits:@pemit *%n=%chCards coded by Natalia@Full Circle%cn
@set Cards Parent=DARK


@create Crazy Eddie=10
@Desc Crazy Eddie=[u(desc_eddie)]
@Adesc Crazy Eddie=think *** %n looked a me. ***
&DESC_CHIEF Crazy Eddie=Police Chief Williams appears to be in his 50's. His jet black hair has faded to grey around the edges, but his brown eyes still maintain their intensity. He carries himself with authority and usually dresses in black business suits. Clearly this is a man who is used to being respected.
&DESC_MOLLY Crazy Eddie=Molly appears as she did in life although with an almost etheric beauty. Her light brown hair cascades down just past her shoulders. Her green eyes sparkle with something not quite of this world although her charming smile sets you at ease. She wears the cloths she wore on the day she was killed, a pair of blue jeans and a red blouse. Her engagement and wedding ring are still on her finger. Age no longer touches her and she seems the same twenty year old that you last saw her as.
&DESC_RAG Crazy Eddie=This raggedy old man looks like he hasn't washed in days. Under his dingy maroon jacket his mismatched clothes hangs rather loosely on him. His grey hair is white in places and a greesy darker color in others. He smells a bit of too many days sleeping in questionable places.
&DESC_STACY Crazy Eddie=Stacy is wearing a short blue skirt over very tanned legs. With her frilly white blouse and red, yellow and pink bow in her blond hair she fits well with Skip.
&DESC_EDDIE Crazy Eddie=This man in his late 20's looks fairly dirty and almost painfully thin. His brown hair sticks off several in several directions and his eyes, when open do not seem to focus clearly without quiet some effort on Eddie's part. He wears a slightly dirty yellow t-shirt with a peace symbol on it and a beat up army jacket over that. His jeans are stained with greese in several places, but his hiking boots are very good quality and fairly new.
@set Crazy Eddie=NO_COMMAND
@set Crazy Eddie=PUPPET


@create Medical ID=5
&CNAME Medical ID=Samira Khan-Ramos
&CRANK Medical ID=Forensic Doctor and Police Pathologist
&USER Medical ID=#1310
&REALBADGE Medical ID=cheesepuffs
@set Medical ID=DARK
@set Medical ID=INHERIT
@parent Medical ID=Medical ID Parent


@create Blackjack Deck=10
@lock Blackjack Deck=*Amblin
&SHUFFLE Blackjack Deck=$shuffle cards:@pemit/contents here=%N begins shuffling the cards.;&deck #2432;@dolist lnum(52)={@wait [add(2,##)]={&deck #2432=[insert([get_eval(#2432/deck)],[add(1,[rand([words([get_eval(#2432/deck)])])])],##)]}};@wait 55=@pemit/contents here=%n finishes shuffling the cards.
&SETUP_PLAYERS Blackjack Deck=$setup *:@dolist lattr(#2432/player*)=&## #2432;@wait 1={&players #2432=[add(1,[words(%0,|)])];@pemit %#=[words(%0,|)] players are setup.;&player0 #2432=%#;@dolist [lnum([words(%0,|)])]=@wait ##={&player[add(1,##)] #2432=[num([extract(%0,[add(1,##)],1,|)])]}}
&DEAL_CARDS Blackjack Deck=$deal * cards:@switch [match(%#,[get_eval(#2432/player0)])]={@dolist lnum([get_Eval(#2432/players)])=@wait ##={&player##_cards #2432=extract(get_eval(#2432/deck),1,%0);@dolist lnum(%0)={&deck #2432=ldelete([get_eval(#2432/deck)],1)}};@wait 2=@dolist lnum(get_eval(#2432/players))=@wait [mul(2,##)]={@trig #2432/show_cards=[get_Eval(#2432/player##)],[get_eval(#2432/player##_cards)],##}}
&GIVE_CARDS Blackjack Deck=$hit *:@switch [match(%#,[get_eval(#2432/player0)])]={&player%0_cards #2432=[get_eval(#2432/player%0_cards)] [extract([get_eval(#2432/deck)],1,1)];@pemit/contents here=[fullname([get_eval(#2432/player%0)])] gets a card from %n.;@wait 1=@trig #2432/show_cards=[get_eval(#2432/player%0)],[get_eval(#2432/player%0_cards)],%0};@wait 1={&deck #2432=ldelete([get_eval(#2432/deck)],1)}
&LOOK_CARDS Blackjack Deck=$view cards:@dolist lattr(#2432/player*)={@switch match(%#,*[get_eval(#2432/##)]*)=0,,{@trig #2432/show_cards=%#,[get_eval(#2432/##_cards)],-2}}
&LIST_PLAYERS Blackjack Deck=$list players:@pemit %#=Those playing with [fullname(#2432)] are:%rDealer: [fullname([get_eval(#2432/player0)])]%r[iter(lnum([get_eval(#2432/players)]),[switch(##,0,,%r[space(8)][fullname([get_eval(#2432/player##)])])])]
&SHOW_CARDS Blackjack Deck=@pemit %0=[switch(%2,-2,You have,-3,You have been shown,[fullname([get_eval(me/player%2)])] has)] these cards:%r[iter(%1,%b/--------%\%b)]%r[iter(%1,%b|[rjust([switch([mod(##,13)],0,A,1,K,11,J,12,Q,13,A,14,K,24,J,25,Q,26,A,27,K,37,J,38,Q,39,A,40,K,[mod(##,13)])],2)]%b[get_eval(#2432/row2_[div(##,13)])]%|%b)]%r[iter(%1,%b|[get_eval(#2432/row3_[div(##,13)])]|%b)]%r[iter(%1,%b|[get_eval(#2432/row4_[div(##,13)])]|%b)]%r[iter(%1,%b|[get_eval(#2432/row5_[div(##,13)])]|%b)]%r[iter(%1,%b|[get_eval(#2432/row6_[div(##,13)])]|%b)]%r[iter(%1,%b%\--------/%b)]
&SHOW_ALL_CARDS Blackjack Deck=$show all cards:@switch [match(%#,[get_eval(#2432/player0)])]=0,,{@dolist lnum(get_eval(#2432/players))={@trig #2432/show_all_2=##}}
&SHOW_ALL_2 Blackjack Deck=@dolist lnum(get_eval(#2432/players))={@trig #2432/show_cards=[get_eval(#2432/player##)],[get_eval(#2432/player%0_cards)],%0}
&SHOW_SOMEONE Blackjack Deck=$show cards to *:@trig #2432/show_cards=%0,[iter(lnum(get_Eval(#2432/players)),[switch(match(%#,*[get_eval(#2432/player##)]*),0,,[get_eval(#2432/player##_cards)])])],-3;@pemit/contents here=%N shows [fullname(%0)] %p hand.
&ROW2_0 Blackjack Deck=/\\%b%b%b
&ROW2_1 Blackjack Deck=_%b%b_%b
&ROW2_2 Blackjack Deck=%b_%b%b%b
&ROW2_3 Blackjack Deck=%b/\\%b%b
&ROW3_0 Blackjack Deck=%b /%b \\%b%b
&ROW3_1 Blackjack Deck=%b / \\/ \\
&ROW3_2 Blackjack Deck=%b _( )_%b
&ROW3_3 Blackjack Deck=%b%b%b/ %b\\%b
&ROW4_0 Blackjack Deck=%b/%b%b%b%b\\%b
&ROW4_1 Blackjack Deck=%b \\ %b%b%b/
&ROW4_2 Blackjack Deck=%b(__ __)
&ROW4_3 Blackjack Deck=%b%b/%b%b%b%b\\
&ROW5_0 Blackjack Deck=%b%b\\/\\/%b%b
&ROW5_1 Blackjack Deck=%b%b%b\\%b%b/%b
&ROW5_2 Blackjack Deck=%b%b | |%b%b
&ROW5_3 Blackjack Deck=%b%b \\%b /%b
&ROW6_0 Blackjack Deck=%b%b%b||%b%b%b
&ROW6_1 Blackjack Deck=%b%b%b%b\\/%b%b
&ROW6_2 Blackjack Deck=%b%b%b%b%b%b%b%b
&ROW6_3 Blackjack Deck=%b%b%b \\/%b%b
&SHOW_CARDS_1 Blackjack Deck=$show cards:@dolist lnum([get_eval(#2432/players)])={@switch match(%#,*[get_eval(#2432/player##)]*)=0,,{&shower #2432=##}};@wait 1=@dolist lnum([get_Eval(me/players)])={@trig #2432/show_cards=[get_eval(#2432/player##)],[get_eval(#2432/player[get_eval(#2432/shower)]_cards)],-2)]}
&SHOWER Blackjack Deck=1
@Desc Blackjack Deck=This is a deck owned by: [fullname([get_eval(me/deck_owner)])]%r%rIt looks like a standard card deck with no visible markings. If you know anything about cards this is your standard casino deck. %r'Deckhelp' for help.
&DECK_OWNER Blackjack Deck=#445
&DECK_HELP Blackjack Deck=$deckhelp:@pemit %#=[center(Deck Help,60)]%r'view cards' shows you your cards.%r'show cards' shows everyone playing your cards.%r'show cards to *' shows your cards to the individual named *.%r'list players' lists all of the game players and the dealer.
&DECK_HELP_2 Blackjack Deck=$dealerhelp:@pemit %#=[center(Dealer Help,50)]%r'shuffle cards' to shuffle the cards.%r'setup *' sets up the players with names listed in * (eg. amblin|bob)%r'deal # cards' deal a certain number of cards.%r'hit #' gives player # a card.%r'show all cards' shows everyone all of the cards in each hand.
&AUTHOR Blackjack Deck=Amblin@ManyMU*
&PLAYERS Blackjack Deck=2
&PLAYER0 Blackjack Deck=#445
&PLAYER1 Blackjack Deck=#445
&PLAYER0_CARDS Blackjack Deck=28 5
&PLAYER1_CARDS Blackjack Deck=13 10
&DECK Blackjack Deck=13 43 4 23 21 5 36 26 1 15 47 34 19 38 2 18 8 20 24 29 16 17 22 50 27 12 49 3 44 35 48 37 11 10 7 45 25 46 9 31 41 30 42 33 14 6 40 32 39 51 28 0


@create Chess Parent=55
@Desc Chess Parent=[repeat(=,78)]%rThis is the classic game of chess.%b%bThe commands on how to use it can be shown by using this game.%b%bThe game itself is too difficult to explain in this short description.%b%bAny good library covers the rules of chess.%r[repeat(=,78)]
@Use Chess Parent=%r[center(!Chess!,78)]%r%r%tRESETC%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%bWill reset the game for another play.%r%tBEGINC <person>%b%b%b%b%b%b%b%b%b%b%b%b%b%b%bWill begin a game with <person>.%r%tMOVEC <move>%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%bWill move as specified by <move>.%r%tREMOVEC <position>%b%b%b%b%b%b%b%b%b%b%b%bWill remove the piece at <position>.%r%tPLACEC <piece> at <position>%b%bWill place <piece> at <position>%r%tDISPC%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%bWill display the board.%r%tWATCHC%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%b%bWill watch the game.%r%r%tExamples: <position> = A1, <move> = A1-A2, <piece> = WR%r
&REM-0 Chess Parent=========== Commands ==========
&RESET-C Chess Parent=$resetc:@wait me={@emit --- [name(me)] reset by %n ---;&last-player me;&last-move me;&board me=[v(null)];&playing me;&watchers me;@notify me}
&BEGIN-C Chess Parent=$beginc *:@wait me={@select [u(can-begin,%#,%0)]=,{@emit --- [name(me)] begun by %n with [name(%0)].%b%bType WATCHC to watch. ---;&last-player me;&last-move me;&board me=[v(null)];&playing me=[setunion(num(%0),%#)];&watchers me=[setunion(num(%0),%#)];@tr me/status},{@pemit %#=[u(can-begin,%#,%0)];@notify me}}
&DISP-C Chess Parent=$dispc:@pemit %#=[u(fulldisp,Last Move: [v(last-move)],Last Player: [name(v(last-player))])]
&MOVE-C Chess Parent=$movec *:@wait me={@select [u(can-move,%#,%0)]=,{&board me=[u(make-move,v(board),%0)];&last-player me=%#;&last-move me=[ucstr(%0)];@tr me/status},{@pemit %#=[u(can-move,%#,%0)];@notify me}}
&REMOVE-C Chess Parent=$removec *:@wait me={@select [u(can-remove,%#,%0)]=,{&board me=[u(make-remove,v(board),%0)];&last-player me=%#;&last-move me=REMOVE [ucstr(%0)];@tr me/status},{@pemit %#=[u(can-remove,%#,%0)];@notify me}}
&PLACE-C Chess Parent=$placec * at *:@wait me={@select [u(can-place,%#,%0,%1)]=,{&board me=[u(make-place,v(board),%0,%1)];&last-player me=%#;&last-move me=PLACE [ucstr(%0)] AT [ucstr(%1)];@tr me/status},{@pemit %#=[u(can-place,%#,%0,%1)];@notify me}}
&WATCH-C Chess Parent=$watchc:@wait me={&watchers me=[setunion(v(watchers),%#)];@emit --- %N is now watching [name(me)] ---;@notify me}
&STATUS Chess Parent=@dolist [v(watchers)]=@pemit ##=[u(fulldisp,Last Move: [v(last-move)],Last Player: [name(v(last-player))])];@notify me
&REM-1 Chess Parent=========== Validity Checks ==========
&CAN-BEGIN Chess Parent=[switch(1,gt(words(v(playing)),0),--- Someone is playing at the moment ---,strmatch(num(%1),#-1*),--- There is noone here named '%1' ---)]
&CAN-MOVE Chess Parent=[switch(1,eq(match(v(playing),%0),0),--- You are not playing ---,not(u(valid-move,%1)),--- [ucstr(%1)] is an invalid move ---)]
&CAN-REMOVE Chess Parent=[switch(1,eq(match(v(playing),%0),0),--- You are not playing ---,not(u(valid-position,%1)),--- [ucstr(%1)] is an invalid position ---)]
&CAN-PLACE Chess Parent=[switch(1,eq(match(v(playing),%0),0),--- You are not playing ---,eq(match(v(pieces),%1),0),--- [ucstr(%1)] is not a valid piece. ---%r--- Valid pieces are: [v(pieces)] ---,not(u(valid-position,%2)),--- [ucstr(%2)] is an invalid position ---)]
&VALID-MOVE Chess Parent=[switch(1,not(u(valid-position,mid(%0,0,2))),0,not(u(valid-position,mid(%0,3,2))),0,not(strmatch(mid(%0,2,1),-)),0,eq(strlen(%0),5))]
&VALID-POSITION Chess Parent=[switch(1,eq(match(v(rows),mid(%0,0,1)),0),0,eq(match(v(columns),mid(%0,1,1)),0),0,eq(strlen(%0),2))]
&REM-2 Chess Parent=========== Board Manipulations ==========
&MAKE-MOVE Chess Parent=[u(make-move-0,%0,u(get-x,mid(%1,0,2)),u(get-y,mid(%1,0,2)),u(get-x,mid(%1,3,2)),u(get-y,mid(%1,3,2)))]
&MAKE-MOVE-0 Chess Parent=[setq(0,u(at-coor,%0,%1,%2))][u(replace,u(replace,%0,%3,%4,r(0)),%1,%2,--)]
&MAKE-REMOVE Chess Parent=[u(replace,%0,u(get-x,%1),u(get-y,%1),--)]
&MAKE-PLACE Chess Parent=[u(replace,%0,u(get-x,%2),u(get-y,%2),%1)]
&REM-3 Chess Parent=========== Display ==========
&FULLDISP Chess Parent=--- %0 ---%r[u(disp)]%r--- %1 ---
&DISP Chess Parent=[u(top)]%r[u(line,7)]%r[u(mid)]%r[u(line,6)]%r[u(mid)]%r[u(line,5)]%r[u(mid)]%r[u(line,4)]%r[u(mid)]%r[u(line,3)]%r[u(mid)]%r[u(line,2)]%r[u(mid)]%r[u(line,1)]%r[u(mid)]%r[u(line,0)]%r[u(bottom)]%r[u(numbers)]
&LINE Chess Parent=[space(25)][extract(v(rows),add(%0,1),1)] |%b[setq(0,extract(v(board),add(%0,1),1))][iter(lnum(8),[setq(1,mid(r(0),mul(##,2),2))][switch(r(1),--,%b%b,r(1))]|)]
&TOP Chess Parent=[space(27)]+---+---+---+---+---+---+---+---+
&MID Chess Parent=[space(27)]+---+---+---+---+---+---+---+---+
&BOTTOM Chess Parent=[space(27)]+---+---+---+---+---+---+---+---+
&NUMBERS Chess Parent=[space(27)][iter(v(columns),%b%b##)]
&REM-4 Chess Parent=========== Low-Level Functions ==========
&REPLACE Chess Parent=[mid(%0,0,u(locate,%1,%2))][ucstr(%3)][mid(%0,add(u(locate,%1,%2),2),sub(strlen(%0),add(u(locate,%1,%2),2)))]
&AT-COOR Chess Parent=[mid(%0,u(locate,%1,%2),2)]
&LOCATE Chess Parent=[add(mul(%0,2),mul(%1,17))]
&GET-X Chess Parent=[sub(match(v(columns),mid(%0,1,1)),1)]
&GET-Y Chess Parent=[sub(match(v(rows),mid(%0,0,1)),1)]
&REM-5 Chess Parent=========== Data ==========
&BOARD Chess Parent=WRWNWBWQWKWBWNWR WPWPWPWPWPWPWPWP ---------------- ---------------- ---------------- ---------------- BPBPBPBPBPBPBPBP BRBNBBBQBKBBBNBR
&NULL Chess Parent=WRWNWBWQWKWBWNWR WPWPWPWPWPWPWPWP ---------------- ---------------- ---------------- ---------------- BPBPBPBPBPBPBPBP BRBNBBBQBKBBBNBR
&ROWS Chess Parent=A B C D E F G H
&COLUMNS Chess Parent=1 2 3 4 5 6 7 8
&PIECES Chess Parent=BK BQ BB BN BR BP WK WQ WB WN WR WP
&PDB Chess Parent=#2750
@set Chess Parent=NO_COMMAND
@set Chess Parent=HALTED


@create Dumpster=10
@lock Dumpster=*Piouhgd
@set Dumpster=NO_COMMAND
@set Dumpster=ENTER_OK
@parent Dumpster=Dumpster


@create Dumpster=10
@lock Dumpster=*Piouhgd
@set Dumpster=NO_COMMAND
@set Dumpster=ENTER_OK
@set Dumpster=HALTED
@parent Dumpster=Dumpster


@create Global Rumor Object <GRO>=10
@lock Global Rumor Object <GRO>=*Taffy
@Startup Global Rumor Object <GRO>=@drain me;@notify me;@tr me/start-update
&HAHA-CMD Global Rumor Object <GRO>=$+rumour*:@pemit %#=It's spelled +rumor. :)
&ARENAS-CMD Global Rumor Object <GRO>=$+rumor/arenas:@pemit %#=[setq(0,or(hasaccess(%#,RUMOR),stat(%#,city-secrets)))][ljust(%chArena:%cn,20)]%chAbilities Used:%cn[iter(switch(%q0,0,filter(see_arena,v(arenas),|),v(arenas)),%r[ljust(before(##,:),20)][after(##,:)],|)]
&WRITE-CMD Global Rumor Object <GRO>=$+rumor/start *=*:@wait me=@swi/first [setq(0,grab(v(arenas),%0:*,|))]1=not(strmatch(icstatus(%#),ic)),{@pemit %#=You can only use +rumor when IC.;@notify me},strmatch(%q0,),{@pemit %#=%0 is not a valid arena. Use: +rumor/arenas to get a list of valid arenas.;@notify me},[ifelse(u(arena_[before(%q0,:)],%#),0,lte(setr(1,maxstat(after(%q0,:))),0))],{@pemit %#=You don't know anything about [after(%q0,:)].;@notify me},[setq(1,u(fn_roll,add(stat(%#,charisma),%q1),7))][eq(%q1,0)],{@pemit %#=You just couldn't get anyone interested in your rumor.;@notify me},{@vt me=[u(nextnum,%VD)];&INFO-%VT %VD=%q1|%#|[convtime(vtime())]|[before(%q0,:)]|[edit(%1,|,%b)];&TRACE-%VT %VD=||;&OLDTRACE-%VT %VD=||;&READERS-%VT %VD=%#;&INDEX %VD=[trim(setunion(get(%VD/INDEX),%VT))];@pemit %#=Your rumor has been started as rumor number %vt.;@notify me}
&SPREAD-CMD Global Rumor Object <GRO>=$+rumor/spread *:@wait me=@swi/first 1=not(strmatch(icstatus(%#),ic)),{@pemit %#=You can only use +rumor when IC.;@notify me},eq(member(get(%VD/readers-%0),%#),0),{@pemit %#=You haven't heard any such rumor.;@notify me},neq(member(first(get(%VD/trace-%0),|),%#),0),{@pemit %#=You've already done all you can to spread that rumor.;@notify me},[setq(0,grab(v(arenas),[extract(get(%VD/info-%0),4,1,|)]:*,|))][ifelse(u(arena_[before(%q0,:)],%#),0,lte(setr(1,maxstat(after(%q0,:))),0))],{@pemit %#=You don't know anything about [after(%q0,:)].;@notify me},{&TRACE-%0 %VD=[trim(setunion(first(get(%vd/trace-%vt),|),%#))]|[rest(get(%vd/trace-%vt),|)];@swi [lte(setr(1,u(fn_roll,add(stat(%#,charisma),%q1),6)),0)]=1,{@pemit %#=You just couldn't get anyone to listen to you.;@notify me},{@pemit %#=You spread the rumor.;&INFO-%0 %VD=[u(addroll,get(%vd/info-%0),%q1)];@notify me}}
&QUASH-CMD Global Rumor Object <GRO>=$+rumor/quash *:@wait me=@swi/first 1=not(strmatch(icstatus(%#),ic)),{@pemit %#=You can only use +rumor when IC.;@notify me},eq(member(get(%VD/readers-%0),%#),0),{@pemit %#=You haven't heard any such rumor.;@notify me},neq(member(first(rest(get(%VD/trace-%0),|),|),%#),0),{@pemit %#=You've already done all you can to quash that rumor.;@notify me},[setq(0,grab(v(arenas),[extract(get(%VD/info-%0),4,1,|)]:*,|))][ifelse(u(arena_[before(%q0,:)],%#),0,lte(setr(1,maxstat(after(%q0,:))),0))],{@pemit %#=You don't know anything about [after(%q0,:)].;@notify me},[setq(1,u(fn_roll,add(stat(%#,charisma),%q1),8))][eq(%q1,0)],{@pemit %#=You just couldn't get anyone to listen to you.;@notify me},{@pemit %#=You quash the rumor.;&TRACE-%0 %VD=[first(get(%vd/trace-%0),|)]|[trim(setunion(extract(get(%vd/trace-%0),2,1,|),%#))]|[rest(rest(get(%vd/trace-%0),|),|)];@swi/first 1=lt(%q1,0),{@notify me},lt(%q1,abs(first(get(%vd/info-%0),|))),{&INFO-%0 %VD=[u(addroll,get(%vd/info-%0),-%q1)];@notify me},{&INFO-%0 %VD=[sign(first(get(%vd/info-%0),|))]|[rest(get(%vd/info-%0),|)];@notify me}}
&INVESTIGATE-CMD Global Rumor Object <GRO>=$+rumor/investigate *:@wait me=@swi/first 1=not(strmatch(icstatus(%#),ic)),{@pemit %#=You can only use +rumor when IC.;@notify me},eq(member(get(%VD/readers-%0),%#),0),{@pemit %#=You haven't heard any such rumor.;@notify me},neq(member(extract(get(%VD/trace-%0),3,1,|),%#),0),{ @pemit %#=You've already done all you can to investigate that rumor.;@notify me},[setq(0,u(fn_roll,add(stat(%#,perception),max(stat(%#,investigation),stat(%#,city-secrets))),8))][eq(%q0,0)],{@pemit %#=You just couldn't figure anything out about that.;@notify me},{@pemit %#=You investigate the rumor.;&TRACE-%0 %VD=[extract(get(%vd/trace-%0),1,2,|)]|[trim(setunion(extract(get(%vd/trace-%0),3,1,|),%#))];@swi gt(%q0,0)=1,{@pemit %#=You find out that...[u(investigate,trace-%0,1,subterfuge,6,spread the rumor recently.)][u(investigate,trace-%0,2,subterfuge,6,tried to quash the rumor recently.)][u(investigate,trace-%0,3,investigation,8,investigated the rumor recently.)][u(investigate,oldtrace-%0,1,subterfuge,3,spread the rumor a few days ago.)][u(investigate,oldtrace-%0,2,subterfuge,4,tried to quash the rumor a few days ago.)][u(investigate,oldtrace-%0,3,investigation,6,investigated the rumor a few days ago.)][switch(get(%vd/info-%0),*|#-1|*,,u(investigate,info-%0,2,subterfuge,3,started the rumor.))]%rThat's all.;@notify me},{@pemit %#=You find out that...;@pemit %#=[setq(0,vwho())][name(extract(%q0,add(rand(words(%q0)),1),1))] started the rumor.%rThat's all.;@notify me}}
&RUMOR-CMD Global Rumor Object <GRO>=$+rumor:@wait me=@swi icstatus(%#)=ic,{@pemit %#=You previously heard the following rumors that still seem to be circulating:%r%t[setq(0,filter(read,get(%vd/index)))]%q0;@swi [gt(sub(convtime(vtime()),get(%#/LAST-RUMOR)),get(%VD/TIME-LIMIT))]=1,{@pemit %#=%r%rYou hear the following new rumors:[setq(1,stat(%#,perception))][setq(0,setdiff(get(%vd/index),%q0))];@vt me=;@dolist [lnum(div(add(words(%q0),3),4))]={@pemit %#=[setq(2,filter(heard,extract(%q0,add(mul(##,4),1),4)))][u(showrumour,%q2)];@vt me=%vt %q2};@tr me/mark_read=%#},@notify me;&LAST-RUMOR %#=convtime(vtime());},{@pemit %#=You can only use +rumor when IC.;@notify me}
&SHOW-CMD Global Rumor Object <GRO>=$+rumor/show *:@swi/first 1=not(strmatch(icstatus(%#),ic)),{@pemit %#=You can only use +rumor when IC.;},[setq(9,setdiff(filter(read,%0),))][strmatch(%q9,)],{@pemit %#=You have heard no rumors that match those numbers.},{@pemit %#=Rumors:%r[u(showrumour,%q9)];@swi [setq(6,setdiff(%0,%q9))]%q6=,,{@pemit %#=You have not heard the following rumors: %q6}}
&LIST-CMD Global Rumor Object <GRO>=$+rumor/list:@swi hasaccess(%#,RUMOR)=1,{@pemit %#=The following rumors are circulating:;@dolist [setq(0,get(%vd/index))][lnum(div(add(words(%q0),3),4))]={@pemit %#=[u(showrumour,extract(%q0,add(mul(##,4),1),4))]};@fo me=@pemit %#=That's all the rumors.},{@pemit %#=Permission denied.}
&TRACE-CMD Global Rumor Object <GRO>=$+rumor/trace *:@swi/first 1=not(hasaccess(%#,RUMOR)),{@pemit %#=Permission denied.},not(member(get(%vd/index),%0)),{@pemit %#=No such rumor. Check +rumor/index.},{@pemit %#=Rumor trace..%r[u(showrumour,%0)]%rStarted by: [setq(0,extract(get(%vd/info-%0),2,1,|))][switch(%q0,#-1,Anonymous,name(%q0))]%rStarted at: [convsecs(extract(get(%vd/info-%0),3,1,|))]%rStrength: [extract(get(%vd/info-%0),1,1,|)][switch(hasflag(%vd/info-%0,locked),1,*** This rumor is locked and cannot change strength until unlocked ***)][u(namelist,trace-%0,1,Recently spread by)][u(namelist,trace-%0,2,Recently quashed by)][u(namelist,trace-%0,3,Recently Investigated by)][u(namelist,oldtrace-%0,1,Previously spread by)][u(namelist,oldtrace-%0,2,Previously quashed by)][u(namelist,oldtrace-%0,3,Previously investigated by)]}
&INDEX-CMD Global Rumor Object <GRO>=$+rumor/index:@swi hasaccess(%#,RUMOR)=1,{@pemit %#=The following rumors are circulating: [get(%vd/index)]},{@pemit %#=Permission denied.}
&DELETE-CMD Global Rumor Object <GRO>=$+rumor/delete *:@wait me=@swi/first 1=not(hasaccess(%#,RUMOR)),{@pemit %#=Permission denied.;@notify me},not(member(get(%vd/index),%0)),{@pemit %#=No such rumor. Check +rumor/index.;@notify me},{@unlock %VD/INFO-%0;&INFO-%0 %VD=;&TRACE-%0 %VD=;&OLDTRACE-%0 %VD=;&READERS-%0 %VD=;&INDEX %VD=[remove(get(%vd/index),%0)]; @pemit %#=Deleted.;@notify me}
&INSERT-CMD Global Rumor Object <GRO>=$+rumor/insert */*=*:@wait me=@swi/first 1=not(hasaccess(%#,RUMOR)),{@pemit %#=Permission denied.;@notify me},[setq(0,grab(v(arenas),%0:*,|))][strmatch(%q0,)],{@pemit %#=%0 is not a valid arena. Use: +rumor/arenas to get a list of valid arenas.;@notify me},or(lt(%1,1),gt(%1,10)),{@pemit %#=Usage: +rumor/insert <arena>/<strength>=<rumor>;@notify me},{@vt me=[u(nextnum,%VD)];&INFO-%VT %VD=%1|#-1|[convtime(vtime())]|[before(%q0,:)]|[edit(%2,|,%b)];&TRACE-%VT %VD=||;&OLDTRACE-%VT %VD=||;&READERS-%VT %VD=%#;&INDEX %VD=[trim(setunion(get(%VD/INDEX),%VT))];@pemit %#=Your rumor has been started as rumor number %vt.;@notify me}
&LOCK-CMD Global Rumor Object <GRO>=$+rumor/lock *:@wait me=@swi/first 1=not(hasaccess(%#,RUMOR)),{@pemit %#=Permission denied.;@notify me},not(member(get(%vd/index),%0)),{@pemit %#=No such rumor. Check +rumor/index.;@notify me},{@lock %VD/INFO-%0;@pemit %#=Locked.;@notify me}
&UNLOCK-CMD Global Rumor Object <GRO>=$+rumor/unlock *:@wait me=@swi/first 1=not(hasaccess(%#,RUMOR)),{@pemit %#=Permission denied.;@notify me},not(member(get(%vd/index),%0)),{@pemit %#=No such rumor. Check +rumor/index.;@notify me},{@unlock %VD/INFO-%0;@pemit %#=Unlocked.;@notify me}
@VD Global Rumor Object <GRO>=#3600
@VT Global Rumor Object <GRO>=
@set Global Rumor Object <GRO>=INHERIT
@set Global Rumor Object <GRO>=SAFE
@parent Global Rumor Object <GRO>=Rumor Function Object <RFO>


@create APB Board=5
&DO_APB2 APB Board=$+apb *:@pemit %#=[u(line1)]%r[u(line1)]%r[u(me/apb_%0)]%r[u(line2)];@oemit %#=%N checks out a specific APB.
&ADD APB Board=$+addapb *=*:&Apb_%0 apb=%1%r%r[space(10)]Posted by %N on [time()];@oemit %#=%N adds an APB to the APB Board.
&REM APB Board=$+remapb *:@oemit %#=%n removes an APB from the board.;@pemit %#=You remove %0's APB from the Board.;&Apb_%0 apb=
@Desc APB Board=%r%r[repeat(+-,39)]%r[center(APB BOARD,78)]%r[repeat(_,78)]%r%r%t+apb%t%t%t-shows you the list of APBs%r%t+apb (name)%t%t-shows you that specific APB%r%t+addapb (name)=(text)%t-posts that APB with that name and text%r%r%r*Note* to signify a description of the suspect when adding a name to the board, do this +addapb Desc-(name)=(text) %r%r-Don't use any spaces in the name when adding to the board or it won't work. -The text can have spaces and use substitutions.%r%r[repeat(+-,39)]
&APB_ET APB Board=Mindless monster.

Posted by English Toffee
&DO_APB APB Board=$+apb:@pemit %#=[u(line1)]%r[center(ALL POINTS BULLETINS,78)]%r[u(line2)];@dolist [lattr(me/apb_*)]=@pemit %#=[ljust([capstr(lcstr([extract(##,2,10,_)]))],15)];@oemit %#=%n checks out the APB Board.
&APB_COCO APB Board=Ruthless Cortier

Posted by English Toffee
&LINE1 APB Board=[repeat(-=,39)]
&LINE2 APB Board=[repeat(--,39)]
&APB_CHANG_LI APB Board=An asian male 5'6" to 5'8" wearing a headband and a tee shirt with possibly a ying yang symbol upon it, going by the possible name of Chang Li, is wanted in the possible murder of Rex.

Posted by Gobstopper on Wed Jun 12 21:34:59 1996




@create PBS=10
&INSIDE PBS=[comp(%!,%l)]
&UMBRA_OK PBS=[switch(get_eval(%0/IN_UMBRA),,0,1)]
&U_OBJLIST PBS=[iter(u(U_OBJS),%r[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])])]
&U_OBJS PBS=[filter(UMBRA_OK,remove(lcon(here),%!))]
&U_EXITLIST PBS=[iter([iter(lexits(here),[switch(hasflag(##,dark),1,,{[name(##)]%b})])],##)]
&DO_UGO PBS=$UGO *:@sel locate(%!,%0,ce)=#-*,{@pemit %#=Can't locate that exit.},{@pemit/contents/list [u(U_OBJS)]=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][u(%0/osucc)]%r[setq(1,u(%0/odrop))][switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] has left.;move/quiet %0;@pemit/contents %!=[get_eval(%!/IDESC)];@pemit/contents/list [u(U_OBJS)]=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] [r(1)]%r[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] has arrived.}
&DESC_UMBRA PBS=[iter(revwords(lcon(%!)),%r[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])]: [get_eval(##/DESC_UMBRA)])]
&NAME_UMBRA PBS=[iter(revwords(lcon(%!)),[switch([setq(0,get_eval(##/NAME_UMBRA))][r(0)],,[name(##)],[r(0)])]%b)]
&DO_UHELP PBS=$UHELP:@pemit %#=[get_eval(%!/UHELP)]
&UHELP PBS=[center(| %ch%ccUmbra Help%cn |,79,=)]%r%b%b%chugo <direction>%cn -- Travels in specified <direction>%r%b%b%chll <object>%cn[space(5)]-- Look at an object in the umbra.%r%b%b%chleave%cn[space(11)]-- Leave the umbra at this location.%r%b%b%ch.<text>%cn[space(9)]-- Say <text> in the umbra.%r%b%b%ch.:<text>%cn[space(8)]-- Pose <text> in the umbra.%r%b%b%ch.;<text>%cn[space(8)]-- Pose with no space.%r%b%b%chpeer%cn[space(12)]-- Peer into the real world.%r%b%b%ch+umbra%cn[space(10)]-- Step into the umbra.%r[repeat(=,79)]
@Aenter PBS=@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] enters the Umbra at this location.
@Desc PBS=Nothing is here. Please react accordingly.
@Aleave PBS=&in_umbra %!=;@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])] leaves the Umbra at this location.;@tel me=*%#
@Idesc PBS=[name(loc(me))]%r[u(loc(me)/desc_umbra)]%rContents:[u(u_objlist)]%r[u(u_exitlist)]
&LL PBS=$ll *:@pemit %#=[iter(lcon(here),switch(member(trim(ucstr(get_eval(##/name_umbra))),ucstr(%0),|),1,[u(##/desc_umbra)]))]
&DO_USAY2 PBS=$.*:@dolist [u(u_objs)]=@pemit/contents ##=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][setq(0,trim(%0))][switch(mid(r(0),0,1),:,{%b[mid(r(0),1,strlen(r(0)))]},;,{[mid(r(0),1,strlen(r(0)))]},{%bsays "[r(0)]"})];@pemit %#=[switch([setq(0,get_eval(%#/NAME_UMBRA))][r(0)],,[name(%#)],[r(0)])][setq(0,trim(%0))][switch(mid(r(0),0,1),:,{%b[mid(r(0),1,strlen(r(0)))]},;,{[mid(r(0),1,strlen(r(0)))]},{%bsays "[r(0)]"})]
&GO_UMBRA PBS=$+umbra:@switch %#=[u(user)],{&in_umbra %!=Yes;@pemit %#=You step sideways into the umbra.;@tel me=loc(%#);@tel %#=me}
&PEER PBS=$peer:@pemit %#=[name(loc(me))]%r[u(loc(me)/desc)]%rContents:%r[setq(1,filter(#2202/cont,lcon(loc(me))))][iter(%q1,[name(##)]%r)]%r[u(u_exitlist)]
@Adesc PBS=@switch %#=[u(user)],{@pemit %#=Type 'uhelp' for help.}
&CHIP_MSG PBS=[not(or(hasflag(%0,dark),and(hasflag(%0,player),not(hasflag(%0,connected)))))]
&USER PBS=#992
&LOCKER PBS=[comp(%#,[u(user)])]
@lock/UseLock PBS=LOCKER/0
@set PBS=DARK
@set PBS=INHERIT
@set PBS=OPAQUE
@set PBS=QUIET
@set PBS=SAFE
@set PBS=SILENT




@create Fair Maiden=10
@lock Fair Maiden=*BoatBLDR
@lock/UseLock Fair Maiden=INLOCK/0
@lock/EnterLock Fair Maiden=FULL/0
@Listen Fair Maiden=*
&OWNER Fair Maiden=#779
&ALLOWUSERS Fair Maiden=#779
&LOCKUSE Fair Maiden=1
&CHART_OK Fair Maiden=1
&DOCKED Fair Maiden=Yes
&SEATS Fair Maiden=10
&INTERIOR Fair Maiden=This is the upper deck of the Fair Maiden, a 50-foot power boat. As you glance around, you can see that this vessel has been outfitted for just about everything a charter service could need. Pylons have been welded to the stern to support deep-sea fishing rods, a wooden-slat platform hangs aft for depositing and recovering divers, and a telescope is mounted on either side - though currently stowed - for catching the stray dolphin or even a whale. Looking up, a raised platform and canopy houses the vessel's controls, and as you look towards the bow, you can see the inside of the Fair Maiden's cabin. Though you can't see all of the details, it appears to be nicely-decorated and includes several sets of comfortable seats and a semi-stocked bar. Now if you'll all just take your seats, we'll get under way.
@Desc Fair Maiden=You see before you the Fair Maiden, the one and only boat of Exotic Coast Charters. Its white hull almost gleams, though you can tell from the trim patterns that it might be more than a few years old. Wooden trim is placed in strategic locations along the hull and main cabin, and makes the vessel look quite comfortable. Along the stern you can make out pylons for fishing rods and a platform for diver revoery, as well as a raised wheelhouse standing high above it all.
@set Fair Maiden=QUIET
@set Fair Maiden=AUDIBLE
@set Fair Maiden=ENTER_OK
@set Fair Maiden=MYOPIC
@set Fair Maiden=TRANSPARENT
@parent Fair Maiden=Boat Parent