generic exit #7

Parent #1Owner #2Flags obsolete1, read, fertileSource QuestCore.db

Aliases: generic exit

13 verbs · 13 properties · 1 children

Verbs

VerbSpecFlagsDefinerLines
invokethis none thisrxd#72
movethis none thisrxd#735
recyclethis none thisrxd#710
leave_msg oleave_msg arrive_msg oarrive_msg nogo_msg onogo_msgthis none thisrxd#72
set_namethis none thisrxd#75
set_aliasesthis none thisrxd#79
announce_all_butthis none thisrxd#712
defaulting_oleave_msgthis none thisrxd#712
movetothis none thisrxd#75
examine_keythis none thisrxd#77
announce_msgthis none thisrxd#79
look_selfthis none thisrxd#74
g*et t*akethis none nonerxd#72

Properties

PropertyDefinerFlagsOwnerValue
obvious#7rc#21
source#7rc#2#-1
dest#7rc#2#-1
nogo_msg#7rc#20
onogo_msg#7rc#20
arrive_msg#7rc#20
oarrive_msg#7rc#20
oleave_msg#7rc#20
leave_msg#7rc#20
key#1c#2<clear>
aliases#1rc#2{"generic exit"}
description#1rc#2<clear>
object_size#1r#36{7844, 1539462952}

Ancestry

Ancestors (nearest first): #1 Root Class

Children: #121 terrexit

Call graph

calls n7_0 #7:invoke n7_1 #7:move n7_0->n7_1 n1_17 #1:is_unlocked_for n7_1->n1_17 n7_3 #7:leave_msg n7_1->n7_3 n7_10 #7:announce_msg n7_1->n7_10 n7_7 #7:defaulting_oleave_msg n7_1->n7_7 n20_34 #20:pronoun_sub n7_3->n20_34 n7_2 #7:recycle n42_0 #42:controls n7_2->n42_0 n1_1 #1:recycle n7_2->n1_1 n7_4 #7:set_name n7_4->n42_0 n7_5 #7:set_aliases n7_5->n42_0 n7_8 #7:moveto n7_8->n42_0 n1_15 #1:moveto n7_8->n1_15 n7_9 #7:examine_key n7_9->n42_0 n1_3 #1:title n7_9->n1_3 n53_8 #53:unparse_key n7_9->n53_8 n7_11 #7:look_self n1_10 #1:look_self n7_11->n1_10 n6_18 #6:tell n7_11->n6_18 n7_12 #7:g*et n7_12->n6_18

Source

invoke

Spec this none thisFlags rxdOwner #2Definer #7

Referenced by

none

Source

1set_task_perms(caller_perms());
2this:move(player);

move

Spec this none thisFlags rxdOwner #2Definer #7

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

Spec this none thisFlags rxdOwner #2Definer #7

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

Spec this none thisFlags rxdOwner #2Definer #7

Referenced by

Source

1msg = this.(verb);
2return msg ? $string_utils:pronoun_sub(msg, @args) | "";

set_name

Spec this none thisFlags rxdOwner #2Definer #7

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

Spec this none thisFlags rxdOwner #2Definer #7

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

Spec this none thisFlags rxdOwner #2Definer #7

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

Spec this none thisFlags rxdOwner #2Definer #7

Referenced by

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

Spec this none thisFlags rxdOwner #2Definer #7

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

Spec this none thisFlags rxdOwner #2Definer #7

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

Spec this none thisFlags rxdOwner #2Definer #7

Referenced by

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

Spec this none thisFlags rxdOwner #2Definer #7

Referenced by

none

Source

1if (this.description)
2return pass(@args);
3endif
4return player:tell("You see ", this.dest:title(), ".");

g*et t*ake

Spec this none noneFlags rxdOwner #2Definer #7

Referenced by

none

Source

1set_task_perms(callers() ? caller_perms() | player);
2player:tell("You can't pick that up.");