generic body #148

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

Aliases: generic body

32 verbs · 99 properties · 1 children

Verbs

VerbSpecFlagsDefinerLines
suggest_next_action _wield com*mand _fight _unwield hkick elect_action hear_event default_elect_action dodge_or_parry at*tack kill hear_event_attack hear_event_move start_fighting knockout wakethis none thisrxd#1481
setupthis none thisrxd#14825
diethis none thisrxd#1487
breakdownthis none thisrxd#14811
searchthis none nonerxd#14817
tell_healththis none thisrxd#1488
cant_takethis none thisrxd#1481
is_deadthis none thisrxd#1484
_wakethis none thisrxd#1483
threat_ratingthis none thisrxd#1481
recyclethis none thisrxd#1486
_knockoutthis none thisrxd#1483
kickthis none nonerxd#1487
_allowsthis none thisrxd#1481
hear_event_arrivethis none thisrxd#1486
followthis none nonerxd#1481
max_carrythis none thisrxd#1481
heartbeatthis none thisrxd#1489
base_dodgethis none thisrxd#1481
grab lunge holdthis none nonerxd#1482
_eatthis none thisrxd#14815
get_fromthis none thisrxd#1485
cant_get_fromthis none thisrxd#14814
explodethis none thisrxd#14833
_brainscanthis none thisrxd#1485
killed_bythis none thisrxd#1483
put_intothis none thisrxd#1480
cant_put_intothis none thisrxd#1481
turn_to_corpsethis none thisrxd#14826
fighting_targetthis none thisrxd#1481
check*pulsethis none nonerxd#1481
entombthis none thisrxd#1487

Properties

PropertyDefinerFlagsOwnerValue
sync_props#148rc#361{"description", "blood", "has_proper_name", "wearing", "implants", "health", "health_max", "fetishes"}
player#148rc#361#-1
rename#148rc#3611
restore_props#148rc#361{"wearing", "implants", "blood"}
meats#148rc#361{#2158, #2168, #27317}
get_from_msg#148rc#361""
clothing#148rc#361{}
drag_msg#148rc#361"%N grabs %dt and starts dragging it towards %dl."
drag_fall_msg#148rc#361"%DT rolls over the edge of %dl."
nodrag_msg#148rc#361"%N tugs mightily on %dt, trying to drag it."
hands#107rc#361<clear>
wielding#107rc#361<clear>
health#107rc#36120
unarmed_weapon#107rc#361<clear>
size#107rc#361<clear>
posture#107rc#361"passed out"
gender#107rc#361<clear>
respawn#107rc#361#2800
corpse#107rc#361<clear>
has_proper_name#107rc#3611
die_msg#107rc#361"%DN's limbs twitch feebly; %s coughs weakly, and moves no more."
body_parts#107rc#361<clear>
wearing#107rc#361<clear>
armor#107rc#361<clear>
last_swing_message#107rc#361<clear>
health_max#107rc#361<clear>
fighting#107rc#361{}
last_dodge_time#107rc#361<clear>
following#107rc#361<clear>
icon#107rc#361<clear>
say_msg#107rc#361<clear>
say_to_msg#107rc#361<clear>
afterlife#107rc#361<clear>
get_msg#107rc#361<clear>
drop_msg#107rc#361<clear>
blood#107rc#361<clear>
squeals#107rc#361#934
prc#107rc#361<clear>
ppc#107rc#361<clear>
poc#107rc#361<clear>
psc#107rc#361<clear>
pr#107rc#361<clear>
pp#107rc#361<clear>
po#107rc#361<clear>
ps#107rc#361<clear>
pq#107rc#361<clear>
pqc#107rc#361<clear>
brief#107rc#361<clear>
knockout#107rc#361<clear>
knockout_msg#107rc#361<clear>
body#107rc#361<clear>
wake_msg#107rc#361<clear>
owake_msg#107rc#361<clear>
oknockout_msg#107rc#361<clear>
friends#107rc#361<clear>
home#107rc#361<clear>
respawn_msg#107rc#361<clear>
move_action#107rc#361<clear>
heart#107rc#3610
last_heartbeat#107rc#361<clear>
dead#107rc#361<clear>
_tohit_next#107rc#361<clear>
last_words_msg#107rc#361<clear>
attacked#107rc#361<clear>
opens_doors#107rc#3610
movable_by_explosion#107rc#361<clear>
obscured#107rc#361<clear>
obscured_desc_msg#107rc#361<clear>
cooldowns#107rc#361<clear>
combat_rounds#107rc#361<clear>
encumbrance#107rc#361<clear>
respawn_handler#107rc#361<clear>
distant_form_msg#107rc#361""
block_msg#107rc#361<clear>
attack_on_block#107rc#361<clear>
last_stunned#107rc#361<clear>
nude_descs#107rc#361<clear>
skills#107rc#361<clear>
explode_msg#107rc#361<clear>
death_listeners#107rc#361<clear>
queue#92r#361<clear>
preemptible#92r#361<clear>
executing#92r#361<clear>
process_queue#92r#361<clear>
help_msg#92rc#361<clear>
last_action#92r#361<clear>
article#92rc#361<clear>
last_last_action#92rc#361<clear>
action_count#92rc#361<clear>
aliases#1rc#361{"generic body"}
description#1rc#361<clear>
object_size#1r#29{28403, 1298433816}
hidden_verbs#1rc#361{"command", "@behaviors", "@possess", "follow", "appraise", "learn"}
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): #107 generic creature#92 generic actor#1 root

Children: #104 generic corpse

Call graph

calls n148_1 #148:setup n1_2 #1:set_name n148_1->n1_2 n1_4 #1:set_aliases n148_1->n1_4 n34_0 #34:set n148_1->n34_0 n45_23 #45:leaves n148_1->n45_23 n148_3 #148:breakdown n107_142 #107:dead n148_3->n107_142 n148_4 #148:search n1_66 #1:announce_action_text n148_4->n1_66 n20_15 #20:capitalize n148_4->n20_15 n107_9 #107:dname n148_4->n107_9 n107_43 #107:tell n148_4->n107_43 n20_6 #20:english_list n148_4->n20_6 n47_3 #47:map_verb n148_4->n47_3 n1_39 #1:dnamec n148_4->n1_39 n1_42 #1:occupants n148_4->n1_42 n98_2 #98:aggregate_names n148_4->n98_2 n148_5 #148:tell_health n148_5->n107_43 n148_5->n1_39 n148_7 #148:is_dead n148_5->n148_7 n107_42 #107:tell_health n148_5->n107_42 n148_8 #148:_wake n148_8->n148_7 n148_10 #148:recycle n45_5 #45:isa n148_10->n45_5 n107_66 #107:recycle n148_10->n107_66 n148_11 #148:_knockout n148_11->n45_5 n148_12 #148:kick n148_12->n107_9 n148_12->n107_43 n148_12->n148_7 n6_151 #6:name n148_12->n6_151 n148_15 #148:follow n148_15->n107_43 n148_17 #148:heartbeat n107_5 #107:heartbeat n148_17->n107_5 n103_47 #103:valid n148_17->n103_47 n20_59 #20:name_and_number n148_17->n20_59 n148_2 #148:die n148_17->n148_2 n148_19 #148:grab n148_19->n107_9 n148_19->n107_43 n148_20 #148:_eat n148_20->n148_8 n45_0 #45:has_property n148_20->n45_0 n20_34 #20:pronoun_sub n148_20->n20_34 n107_6 #107:take_damage n148_20->n107_6 n148_21 #148:get_from n47_25 #47:randomly_permute n148_21->n47_25 n148_22 #148:cant_get_from n148_22->n107_9 n148_23 #148:explode n148_23->n20_34 n103_1 #103:spawn n148_23->n103_1 n148_24 #148:_brainscan n107_107 #107:_whisper n148_24->n107_107 n148_28 #148:turn_to_corpse n148_28->n20_59 n148_30 #148:check*pulse n92_2 #92:queue_action n148_30->n92_2

Showing 48 of 50 verbs; 2 not shown.

Source

suggest_next_action _wield com*mand _fight _unwield hkick elect_action hear_event default_elect_action dodge_or_parry at*tack kill hear_event_attack hear_event_move start_fighting knockout wake

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return 0;

setup

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

Source

1"setup(OBJ who) => Sets up the corpse so it resembles who's properties";
2who = args[1];
3destination = ((length(args) > 1) && is_a(args[2], $room)) ? args[2] | who.location;
4"DO NOT ADD .meats MODIFYING CODE HERE";
5this.player = who;
6this:set_name(who:name());
7this:set_aliases(who.aliases);
8this.has_proper_name = who.has_proper_name;
9$gender_utils:set(this, who.gender);
10for x in ($ou:leaves($skill))
11if (x.name in keys(who.skills))
12this.skills[x.name] = who.skills[x.name];
13endif
14endfor
15for prop in (this.sync_props)
16`this.(prop) = who.(prop) ! ANY => 0';
17endfor
18this.body_parts = who.body_parts;
19for x in (who.contents)
20move(x, this);
21endfor
22this.posture = "passed out";
23`this.clothing = who.clothing ! ANY';
24move(this, who.location);
25"DO NOT ADD .meats MODIFYING CODE HERE";

die

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

Source

1who = this.player;
2this.health = 0;
3if (is_a(who, $creature))
4who:die(@args);
5else
6$nets.prognet:announce(this, "I am a fucked up $body.");
7endif

breakdown

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1if (valid(who = this.player))
2for x in (this.restore_props)
3`who.(x) = this.(x) ! ANY => 0';
4endfor
5else
6return 0;
7endif
8if (this:dead() && is_a(this, $corpse))
9who.blood = this.restorable_blood;
10endif
11return 0;

Spec this none noneFlags rxdOwner #361Definer #148

Referenced by

none

Source

1"Search the body for possible loot.";
2player:aat($su:capitalize(player:dname()), " searches through ", this:dname(), ".");
3if (is_a(this.player, $immortal))
4player:tell("You don't find anything useful on ", this:dname(), ".");
5return;
6endif
7if (`this.clothing ! ANY')
8clothes = $su:english_list($lu:map_verb(this.clothing, "iname"));
9player:tell(this:dnamec(), " is wearing ", clothes, ".");
10endif
11if (stuff = this:occupants($thing))
12"  thelist = $su:english_list($lu:map_verb(stuff, \"iname\"));";
13thelist = $english_utils:aggregate_names(stuff);
14player:tell("On ", this:dname(), " you find ", thelist, ".");
15else
16player:tell("You don't find anything useful on ", this:dname(), ".");
17endif

tell_health

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1if (this:is_dead())
2player:tell(this:dnamec(), " seems to be dead.");
3return;
4endif
5pass(@args);
6if (valid(this.player))
7player:tell(this:dnamec(), " seems to be passed out.");
8endif

cant_take

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return (this.ps + " is ") + (valid(this.player) ? "unconscious" | "dead");

is_dead

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

Source

1":is_dead() => 0: unconscious,";
2"              1: dead, but revivable from afterlife,";
3"              2: dead and he ain't comin' back.";
4return 0;

_wake

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

Source

1if (valid(this.player) && (this:is_dead() < 2))
2this.player:_wake();
3endif

threat_rating

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return 0;

recycle

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1if ($ou:isa(this.player, $creature))
2if (this.player.body == this)
3this.player.body = #-1;
4endif
5endif
6return pass(@args);

_knockout

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1if (valid(this.player) && $ou:isa(this.player, $creature))
2this.player:_knockout(@args);
3endif

kick

Spec this none noneFlags rxdOwner #361Definer #148

Referenced by

none

Source

1player:tell("You give ", this:dname(), " a rough kick.");
2player.location:announce(player:name(), " kicks ", this:dname(), ".");
3if (this:is_dead())
4player:tell(this.psc, "'s dead all right.");
5else
6player:tell(this.psc, "'s not dead yet.");
7endif

_allows

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return 1;

hear_event_arrive

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return;
2if ((args[3].name == this.name) && (!is_a(args[3], $corpse)))
3this.name = "corpse of " + args[3].name;
4this.has_proper_name = 0;
5this.aliases = setremove(this.aliases, args[3].name);
6endif

follow

Spec this none noneFlags rxdOwner #361Definer #148

Referenced by

none

Source

1player:tell("Wouldn't it make more sense to follow someone who's alive and walking around?");

max_carry

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return 100000;

heartbeat

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1pass(@args);
2if ($rpg:valid(this) && is_a(this, $body))
3if ((!is_a(this.player, $creature)) || ((valid(this.player) && is_a(this.player:area(), $real_area)) && (!(this.player:region() == $dreamworld))))
4if (valid(this.player))
5$nets.prognet:announce(this, (((("Killed " + $su:nn(this.player)) + " at the behest of this $body:heartbeat, while the body was at ") + $su:nn(this.location)) + " and the critter was at ") + $su:nn(this.player.location));
6endif
7this:die();
8endif
9endif

base_dodge

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return args[1] + 10;

grab lunge hold

Spec this none noneFlags rxdOwner #361Definer #148

Referenced by

none

Source

1player:tell("You get the feeling ", this:dname(), " isn't going to fight back.");
2return 0;

_eat

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1"Copied from generic corpse (#5378):_eat by Gilmore (#98) Thu Mar 24 12:55:25 2005 PST";
2who = args[1];
3if ($ou:has_property(who, "feed_msg"))
4m = who.feed_msg;
5else
6m = this.eat_msg;
7endif
8who:aat($su:ps(m));
9for a in (this.blood)
10who:ingest(a[1], a[3], 0);
11endfor
12this:take_damage(#277, 1, $bodypart, who);
13if (random(100) < 25)
14this:_wake();
15endif

get_from

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1"Copied from generic corpse (#5378):get_from by Gilmore (#98) Sun May  1 01:09:55 2005 PDT";
2"Copied from generic container (#931):get_from by Gilmore (#98) Mon Apr  4 22:59:27 2005 PDT";
3who = args[1];
4targets = (typeof(args[2]) == LIST) ? $lu:randomly_permute(args[2]) | {args[2]};
5who:queue_action($actions.get, {targets, this, {}}, 1, "get from " + this.name);

cant_get_from

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1getter = args[1];
2targets = args[2];
3if ((!this.contents) || is_a(this.player, $immortal))
4return this:dname() + " doesn't have anything to get";
5endif
6for x in (targets)
7if (!(x in this.contents))
8targets = setremove(targets, x);
9endif
10endfor
11if (!targets)
12return "it's not on " + this:dname();
13endif
14return 0;

explode

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1who = this.player;
2if (is_a(who, $player))
3$quests.giblets:award_to(who);
4endif
5if (is_a(who, $prog))
6return 0;
7endif
8dtype = (length(args) > 1) ? args[2] | $damage;
9if ((is_a(who, $creature) && is_a(this, $body)) && is_a(this.location, $room))
10for x in (who.corpse.bodyparts)
11if (random(100) <= `x.survive_chance ! E_PROPNF => 40')
12thing = $rpg:spawn(x);
13`thing:carve_from(this) ! E_VERBNF';
14exits = this.location:exits();
15if (exits)
16exit = exits[random($)];
17if ((random(100) < 50) && valid(dest = exit:throws_to(thing, who)))
18dest:announce_all($su:ps(exit.otherside.throw_through_msg, who, thing, exit.otherside));
19thing:moveto(dest);
20else
21thing:moveto(this.location);
22endif
23else
24thing:moveto(this.location);
25endif
26endif
27endfor
28endif
29for x in (this.contents)
30this.location:broadcast_event(0, $actions.drop, who, {x, this.location});
31x:moveto(this.location);
32endfor
33move(this, $tomb);

_brainscan

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1if (is_a(p = this.player, $living))
2p:_brainscan(@args);
3else
4this:_whisper(args[1], "Who am I?  Will I ever wake up?");
5endif

killed_by

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1if (is_a(this.player, $creature))
2return this.player:killed_by(@args);
3endif

put_into

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

No program (verb defined but unprogrammed).

cant_put_into

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return "you just can't";

turn_to_corpse

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1":turn_to_corpse(dtype) => Convert this body into a corpse by changing its parent. Dtype should be the kind of damage that killed the creature.";
2who = this.player;
3if (is_a(who, $npc))
4who.death_time = time();
5endif
6dtype = (length(args) >= 1) ? args[1] | $damage;
7if (is_a(who, $creature))
8if (valid(who.corpse))
9if (who.corpse == $corpse)
10$nets.gamenet:announce(#2, tostr($su:nn(who), " (", $su:nn(parent(who)), ") turned into a $corpse"), 1);
11elseif (!is_a(who.corpse, $corpse))
12$nets.prognet:announce(#2, tostr($su:nn(who), " (", $su:nn(parent(who)), " turned into a bad corpse: ", $su:nn(who.corpse)), 1);
13endif
14chparent(this, who.corpse);
15this.bodyparts = who.corpse.bodyparts;
16else
17for x in (this.contents)
18x:moveto(this.location);
19endfor
20move(this, $tomb);
21return;
22endif
23else
24chparent(this, $corpse);
25endif
26this:setup_for(who, dtype);

fighting_target

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1return this.player;

check*pulse

Spec this none noneFlags rxdOwner #29Definer #148

Referenced by

none

Source

1player:queue_action(#531330, {this}, 1, "pulse check");

entomb

Spec this none thisFlags rxdOwner #361Definer #148

Referenced by

none

Source

1"Copied from generic body (#1031):recycle by Gilmore (#98) Wed Jun  2 21:43:18 2010 CDT";
2if ($ou:isa(this.player, $creature))
3if (this.player.body == this)
4this.player.body = #-1;
5endif
6endif
7return pass(@args);