// xxxy.c 含沙射影 心心相印

#include <ansi.h>

inherit F_SSERVER;
int perform(object me, object target)
{
        string msg;
        object weapon = me->query_temp("weapon");
        int lvl;

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

        if( !target
        ||      !target->is_character()
        ||      !me->is_fighting(target) )
                return notify_fail("心心相印只能对战斗中的对手使用。\n");

        if( (lvl=(int)me->query_skill("hanshasheying", 1)) < 120 )
                return notify_fail("你的含沙射影不够娴熟，不会使用心心相印。\n");

        if (!weapon || weapon->query("skill_type") != "throwing")
                return notify_fail("你现在无法使用心心相印。\n");

        if( (int)me->query("neili") < 400 )
                return notify_fail("你现在内力太弱，不能使用心心相印。\n");

        /*if( target->is_busy() )
                return notify_fail(target->name() + "目前正自顾不暇，放胆攻击吧ⅵ\n");*/

        msg = HIY "$N使出一招「心心相印」，数十枚$w并分两路，一路射向$n前胸，另一路飞到$n身后回头击向其后心。\n";

        me->add("neili", -200);
        me->add("jingli", - 40);
        me->start_busy(random(2));
        if(random(me->query("combat_exp")) > (int)target->query("combat_exp")/2 ) {
              msg += "结果$p躲闪不及，身中数枚，正中要害\n" NOR;
              lvl=lvl*10*me->query("combat_exp"))/target->query("combat_exp");
                        if( lvl > 2000 ) lvl=2000;
		target->receive_damage("qi", lvl, me);
        } 
        else {
                msg += "$p往旁边一闪身，躲过了这招。\n" NOR;
                me->start_busy(3);
        }
        message_vision(msg, me, target);
        return 1;
}
