generic exit #55

Parent #1Owner #361Flags read, fertileSource hellcore/hellcore.db

Aliases: generic exit

44 verbs · 46 properties · 6 children

Verbs

VerbSpecFlagsDefinerLines
recyclethis none thisrx#557
arrive_msg go_fail_msgthis none thisrxd#551
look_selfthis none thisrxd#559
dest_forthis none thisrxd#555
try_methis none thisrxd#5517
allowsthis none thisrxd#5513
movethis none thisrxd#5538
invokethis none thisrxd#558
open close lock unlockthis none nonerxd#551
dnamethis none thisrxd#5511
descriptionthis none thisrxd#556
broadcast_noisethis none thisrxd#559
parrive_msgthis none thisrx#551
set_aliasesthis none thisrxd#5510
fly_okthis none thisrxd#554
throws_tothis none thisrxd#557
oleave_msgthis none thisrxd#5531
oarrive_msgthis none thisrxd#5523
speedthis none thisrxd#5521
@passthis none nonerxd#557
dragany at/to thisrxd#5517
__pushthis none thisrxd#5510
_force_invokethis none thisrxd#552
exit_specthis none thisrxd#5523
direction_msgthis none thisrxd#551
exit_spec_mxpthis none thisrxd#556
obviousthis none thisrxd#551
push shoveany at/to thisrxd#5515
leave_msgthis none thisrxd#5513
push_throughthis none thisrxd#5512
throw_throughthis none thisrxd#5510
pass_noisethis none thisrxd#5511
attenuatethis none thisrxd#552
allows_shovethis none thisrxd#551
come_in_msgthis none thisrxd#552
emerge_msgthis none thisrxd#552
_push _shovethis none thisrxd#5547
_standard_from_tothis none thisrxd#5510
from_msgthis none thisrxd#5514
to_msgthis none thisrxd#5510
is_hiddenthis none thisrxd#551
pinch_okthis none thisrxd#5527
shortest_aliasthis none thisrxd#557
sneakthis none nonerxd#550

Properties

PropertyDefinerFlagsOwnerValue
otherside#55rc#361#-1
leave_msg#55rc#361""
arrive_msg#55rc#361""
go_fail_msg#55rc#361"%DN %<tries> to go %t, but %<finds> the way blocked."
look_place_msg#55rc#361""
opaque#55rc#3610
obvious#55rc#3611
next_hops#55r#361{}
speed#55rc#3611.0
direction#55rc#361""
throw_msg#55rc#361"%DN heaves %it to %dl."
throw_through_msg#55rc#361"%IT comes flying in from %dl."
throw_fail_msg#55rc#361"%DT falls to the ground."
oarrive_msg#55rc#361""
oleave_msg#55rc#361""
oleave_follow_msg#55rc#361"%DN follows %dd %t."
oarrive_follow_msg#55rc#361"%IN arrives on %dd's heels."
last_use_time#55r#3610
last_user#55r#361#-1
last_arriver#55r#361#-1
last_arrive_time#55r#3610
passable#55rc#3611
draw_ok#55rc#3611
attenuation#55rw#361-3
hidden#55rc#3610
direction_msg#55rc#361""
next_hop_ok#55rc#3611
protect_msg#55rc#361"%DN [protects] %dd [to] %di."
pushed_msg#55rc#361"%DN goes stumbling to %dt."
pushed_from_msg#55rc#361"%DN comes tumbling in from %dt."
look_through_msg#55rc#361"To %dt, you see:"
icon#55rc#361""
pee_msg#55rc#361"%DN aims %p piss stream to %dt."
otherside_type#55rc#361#-1
verb_subs#55rc#361{{"to", {#-1, "to_msg"}}, {"from", {#-1, "from_msg"}}}
sneak_difficulty#55rc#3610
aliases#1rc#361{"generic exit"}
description#1rc#361""
object_size#1r#29{28106, 1298433815}
hidden_verbs#1rc#361{"open", "@pass", "_push", "sneak"}
phelp_msg#1rc#361<clear>
weight#1rc#361<clear>
owner_verbs#1rc#361<clear>
plural_name#1rc#361<clear>
client_image#1rc#361<clear>
listening#1rc#361<clear>

Ancestry

Ancestors (nearest first): #1 root

Children: #83 generic shop door, #119 generic door, #158 generic cliff, #299 north, #328 south, #349 generic dangerous exit

Call graph

calls n55_0 #55:recycle n1_13 #1:moveto n55_0->n1_13 n1_1 #1:recycle n55_0->n1_1 n55_1 #55:arrive_msg n20_34 #20:pronoun_sub n55_1->n20_34 n55_2 #55:look_self n55_2->n20_34 n1_9 #1:look_self n55_2->n1_9 n107_43 #107:tell n55_2->n107_43 n55_4 #55:try_me n55_4->n55_1 n55_4->n20_34 n55_5 #55:allows n55_4->n55_5 n55_28 #55:leave_msg n55_4->n55_28 n55_28->n20_34 n55_6 #55:move n55_6->n20_34 n55_6->n55_5 n55_3 #55:dest_for n55_6->n55_3 n55_16 #55:oleave_msg n55_6->n55_16 n55_7 #55:invoke n47_17 #47:assoc n55_7->n47_17 n55_8 #55:open n55_8->n107_43 n55_9 #55:dname n1_31 #1:dname n55_9->n1_31 n55_10 #55:description n55_10->n20_34 n1_8 #1:description n55_10->n1_8 n55_13 #55:set_aliases n21_11 #21:match_cardinal_dir n55_13->n21_11 n1_4 #1:set_aliases n55_13->n1_4 n55_14 #55:fly_ok n45_5 #45:isa n55_14->n45_5 n55_26 #55:obvious n55_14->n55_26 n55_17 #55:oarrive_msg n55_34 #55:come_in_msg n55_17->n55_34 n55_35 #55:emerge_msg n55_17->n55_35 n55_19 #55:@pass n55_19->n107_43 n20_59 #20:name_and_number n55_19->n20_59 n6_91 #6:moveto n55_19->n6_91 n55_20 #55:drag n55_20->n107_43 n55_20->n55_5 n55_20->n55_7 n55_20->n55_9 n44_0 #44:match n55_20->n44_0 n57_9 #57:valid n55_20->n57_9 n55_21 #55:__push n55_21->n107_43 n55_21->n44_0 n55_22 #55:_force_invoke n55_22->n55_7 n55_25 #55:exit_spec_mxp n212_0 #212:escape n55_25->n212_0 n55_23 #55:exit_spec n55_25->n55_23 n55_27 #55:push n55_27->n107_43 n55_27->n44_0 n55_29 #55:push_through n55_29->n55_6 n55_30 #55:throw_through n55_30->n20_34 n55_15 #55:throws_to n55_30->n55_15 n55_33 #55:allows_shove n55_33->n55_5 n55_36 #55:_push n55_36->n20_34 n55_36->n55_9 n55_36->n55_29 n55_36->n55_33 n55_38 #55:from_msg

Showing 48 of 52 verbs; 4 not shown.

Source

recycle

Spec this none thisFlags rxOwner #361Definer #55

Referenced by

none

Source

1if (valid(this.otherside))
2if (this.otherside.otherside == this)
3this.otherside.otherside = #-1;
4endif
5endif
6this:moveto(#-1);
7return pass(@args);

arrive_msg go_fail_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1return $su:ps(this.(verb));

look_self

Spec this none thisFlags rxdOwner #29Definer #55

Referenced by

Source

1if (this.opaque == 0)
2pass(@args);
3player:tell($su:ps(this.look_through_msg, this, this));
4if (valid(this.otherside) && valid(this.otherside.location))
5this.otherside.location:look_self();
6endif
7else
8pass(@args);
9endif

dest_for

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1if (valid(this.otherside))
2return this.otherside.location;
3else
4return #-1;
5endif

try_me

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1":try_me(OBJ who [,INT silent])";
2"If args[2], don't print the leave message (usually due to combat escape attempt).";
3who = args[1];
4silent = (length(args) >= 2) ? args[2] | 0;
5if (who.location != this.location)
6return E_INVARG;
7elseif (!this:allows(who))
8if (m = this:go_fail_msg(who))
9who:announce_action_text($su:ps(m, who, this));
10return E_PERM;
11endif
12else
13if ((!silent) && (m = this:leave_msg()))
14who:tell($su:ps(m, who, this, this.otherside.location));
15endif
16return 1;
17endif

allows

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1"if (valid(this.otherside) && valid(this.otherside.location))";
2if (is_a(this.otherside, $exit) && is_a(this.otherside.location, $room))
3if (this.passable)
4if (is_a(this.location, #2173))
5if (this.location.security_engaged)
6return 0;
7endif
8endif
9return this.otherside.location:acceptable(args[1]);
10endif
11else
12return 0;
13endif

move

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1what = args[1];
2pushed = (length(args) > 1) ? args[2] | 0;
3if ((start = what.location) != this.location)
4return 0;
5endif
6if (this:allows(@args))
7dest = this:dest_for(what);
8start_m = pushed ? this.pushed_msg | this:oleave_msg(what);
9start_m = $su:ps(start_m, what, this, this);
10what:moveto(dest);
11rv = 0;
12if (what.location != start)
13start:announce_all(start_m);
14rv = 1;
15endif
16if ((what.location == dest) && (dest != start))
17if (dest.watched)
18end_m = pushed ? this.otherside.pushed_from_msg | this.otherside:oarrive_msg();
19end_m = $su:ps(end_m, what, this.otherside, this.otherside);
20dest:announce_all_but({what}, end_m);
21endif
22if (arrive_m = this.otherside:arrive_msg())
23what:tell($su:ps(arrive_m, what, this, this));
24endif
25this.last_use_time = time();
26this.last_user = what;
27this.otherside.last_arrive_time = time();
28this.otherside.last_arriver = what;
29endif
30if (rv && is_a(what, $creature))
31what:on_move(start, dest);
32start:broadcast_event(0, $actions.move, what, {this});
33dest:broadcast_event(0, $actions.arrive, what, {this.otherside});
34endif
35return rv;
36else
37return 0;
38endif

invoke

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1":invoke()";
2"Queue the actor's move action to go through this.";
3who = args ? args[1] | player;
4if (who:is_doing(who.move_action) || $lu:assoc(who.move_action, who.queue))
5who:queue_action(who.move_action, {this.direction}, 1, this.name);
6else
7who:queue_action(who.move_action, {this}, 1, this.name);
8endif

open close lock unlock

Spec this none noneFlags rxdOwner #361Definer #55

Referenced by

none

Source

1player:tell("There's no actual door to the ", this.name, ".  It's just an opening.");

dname

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1if (this.name == "up")
2return "above";
3elseif (this.name == "down")
4return "below";
5elseif (this.name == "out")
6return "outside";
7elseif (this.name == "in")
8return "inside";
9else
10return pass(@args);
11endif

description

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1r = (typeof(r2 = pass(@args)) == LIST) ? r2 | {r2};
2if ((this.look_place_msg && (this.description == parent(this).description)) && (this.look_place_msg != this.description))
3return {$su:ps(this.look_place_msg, player, this), @r};
4else
5return r;
6endif

broadcast_noise

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1msg = args[1];
2volume = args[2];
3noiseid = args[3];
4volume = volume + min(-1, this.attenuation);
5if (volume > -3)
6if (gamevalid(this.otherside) && gamevalid(this.otherside.location))
7this.otherside.location:broadcast_noise(msg, volume, noiseid, this.otherside);
8endif
9endif

parrive_msg

Spec this none thisFlags rxOwner #361Definer #55

Referenced by

none

Source

1return this.(verb);

set_aliases

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1aliases = args[1];
2for x in (aliases)
3if (dir = $building_utils:match_cardinal_dir(x))
4this.direction = dir;
5endif
6endfor
7if (is_a(this.location, $room))
8this.location:sort_exits();
9endif
10return pass(@args);

fly_ok

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1"Can this exit be flown through?";
2if (valid(this.otherside) && $ou:isa(this.otherside.location, $outdoor_room))
3return this:obvious();
4endif

throws_to

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1":throws_to(OBJ object, OBJ thrower)";
2"Return the room to which an object thrown through me will go, or #-1 if objects can't be thrown through me.";
3if (valid(this.otherside))
4return this.otherside.location;
5else
6return #-1;
7endif

oleave_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1if ((time() - this.last_use_time) < 5)
2if (this.last_user != player)
3msg = this.((verb == "oleave_msg") ? "oleave_follow_msg" | "oarrive_follow_msg");
4if (msg && is_a(this.last_user, $creature))
5msg = strsub(msg, "%dd", this.last_user:dname());
6return msg;
7endif
8endif
9endif
10if (m = this.(verb))
11return m;
12endif
13if ((!this.location.outdoor) && this.otherside.location.outdoor)
14return (this.name == "out") ? "%DN heads outside." | "%DN heads outside to %dt.";
15elseif (this.location.outdoor && (!this.otherside.location.outdoor))
16return (this.name == "in") ? "%DN heads inside." | "%DN heads inside to %dt.";
17endif
18if (m = `this.location.oleave_same_msg ! ANY => 0')
19if (m = `this.otherside.location.oleave_same_msg ! ANY => 0')
20return m;
21endif
22endif
23if (this.name in $exit_utils.cardinal_names)
24return "%DN heads %t.";
25else
26if (this.location.outdoor && (!this.otherside.location.outdoor))
27return "%DN heads into %dt.";
28else
29return "%DN heads to %dt.";
30endif
31endif

oarrive_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1if ((time() - this.last_arrive_time) < 5)
2if (this.last_arriver != player)
3msg = this.oarrive_follow_msg;
4if (msg && is_a(this.last_arriver, $creature))
5msg = strsub(msg, "%dd", this.last_arriver:dname());
6return msg;
7endif
8endif
9endif
10if (this.(verb))
11return this.(verb);
12endif
13if ((((!this.location.outdoor) && valid(this.otherside)) && valid(this.otherside.location)) && this.otherside.location.outdoor)
14return this:come_in_msg(@args);
15elseif (((this.location.outdoor && valid(this.otherside)) && valid(this.otherside.location)) && (!this.otherside.location.outdoor))
16return this:emerge_msg(@args);
17endif
18if (m = `this.location.oarrive_same_msg ! ANY => 0')
19if (m = `this.otherside.location.oarrive_same_msg ! ANY => 0')
20return m;
21endif
22endif
23return "%IN arrives from %dt.";

speed

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1who = args[1];
2if (is_a(area(this), #44424))
3return 0.0;
4endif
5s = this.speed;
6for x in (who.blood)
7if (x[1] == #12809)
8s = s + ((x[3] == 1) ? 2.0 | 4.0);
9who:tell("You pull yourself forward agonizingly on ", (x[3] == 1) ? "your broken leg." | "two broken legs.");
10break;
11endif
12endfor
13temp = `who:felt_temperature() ! ANY => 65';
14if (temp < 15)
15s = s + 1.0;
16who:tell("You struggle to trudge on through the bitter cold.");
17elseif (temp > 90)
18s = s + 1.0;
19who:tell("You slog on through the oppressive heat.");
20endif
21return args[1].programmer ? 0.0 | s;

@pass

Spec this none noneFlags rxdOwner #29Definer #55

Referenced by

none

Source

1"Copied from door (#170):@pass by Necanthrope (#142) Sun Feb 20 11:02:57 2005 PST";
2if ((player.programmer == 1) || (player.wizard == 1))
3player:tell("Moving you through ", $su:nn(this), ".");
4player:moveto(this.otherside.location);
5else
6player:tell("I don't understand that.");
7endif

drag

Spec any at/to thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1who = $mu:match(dobjstr, player.location:occupants($creature));
2if (!$recycler:valid(who))
3player:tell("I don't know what you mean by '", dobjstr, "'.");
4return;
5elseif ((!this:allows(who)) || (!this:allows(player)))
6player:tell("You can't seem to drag ", who:dname(), " through ", this:dname(), ".");
7return;
8elseif (this.location.z != this.otherside.location.z)
9player:tell("You don't think you'll be able to drag ", who:dname(), " in that direction.");
10return;
11endif
12if (((is_a(who, $player) && who.executing) && (who.executing[1] == $actions.struggle)) || is_a(who, $body))
13this:invoke(player);
14this:invoke(who);
15else
16player:tell("You cannot drag ", who:iname(), ".");
17endif

__push

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1dobj = $mu:match(dobjstr, this.location:occupants($living));
2if (!valid(dobj))
3player:tell("You don't see anyone here named ", dobjstr, ".");
4return;
5endif
6if (dobj == player)
7player:tell("Hi-larious.");
8return;
9endif
10return this:("_" + verb)(player, dobj);

_force_invoke

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1who = args ? args[1] | player;
2return this:invoke(@args);

exit_spec

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1{?shortpref = 0} = args;
2if ((valid(this.otherside) && is_a(this.otherside, $exit)) && is_a(this.otherside.location, $room))
3if ((this.location.outdoor != this.otherside.location.outdoor) && (!is_a(this, #4653)))
4color = $ansi.white;
5else
6color = "";
7endif
8else
9color = ($ansi.bg_red + $ansi.black) + $ansi.strikethrough_on;
10endif
11icon = this.icon ? this.icon + " " | $ansi.cyan;
12text = this.direction;
13if (shortpref)
14if (i = text in {@$exit_utils.cardinal_names, "up", "down"})
15text = {@$exit_utils.cardinal_letters, "u", "d"}[i];
16endif
17endif
18if ((this.name == this.direction) || (!(this.direction in $rpg.cardinals)))
19s = ($ansi.bold_on + text) + $ansi.bold_off;
20else
21s = (((($ansi.bold_on + text) + $ansi.bold_off) + "(") + this.name) + ")";
22endif
23return (icon + color) + s;

direction_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1return this.direction_msg ? (this.direction + " ") + this.direction_msg | this.direction;

exit_spec_mxp

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1if (this.direction in $rpg.cardinals)
2href = this.direction;
3else
4href = "go " + this.direction;
5endif
6return tostr("<send expire=\"exits\" href=\"", href, "\"><roomexit>", $mxp:escape(this:exit_spec()), "</roomexit></send>");

obvious

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1return this.(verb);

push shove

Spec any at/to thisFlags rxdOwner #361Definer #55

Referenced by

Source

1"Push a player or a heavy object through this exit.";
2dobj = $mu:match(dobjstr, this.location:occupants());
3if (!valid(dobj))
4player:tell("You don't see anyone here named ", dobjstr, ".");
5return;
6endif
7if (is_a(dobj, $living))
8if (dobj == player)
9player:tell("Hi-larious.");
10return;
11endif
12return this:("_" + verb)(player, dobj);
13elseif (is_a(dobj, $thing))
14dobj:_push(player, this);
15endif

leave_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1if (m = this.(verb))
2return $su:ps(m);
3endif
4if (this.location.outdoor && (!this.otherside.location.outdoor))
5return "You head inside.";
6elseif ((!this.location.outdoor) && this.otherside.location.outdoor)
7return "You head outside.";
8endif
9if (m = `this.location.leave_same_msg ! ANY => 0')
10if (m = `this.otherside.location.leave_same_msg ! ANY => 0')
11return $su:ps(m);
12endif
13endif

push_through

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1who = args[1];
2if (!this.passable)
3return;
4endif
5for npc in (this.location:occupants($npc))
6if (`npc:forbid_action_move(args[1], #-1, {this}) == 1 ! ANY => 0')
7return 0;
8endif
9yield;
10endfor
11this.location:broadcast_event(1, #141, who, {this});
12return this:move(who, pushed = 1);

throw_through

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1thing = args[1];
2who = (length(args) > 1) ? args[2] | #-1;
3dest = (length(args) > 2) ? args[3] | this:throws_to(thing, who);
4who.location:broadcast_event(0, this, who, {thing, this});
5thing:moveto(dest);
6if (valid(dest))
7dest:announce_all($su:ps(this.otherside.throw_through_msg, who, thing, this.otherside));
8dest:fall_into(thing, who.location, is_a(this, $cliff) ? this.elevation - this.otherside.elevation | 1);
9dest:broadcast_event(0, #43174, thing, {who, this.otherside});
10endif

pass_noise

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1noise = args[1];
2source = args[2];
3params = args[3];
4volume = args[4];
5noiseid = args[5];
6volume = volume + min(-1, this.attenuation);
7if (volume >= -3)
8if (valid(this.otherside) && valid(this.otherside.location))
9this.otherside.location:make_noise(noise, source, params, volume, noiseid, this.otherside);
10endif
11endif

attenuate

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1{noise, initial_vol} = args;
2return initial_vol + min(-1, this.attenuation);

allows_shove

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1return this:allows(@args);

come_in_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1who = args ? args[1] | player;
2return "%IN comes in from %dt.";

emerge_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1who = args ? args[1] | player;
2return "%IN emerges from %dt.";

_push _shove

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1":_push(pusher, pushee) => Have 'pusher' push 'pushee' through this exit.";
2{pusher, pushee} = args;
3if (`pushee.unshovable ! ANY')
4pusher:aat(pusher:dnamec(), " shoves uselessly against ", pushee:dname(), ".");
5return;
6endif
7if (verb == "_push")
8protection = "shove";
9else
10protection = "push";
11endif
12if ((this.direction == "up") || ("up" in this.aliases))
13pusher:tell("You don't think you'll be able to ", protection, " ", pushee:name(), " uphill.");
14return;
15endif
16if (!this:allows_shove(pushee))
17pusher:aat(pusher:dnamec(), " shoves ", pushee:dname(), " uselessly against ", this:dname(), ".");
18elseif (pusher.location != pushee.location)
19return;
20elseif (!(is_a(pushee, $body) || is_a(pushee, $creature)))
21pusher:tell("You shove at ", pushee:dname(), " uselessly with your foot.");
22elseif (is_a(pushee, $creature) && (!pushee:is_doing($actions.struggle)))
23pusher:aat(pusher:dnamec(), " shoves at ", pushee:dname(), ", who jumps easily aside.");
24elseif (pushee:encumbrance() < -3)
25pusher:aat(pusher:dnamec(), " shoves hard on ", pushee:dname(), "'s back, but ", pushee.ps, "'s just too heavy to move.");
26else
27check1 = $skills.brawn:check(pusher, 0);
28check2 = $skills.brawn:check(pushee, 0);
29if (check1 < check2)
30pusher:aat(pusher:dnamec(), " shoves hard on ", pushee:dname(), ", but can't move ", pushee.po, ".");
31return;
32endif
33msgprep = "to";
34if (index(this.name, "down"))
35msgprep = "down";
36elseif (index(this.name, "up"))
37msgprep = "up";
38endif
39msg = $su:subst(this.protect_msg, {{"[protects]", (protection == "push") ? "%<pushes>" | "%<shoves>"}, {"[to]", msgprep}});
40if (is_a(iobj, $stairs))
41msg = $su:subst(msg, {{"%di", "the stairs"}});
42endif
43pusher:aat($su:ps(msg, pusher, pushee, this.location, pushee, this));
44pushee:cancel_current_action();
45pushee:clear_queue();
46this:push_through(pushee);
47endif

_standard_from_to

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

Source

1if (dir = this.direction)
2if (dir == "up")
3return "above";
4elseif (dir == "down")
5return "below";
6elseif (dir in {"west", "north", "east", "south", "northeast", "northwest", "southeast", "southwest"})
7return "the " + dir;
8endif
9endif
10return "the " + this.name;

from_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1if (this.direction == "in")
2if (this.name == "in")
3return "out from inside";
4else
5return "out through the " + this.name;
6endif
7elseif (this.direction == "out")
8if (this.name == "in")
9return "in from outside";
10else
11return "in through the " + this.name;
12endif
13endif
14return "from " + this:_standard_from_to();

to_msg

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1if (this.direction == "in")
2if (this.name == "in")
3return "inside";
4else
5return "in through the " + this.name;
6endif
7elseif (this.direction == "out")
8return "outside";
9endif
10return "to " + this:_standard_from_to();

is_hidden

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1return !this.obvious;

pinch_ok

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1who = args[1];
2here = this.location;
3there = this.otherside.location;
4if (is_connected(who))
5return 0;
6elseif (!this:allows(who))
7return 0;
8elseif ((!is_a(here.owner, $immortal)) && (here.owner != who))
9return 0;
10elseif ((((here.owner != there.owner) && (!is_a(there.owner, $immortal))) && (there.owner != who)) && (!(who in there.residents)))
11return 0;
12endif
13if (is_a(this, $door) && valid(lock = this.lock))
14if ((typeof(lock.keyed_to) == LIST) && (!$lu:is_one_of(who, lock.keyed_to)))
15return 0;
16elseif ((typeof(lock.keyed_to) == STR) && (!((this.owner == who) || (here.owner == who))))
17return 0;
18endif
19if (others = setremove(here:occupants($player), who))
20for dude in (others)
21if (dude:is_doing($actions.apick, lock))
22return 0;
23endif
24endfor
25endif
26endif
27return 1;

shortest_alias

Spec this none thisFlags rxdOwner #361Definer #55

Referenced by

none

Source

1s = "";
2for x in (this.aliases)
3if ((!s) || (length(x) < length(s)))
4s = x;
5endif
6endfor
7return s;

sneak

Spec this none noneFlags rxdOwner #361Definer #55

Referenced by

none

Source

No program (verb defined but unprogrammed).