generic cliff #158
Aliases: generic cliff
19 verbs · 60 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
invoke | this none this | rxd | #158 | 18 |
try_me | this none this | rxd | #158 | 19 |
no_skill_msg leave_msg oleave_msg min_skill speed difficulty leave_fail_msg oarrive_msg fall_from_Msg odetach_msg | this none this | rxd | #158 | 6 |
allows | this none this | rxd | #158 | 9 |
fall | this none this | rxd | #158 | 23 |
relevation | this none this | rxd | #158 | 1 |
move | this none this | rxd | #158 | 24 |
detach remove get | any out of/from inside/from this | rxd | #158 | 12 |
install_rope | this none this | rxd | #158 | 6 |
jump | this none none | rxd | #158 | 16 |
look_self | this none this | rxd | #158 | 14 |
climb | this none none | rxd | #158 | 1 |
look_place_msg | this none this | rxd | #158 | 1 |
accept | this none this | rxd | #158 | 10 |
rope | this none this | rxd | #158 | 11 |
rope_dname | this none this | rxd | #158 | 5 |
_force_invoke | this none none | rxd | #158 | 14 |
throws_to | this none this | rxd | #158 | 4 |
allows_shove | this none this | rxd | #158 | 4 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
difficulty | #158 | rc | #361 | 1 |
no_skill_msg | #158 | rc | #361 | "Peering over the edge, a rush of vertigo gives you second thoughts about your suicidal climbing plan." |
min_skill | #158 | rc | #361 | 5 |
elevation | #158 | rc | #361 | 0 |
fall_from_msg | #158 | rc | #361 | "You look up and see %dn lose %p grip and fall!" |
jump_msg | #158 | rc | #361 | "%N takes a run at %dt and leaps over." |
jump_from_msg | #158 | rc | #361 | "You look up and see %in plummet down from %dt." |
oleave_finish_msg | #158 | rc | #361 | "%DN hauls %oself up over the edge and is gone." |
push_msg | #158 | rc | #361 | {"%N flails wildly as %s falls over the side of %dt."} |
climbable | #158 | rc | #361 | 1 |
falling_room | #158 | rc | #361 | #-1 |
grapple_difficulty | #158 | rc | #361 | 0 |
ropeable | #158 | rc | #361 | 1 |
rope_fail_msg | #158 | rc | #361 | "%DN throws a rope down %dt and attaches the end...which slips and falls down." |
otherside | #55 | rc | #361 | <clear> |
leave_msg | #55 | rc | #361 | "You start climbing %t." |
arrive_msg | #55 | rc | #361 | <clear> |
go_fail_msg | #55 | rc | #361 | <clear> |
look_place_msg | #55 | rc | #361 | "There's a cliff." |
opaque | #55 | rc | #361 | <clear> |
obvious | #55 | rc | #361 | 1 |
next_hops | #55 | r | #361 | <clear> |
speed | #55 | rc | #361 | 3.0 |
direction | #55 | rc | #361 | <clear> |
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 | <clear> |
oleave_msg | #55 | rc | #361 | "%DN starts climbing %t." |
oleave_follow_msg | #55 | rc | #361 | <clear> |
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 | -1 |
hidden | #55 | rc | #361 | <clear> |
direction_msg | #55 | rc | #361 | <clear> |
next_hop_ok | #55 | rc | #361 | 0 |
protect_msg | #55 | rc | #361 | <clear> |
pushed_msg | #55 | rc | #361 | "%DN goes stumbling toward the edge of %dt, then falls over." |
pushed_from_msg | #55 | rc | #361 | "Above, you see someone fall from %dt." |
look_through_msg | #55 | rc | #361 | <clear> |
icon | #55 | rc | #361 | <clear> |
pee_msg | #55 | rc | #361 | "%DN aims %p piss stream against %dt, hosing it down." |
otherside_type | #55 | rc | #361 | <clear> |
verb_subs | #55 | rc | #361 | <clear> |
sneak_difficulty | #55 | rc | #361 | <clear> |
aliases | #1 | rc | #361 | {"generic cliff"} |
description | #1 | rc | #361 | "" |
object_size | #1 | r | #29 | {12897, 1298433871} |
hidden_verbs | #1 | rc | #361 | {"open", "@pass", "_force_invoke"} |
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
Source
invoke
Referenced by
- #158:move line 9:
this:invoke - #158:climb line 1:
this:invoke
Source
1who = args ? args[1] | player; 2if (who:hands() < 1) 3who:tell("You don't have any functional hands! You're not gonna have much luck climbing anything."); 4return; 5endif 6if ((sfac = $skills.climb:total(who) + this.difficulty) > 18) 7dvec = 4; 8elseif (sfac > 13) 9dvec = 3; 10elseif (sfac > 10) 11dvec = 2; 12else 13dvec = 1; 14endif 15dvec = (this.elevation > this.otherside.elevation) ? -dvec | dvec; 16if ((!who.executing) || (who.executing[1] != $actions.climb)) 17who:prequeue_action($actions.climb, {this, this.elevation, 1, dvec, 0, 1}, 1, "climb " + this.direction, 1); 18endif
try_me
Referenced by
none
Source
1who = args[1]; 2silent = (length(args) >= 2) ? args[2] | 0; 3sk = $skills.climb:total(who); 4if (!this:allows(who)) 5if (m = this:go_fail_msg(who)) 6who:announce_action_text($su:ps(m, who, this)); 7return E_PERM; 8endif 9endif 10if ((!is_a(who, $rpg_player)) || (sk >= this:min_skill())) 11if (!silent) 12who:tell($su:ps(this:leave_msg(), who, valid(r = this:rope()) ? r | this)); 13who.location:announce_all_but({who}, $su:ps(this:oleave_msg(), who, valid(r = this:rope()) ? r | this)); 14endif 15return 1; 16else 17who:tell(this:no_skill_msg()); 18return 0; 19endif
no_skill_msg leave_msg oleave_msg min_skill speed difficulty leave_fail_msg oarrive_msg fall_from_Msg odetach_msg
Referenced by
- #158:try_me line 10:
this:min_skill - #158:try_me line 12:
this:leave_msg - #158:try_me line 13:
this:oleave_msg - #158:try_me line 17:
this:no_skill_msg - #158:detach line 9:
this:odetach_msg
Source
1rope = (args && is_a(args[1], $rope)) ? args[1] | this:rope(); 2if (valid(rope)) 3return rope:(verb)(this); 4else 5return this.(verb); 6endif
allows
Referenced by
- #158:try_me line 4:
this:allows
Source
1"Copied from generic exit (#543):allows by Gilmore (#98) Tue May 31 22:16:00 2005 CDT"; 2if (is_a(who = args[1], $creature) && (!who.climbs_cliffs)) 3return 0; 4endif 5if (this.climbable) 6return pass(@args); 7else 8return 0; 9endif
fall
Referenced by
none
Source
1who = args[1]; 2cheight = args[2]; 3if (this.elevation > this.otherside.elevation) 4distance = cheight - this.otherside.elevation; 5else 6distance = cheight - this.elevation; 7endif 8"distance = (cheight >= this.elevation) ? cheight - this.elevation | (cheight - this.otherside.elevation);"; 9if (distance < 1) 10distance = 1; 11endif 12who:tell(((($ansi.red + $ansi.bold_on) + "SHIT!") + $ansi.reset) + " You lost your grip and fell from ", $su:english_number(distance), " meters up!"); 13if (this.elevation > this.otherside.elevation) 14into = this.otherside; 15else 16into = this; 17endif 18fork (0) 19if (who.location == this.location) 20who:moveto(into.location); 21into.location:fall_into(who, this.location, distance); 22endif 23endfork
relevation
Referenced by
none
Source
1return this.elevation - this.otherside.elevation;
move
Referenced by
none
Source
1who = args[1]; 2if ((start = who.location) != this.location) 3return 0; 4endif 5if ((length(args) > 1) && args[2]) 6return pass(@args); 7endif 8if (is_player(who) && (!(callers()[1][1] in {$actions.climb, $actions.fly}))) 9this:invoke(who); 10return 0; 11endif 12if (this.oleave_finish_msg) 13who.location:announce_all_but({who}, $su:ps(this.oleave_finish_msg, who, this)); 14endif 15dest = this:dest_for(who); 16who:moveto(dest); 17m = this.otherside:oarrive_msg(); 18dest:announce_all_but({who}, $su:ps(m, who, this.otherside)); 19if (m = this.otherside:arrive_msg()) 20who:tell(m); 21endif 22start:broadcast_event(0, $actions.move, who, {this}); 23dest:broadcast_event(0, $actions.arrive, who, {this.otherside}); 24return 1;
detach remove get
Referenced by
none
Source
1if (!valid(r = this:rope())) 2player:tell("There's nothing attached to ", this:dname(), "."); 3else 4if (player:cant_take(r)) 5player:tell("You're carrying too much to take ", r:dname(), "."); 6else 7player:clear_hands(2); 8if (player:get_gift(r)) 9player:aat($su:ps(this:odetach_msg(r), player, r, this)); 10endif 11endif 12endif
install_rope
Referenced by
none
Source
1rope = args[1]; 2if (this.rope != this) 3this:uninstall_rope(); 4endif 5this.rope = args[1]; 6this.otherside.rope = args[1];
jump
Referenced by
none
Source
1if ((!is_a(player, $prog)) && (this.elevation < this.otherside.elevation)) 2player:tell("Despite what you may have heard, you can't jump UP a cliff. You're not Superman."); 3return; 4endif 5if (!this.passable) 6player:aat($su:ps(this.go_fail_msg, player, this)); 7return; 8endif 9player:aat($su:ps(this.jump_msg, player, this)); 10if (valid(this.falling_room)) 11player:moveto(this.falling_room); 12else 13player:moveto(this.otherside.location); 14endif 15this.otherside.location:announce($su:ps(this.otherside.jump_from_msg, player, this.otherside)); 16player.location:fall_into(player, this.location, this.elevation);
look_self
Referenced by
none
Source
1pass(@args); 2height = this.elevation - this.otherside.elevation; 3if (height < 0) 4player:tell("The top looks about ", -height, " meters up."); 5else 6player:tell("The bottom looks about ", height, " meters down."); 7endif 8if (this.climbable) 9d = min(9, max(1, this.difficulty + 7)); 10player:tell("The climb looks ", {"nearly impossible", "extremely difficult", "very difficult", "difficult", "a little tricky", "fairly routine", "pretty easy", "trivial", "trivial, even for a beginner"}[d], "."); 11endif 12if (valid(r = this:rope())) 13player:tell(r:attached_msg(this)); 14endif
climb
Referenced by
none
Source
1this:invoke(player);
look_place_msg
Referenced by
none
Source
1return $su:ps(this.(verb), this, this);
accept
Referenced by
none
Source
1what = args[1]; 2if (!is_a(what, $rope)) 3return 0; 4elseif (valid(r = this:rope())) 5player:tell("There's already ", r:iname(), " hanging from ", this:dname(), "."); 6return 0; 7else 8this.rope = what; 9return 1; 10endif
rope
Referenced by
- #158:try_me line 12:
this:rope - #158:try_me line 13:
this:rope - #158:no_skill_msg line 1:
this:rope - #158:detach line 1:
this:rope - #158:look_self line 12:
this:rope - #158:accept line 4:
this:rope - #158:rope_dname line 1:
this:rope
Source
1if (valid(this.otherside)) 2set = this.otherside.contents; 3else 4set = {}; 5endif 6for x in ({@this.contents, @set}) 7if (is_a(x, $rope)) 8return x; 9endif 10endfor 11return #-1;
rope_dname
Referenced by
none
Source
1if (valid(r = this:rope())) 2return r:dname(); 3else 4return this:dname(); 5endif
_force_invoke
Referenced by
none
Source
1who = args[1]; 2protection = (verb == "push") ? "shove" | "push"; 3if (this.elevation < this.otherside.elevation) 4player:tell("Despite what you may have heard, you can't ", protection, " someone UP a cliff. You're not Superman."); 5return; 6endif 7if (!this.passable) 8who:aat($su:ps(this.go_fail_msg, who, this)); 9return; 10endif 11who:aat($su:ps(this.push_msg, who, this)); 12who:moveto(this.otherside.location); 13this.otherside.location:announce($su:ps(this.otherside.jump_from_msg, player, this.otherside)); 14who.location:fall_into(who, this.location, this.elevation);
throws_to
Referenced by
none
Source
1if (this.elevation < this.otherside.elevation) 2return #-1; 3endif 4return pass(@args);
allows_shove
Referenced by
none
Source
1if (this.elevation < this.otherside.elevation) 2return 0; 3endif 4return pass(@args);