generic exit #7
Aliases: generic exit
13 verbs · 14 properties · 1 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
invoke | this none this | rxd | #7 | 2 |
move | this none this | rxd | #7 | 35 |
recycle | this none this | rxd | #7 | 10 |
leave_msg oleave_msg arrive_msg oarrive_msg nogo_msg onogo_msg | this none this | rxd | #7 | 2 |
set_name | this none this | rxd | #7 | 5 |
set_aliases | this none this | rxd | #7 | 9 |
announce_all_but | this none this | rxd | #7 | 12 |
defaulting_oleave_msg | this none this | rxd | #7 | 12 |
moveto | this none this | rxd | #7 | 5 |
examine_key | this none this | rxd | #7 | 7 |
announce_msg | this none this | rxd | #7 | 9 |
look_self | this none this | rxd | #7 | 4 |
g*et t*ake | this none none | rxd | #7 | 2 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
obvious | #7 | rc | #2 | 1 |
source | #7 | rc | #2 | #-1 |
dest | #7 | rc | #2 | #-1 |
nogo_msg | #7 | rc | #2 | 0 |
onogo_msg | #7 | rc | #2 | 0 |
arrive_msg | #7 | rc | #2 | 0 |
oarrive_msg | #7 | rc | #2 | 0 |
oleave_msg | #7 | rc | #2 | 0 |
leave_msg | #7 | rc | #2 | 0 |
key | #1 | c | #2 | <clear> |
aliases | #1 | rc | #2 | {"generic exit"} |
description | #1 | rc | #2 | <clear> |
object_size | #1 | r | #36 | {8520, -1090650497} |
html | #1 | rc | #2 | <clear> |
Ancestry
Ancestors (nearest first): #1 Root Class
Children: #121 terrexit
Call graph
Source
invoke
Referenced by
none
Source
1set_task_perms(caller_perms()); 2this:move(player);
move
Referenced by
Source
1set_task_perms(caller_perms()); 2what = args[1]; 3unlocked = this:is_unlocked_for(what); 4if (unlocked) 5this.dest:bless_for_entry(what); 6endif 7if (unlocked && this.dest:acceptable(what)) 8start = what.location; 9if (msg = this:leave_msg(what)) 10what:tell_lines(msg); 11endif 12what:moveto(this.dest); 13if (`what.obvious ! E_PROPNF => 1') 14if (what.location != start) 15"Don't print oleave messages if WHAT didn't actually go anywhere..."; 16this:announce_msg(start, what, (this:oleave_msg(what) || this:defaulting_oleave_msg(what)) || "has left."); 17endif 18if (what.location == this.dest) 19"Don't print arrive messages if WHAT didn't really end up there..."; 20if (msg = this:arrive_msg(what)) 21what:tell_lines(msg); 22endif 23this:announce_msg(what.location, what, this:oarrive_msg(what) || "has arrived."); 24endif 25endif 26else 27if (msg = this:nogo_msg(what)) 28what:tell_lines(msg); 29else 30what:tell("You can't go that way."); 31endif 32if ((msg = this:onogo_msg(what)) && `what.obvious ! E_PROPNF => 1') 33this:announce_msg(what.location, what, msg); 34endif 35endif
recycle
Referenced by
none
Source
1if ((caller == this) || $perm_utils:controls(caller_perms(), this)) 2try 3this.source:remove_exit(this); 4this.dest:remove_entrance(this); 5except id (ANY) 6endtry 7return pass(@args); 8else 9return E_PERM; 10endif
leave_msg oleave_msg arrive_msg oarrive_msg nogo_msg onogo_msg
Referenced by
- #7:move line 9:
this:leave_msg - #7:move line 16:
this:oleave_msg - #7:move line 20:
this:arrive_msg - #7:move line 23:
this:oarrive_msg - #7:move line 27:
this:nogo_msg - #7:move line 32:
this:onogo_msg
Source
1msg = this.(verb); 2return msg ? $string_utils:pronoun_sub(msg, @args) | "";
set_name
Referenced by
none
Source
1if ($perm_utils:controls(cp = caller_perms(), this) || (valid(this.source) && (this.source.owner == cp))) 2return (typeof(e = `this.name = args[1] ! ANY') != ERR) || e; 3else 4return E_PERM; 5endif
set_aliases
Referenced by
none
Source
1if ($perm_utils:controls(cp = caller_perms(), this) || (valid(this.source) && (this.source.owner == cp))) 2if (typeof(e = `this.aliases = args[1] ! ANY') == ERR) 3return e; 4else 5return 1; 6endif 7else 8return E_PERM; 9endif
announce_all_but
Referenced by
none
Source
1"This is intended to be called only by exits, for announcing various oxxx messages. First argument is room to announce in. Second argument is as in $room:announce_all_but's first arg, who not to announce to. Rest args are what to say. If the final arg is a list, prepends all the other rest args to the first line and emits the lines separately."; 2where = args[1]; 3whobut = args[2]; 4last = args[$]; 5if (typeof(last) == LIST) 6where:announce_all_but(whobut, @args[3..$ - 1], last[1]); 7for line in (last[2..$]) 8where:announce_all_but(whobut, line); 9endfor 10else 11where:announce_all_but(@args[3..$]); 12endif
defaulting_oleave_msg
Referenced by
- #7:move line 16:
this:defaulting_oleave_msg
Source
1for k in ({this.name, @this.aliases}) 2if (k in {"east", "west", "south", "north", "northeast", "southeast", "southwest", "northwest", "out", "up", "down", "nw", "sw", "ne", "se", "in"}) 3return ("goes " + k) + "."; 4elseif (k in {"leave", "out", "exit"}) 5return "leaves"; 6endif 7endfor 8if ((index(this.name, "an ") == 1) || (index(this.name, "a ") == 1)) 9return ("leaves for " + this.name) + "."; 10else 11return ("leaves for the " + this.name) + "."; 12endif
moveto
Referenced by
none
Source
1if ((caller in {this, this.owner}) || $perm_utils:controls(caller_perms(), this)) 2return pass(@args); 3else 4return E_PERM; 5endif
examine_key
Referenced by
none
Source
1"examine_key(examiner)"; 2"return a list of strings to be told to the player, indicating what the key on this type of object means, and what this object's key is set to."; 3"the default will only tell the key to a wizard or this object's owner."; 4who = args[1]; 5if (((caller == this) && $perm_utils:controls(who, this)) && (this.key != 0)) 6return {tostr(this:title(), " will only transport objects matching this key:"), tostr(" ", $lock_utils:unparse_key(this.key))}; 7endif
announce_msg
Referenced by
- #7:move line 16:
this:announce_msg - #7:move line 23:
this:announce_msg - #7:move line 33:
this:announce_msg - #121:announce_msg line 14:
pass(
Source
1":announce_msg(place, what, msg)"; 2" announce msg in place (except to what). Prepend with what:title if it isn't part of the string"; 3msg = args[3]; 4what = args[2]; 5title = what:titlec(); 6if (!$string_utils:index_delimited(msg, title)) 7msg = tostr(title, " ", msg); 8endif 9args[1]:announce_all_but({what}, msg);
look_self
Referenced by
none
Source
1if (this.description) 2return pass(@args); 3endif 4return player:tell("You see ", this.dest:title(), ".");
g*et t*ake
Referenced by
none
Source
1set_task_perms(callers() ? caller_perms() | player); 2player:tell("You can't pick that up.");