Replies: 5 comments
-
<ROUTINE VISIBLE? (OBJ "AUX" P M PL)
<TELL "VISIBLE?" CR>
<COND
(<=? .OBJ ,PSEUDO-OBJECT>
<RETURN <=? ,HERE ,PSEUDO-LOC>>)>
<SET P <LOC .OBJ>>
<COND
(<0? .P>
<RFALSE>)>
<SET M <META-LOC .OBJ>>
<SET PL <LOC ,WINNER>> ;"Get player's container if any"
<COND
(<NOT <=? .M ,HERE>>
<COND
(<AND .PL ;"If player is in something"
<TELL "IN SOMETHING" CR>
<OR <FSET? .PL ,TRANSBIT>
<FSET? .PL ,OPENBIT>
<FSET? .PL ,SURFACEBIT>>
<=? .M .PL>>
<RTRUE>) ;"Can see into player's container"
(<OR <AND <=? .P ,LOCAL-GLOBALS> <GLOBAL-IN? .OBJ ,HERE>>
<=? .P ,GLOBAL-OBJECTS ,GENERIC-OBJECTS>>
<RTRUE>)
(ELSE
<RFALSE>)>)>
<REPEAT ()
<COND
(<EQUAL? .P ,HERE ,WINNER>
<RTRUE>)
(<NOT <SEE-INSIDE? .P>>
<RFALSE>)
(ELSE
<SET P <LOC .P>>)>>>
;"TODO - Check out UNTOUCHABLE? instead!!!"
<ROUTINE ACCESSIBLE? (OBJ "AUX" L PL)
<TELL "ACCESSIBLE?" CR>
<TELL "OBJ: " T .OBJ "" CR>
<TELL "META-LOC: " T <META-LOC .OBJ> "" CR>
<TELL "HERE: " D ,HERE CR>
<TELL "WINNER: " T ,WINNER CR>
<TELL "WINNER-LOC: " D <LOC ,WINNER> CR>
<SET L <LOC .OBJ>>
<SET PL <LOC ,WINNER>>
;"First check if player is in something"
<COND (<AND .PL ;"Player is in a container"
<NOT <OR <FSET? .PL ,SURFACEBIT> ;"Not a surface"
<AND <FSET? .PL ,CONTBIT> ;"Not an open container"
<FSET? .PL ,OPENBIT>>>>>
<TELL "DEBUG: Can't reach outside container" CR>
<RFALSE>)>
;"Then do the normal container checks"
<REPEAT ()
<COND (<AND <FSET? .L ,CONTBIT>
<NOT <FSET? .L ,OPENBIT>>
<NOT <FSET? .L ,SURFACEBIT>>>
<RFALSE>)
(<EQUAL? .L ,HERE ,WINNER>
<RTRUE>)
(ELSE
<SET L <LOC .L>>)>>> |
Beta Was this translation helpful? Give feedback.
0 replies
-
<SYNTAX BOARD OBJECT = V-BOARD>
<VERB-SYNONYM BOARD RIDE MOUNT>
<ROUTINE V-BOARD ()
<COND
(<NOT <FSET? ,PRSO ,VEHBIT>>
<TELL T ,PRSO " can't be boarded." CR>
<RETURN T>)
(<==? ,PRSO ,VEHICLE>
<TELL "You're already on " T ,PRSO "." CR>
<RETURN T>)
(<IN? ,PRSO ,PLAYER>
<TELL "You can't ride something you're already holding." CR>
<RETURN T>)
(<NOT <ACCESSIBLE? ,PRSO>>
<TELL "You can't reach " T ,PRSO "." CR>
<RETURN T>)
(T
<MOVE ,PLAYER ,PRSO>
<SETG VEHICLE ,PRSO>
<FSET ,VEHICLE ,NDESCBIT>
<TELL "Done." CR>
<V-LOOK>)>>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<VERB-SYNONYM EXIT DEPART WITHDR DISMOUNT>
<ROUTINE V-EXIT ()
<COND
(<OR <AND <NOT ,PRSO> <IN? ,PLAYER ,VEHICLE>> <FSET? ,PRSO ,VEHBIT>>
<MOVE ,PLAYER ,HERE>
<FCLEAR ,PRSO ,NDESCBIT>
<V-LOOK>
<RTRUE>)
(T
<DO-WALK ,P?OUT>)>> |
Beta Was this translation helpful? Give feedback.
0 replies
-
<GLOBAL VEHICLE <>>
<OBJECT HORSE
(DESC "horse")
(IN NMEADOW)
(FLAGS VEHBIT CONTBIT SURFACEBIT SEARCHBIT OPENBIT)
(SYNONYM HORSE)
(ACTION HORSE-R)>
<ROUTINE HORSE-R ()
<COND
(<VERB? TAKE OPEN CLOSE LOCK UNLOCK PUSH PULL SEARCH>
<COND
(<PRSO? ,HORSE><SILLY>)
(<AND <IN? ,PLAYER ,HORSE> <NOT <IN? ,PRSO ,HORSE>>>
<TELL "You can't reach " T ,PRSO " from the horse." CR>)>)
(<VERB? EXAMINE>
<TELL "A perfectly ordinary horse." CR>)
(<VERB? PET>
<TELL "You pet the horse, and he seems just a ">
<ITALICIZE "little">
<TELL " bit happier with you now." CR>)
(<VERB? BOARD>
<COND
(<IN? ,PLAYER ,HORSE>
<TELL "You're already on it!" CR>)
(T
<TELL "You mount the horse." CR>
<MOVE ,PLAYER ,PRSO>
<FSET ,HORSE ,NDESCBIT>
<SETG VEHICLE ,PRSO>)>)>> |
Beta Was this translation helpful? Give feedback.
0 replies
-
<ROUTINE ENTER-SALOON-R ()
<COND
(<IN? ,PLAYER ,VEHICLE>
<TELL "\"You can't enter while on horseback!\" says the barman." CR CR>
<SETG P-CONT 0>
<RETURN ,HERE>)
(T
<RETURN ,SALOON>)>> <OBJECT SALOON
(DESC "Saloon")
(IN ROOMS)
(FLAGS LIGHTBIT OUTSIDEBIT)
(IN PER ENTER-SALOON-R)
(SOUTH MAIN-STREET)
(ACTION SALOON-R)> |
Beta Was this translation helpful? Give feedback.
0 replies
-
;"-----------------------------------------------------------------------------"
;" TODO "
;"-----------------------------------------------------------------------------"
;"V-DROP (or PRE-DROP?) needs to check for the player's LOC, not HERE"
;"V-EXAMINE needs to add NDESCBIT to the player before examining something the "
;" player is in, then remove NDESCBIT after"
;"V-LOOK needs to do the same."
;"DESCRIBE-OBJECT needs to check if things HERE are in/outside of the player's "
;" LOC, and add '(outside' T, LOC ')' to their DESC when printing." |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Beta Was this translation helpful? Give feedback.
All reactions