generic cliff #158

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

Aliases: generic cliff

19 verbs · 60 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
invokethis none thisrxd#15818
try_methis none thisrxd#15819
no_skill_msg leave_msg oleave_msg min_skill speed difficulty leave_fail_msg oarrive_msg fall_from_Msg odetach_msgthis none thisrxd#1586
allowsthis none thisrxd#1589
fallthis none thisrxd#15823
relevationthis none thisrxd#1581
movethis none thisrxd#15824
detach remove getany out of/from inside/from thisrxd#15812
install_ropethis none thisrxd#1586
jumpthis none nonerxd#15816
look_selfthis none thisrxd#15814
climbthis none nonerxd#1581
look_place_msgthis none thisrxd#1581
acceptthis none thisrxd#15810
ropethis none thisrxd#15811
rope_dnamethis none thisrxd#1585
_force_invokethis none nonerxd#15814
throws_tothis none thisrxd#1584
allows_shovethis none thisrxd#1584

Properties

PropertyDefinerFlagsOwnerValue
difficulty#158rc#3611
no_skill_msg#158rc#361"Peering over the edge, a rush of vertigo gives you second thoughts about your suicidal climbing plan."
min_skill#158rc#3615
elevation#158rc#3610
fall_from_msg#158rc#361"You look up and see %dn lose %p grip and fall!"
jump_msg#158rc#361"%N takes a run at %dt and leaps over."
jump_from_msg#158rc#361"You look up and see %in plummet down from %dt."
oleave_finish_msg#158rc#361"%DN hauls %oself up over the edge and is gone."
push_msg#158rc#361{"%N flails wildly as %s falls over the side of %dt."}
climbable#158rc#3611
falling_room#158rc#361#-1
grapple_difficulty#158rc#3610
ropeable#158rc#3611
rope_fail_msg#158rc#361"%DN throws a rope down %dt and attaches the end...which slips and falls down."
otherside#55rc#361<clear>
leave_msg#55rc#361"You start climbing %t."
arrive_msg#55rc#361<clear>
go_fail_msg#55rc#361<clear>
look_place_msg#55rc#361"There's a cliff."
opaque#55rc#361<clear>
obvious#55rc#3611
next_hops#55r#361<clear>
speed#55rc#3613.0
direction#55rc#361<clear>
throw_msg#55rc#361<clear>
throw_through_msg#55rc#361<clear>
throw_fail_msg#55rc#361<clear>
oarrive_msg#55rc#361<clear>
oleave_msg#55rc#361"%DN starts climbing %t."
oleave_follow_msg#55rc#361<clear>
oarrive_follow_msg#55rc#361<clear>
last_use_time#55r#361<clear>
last_user#55r#361<clear>
last_arriver#55r#361<clear>
last_arrive_time#55r#361<clear>
passable#55rc#361<clear>
draw_ok#55rc#361<clear>
attenuation#55rw#361-1
hidden#55rc#361<clear>
direction_msg#55rc#361<clear>
next_hop_ok#55rc#3610
protect_msg#55rc#361<clear>
pushed_msg#55rc#361"%DN goes stumbling toward the edge of %dt, then falls over."
pushed_from_msg#55rc#361"Above, you see someone fall from %dt."
look_through_msg#55rc#361<clear>
icon#55rc#361<clear>
pee_msg#55rc#361"%DN aims %p piss stream against %dt, hosing it down."
otherside_type#55rc#361<clear>
verb_subs#55rc#361<clear>
sneak_difficulty#55rc#361<clear>
aliases#1rc#361{"generic cliff"}
description#1rc#361""
object_size#1r#29{12897, 1298433871}
hidden_verbs#1rc#361{"open", "@pass", "_force_invoke"}
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): #55 generic exit#1 root

Children: none

Call graph

calls n158_1 #158:try_me n158_3 #158:allows n158_1->n158_3 n55_1 #55:arrive_msg n158_1->n55_1 n20_34 #20:pronoun_sub n158_1->n20_34 n158_2 #158:no_skill_msg n158_1->n158_2 n158_14 #158:rope n158_1->n158_14 n55_5 #55:allows n158_3->n55_5 n158_2->n158_14 n158_4 #158:fall n20_27 #20:english_number n158_4->n20_27 n158_6 #158:move n158_6->n20_34 n55_6 #55:move n158_6->n55_6 n158_0 #158:invoke n158_6->n158_0 n55_3 #55:dest_for n158_6->n55_3 n158_7 #158:detach n158_7->n20_34 n158_7->n158_2 n158_7->n158_14 n107_43 #107:tell n158_7->n107_43 n55_9 #55:dname n158_7->n55_9 n107_20 #107:cant_take n158_7->n107_20 n107_50 #107:clear_hands n158_7->n107_50 n107_49 #107:get_gift n158_7->n107_49 n1_66 #1:announce_action_text n158_7->n1_66 n158_9 #158:jump n158_9->n20_34 n158_9->n107_43 n158_9->n1_66 n6_91 #6:moveto n158_9->n6_91 n158_10 #158:look_self n158_10->n158_14 n158_10->n107_43 n55_2 #55:look_self n158_10->n55_2 n158_11 #158:climb n158_11->n158_0 n158_12 #158:look_place_msg n158_12->n20_34 n158_13 #158:accept n158_13->n158_14 n158_13->n107_43 n158_13->n55_9 n158_15 #158:rope_dname n158_15->n158_14 n158_15->n55_9 n158_16 #158:_force_invoke n158_16->n20_34 n158_16->n107_43 n158_17 #158:throws_to n55_15 #55:throws_to n158_17->n55_15 n158_18 #158:allows_shove n55_33 #55:allows_shove n158_18->n55_33

Source

invoke

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

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

Spec this none thisFlags rxdOwner #361Definer #158

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

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

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

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

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

Spec this none thisFlags rxdOwner #361Definer #158

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

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

none

Source

1return this.elevation - this.otherside.elevation;

move

Spec this none thisFlags rxdOwner #361Definer #158

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

Spec any out of/from inside/from thisFlags rxdOwner #361Definer #158

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

Spec this none thisFlags rxdOwner #361Definer #158

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

Spec this none noneFlags rxdOwner #361Definer #158

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

Spec this none thisFlags rxdOwner #361Definer #158

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

Spec this none noneFlags rxdOwner #361Definer #158

Referenced by

none

Source

1this:invoke(player);

look_place_msg

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

none

Source

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

accept

Spec this none thisFlags rxdOwner #361Definer #158

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

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

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

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

none

Source

1if (valid(r = this:rope()))
2return r:dname();
3else
4return this:dname();
5endif

_force_invoke

Spec this none noneFlags rxdOwner #361Definer #158

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

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

none

Source

1if (this.elevation < this.otherside.elevation)
2return #-1;
3endif
4return pass(@args);

allows_shove

Spec this none thisFlags rxdOwner #361Definer #158

Referenced by

none

Source

1if (this.elevation < this.otherside.elevation)
2return 0;
3endif
4return pass(@args);