Generic Implement of Fiery Destruction (#1479)(an instance of generic thing made by Trismegistos)     An olive-drab plastic jerry-can, with a red symbol stenciled on the side -- three L's joined propeller-wise. Go to location of this object, AnArchie Bunker. HELP MANUAL:      An in-theme way to recycle your objects or engage in spontaneous pyromania. Just burn VERB SOURCE CODE: destroy:
if ((dobj.owner != player) && dobj.destructible)
player:tell("A misplaced sense of ethics prevents you from burning someone else's
property.");
return;
endif
if (dobj.location != player.location)
player:tell("You must move ", dobj.name, " to where you are...");
return;
endif
burning = 1;
if (dobj != player)
player:tell($string_utils:pronoun_sub(caller.predestroy_msg));
player.location:announce($string_utils:pronoun_sub(caller.opredestroy_msg));
fate = #1479:prop_default(dobj, "destructible", 1) ? "fiery recyclement" | "burning
torment";
if ($command_utils:yes_or_no(((("Condemn " + dobj.name) + " to ") + fate) + "?"))
player.location:announce_all(player.name, " tosses the match!");
descstore = dobj.description;
dobj.name = dobj.name + " [burning]";
else
burning = 0;
player:tell("You relent and blow out the match. The gasoline quickly evaporates.");
player.location:announce(player.name, " has mercy on ", dobj.name, " and
blows out the match. The gasoline quickly evaporates.");
endif
else
player:tell("In a gesture of protest, you pour gasoline all over yourself and
light a match. WHOOMF!");
player.location:announce(player.name, " bathes in gasoline from ", this.name,
" then lights a match in a self-immolating act of protest. WHOOMF!");
descstore = dobj.description;
endif
if (burning)
player.location:announce_all($string_utils:pronoun_sub(#1479:prop_default(dobj,
"ignite_msg", "%D starts to burn.")));
dobj.description = $string_utils:pronoun_sub(#1479:prop_default(dobj, "burn_desc",
dobj.name + " is on fire, enveloped in orange flames, spewing black smoke."));
n = #1479:prop_default(dobj, "burn_minutes", (dobj.object_size[1] / 1000) + 1);
for t in [1..n]
suspend(30);
burnoise = #1479:prop_default(dobj, "burn_noise", ("Flames and black smoke
spiral heavenwards from the burning of " + dobj.aliases[1]) + ".");
if (typeof(burnoise) == LIST)
burnoise = burnoise[random(length(burnoise))];
endif
dobj.location:announce_all($string_utils:pronoun_sub(burnoise));
suspend(30);
endfor
if (dobj != player)
dobj.name = dobj.aliases[1];
dobj.description = descstore;
ashes = #1479:prop_default(dobj, "destructible", 1) ? "crumbling into ashes"
| "blackened but sound";
dobj.location:announce_all($string_utils:pronoun_sub(#1479:prop_default(dobj,
"burnout_msg", ("%D burns out, " + ashes) + ".")));
if (#1479:prop_default(dobj, "destructible", 1))
$recycler:_recycle(dobj);
endif
else
player.location:announce_all(dobj.name, " finds immolation tiresome and stops
burning.");
dobj.description = descstore;
endif
endif
.
prop_default:
"args[1] is object, args[2] is the property, args[3] the default to be returned if
the property doesn't exist on the object";
if ($object_utils:has_property(args[1], args[2]))
return $code_utils:verb_or_property(args[1], args[2]);
else
return args[3];
endif
.
PROPERTY DATA:       gas       help_msg       predestroy_msg       opredestroy_msg       destroy_msg       odestroy_msg       end-destroy_msg       destroy_noise CHILDREN: gasoline can a gasoline can |