/* Do not remove the headers from this file! see /USAGE for more info. */
// light_object.c - Object to inherit for full functionality of a light
// source, light/extinguish verbs, and fuel.
// 26 June, 1998: Iizuka created.
#include <hooks.h>
#include <light.h>
inherit M_LIGHTABLE;
inherit M_LIGHT_SOURCE;
inherit M_DECAY;
private string die_msg = "The light from the $o $vflicker and $vdie.";
void set_die_msg(string s)
{
die_msg = s;
}
string query_die_msg()
{
return die_msg;
}
protected void set_lit(int x)
{
m_lightable::set_lit(x);
m_light_source::set_lit(x);
}
int query_is_lit()
{
return m_lightable::query_is_lit();
}
mixed check_fuel()
{
if(!query_num_decays())
return object_event_message(query_burned_out_msg());
return 1;
}
mixed extinguish()
{
stop_decay();
return ::extinguish();
}
mixed light()
{
mixed tmp = check_fuel();
if(tmp != 1)
return tmp;
start_decay();
return ::light();
}
void burn_out()
{
set_light(0);
set_num_decays(0);
set_lit(0);
call_hooks("extinguish", HOOK_IGNORE);
object_event(die_msg);
}
void set_fuel(int x)
{
set_num_decays(x / FUEL_DELAY);
}
void mudlib_setup()
{
set_decay_time(FUEL_DELAY, 1);
set_decay_action("The $o $vflicker a little.");
set_last_decay_action((: burn_out :));
}