/* Do not remove the headers from this file! see /USAGE for more info. */ inherit WEAPON; private nosave int loaded; private nosave int counter; private nosave int time_to_load = 2; // Treat as a loadable weapon for combat // ie use the loaded ammunition for messaging etc int query_loadable() { return 1; } // Is it loaded ? int query_loaded(){ return loaded; } // Called when it is fired - ammunition is moved to firer's environment // and ammunition records of weapon are updated void discharge() { loaded = 0; counter = time_to_load; this_body()->simple_action("$N $vfire the $o.", this_object()); } void load() { counter --; if(counter<1) { loaded = 1; this_body()->simple_action("$N $vfinish loading the $o.", this_object()); } else this_body()->simple_action("$N $vcontinue to load the $o.", this_object()); } mixed direct_fire_obj_at_liv(object ob, object liv) { if(!sizeof(this_body()->query_readied())) return "Need to ready some ammunition first."; if(!query_loaded()) return "Need to load it before you can fire it."; return 1; } void do_fire_at_liv(object liv) { this_body()->start_fight(liv); }