/* Do not remove the headers from this file! see /USAGE for more info. */ /* * ADVERSARY: Beek, April 7, 1997. Loosely based on the old monster.c * Lots of work done by Iizuka to get this working. */ inherit LIVING; inherit M_DAMAGE_SOURCE; #define SUBDIR __DIR__ "adversary/" inherit SUBDIR "main"; inherit SUBDIR "behaviors"; inherit SUBDIR "condition"; inherit SUBDIR "target"; inherit SUBDIR "messages"; inherit SUBDIR "mod_config"; inherit SUBDIR "armor/armor_base"; inherit SUBDIR "wield/wield_base"; #ifdef USE_SKILLS inherit SUBDIR "skills"; #endif inherit MODULE("death", DEATH_MODULE); inherit MODULE("health", HEALTH_MODULE); inherit MODULE("wield", WIELD_MODULE); inherit MODULE("armor", ARMOR_MODULE); inherit MODULE("pulse", PULSE_MODULE); inherit MODULE("blows", BLOW_MODULE); inherit MODULE("formula", FORMULA_MODULE); inherit MODULE("advancement", ADVANCEMENT_MODULE); void mudlib_setup(mixed array args...) { living::mudlib_setup(args...); // Please read the headers in /std/adversary/mod_config.c before // removing this line. check_combat_config(); set_to_hit_bonus(-25); // -25% to hit bare hand. set_weapon_class(3); // and low WC set_combat_messages("combat-unarmed"); set_death_message(query_default_death_message()); /* by pinging query_weapon(), we will default to self as a weapon */ query_weapon(); } //:FUNCTION start_fight // Add someone to the list of people we are attacking. If we were already // attacking them, make them the primary person we are attacking. Then // take a swing at them. int start_fight(object who) { if(!(who->attackable())) return 0; attacked_by(who, 1); return 1; } //:FUNCTION attackable // return 1 if we can be attacked. int attackable(){ return 1; } mixed direct_diagnose_liv(object ob){ return 1; } mixed direct_kill_liv(object ob) { if(query_ghost()) return "Someone beat you to it; " + the_short() + " is already dead.\n"; return 1; } //:FUNCTION query_ghost // Returns 1 if the adversary is dead. int query_ghost() { return HEALTH_MODULE::query_ghost(); } int event_damage(class event_info evt) { return BLOW_MODULE::event_damage(evt); } //:FUNCTION diagnose // Returns a string describing the current state of the adversary. string diagnose() { return HEALTH_MODULE::diagnose(); } #ifdef USE_SKILLS private string defend_skill_used = "combat/dodge"; string query_defend_skill_used(){ return defend_skill_used; } void set_defend_skill_used(string skill){ defend_skill_used = skill; } #endif mapping lpscript_attributes() { return ([ "max_health" : ({ LPSCRIPT_INT, "setup", "set_max_health" }), #ifdef USE_SKILLS "defend_skill_used" : ({ LPSCRIPT_STRING, "setup", "set_defend_skill_used" }), #endif ]); }