CAT - Quick reference 

======================



<The following tokens are available to define objects:



   @OBJ name

   @OBJACT

   @OBJCMD

   @OBJDOOR roomname1,roomname2

   @OBJDRINK val

   @OBJEAT val

   @OBJHIDE

   @OBJINRM roomname

   @OBJKEY objname

   @OBJLCK open/closed/locked

   @OBJLGT

   @OBJLIT

   @OBJLNG text

   @OBJNGT

   @OBJPLR

   @OBJPNT val

   @OBJPORTAL roomname

   @OBJREAD msgname

   @OBJROOM roomname

   @OBJSHT text

   @OBJSTR val

   @OBJSYN synname..

   @OBJVAL val

   @OBJWEAR

   @OBJWGT val

   @OBJWORN

   @ENDOBJ



<The following tokens are available to define rooms:



   @ROOM name

   @ROOMDRK

   @ROOMLNG text

   @ROOMPNT val

   @ROOMPTH verbname,roomname..

   @ROOMSHT text

   @ENDROOM



<The following tokens are available to define verbs:



   @VERB name

   @VERBCHK type

   @VERBLGT

   @VERBPREP

   @VERBSYN synname..

   @ENDVERB



<The following tokens can be used in conjuction with logic comparison tokens to 

 affect the flow of CAT logic.



   @INIT

   @LOW

   @HIGH

   @IF

   @ELSE

   @ENDIF

   @WHILE

   @WEND

   @DO

   @LC



<The following tokens can be used to return values to CAT logic:



   Available in any logic mode

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

   @CARRIED_WEIGHT(obj)

   @COUNT(cnt)

   @CPLAYER 

   @FIRSTOB(room)

   @LASTOB(room)

   @LOCKTYPE(obj)

   @MSGNO(msg)

   @OBJINRM(obj)

   @OBJKEY(obj)

   @OBJLCK(obj)

   @OBJNO(obj)

   @OBJRM(obj)

   @PLAYER

   @POINTS(obj)

   @RANDOM(x)

   @ROOMNO(room)

   @SCORE 

   @SIZE(obj)

   @STRENGTH(obj)

   @THISROOM

   @TURNS 

   @VALUE(obj)

   @VERBPATH(verb)

   @WEIGHT(obj)

   

   Low priority logic only

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

   @THISCOBJ 

   @THISCVERB

   @THISOBJ 

   @THISVERB



<The following tokens can be used to perform TRUE/FALSE tests in CAT logic.



   Available in any logic mode

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

   @CHECK(C,L,obj)

   @CONFIRM

   @CPLAYERIS(obj)

   @ISACTIVE(obj)

   @ISAVAIL(obj)

   @ISBOX(obj)

   @ISCARRIED(obj)

   @ISCARRIEDANY(obj)

   @ISCARRIEDBY(obja,objb)

   @ISCLOSED(obj)

   @ISCOMMANDABLE(obj)

   @ISDARK

   @ISDRINKABLE(obj)

   @ISEDIBLE(obj)

   @ISEXIT(obj)

   @ISHERE(obj)

   @ISHIDDEN(obj)

   @ISIN(obja,objb)

   @ISLIGHT(obj)

   @ISLIT(obj)

   @ISLOCKED(obj)

   @ISMOVABLE(obj)

   @ISOPEN(obj)

   @ISPATH(verb)

   @ISPLAYER(obj)

   @ISREADABLE(obj)

   @ISWEARABLE(obj)

   @ISWITH(obja,objb)

   @ISWORN(obj)

   @ISWORNANY(obj)

   @ISWORNBY(obja,objb)

   @OBJHASL(obj)

   @OBJROOMIS(room,obj)

   @PLAYERIS(obj)

   @ROOMIS(room)

   

   Low priority logic only

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

   @CNOUNIS("text")

   @CNOUNNOIS(obj)

   @CVERBIS("text")

   @CVERBNOIS(verb)

   @ISCOMPOUND

   @NOUNIS("text")

   @NOUNNOIS(obj)

   @VERBIS("text")

   @VERBNOIS(verb)



<The following can be used to compare values returned by CAT logic, in 

 conjunction with logic control tokens:



 	Equals				EQ		==

     	Does not equal			NE		!=

	Is less than 			LT		<

 	Is less than or equal to 	LE		<=

	Is greater than			GT		>

	Is greater than or equal to 	GE		>=

	Or				OR		||

	And				AND		&&

	Not				NOT		!



 Whenever you use NOT, you should protect the condition with ( and ).

 i.e. @IF (NOT @PLAYERIS(BOB)) @DO



<The following tokens can be used to instruct CAT logic to perform a task:



   Available in any logic mode

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

   @ADDCOMMAND(obj)

   @ADDCOUNT(cnt,val)

   @ADDPLAYER(obj)

   @ADDPOINTS(obj,val)

   @ADDSTRENGTH(obj,val)

   @ADDVALUE(obj,val)

   @ADDWEIGHT(obj,val)

   @BECOME(obj)

   @BRIEF

   @CLOSE(obj)

   @CONTROL(obj)

   @DRINK(obj)

   @DROP(obj)

   @EAT(obj)

   @ENDCHAR('c')

   @ENDGAME

   @ENTER(obj)

   @GET(obj)

   @GOTO(room)

   @HIDE(obj)

   @INVENTORY

   @KILL(obj)

   @LF

   @LIGHT(obj)

   @LOAD

   @LOCK(obj)

   @LOOK

   @MAKEDARK(room)

   @MAKELIGHT(room)

   @NEWLINE

   @OPEN(obj)

   @PAUSE(sec)

   @PCONTENTS(obj)

   @PEXITS

   @PMSG(msg)

   @POBJL(obj)

   @POBJS(obj)

   @PROOML(room)

   @PROOMS(room)

   @PNUM(val)

   @READ(obj)

   @REMOVE(obj)

   @REMOVECOMMAND(obj)

   @REMOVEPLAYER(obj)

   @REVIVE(obj)

   @SAVE

   @SCRIPT

   @SETCOUNT(cnt,val)

   @SETPOINTS(obj,val)

   @SETSTRENGTH(obj,val)

   @SETVALUE(obj,val)

   @SETWEIGHT(obj,val)

   @SUBCOUNT(cnt,val)

   @SUBPOINTS(obj,val)

   @SUBSTRENGTH(obj,val)

   @SUBVALUE(obj,val)

   @SUBWEIGHT(obj,val)

   @SWAP(obja,objb)

   @TOROOM(room,obj)

   @UNHIDE(obj)

   @UNLIGHT(obj)

   @UNLOCK(obj)

   @UNSCRIPT

   @VERBOSE

   @VOCAB

   @WAITKEY

   @WEAR(obj)

   @WHOAMI



   Low priority logic only

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

   @CONT

   @FVERB("text")

   @STOP





