inherit "/std/races/tree_base"; void setup() { set_name( "tree" ); set_long( "A tree.\n" ); set_height( 800 ); set_weight( 40000 ); set_desc( "a large tree" ); add_ac( "blunt", "blunt", 500 ); add_ac( "sharp", "sharp", 50 ); add_ac( "pierce", "pierce", 250 ); add_ac( "fire", "fire", 100 ); add_ac( "sound", "sound", 1000 ); add_ac( "gas", "gas", 1000 ); set_stats( ({ 10, -6, -2, 10, 4 }) ); } /* setup() */ void set_unarmed_attacks( object thing ) { int number; number = (int)thing->query_skill_bonus( "fighting.combat.melee.unarmed" ); number = 2 + sqrt( number ); thing->remove_attack( "hands" ); thing->remove_attack( "feet" ); thing->remove_attack( "branches" ); thing->add_attack( "branches", 100, ({ number / 2, 10, number }), "blunt", "blunt", 0 ); thing->add_attack_message( "branches", "blunt", ({ 0, "$N swing$s at $I with $p branches", 20, "$N tap$s $I in the $z with $p branches", 60, "$N hit$s $I in the $z with $p branches", 100, "$N bruise$s $P $z with $p branches", 140, "$N hit$s $I hard in the $z with $p branches", 180, "$N smash$es $I in the $z with $p branches", 220, "$N crush$es $P $z with $p branches", 5000, "$N mash$es $P $z with $p branches" })); thing->set_unarmed_parry(1); } /* set_unarmed_attacks() */ varargs int query_ac( string type, int damage, string zone, int amount ) { object attacker, weapon; if( ( type != "pierce" ) && ( type != "sharp" ) ) return amount; attacker = (object)previous_object()->query_last_opponent(); if( attacker ) { weapon = (object)attacker->query_last_weapon(); if( weapon && ( weapon != attacker ) ) if( !weapon->id( "axe" ) ) weapon->adjust_cond( -(int)weapon->query_max_cond() / 20 ); } return amount; } /* query_ac() */