
#include <ansi.h>

inherit SSERVER;

int perform(object me, object target)
{
	object weapon;
	string msg;
    string * dir;
    object env;
    mixed room;
	mapping exits;	
	int force,weapon_damage,str,damage,my_skill,his_skill;


	if( !target ) target = offensive_target(me);

	if( !target
	||	!target->is_character()
	||	!me->is_fighting(target) )
		return notify_fail("[袖里神针] 能对战斗中的对手使用。\n");

	weapon=me->query_temp("weapon");
	if(weapon->query("skill_type")!="needle")
		{
		tell_object("你手中拿的不是葵花神针。你也想用这招？？？\n");
    	tell_object(me,"省省吧！！！");

		
		return 1;
		}
    str=me->query_str()*3/2;
	force=me->query("force");
    weapon_damage=weapon->query("weapon_prop/damage");
    damage=str+force/3+(weapon_damage*3/2);

	message_vision(CYN"$N杀的性起！使出葵花宝典的绝技[袖里神针] \n"
					  "衣袖一晃,葵花神针朝$n急射而去。\n"NOR,me,target);
    weapon->unequip();
    me->reset_action();
	me->set("force",0);
    me->start_busy(1);   
    my_skill=me->query_skill("pixie-sword",1);
	his_skill=target->query_skill("dodge");
	if(random(my_skill*4)>=random(his_skill))
		{
		message_vision(HIR"结果$n闪躲不及，"+weapon->name()+"正中要穴"\n"NOR,me,target);
        weapon->move(target);
        target->receive_damage("kee",damage,me);
		}
	else
		{
		message_vision(CYN"结果$n狼狈的在地上一滚躲了开去，"+weapon->name()+"飞的无影无综\n"NOR,me,target);
   env=environment(me);
        exits=env->query("exits");
    if(mapp(exits)){
        dir=keys(exits);
        room=exits[dir[random(sizeof(dir))]];
        if(stringp(room)) load_object(room);
        if(room) weapon->move(room);
        else destruct(weapon);
    }
		}

	return 1;
}
