generic corpse #104
Aliases: generic corpse, corpse
30 verbs · 106 properties · 1 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
die | this none this | rxd | #104 | 1 |
is_dead | this none this | rxd | #104 | 8 |
heartbeat | this none this | rxd | #104 | 10 |
rot | this none this | rxd | #104 | 30 |
take_damage | this none this | rxd | #104 | 1 |
_knockout | this none this | rxd | #104 | 1 |
_eat | this none this | rxd | #104 | 14 |
hear_event_arrive | this none this | rxd | #104 | 5 |
ingest | this none this | rxd | #104 | 1 |
receive_fuck | this none this | rxd | #104 | 4 |
get_as_it_once_was | this none this | rxd | #104 | 25 |
newget | this none this | rxd | #104 | 1 |
get_from | this none this | rxd | #104 | 4 |
cant_get_from | this none this | rxd | #104 | 17 |
cryptkeeper | this none this | rxd | #104 | 4 |
_brainscan | this none this | rxd | #104 | 2 |
setup_for | this none this | rxd | #104 | 35 |
update_posture | this none this | rxd | #104 | 8 |
enter_room | this none this | rxd | #104 | 2 |
tree_tag | this none this | rxd | #104 | 13 |
tell_appraise | this none this | rxd | #104 | 1 |
setup | this none this | rxd | #104 | 2 |
wearing_on | this none this | rxd | #104 | 17 |
turn_to_corpse | this none this | rxd | #104 | 1 |
dead | this none this | rxd | #104 | 1 |
dname | this none this | rxd | #104 | 5 |
butch*er | this none none | rxd | #104 | 21 |
cut | any out of/from inside/from this | rxd | #104 | 24 |
mangle | this none this | rxd | #104 | 1 |
sever_meat | this none this | rxd | #104 | 13 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
rot_msg | #104 | rc | #361 | "%DN dries up and blows away in the breeze." |
eat_msg | #104 | rc | #361 | "%DN eats %it." |
original_player | #104 | rc | #361 | #-1 |
bodyparts | #104 | rc | #361 | {#27317, #10261, #10261, #21740, #21740} |
restorable_blood | #104 | rc | #361 | {} |
timestamp | #104 | rc | #361 | 0 |
killed_by | #104 | rc | #361 | {} |
sync_props | #148 | rc | #362 | <clear> |
player | #148 | rc | #362 | <clear> |
rename | #148 | rc | #362 | <clear> |
restore_props | #148 | rc | #362 | {"wearing", "implants", "blood", "health", "wielding"} |
meats | #148 | rc | #362 | <clear> |
get_from_msg | #148 | rc | #362 | <clear> |
clothing | #148 | rc | #362 | <clear> |
drag_msg | #148 | rc | #362 | <clear> |
drag_fall_msg | #148 | rc | #362 | <clear> |
nodrag_msg | #148 | rc | #362 | <clear> |
hands | #107 | rc | #361 | <clear> |
wielding | #107 | rc | #361 | <clear> |
health | #107 | rc | #361 | 0 |
unarmed_weapon | #107 | rc | #361 | <clear> |
size | #107 | rc | #361 | <clear> |
posture | #107 | rc | #361 | "lying" |
gender | #107 | rc | #361 | <clear> |
respawn | #107 | rc | #361 | <clear> |
corpse | #107 | rc | #361 | #83691 |
has_proper_name | #107 | rc | #361 | 0 |
die_msg | #107 | rc | #361 | <clear> |
body_parts | #107 | rc | #361 | <clear> |
wearing | #107 | rc | #361 | <clear> |
armor | #107 | rc | #361 | <clear> |
last_swing_message | #107 | rc | #361 | <clear> |
health_max | #107 | rc | #361 | <clear> |
fighting | #107 | rc | #361 | {} |
last_dodge_time | #107 | rc | #361 | <clear> |
following | #107 | rc | #361 | <clear> |
icon | #107 | rc | #361 | <clear> |
say_msg | #107 | rc | #361 | <clear> |
say_to_msg | #107 | rc | #361 | <clear> |
afterlife | #107 | rc | #361 | <clear> |
get_msg | #107 | rc | #361 | <clear> |
drop_msg | #107 | rc | #361 | <clear> |
blood | #107 | rc | #361 | <clear> |
squeals | #107 | rc | #361 | <clear> |
prc | #107 | rc | #361 | <clear> |
ppc | #107 | rc | #361 | <clear> |
poc | #107 | rc | #361 | <clear> |
psc | #107 | rc | #361 | <clear> |
pr | #107 | rc | #361 | <clear> |
pp | #107 | rc | #361 | <clear> |
po | #107 | rc | #361 | <clear> |
ps | #107 | rc | #361 | <clear> |
pq | #107 | rc | #361 | <clear> |
pqc | #107 | rc | #361 | <clear> |
brief | #107 | rc | #361 | <clear> |
knockout | #107 | rc | #361 | <clear> |
knockout_msg | #107 | rc | #361 | <clear> |
body | #107 | rc | #361 | <clear> |
wake_msg | #107 | rc | #361 | <clear> |
owake_msg | #107 | rc | #361 | <clear> |
oknockout_msg | #107 | rc | #361 | <clear> |
friends | #107 | rc | #361 | <clear> |
home | #107 | rc | #361 | <clear> |
respawn_msg | #107 | rc | #361 | <clear> |
move_action | #107 | rc | #362 | <clear> |
heart | #107 | rc | #362 | 0 |
last_heartbeat | #107 | rc | #362 | <clear> |
dead | #107 | rc | #362 | 1 |
_tohit_next | #107 | rc | #362 | <clear> |
last_words_msg | #107 | rc | #362 | <clear> |
attacked | #107 | rc | #362 | <clear> |
opens_doors | #107 | rc | #362 | <clear> |
movable_by_explosion | #107 | rc | #362 | <clear> |
obscured | #107 | rc | #362 | <clear> |
obscured_desc_msg | #107 | rc | #362 | <clear> |
cooldowns | #107 | rc | #362 | <clear> |
combat_rounds | #107 | rc | #362 | <clear> |
encumbrance | #107 | rc | #362 | {0, 1292469331} |
respawn_handler | #107 | rc | #362 | <clear> |
distant_form_msg | #107 | rc | #362 | <clear> |
block_msg | #107 | rc | #362 | <clear> |
attack_on_block | #107 | rc | #362 | <clear> |
last_stunned | #107 | rc | #362 | <clear> |
nude_descs | #107 | rc | #361 | <clear> |
skills | #107 | rc | #361 | <clear> |
explode_msg | #107 | rc | #361 | <clear> |
death_listeners | #107 | rc | #361 | <clear> |
queue | #92 | r | #361 | <clear> |
preemptible | #92 | r | #361 | <clear> |
executing | #92 | r | #361 | <clear> |
process_queue | #92 | r | #361 | <clear> |
help_msg | #92 | rc | #361 | <clear> |
last_action | #92 | r | #361 | <clear> |
article | #92 | rc | #361 | <clear> |
last_last_action | #92 | rc | #361 | <clear> |
action_count | #92 | rc | #361 | <clear> |
aliases | #1 | rc | #361 | {"generic corpse", "corpse"} |
description | #1 | rc | #361 | <clear> |
object_size | #1 | r | #29 | {23091, 1298433826} |
hidden_verbs | #1 | rc | #361 | <clear> |
phelp_msg | #1 | rc | #361 | {"Yup, it's a corpse. Provided you're not squeamish, corpses have a number of uses: If you're hungry, for example, you can always cut the meat out of a corpse and eat it."} |
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): #148 generic body → #107 generic creature → #92 generic actor → #1 root
Children: #245 generic human corpse
Call graph
Showing 48 of 51 verbs; 3 not shown.
Source
die
Referenced by
none
Source
1return;
is_dead
Referenced by
- #104:butch*er line 9:
this:is_dead - #104:cut line 14:
this:is_dead
Source
1":is_dead() => 0: unconscious,"; 2" 1: dead, but revivable from afterlife,"; 3" 2: dead and he ain't comin' back."; 4if ((is_a(this.player, $creature) && this.player:is_in_afterlife()) && this.intact) 5return 1; 6else 7return 2; 8endif
heartbeat
Referenced by
none
Source
1if ((this.location != $tomb) && (random(1000) < 60)) 2if ((!is_a(this.original_player, $player)) || ((time() - this.timestamp) > $rpg.player_corpse_rot_minimum)) 3if ((!valid(this.location)) || (!this.location:occupants($player))) 4this:rot(1); 5elseif (random(100) < 20) 6this:rot(1); 7endif 8endif 9endif 10this.action_count = 0;
rot
Referenced by
- #104:heartbeat line 4:
this:rot - #104:heartbeat line 6:
this:rot - #104:_eat line 14:
this:rot - #104:hear_event_arrive line 3:
this:rot
Source
1silent = args ? args[1] | 0; 2if ((!this.f) && (this.location != $tomb)) 3$nets.deathnet:announce_rot(this); 4if (valid(this.location)) 5if (!silent) 6this.location:announce_all($su:ps(this.rot_msg, this, this)); 7endif 8if (!is_a(this.original_player, $player)) 9if (!this.location:occupants($player)) 10for x in (this.contents) 11$rpg:junk(x); 12endfor 13endif 14endif 15for x in (this.contents) 16if ($recycler:valid(x)) 17if (is_a(x, $decal)) 18$rpg:junk(x); 19else 20this.location:broadcast_event(0, $actions.drop, this.original_player, {x, this.location}); 21x:moveto(this.location); 22endif 23endif 24endfor 25endif 26if (is_a(this.player, $creature)) 27this.player.body = #-1; 28endif 29move(this, $tomb); 30endif
take_damage
Referenced by
none
Source
1return;
_knockout
Referenced by
none
Source
1return;
_eat
Referenced by
none
Source
1who = args[1]; 2if ($ou:has_property(who, "feed_msg")) 3m = who.feed_msg; 4else 5m = this.eat_msg; 6endif 7who:aat($su:ps(m)); 8for a in (this.blood) 9who:ingest(a[1], a[3], 0); 10endfor 11for x in (this.contents) 12`x:moveto(who) ! ANY => 0'; 13endfor 14this:rot(1);
hear_event_arrive
Referenced by
none
Source
1if ((args[3] == this.original_player) && (args[3].location == this.location)) 2if ($recycler:valid(this.original_player) && this.original_player.has_proper_name) 3this:rot(1); 4endif 5endif
ingest
Referenced by
none
Source
1return 0;
receive_fuck
Referenced by
none
Source
1who = args[1]; 2if (is_a(who, $player)) 3$quest:named("defiler"):award_to(who); 4endif
get_as_it_once_was
Referenced by
none
Source
1if (dobjstr == "all") 2olist = this.contents; 3else 4o = $match_utils:match(dobjstr, this.contents); 5if (o == $failed_match) 6player:tell("You can't find any '", dobjstr, "' in ", this:dname(), "."); 7return; 8elseif (o == $ambiguous_match) 9player:tell("I don't know which '", dobjstr, "' in ", this:dname(), " you mean."); 10return; 11endif 12olist = {o}; 13endif 14if (olist) 15for x in (olist) 16if (is_a(x, $clothing) && (!is_a(this, $corpse))) 17player:tell("You can't take ", this.pp, " clothes off...", this.ps, "'s not dead."); 18else 19player:aat($su:capitalize(player:dname()), " takes ", x:iname(), " from ", this:dname(), "."); 20x:moveto(player); 21endif 22endfor 23else 24player:tell("There's nothing in ", this:dname(), "."); 25endif
newget
Referenced by
none
Source
1player:get();
get_from
Referenced by
none
Source
1"Copied from generic container (#931):get_from by Gilmore (#98) Mon Apr 4 22:59:27 2005 PDT"; 2who = args[1]; 3targets = (typeof(args[2]) == LIST) ? $lu:randomly_permute(args[2]) | {args[2]}; 4who:queue_action($actions.get, {targets, this, {}}, 1, "get from " + this.name);
cant_get_from
Referenced by
none
Source
1getter = args[1]; 2targets = args[2]; 3if (!this.contents) 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 14if (`this.location.no_loot_corpse ! ANY') 15return this.location.no_loot_corpse; 16endif 17return 0;
cryptkeeper
Referenced by
none
Source
1if (c = this:occupants(#132814)) 2return c[1]; 3endif 4return #-1;
_brainscan
Referenced by
none
Source
1who = args[1]; 2this:_whisper(who, "I'm dead. Oh my god, I'm dead.");
setup_for
Referenced by
none
Source
1":setup_for(OBJ who, OBJ dtype) => setup this corpse for who, with damage type dtype"; 2who = args[1]; 3dtype = args[2]; 4this.original_player = who; 5if (!this.rename) 6this:set_name(parent(this).name); 7this:set_aliases({@parent(this).aliases}); 8else 9this.plural_name = "corpses of " + who.name; 10this:set_aliases({@this.aliases, "corpse of " + who.name, "corpse"}); 11endif 12this:update_posture(); 13if (dtype != $damage) 14d = this:description(); 15d = (typeof(d) == LIST) ? d | {d}; 16d = {@d, $su:ps(dtype.autopsy_msg, who, this, this)}; 17this.description = d; 18endif 19this.restorable_blood = this.blood; 20if (meats = `who:corpse_meats(this.meats) ! E_VERBNF') 21this.meats = meats; 22endif 23if ($drugs.pregnancy:doses_for(this) >= 15) 24this.meats = {@this.meats, #16842}; 25endif 26meatblood = {}; 27for x in (this.blood) 28if (random(100) <= x[1].meat_transmit_chance) 29meatblood = {@meatblood, x}; 30endif 31endfor 32this.blood = meatblood; 33w = who.weight; 34this.weight = w; 35this.timestamp = time();
update_posture
Referenced by
- #104:setup_for line 12:
this:update_posture - #104:enter_room line 1:
this:update_posture
Source
1loc = (length(args) > 0) ? args[1] | this.location; 2if (is_a(loc, #1047) || is_a(loc, #1034)) 3this.posture = "floating"; 4elseif (is_a(loc, #761)) 5this.posture = "gliding"; 6else 7this.posture = "lying on the ground"; 8endif
enter_room
Referenced by
none
Source
1this:update_posture(args[1]); 2return pass(@args);
tree_tag
Referenced by
none
Source
1r = ""; 2if ((!("corpse" in this.aliases)) && (!("remains" in this.aliases))) 3r = tostr(r, " ", $ansi.red, $ansi.bold_on, "!", $ansi.reset); 4endif 5if (this.meats) 6names = {}; 7if (length(names) <= 4) 8r = tostr(r, " [", $su:from_list(names, ", "), "]"); 9else 10r = tostr(r, " [too many meats]"); 11endif 12endif 13return r;
tell_appraise
Referenced by
none
Source
1player:tell(this:dnamec(), " is dead. You don't think the corpse will be giving you too much trouble.");
setup
Referenced by
none
Source
1this.clothing = `args[1].clothing ! ANY => {}'; 2return pass(@args);
wearing_on
Referenced by
none
Source
1":wearing_on(OBJ bodypart) => LIST what I'm wearing there."; 2part = args[1]; 3s = {}; 4for x in (this.clothing) 5if (is_a(x, $clothing)) 6for y in (x.covers) 7if (is_a(part, y)) 8s = setadd(s, x); 9break; 10endif 11endfor 12endif 13endfor 14if (s) 15return s; 16endif 17return pass(@args);
turn_to_corpse
Referenced by
none
Source
1return;
dead
Referenced by
none
Source
1return 1;
dname
Referenced by
- #104:get_as_it_once_was line 6:
this:dname - #104:get_as_it_once_was line 9:
this:dname - #104:get_as_it_once_was line 19:
this:dname - #104:get_as_it_once_was line 24:
this:dname - #104:cant_get_from line 4:
this:dname - #104:cant_get_from line 12:
this:dname - #104:butch*er line 6:
this:dname - #104:butch*er line 19:
this:dname - #104:cut line 9:
this:dname - #104:cut line 11:
this:dname
Source
1if (`this.name[1..6] == "corpse" ! ANY' || `this.name[1..4] == "dead" ! ANY') 2return pass(@args); 3else 4return "the body of " + this.name; 5endif
butch*er
Referenced by
none
Source
1"Butcher the body for yourself."; 2if (!this.butcherable) 3player:tell(this:dnamec(), " seems too tough to butcher anything from."); 4return; 5elseif (gamevalid(this.butchering)) 6player:tell(this.butchering:dnamec(), " is already butchering ", this:dname(), "!"); 7return; 8endif 9if (!this:is_dead()) 10player:tell("Um...", this.ps, "'s still alive. If you really want ", this.pp, " ", meatgeneric.name, ", have the decency to put ", this.po, " out of ", this.pp, " misery."); 11return; 12endif 13w = player:cuts_with(); 14if (!is_a(w, $weapon)) 15player:tell("You're not holding a blade. Good luck butchering a body with your ", player:weapon().name, "."); 16return; 17endif 18if ($lu:sum($lu:map_verb(this.location:occupants($living), "is_doing", $actions.butcher, this))) 19return player:tell("Someone's already butchering ", this:dname(), "."); 20endif 21player:queue_action($actions.butcher, {this}, 1, "butcher " + this.name);
cut
Referenced by
none
Source
1"Butcher a piece of the body for yourself."; 2if (!this.butcherable) 3player:tell(this:dnamec(), " seems too tough to cut anything from."); 4return; 5endif 6meatgeneric = $match_utils:match(dobjstr, this.meats); 7if (!$recycler:valid(meatgeneric)) 8if (!this.meats) 9player:tell("You don't see anything worthwhile left in ", this:dname(), "."); 10else 11player:tell("You can cut ", $su:english_list($lu:map_verb(this.meats, "dname")), " from ", this:dname(), "."); 12endif 13else 14if (!this:is_dead()) 15player:tell("Um...", this.ps, "'s still alive. If you really want ", this.pp, " ", meatgeneric.name, ", have the decency to put ", this.po, " out of ", this.pp, " misery."); 16return; 17endif 18w = player:cuts_with(); 19if (!is_a(w, $weapon)) 20player:tell("You're not holding a blade. Good luck butchering a body with your ", player:weapon().name, "."); 21return; 22endif 23player:queue_action($actions.butcher, {this, meatgeneric}); 24endif
mangle
Referenced by
- #104:sever_meat line 6:
this:mangle
Source
1this.intact = 0;
sever_meat
Referenced by
none
Source
1what = args[1]; 2for meat in (this.meats) 3if (is_a(meat, what)) 4if (!this.f) 5this.meats = setremove(this.meats, meat); 6this:mangle(); 7endif 8meat = meat.f ? $rpg:spawn(meat) | meat; 9is_a(who = this.original_player, $living) && `meat:carve_from(who) ! E_VERBNF'; 10return meat; 11endif 12endfor 13return #-1;