generic door #119
Aliases: generic door, door
64 verbs · 82 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
look_self | this none this | rxd | #119 | 38 |
_open | this none this | rxd | #119 | 52 |
try_open | this none this | rxd | #119 | 24 |
enterfunc | this none this | rxd | #119 | 3 |
acceptable | this none this | rxd | #119 | 6 |
exitfunc | this none this | rxd | #119 | 3 |
open | this none none | rxd | #119 | 5 |
_start | this none this | rxd | #119 | 14 |
try_close | this none this | rxd | #119 | 18 |
_close | this none this | rxd | #119 | 36 |
close | this none none | rxd | #119 | 1 |
try_me | this none this | rxd | #119 | 9 |
on_reset | this none this | rxd | #119 | 18 |
controlled_by | this none this | rxd | #119 | 12 |
pick_old | none none none | rxd | #119 | 26 |
unlock | this none none | rxd | #119 | 13 |
lock | this none none | rxd | #119 | 16 |
hear_event_say | this none this | rxd | #119 | 10 |
_announce | this none this | rxd | #119 | 11 |
may_pick | this none this | rxd | #119 | 15 |
add_picker | this none this | rxd | #119 | 5 |
uninstall remove | any out of/from inside/from this | rxd | #119 | 10 |
exit_spec | this none this | rxd | #119 | 11 |
knock | this none none | rxd | #119 | 1 |
_knock | any none none | rxd | #119 | 9 |
_tell_appraise | this none this | rxd | #119 | 0 |
bash | this none none | rxd | #119 | 1 |
_bash | this none this | rxd | #119 | 12 |
fire_pcm | this none this | rxd | #119 | 15 |
peep peek | this none none | rxd | #119 | 15 |
become_adoor | this none this | rxd | #119 | 40 |
_do_open | this none this | rxd | #119 | 1 |
_do_close | this none this | rxd | #119 | 1 |
_is_locked | any none none | rxd | #119 | 5 |
throws_to | this none this | rxd | #119 | 5 |
_lock | this none this | rxd | #119 | 4 |
_unlock | this none this | rxd | #119 | 4 |
_can_be_unlocked_by | this none this | rxd | #119 | 4 |
ok_to_pick | this none this | rxd | #119 | 43 |
allows | this none this | rxd | #119 | 10 |
take_damage | this none this | rxd | #119 | 18 |
die | this none this | rxd | #119 | 11 |
squeal_msg | this none this | rxd | #119 | 23 |
is_broken | this none this | rxd | #119 | 1 |
_repair | this none this | rxd | #119 | 16 |
_repair_check | this none this | rxd | #119 | 3 |
move | this none this | rxd | #119 | 10 |
hear_lock_change | this none this | rxd | #119 | 0 |
allows_shove | this none this | rxd | #119 | 8 |
allows_backup_x | this none this | rxd | #119 | 20 |
listen | none at/to this | rxd | #119 | 5 |
room_heat | this none this | rxd | #119 | 26 |
push shove | any at/to this | rxd | #119 | 5 |
dname | this none this | rxd | #119 | 5 |
direction_name | this none this | rxd | #119 | 11 |
action_doing_msg | this none this | rxd | #119 | 11 |
attenuate | this none this | rxd | #119 | 7 |
look_place_msg | this none this | rxd | #119 | 3 |
tell_health | this none this | rxd | #119 | 4 |
slam | this none none | rxd | #119 | 1 |
person_is_behind | this none this | rxd | #119 | 19 |
not_ok_to_pick | this none this | rxd | #119 | 10 |
_slam | this none this | rxd | #119 | 16 |
check_holders | this none this | rxd | #119 | 13 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
open | #119 | rc | #361 | 0 |
is_open_msg | #119 | rc | #361 | "%DT is open." |
is_closed_msg | #119 | rc | #361 | "%DT is closed." |
open_msg | #119 | rc | #361 | "%DN opens %dt." |
open_self_msg | #119 | rc | #361 | "%DT swings open." |
lock | #119 | rc | #361 | #-1 |
operational | #119 | rc | #361 | 1 |
close_msg | #119 | rc | #361 | "%DN closes %dt." |
close_self_msg | #119 | rc | #361 | "%DT swings shut." |
broken_msg | #119 | rc | #361 | "%DT is smashed." |
health | #119 | rc | #361 | 100 |
health_max | #119 | rc | #361 | 100 |
ownable | #119 | rc | #361 | 0 |
biz | #119 | rc | #361 | #-1 |
autoclose_time | #119 | rc | #361 | 40 |
autoclose_task | #119 | rc | #361 | 0 |
pick_timeout | #119 | rc | #361 | 0 |
pickers | #119 | rc | #361 | {} |
open_fail_msg | #119 | rc | #361 | "%DN jiggles uselessly at the handle of %dt." |
knock_msg | #119 | rc | #361 | "%DN knocks on %dt." |
otherside_knock_msg | #119 | rc | #361 | "A knock comes from %dt." |
bash_difficulty | #119 | rc | #361 | -6 |
bash_msg | #119 | rc | #361 | "%DN slams %p shoulder against %dt." |
bash_otherside_msg | #119 | rc | #361 | "%DT shudders in its frame as something crashes into it from the other side." |
armor | #119 | rc | #361 | list of 14{{#268, 3, 8}, {#277, 4, 9}, {#278, 7, 20}, {#279, 6, 15}, {#280, 1, 5}, {#281, 100, 100}, {#282, 2, 5}, {#308, 100, 100}, {#1326, 100, 100}, {#308, 50, 100}, {#938, 50, 100}, {#1052, 50, 100}, {#1051, 50, 100}, {#1326, 50, 100}} |
value | #119 | rc | #361 | 0 |
default_attenuation | #119 | rc | #361 | -6 |
squeals | #119 | rc | #361 | #4003 |
fist_fatality_msg | #119 | rc | #361 | "%DN grabs %dl's head and rams it hard against %dt, then slams it over and over, crushing %dl's skull into paste." |
locked_on_reset | #119 | rc | #361 | 1 |
filtration | #119 | rc | #361 | 1 |
knock_action | #119 | rc | #361 | #6040 |
close_noise | #119 | rc | #361 | #201815 |
barred_msg | #119 | rc | #361 | "The lock clicks open...but when you push on the door, you find it's been barred. Dammit! The owner must be sleeping inside." |
never_opaque | #119 | rc | #361 | 0 |
holders | #119 | rc | #361 | {} |
otherside | #55 | rc | #361 | #-1 |
leave_msg | #55 | rc | #361 | "You head through %dt." |
arrive_msg | #55 | rc | #361 | <clear> |
go_fail_msg | #55 | rc | #361 | <clear> |
look_place_msg | #55 | rc | #361 | <clear> |
opaque | #55 | rc | #361 | 1 |
obvious | #55 | rc | #361 | <clear> |
next_hops | #55 | r | #361 | <clear> |
speed | #55 | rc | #361 | <clear> |
direction | #55 | rc | #361 | "" |
throw_msg | #55 | rc | #361 | <clear> |
throw_through_msg | #55 | rc | #361 | <clear> |
throw_fail_msg | #55 | rc | #361 | <clear> |
oarrive_msg | #55 | rc | #361 | "" |
oleave_msg | #55 | rc | #361 | "%DN heads through %dt." |
oleave_follow_msg | #55 | rc | #361 | "%DN follows %dd through %dt." |
oarrive_follow_msg | #55 | rc | #361 | <clear> |
last_use_time | #55 | r | #361 | <clear> |
last_user | #55 | r | #361 | <clear> |
last_arriver | #55 | r | #361 | <clear> |
last_arrive_time | #55 | r | #361 | <clear> |
passable | #55 | rc | #361 | <clear> |
draw_ok | #55 | rc | #361 | <clear> |
attenuation | #55 | rw | #361 | -2 |
hidden | #55 | rc | #361 | <clear> |
direction_msg | #55 | rc | #361 | <clear> |
next_hop_ok | #55 | rc | #361 | <clear> |
protect_msg | #55 | rc | #361 | <clear> |
pushed_msg | #55 | rc | #361 | <clear> |
pushed_from_msg | #55 | rc | #361 | <clear> |
look_through_msg | #55 | rc | #361 | "Through %dt, you see:" |
icon | #55 | rc | #361 | "+" |
pee_msg | #55 | rc | #361 | "%DN pisses against %dt." |
otherside_type | #55 | rc | #361 | <clear> |
verb_subs | #55 | rc | #361 | <clear> |
sneak_difficulty | #55 | rc | #361 | <clear> |
aliases | #1 | rc | #361 | {"generic door", "door"} |
description | #1 | rc | #361 | "You see a plain wooden door." |
object_size | #1 | r | #29 | {44179, 1298434489} |
hidden_verbs | #1 | rc | #361 | {"open", "@pass", "pick", "pick_old"} |
phelp_msg | #1 | rc | #361 | <clear> |
weight | #1 | rc | #361 | <clear> |
owner_verbs | #1 | rc | #361 | <clear> |
plural_name | #1 | rc | #361 | <clear> |
client_image | #1 | rc | #361 | <clear> |
listening | #1 | rc | #361 | <clear> |
Ancestry
Ancestors (nearest first): #55 generic exit → #1 root
Children: none
Call graph
Showing 48 of 81 verbs; 33 not shown.
Source
look_self
Referenced by
none
Source
1if (!this.open) 2if (this.opaque && (!this.never_opaque)) 3pass(@args); 4else 5player:tell($su:ps("Through %ts, you see:")); 6if (valid(this.otherside) && valid(this.otherside.location)) 7this.otherside.location:look_self(); 8endif 9endif 10player:tell($su:ps(this.is_closed_msg, this, this)); 11else 12pass(@args); 13if (!`this.always_opaque ! ANY') 14player:tell($su:ps("Through %ts, you see:")); 15if (valid(this.otherside) && valid(this.otherside.location)) 16this.otherside.location:look_self(); 17endif 18endif 19player:tell($su:ps(this.is_open_msg, this, this)); 20endif 21for x in (this.contents) 22if (is_a(x, $decal)) 23$rpg:junk(x); 24elseif (!is_a(x, $alock)) 25if (m = `x:installed_msg() ! ANY => ""') 26player:tell(m); 27endif 28endif 29endfor 30if (valid(this.lock)) 31player:tell($su:ps(this.lock.installed_msg, this.lock, this.lock, this)); 32elseif ((is_a(this.otherside, $door) && valid(lock = this.otherside.lock)) && lock.lockable_on_otherside) 33player:tell($su:ps(lock.installed_otherside_msg, lock, lock, this)); 34endif 35if (this:controlled_by(player) && this.contents) 36player:tell("(Installed: ", $su:english_list($lu:map_verb(this.contents, "iname")), ".)"); 37endif 38this:tell_health();
_open
Referenced by
- #119:_do_open line 1:
this:_open
Source
1":_open([OBJ opener, INT queue_move]) => true if opening occurred"; 2"Open up, if that's possible."; 3"If queue_move, queue a move attempt after a successful open."; 4who = args ? args[1] | #-1; 5queue_move = (length(args) > 1) ? args[2] | 0; 6ignore_lock = (length(args) > 2) ? args[3] | 0; 7if ((!this.passable) && is_a(who, $creature)) 8who:tell("Shit! It won't open."); 9return; 10endif 11m = ""; 12if (is_a(who, $adoor)) 13m = this.open_self_msg; 14if (who != this.otherside) 15this.otherside:_open(this); 16endif 17elseif (valid(who)) 18if (who.location != this.location) 19return E_INVARG; 20elseif (!this:try_open(who, queue_move, ignore_lock)) 21return 0; 22endif 23m = this.open_msg; 24if (is_a(this.otherside, $door)) 25this.otherside:_open(this); 26endif 27elseif (!this.open) 28m = this.open_self_msg; 29if (is_a(this.otherside, $door)) 30this.otherside:_open(this); 31endif 32endif 33this.open = 1; 34if (m) 35this.location:announce_all($su:ps(m)); 36endif 37this.location:temperature(1); 38if (queue_move) 39who:prequeue_action(who.move_action, {this}, 1, "", 1); 40endif 41if ((this.autoclose_time && (who != this.otherside)) && this.operational) 42if (task_valid(this.autoclose_task)) 43kill_task(this.autoclose_task); 44endif 45fork task_id (this.autoclose_time) 46if (is_a(this, $door) && this.operational) 47this:_close(); 48endif 49endfork 50this.autoclose_task = task_id; 51endif 52return 1;
try_open
Referenced by
- #119:_open line 20:
this:try_open
Source
1who = args ? args[1] | #-1; 2queue_move = (length(args) > 1) ? args[2] | 0; 3ignore_lock = (length(args) > 2) ? args[3] | 0; 4do_open = 0; 5m = ""; 6if (this.open) 7valid(who) ? who:tell(this:dnamec() + " is already open.") | 0; 8elseif (!this.operational) 9valid(who) ? who:tell($su:ps(this.broken_msg, this, this)) | 0; 10elseif (((valid(this.lock) && (!ignore_lock)) && valid(who)) && this.lock:is_locked()) 11if (is_player(who) && (!who:check_pref("unlockdoors"))) 12who:tell(this:dnamec(), " is locked."); 13return; 14endif 15who:queue_action(this.lock, {"permit", queue_open = 1, queue_move}); 16elseif ((is_a(this.otherside, $door) && ((valid(alock = this.otherside.lock) && (!alock.openable_on_otherside)) && valid(who))) && alock:is_locked()) 17m = $su:ps(this.open_fail_msg, who, this); 18else 19do_open = 1; 20endif 21if (m) 22this.location:announce_all(m); 23endif 24return do_open;
enterfunc
Referenced by
none
Source
1if (is_a(what = args[1], $alock)) 2this.lock = what; 3endif
acceptable
Referenced by
none
Source
1if (is_a(what = args[1], $alock)) 2if (is_a(this.lock, $alock) && (this.lock.location == this)) 3return 0; 4endif 5endif 6return 1;
exitfunc
Referenced by
none
Source
1if (args[1] == this.lock) 2this.lock = #-1; 3endif
open
Referenced by
none
Source
1if (!this.passable) 2player:tell("Shit! It won't open."); 3return; 4endif 5player:queue_action(this, {"open"});
_start
Referenced by
none
Source
1who = args[1]; 2action = args[2][1]; 3aargs = {who}; 4if (length(args[2]) > 1) 5aargs = {@aargs, @args[2][2..$]}; 6endif 7if (this:("_" + action)(@aargs)) 8if (action == "bash") 9return {4.0, 0}; 10endif 11return {2.0, 0}; 12else 13return E_NONE; 14endif
try_close
Referenced by
- #119:_close line 14:
this:try_close
Source
1who = args ? args[1] | #-1; 2do_close = 0; 3if (!this.open) 4valid(who) ? who:tell(this:dnamec() + " is already closed.") | 0; 5elseif (!this.operational) 6valid(who) ? who:tell($su:ps(this.broken_msg, this, this)) | 0; 7else 8do_close = 1; 9endif 10if (h = this:check_holders()) 11reason = h[$][2]; 12do_close = 0; 13valid(who) && who:tell((("You can't close " + this:dname()) + "! ") + reason); 14elseif (this.otherside:check_holders()) 15do_close = 0; 16valid(who) && who:tell(("You can't close " + this:dname()) + " because something is keeping it open!"); 17endif 18return do_close;
_close
Referenced by
- #119:_open line 47:
this:_close - #119:on_reset line 10:
this:_close - #119:_do_close line 1:
this:_close - #119:_slam line 8:
this:_close
Source
1":_close([OBJ closer]) => true if closing occurred"; 2"Close, if that's possible."; 3who = args ? args[1] | #-1; 4if (!this.open) 5is_a(who, $creature) && who:tell("It's already closed."); 6return 1; 7endif 8if ((((!valid(who)) && this:check_holders()) || is_a(this.otherside, $door)) && this.otherside:check_holders()) 9return 0; 10elseif (is_a(who, $adoor)) 11m = this.close_self_msg; 12valid(noise = this.close_noise) && this.location:make_noise(noise, this); 13elseif (valid(who)) 14if (!this:try_close(who)) 15return 0; 16endif 17m = this.close_msg; 18if (is_a(this.otherside, $door) && this.otherside.open) 19this.otherside:_close(this); 20endif 21else 22m = this.close_self_msg; 23if (is_a(this.otherside, $door) && this.otherside.open) 24this.otherside:_close(this); 25endif 26endif 27this.open = 0; 28(!("slam" in $lu:slice(callers(), 2))) && this.location:announce_all($su:ps(m, who, this)); 29gamevalid(this) && this.location:temperature(1); 30if (task_valid(this.autoclose_task) && (task_id() != this.autoclose_task)) 31kill_task(this.autoclose_task); 32endif 33if (valid(this.lock)) 34this.lock:hear_close(this); 35endif 36return 1;
close
Referenced by
none
Source
1player:queue_action(this, {"close"});
try_me
Referenced by
none
Source
1who = args[1]; 2if (!this.open) 3if (is_a(who, $creature) && (!who.opens_doors)) 4return E_NONE; 5endif 6who:prequeue_action(this, {"open", queue_move = 1}, 1, "", 1); 7return E_NONE; 8endif 9return pass(@args);
on_reset
Referenced by
none
Source
1if (this.f || (!valid(this.otherside))) 2return; 3endif 4this.health = this.health_max; 5this.operational = 1; 6if (is_a(this.otherside, $door)) 7this.otherside.operational = 1; 8this.otherside.health = this.otherside.health_max; 9endif 10(!task_valid(this.autoclose_task)) && this:_close(); 11if (is_a(this.lock, $alock)) 12this.lock.operational = 1; 13if (this.locked_on_reset) 14this.lock:_lock(); 15else 16this.lock:_unlock(); 17endif 18endif
controlled_by
Referenced by
- #119:look_self line 35:
this:controlled_by - #119:uninstall line 2:
this:controlled_by
Source
1who = args[1]; 2if ((who == this.owner) || who.programmer) 3return 1; 4endif 5if (this.ownable) 6if (!is_a(this.biz, $biz)) 7this.biz = #-1; 8endif 9return (((((who == this.owner) || (who == this.location.owner)) || (who == this.otherside.location.owner)) || (who in this.location.residents)) || (who in this.otherside.location.residents)) || (valid(this.biz) && this.biz:permit_control(who, this)); 10else 11return 0; 12endif
pick_old
Referenced by
none
Source
1if (player.executing && (player.executing[1] == $actions.apick)) 2player:tell("You're already picking something."); 3return; 4endif 5for dude in (this.location:occupants($player)) 6if ((dude.executing && (dude.executing[1] == $actions.apick)) && (dude.executing[2][1] == this.lock)) 7player:tell("Someone else beat you to the punch there, champ."); 8return; 9endif 10endfor 11if (!valid(this.lock)) 12player:tell("You can't see any way to pick a lock in ", this:dname(), "."); 13elseif (this.open) 14player:tell("The uh...the door's already open, champ. Mission accomplished, I guess."); 15elseif (!this.lock:is_locked()) 16player:tell("It doesn't appear to be locked."); 17elseif (0 && (!this:ok_to_pick())) 18"Disabled this so you can try picking a logged-out guy. Sucks to be you."; 19player:tell("You jiggle the door a bit, and realize it's been barred from the inside. The owner must be sleeping in there. Dammit!"); 20else 21what = this.otherside.location.owner; 22if (is_a(what, $player) && (!is_a(what, $immortal))) 23what:_pvp_record({player}, "lockpick"); 24endif 25player:queue_action($actions.apick, {this.lock}); 26endif
unlock
Referenced by
none
Source
1if (!valid(this.lock)) 2if ((!valid(alock = this.otherside.lock)) || (!alock.lockable_on_otherside)) 3player:tell(this:dnamec(), " doesn't seem to have anything you can unlock."); 4elseif (!alock:is_locked()) 5player:tell("It's not locked."); 6else 7player:queue_action(alock, {"unlock_otherside"}); 8endif 9elseif (!this.lock:is_locked()) 10player:tell(this.lock:dnamec(), " in ", this:dname(), " isn't locked."); 11else 12player:queue_action(this.lock, {"unlock"}); 13endif
lock
Referenced by
none
Source
1if (!valid(this.lock)) 2if ((!valid(alock = this.otherside.lock)) || (!alock.lockable_on_otherside)) 3player:tell(this:dnamec(), " doesn't seem to have anything you can lock."); 4elseif (alock:is_locked()) 5player:tell("It's already locked."); 6else 7if (this.open) 8player:queue_action(this, {"close"}); 9endif 10player:queue_action(alock, {"lock_otherside"}); 11endif 12elseif (this.lock:is_locked()) 13player:tell(this.lock:dnamec(), " in ", this:dname(), " is already locked."); 14else 15player:queue_action(this.lock, {"lock"}); 16endif
hear_event_say
Referenced by
none
Source
1if (args[4][2] == this) 2for a in (this.contents) 3if ($ou:has_verb(a, verb)) 4a:(verb)(@args); 5if (`a.listens == 1 ! ANY => 0') 6return; 7endif 8endif 9endfor 10endif
_announce
Referenced by
none
Source
1"Copied from door (#170):_announce by Necanthrope (#142) Sat Sep 29 00:46:40 2007 CDT"; 2who = args[1]; 3locmsg = args[2]; 4destmsg = (length(args) > 2) ? args[3] | ""; 5dest = this.otherside.location; 6if (locmsg) 7this.location:announce_all(locmsg); 8endif 9if (destmsg) 10dest:announce_all(destmsg); 11endif
may_pick
Referenced by
none
Source
1who = args[1]; 2if (this.owner.programmer) 3return 1; 4endif 5np = {}; 6for x in (this.pickers) 7if ((time() - x[2]) <= this.pick_timeout) 8np = {@np, x}; 9endif 10endfor 11this.pickers = np; 12if (who in $lu:slice(this.pickers, 1)) 13return 0; 14endif 15return 1;
add_picker
Referenced by
none
Source
1who = args[1]; 2this.pickers = {@this.pickers, {who, time()}}; 3if (length(this.pickers) > 20) 4this.pickers = this.pickers[$ - 19..$]; 5endif
uninstall remove
Referenced by
none
Source
1what = $mu:match(dobjstr, this.contents); 2if ((!this:controlled_by(player)) && (!player.wizard)) 3player:tell("You can't see how to remove anything from ", this:dname(), "."); 4return; 5endif 6if (!valid(what)) 7player:tell("You can't find any '", dobjstr, "' in ", this:dname(), "."); 8else 9what:_uninstall(player); 10endif
exit_spec
Referenced by
none
Source
1if (!this.open) 2icon = this.icon ? this.icon + "" | $ansi.cyan; 3else 4icon = ""; 5endif 6if ((this.name == this.direction) || (!(this.direction in $rpg.cardinals))) 7s = ($ansi.bold_on + this.direction) + $ansi.bold_off; 8else 9s = (((($ansi.bold_on + this.direction) + $ansi.bold_off) + "(") + this.name) + ")"; 10endif 11return (icon + $ansi.yellow) + s;
knock
Referenced by
none
Source
1player:queue_action($actions.verb, {dobj, "_knock", {player}}, 1, "knock");
_knock
Referenced by
none
Source
1"Copied from door (#170):_knock by Necanthrope (#142) Tue Oct 2 21:22:31 2007 CDT"; 2who = args[1]; 3dest = this.otherside.location; 4destname = this.otherside:dname(); 5locmsg = this.knock_msg; 6$noises.knock:sound_in(dest, who, {}, 4, this.otherside); 7this:pass_noise($noises.knock, who, {}, 4, random(99999)); 8who:announce_action_text($su:ps(locmsg, who, this)); 9dest:broadcast_event(1, $actions.door.knock, who, {this.otherside});
_tell_appraise
Referenced by
none
Source
No program (verb defined but unprogrammed).
bash
Referenced by
none
Source
1player:queue_action(this, {"bash"});
_bash
Referenced by
none
Source
1who = args[1]; 2if (this.open) 3who:aat(who:dnamec(), " rushes at ", this:dname(), ", not realizing it was already open, and goes flying through it."); 4this:invoke(who); 5return; 6endif 7who:aat($su:ps($su:msg(this.bash_msg), who, this)); 8this.otherside.location:announce_all($su:ps($su:msg(this.bash_otherside_msg), who, this.otherside)); 9check = $skills.brawn:check(who, this.bash_difficulty); 10who:take_damage(#268, 5 + random(5), #301, this); 11this.location:broadcast_noise("You hear a %vol crash from the %dir.", 3); 12return 1;
fire_pcm
Referenced by
none
Source
1who = args[1]; 2pick = args[2]; 3check = args[3]; 4if (check < 0) 5ran = 100; 6else 7ran = 300; 8endif 9t = 0; 10for x in (this.contents) 11if (random(ran) <= `x.fire_chance ! ANY => 0') 12t = t + `x:_fire_pcm(@args) ! E_VERBNF => 0'; 13endif 14endfor 15return t;
peep peek
Referenced by
none
Source
1if (this.open) 2player:tell("YOU uh...you know it's open, right? So you can just look right through the open door. Go ahead, try it. It's okay."); 3return; 4endif 5hole = this.otherside:occupants(#174381); 6if (!hole) 7if ((player == this.owner) && this:occupants(#174381)) 8player:tell("You can't look through this side of the peephole. Did you maybe install it backwards? Hahaha. Oh man. I can't tell you how funny that is. Well, live and learn, right? It's not so bad -- you can just uninstall it and then reinstall it on the other side. Sorry to ramble about it...you go have a good time. I'll be fine."); 9return; 10endif 11player:tell("There's no peephole in ", this:dname(), "."); 12else 13player:tell("Through the peephole, you see:"); 14this.otherside.location:look_self(player); 15endif
become_adoor
Referenced by
none
Source
1bestlock = #-1; 2junklocks = {}; 3shock = 0; 4for x in (this.contents) 5if (is_a(x, $lock)) 6if ((!valid(bestlock)) || (x.value > bestlock.value)) 7bestlock = x; 8endif 9if (is_a(x, #7163)) 10shock = shock + 1; 11endif 12endif 13endfor 14for x in (this.contents) 15if (is_a(x, $lock)) 16if (x == bestlock) 17player:tell(" converting ", $su:nn(x), "..."); 18x:become_alock(); 19this.lock = is_a(x, #1) ? x | #-1; 20else 21player:tell(" junking ", $su:nn(x), "..."); 22if (!x.f) 23$recycler:_recycle(x); 24endif 25$cu:sin(0); 26endif 27elseif (is_a(x, #5232)) 28player:tell(" converting ", $su:nn(x), "..."); 29player:_chparent(x, x.amod_type); 30endif 31endfor 32if (shock > 1) 33shocker = $rpg:spawn((shock > 2) ? #156863 | #27779); 34player:tell(" spawning ", $su:nn(shocker), "..."); 35shocker:moveto(this); 36endif 37if ((!args) && is_a(this.otherside, #1)) 38this.otherside:become_adoor(otherside = 1); 39endif 40player:tell("Converted ", $su:nn(this), "!");
_do_open
Referenced by
- #119:die line 7:
this:_do_open
Source
1this:_open();
_do_close
Referenced by
- #119:_repair line 2:
this:_do_close
Source
1this:_close();
_is_locked
Referenced by
none
Source
1"Copied from door (#170):_is_locked by Necanthrope (#142) Fri Oct 5 23:02:29 2007 CDT"; 2if (valid(this.lock)) 3return this.lock.locked; 4endif 5return 0;
throws_to
Referenced by
none
Source
1if (!this.open) 2return #-1; 3else 4return pass(@args); 5endif
_lock
Referenced by
none
Source
1if (valid(this.lock)) 2this.lock:_lock(@args); 3return 1; 4endif
_unlock
Referenced by
none
Source
1if (valid(this.lock)) 2this.lock:_unlock(@args); 3return 1; 4endif
_can_be_unlocked_by
Referenced by
none
Source
1if (valid(this.lock)) 2return this.lock:(verb)(@args); 3endif 4return 1;
ok_to_pick
Referenced by
- #119:pick_old line 17:
this:ok_to_pick - #119:allows_backup_x line 13:
this:ok_to_pick
Source
1if (ok_to_pick = area(this.otherside):ok_to_pick(this)) 2return ok_to_pick in {E_NONE, 1}; 3endif 4if ((!is_player(this.owner)) || this.owner.programmer) 5return 1; 6endif 7if (!gamevalid(this.lock)) 8return 1; 9endif 10if (typeof(residents = this.lock.keyed_to) != LIST) 11return 1; 12endif 13residents = (!this.owner.programmer) ? setadd(residents, this.owner) | residents; 14if (is_a(this.biz, $biz)) 15for x in (this.biz.ranks["employees"]) 16residents = setadd(residents, x); 17endfor 18endif 19"Is any resident connected or not behind this door or inactive? If so, pickable!"; 20for x in (residents) 21if (is_connected(x)) 22return 1; 23elseif (!this:person_is_behind(x)) 24return 1; 25endif 26endfor 27"Is the owner inactive? If so, pickable!"; 28if ((time() - this.owner.last_disconnect_time) > (86400 * 60)) 29return 1; 30endif 31"Is any player connected and behind this door? If so, pickable!"; 32for x in (connected_players()) 33if (is_a(x, $immortal)) 34continue; 35endif 36if (area(x) == area(this.otherside)) 37if (this:person_is_behind(x)) 38return 1; 39endif 40endif 41endfor 42"None of that is the case, so unpickable."; 43return 0;
allows
Referenced by
none
Source
1"Copied from generic door (#246837):allows by Gilmore (#98) Sun Jul 11 15:59:49 2010 CDT"; 2what = args[1]; 3if (!this.open) 4if (is_a(what, $creature) && what.opens_doors) 5return pass(@args); 6endif 7return 0; 8else 9return pass(@args); 10endif
take_damage
Referenced by
- #119:_slam line 12:
this:take_damage
Source
1{type, amount} = args[1..2]; 2for x in (this.armor) 3if (is_a(type, x[1])) 4r = x[3] - x[2]; 5abx = x[2] + (r ? random(x[3] - x[2]) | 0); 6amount = max(0, amount - abx); 7endif 8endfor 9if (amount) 10this.health = min(this.health - amount, this.health_max); 11this.otherside.health = min(this.otherside.health - amount, this.otherside.health_max); 12if (this.health <= 0) 13fork (0) 14this:die(); 15endfork 16endif 17endif 18return amount;
die
Referenced by
- #119:take_damage line 14:
this:die
Source
1for a in (this.contents) 2if (is_a(a, $lock)) 3a.locked = 0; 4a.operational = 0; 5endif 6endfor 7this:_do_open(); 8this.operational = 0; 9if (!args) 10this.otherside:die(from_otherside = 1); 11endif
squeal_msg
Referenced by
none
Source
1"Copied from door (#170):squeal_msg by Necanthrope (#142) Sat Oct 13 23:47:22 2007 CDT"; 2":squeal_msg(INT damage)"; 3"Return this object's reaction to receiving this damage, based on the damage actually done after armor."; 4raw = tofloat(args[1]); 5if (!this.health) 6pct = 100.0; 7else 8total = tofloat(this.health + args[1]); 9if (raw > total) 10raw = total; 11endif 12if (total == 0.0) 13pct = 100.0; 14else 15pct = (raw / total) * 100.0; 16endif 17endif 18r = this.squeals:select("squeals", min(100, toint(pct)), $bodypart); 19if (r != "NULL") 20this.otherside.location:announce_all($su:ps(r, this.otherside, this.otherside, this.otherside) + "."); 21endif 22r = $su:ps(r, this, this, this, this); 23return (r == "NULL") ? 0 | r;
is_broken
Referenced by
none
Source
1return (this.health < this.health_max) || (!this.operational);
_repair
Referenced by
none
Source
1"Copied from door (#170):_repair by Necanthrope (#142) Sun Oct 14 01:44:04 2007 CDT"; 2this:_do_close(); 3this.operational = 1; 4this.otherside.operational = 1; 5this.health = this.health_max; 6this.otherside.health = this.otherside.health_max; 7for x in (this.contents) 8if ($ou:has_prop(x, "operational")) 9x.operational = 1; 10endif 11endfor 12for x in (this.otherside.contents) 13if ($ou:has_prop(x, "operational")) 14x.operational = 1; 15endif 16endfor
_repair_check
Referenced by
none
Source
1":_repair_check(OBJ who) => Return a skillcheck of 'who' trying to fix me."; 2check = $skills.repair:check(args[1], 0); 3return check;
move
Referenced by
none
Source
1r = pass(@args); 2who = args[1]; 3for x in (this.otherside.location:occupants($player)) 4if (x:is_doing($actions.aim) && (x.executing[2][1] == this.otherside)) 5fork (0) 6$actions.aim:blam(x, who, x.executing[2][3]); 7endfork 8endif 9endfor 10return r;
hear_lock_change
Referenced by
none
Source
No program (verb defined but unprogrammed).
allows_shove
Referenced by
none
Source
1if (!pass(@args)) 2return 0; 3endif 4if (!this.open) 5#98:tell($ansi.bold_on, $ansi.red, $su:nn(player), " tried a shove through ", $su:nn(this), "!", $ansi.reset); 6return 0; 7endif 8return 1;
allows_backup_x
Referenced by
none
Source
1"Copied from generic door (#246837):allows by Gilmore (#98) Sat Nov 15 01:33:26 2008 CST"; 2if (((!this.open) && is_a(who = args[1], $creature)) && (!who.opens_doors)) 3return 0; 4endif 5if ((!this.open) && is_a(what = args[1], $thing)) 6return 0; 7endif 8if (is_a(player, #40)) 9ok_to_go = 1; 10else 11ok_to_go = 0; 12endif 13if ((!this:ok_to_pick()) && (ok_to_go != 1)) 14return 0; 15endif 16if (this.open) 17return pass(@args); 18else 19return 0; 20endif
listen
Referenced by
none
Source
1if (this.open) 2player:tell("It's open, genius."); 3return; 4endif 5player:queue_action($actions.doorlisten, {this}, 1, "listen at " + this.name);
room_heat
Referenced by
none
Source
1if ((this.open && (!this.location.outdoor)) && this.otherside.location.outdoor) 2if (this.otherside.location.temperature > this.location.temperature) 3r = this.otherside.location.temperature - this.location.temperature; 4r = abs(r); 5r = r / 3; 6r = max(0, r); 7r = min(10, r); 8if (r > 5) 9this.location:announce_all("Warm air blows in from the ", this.name, "."); 10endif 11elseif (this.otherside.location.temperature < this.location.temperature) 12r = this.location.temperature - this.otherside.location.temperature; 13r = abs(r); 14r = r / 3; 15r = 1 - r; 16r = max(-10, r); 17r = min(0, r); 18if (r <= -5) 19this.location:announce_all("Cool air blows in from the ", this.name, "."); 20endif 21else 22r = 0; 23endif 24return r; 25endif 26return 0;
push shove
Referenced by
none
Source
1if (!this.open) 2player:tell(this:dnamec(), " is closed."); 3return; 4endif 5return pass(@args);
dname
Referenced by
- #119:try_close line 13:
this:dname - #119:try_close line 16:
this:dname - #119:pick_old line 12:
this:dname - #119:unlock line 10:
this:dname - #119:lock line 13:
this:dname - #119:uninstall line 3:
this:dname - #119:uninstall line 7:
this:dname - #119:_bash line 3:
this:dname - #119:peep line 11:
this:dname - #119:action_doing_msg line 3:
this:dname - #119:action_doing_msg line 5:
this:dname - #119:action_doing_msg line 7:
this:dname - #119:_slam line 6:
this:dname - #119:_slam line 14:
this:dname
Source
1if (this.name == this.direction) 2return "the door to " + this:direction_name(); 3else 4return pass(@args); 5endif
direction_name
Referenced by
- #119:dname line 2:
this:direction_name
Source
1if (this.direction == "up") 2return "above"; 3elseif (this.direction == "down") 4return "below"; 5elseif (this.direction in {"in", "out"}) 6return this.direction + "side"; 7elseif (this.direction in {"north", "northeast", "east", "southeast", "south", "southwest", "west", "northwest"}) 8return "the " + this.direction; 9else 10return this.direction; 11endif
action_doing_msg
Referenced by
none
Source
1action = args[2][1]; 2if (action == "open") 3return "opening " + this:dname(); 4elseif (action == "close") 5return "closing " + this:dname(); 6elseif (action == "bash") 7return "bashing " + this:dname(); 8else 9$nets.prognet:announce(#2, (((("unknown door doing_msg => " + $su:nn(player)) + " used ") + $su:nn(this)) + " args: ") + toliteral(args), 1); 10return ""; 11endif
attenuate
Referenced by
none
Source
1"Copied from generic exit (#543):attenuate by Seraph (#7195) Thu Feb 12 00:36:17 2009 CST"; 2{noise, initial_vol} = args; 3if (this.open) 4return pass(@args); 5else 6return initial_vol - 6; 7endif
look_place_msg
Referenced by
none
Source
1r = pass(@args); 2m = strsub(r, "%open", this.open ? "open" | "closed"); 3return m;
tell_health
Referenced by
- #119:look_self line 38:
this:tell_health
Source
1"Copied from south (#201091):tell_health by Left4Chiyo2 (#143894) Wed Oct 28 13:00:07 2009 CDT"; 2if (this.health < this.health_max) 3player:tell("It's " + $rpg:damage_to_desc(this.health, this.health_max), "."); 4endif
slam
Referenced by
none
Source
1player:queue_action(this, {"slam"});
person_is_behind
Referenced by
- #119:ok_to_pick line 23:
this:person_is_behind - #119:ok_to_pick line 37:
this:person_is_behind
Source
1{who, ?maxhops = 4} = args; 2firsthop = this.location:next_hop_to(who); 3if (firsthop != this) 4return 0; 5endif 6room = firsthop.otherside.location; 7hops = 1; 8while (hops < maxhops) 9if (who.location == room) 10return 1; 11endif 12nexthop = room:next_hop_to(who); 13if (!valid(nexthop)) 14return 0; 15endif 16room = nexthop.otherside.location; 17hops = hops + 1; 18endwhile 19return 0;
not_ok_to_pick
Referenced by
none
Source
1"Copied from generic door (#246837):ok_to_pick by Jed (#45097) Mon Mar 1 14:18:30 2010 CST"; 2if ((is_player(this.owner) && (!this.owner.programmer)) && (this.owner:area() == this.otherside:area())) 3for x in (this.otherside.location.residents) 4if ((x in connected_players()) && (x.location != this.otherside.location)) 5return 1; 6endif 7endfor 8return 0; 9endif 10return 1;
_slam
Referenced by
none
Source
1"Copied from south (#225691):_slam by laser_spider (#381051) Sun Aug 29 18:46:17 2010 CDT"; 2if (!this.open) 3player:tell("It's already closed, champ."); 4return; 5endif 6player:aat(((((player:dnamec() + " slams ") + this:dname()) + " shut as hard as ") + player.ps) + " can, causing the frame to shake a little bit."); 7this.otherside.location:announce_all(this.otherside:dnamec() + " suddenly slams shut."); 8this:_close(player); 9this.location:make_noise(#25302); 10brawn = $skills.brawn:check(player, 0); 11if (brawn > 5) 12damage = this:take_damage($damages.beating, brawn); 13if (damage > 0) 14this.location:announce_all(("A few splinters fly off " + this:dname()) + "."); 15endif 16endif
check_holders
Referenced by
- #119:try_close line 10:
this:check_holders - #119:_close line 8:
this:check_holders
Source
1new = {}; 2if (this.holders) 3for tuple in (this.holders) 4{time, reason} = tuple; 5if (time() < time) 6do_close = 0; 7new = {@new, tuple}; 8endif 9endfor 10this.holders = new; 11new = $lu:sort_alist(new); 12endif 13return new;