// ruying 如影随形
// bren

#include <ansi.h>
#include <combat.h>

inherit F_SSERVER;
int perform(object me, object target)
{
        string msg;
        int lvl;
        lvl = (int)me->query_skill("ruying-suixingtui", 1);
        if( !target ) target = offensive_target(me);

        if( !target || !me->is_fighting(target) )
                return notify_fail("「如影随形」只能在战斗中对对手使用。\n");

        if( objectp(me->query_temp("weapon")) )
                return notify_fail("使用「如影随形」时双手必须空着！\n");

        if( (int)me->query_skill("ruying-suixingtui", 1) < 140 )
                return notify_fail("你的如影随形腿不够娴熟，不会使用「如影随形」。\n");

         if( (int)me->query_skill("yijin-jing", 1) < 100 )
                return notify_fail("你的混元一气功等级不够，不能使用「如影随形」。\n");

        if( (int)me->query_dex() < 27 )
                return notify_fail("你的身法不够强，不能使用「如影随形」。\n");
                
        if (me->query_temp("fumo"))
                return notify_fail("你现在正在使用「金刚伏魔」神功。\n"); 

        if (me->query_skill_prepared("leg") != "ruying-suixingtui"
        || me->query_skill_mapped("leg") != "ruying-suixingtui")
                return notify_fail("你现在无法使用「如影随形」进行攻击。\n");
                
        if( (int)me->query("neili") < 1000 )
                return notify_fail("你现在内力太弱，不能使用「如影随形」。\n");

        msg = HIY "$N忽然身随掌起，双腿连环，霎时之间连踢五腿，一腿既出，第二腿如影随形，紧跟而至。\n" NOR;
        message_vision(msg, me, target);
        me->add_temp("apply/attack", lvl/4);
        me->add_temp("apply/strength", lvl/6);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), TYPE_QUICK);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), TYPE_QUICK);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), TYPE_QUICK);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), TYPE_QUICK);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), TYPE_QUICK);
        me->add_temp("apply/attack", -lvl/4);
        me->add_temp("apply/strength", -lvl/6);         
        me->add("neili", -400);
        me->add("jingli", -150);
        me->start_busy(2);

        return 1;
}

