// jianqi.c 七绝剑气

#include <ansi.h>

inherit F_SSERVER;

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

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

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

    if( (int)me->query_skill("fengxiao-jianfa", 1) < 90 )
                return notify_fail("你的风啸剑法不够熟练，使不出七绝剑气。\n");
  
    if (!weapon || weapon->query("skill_type") != "sword"
        || me->query_skill_mapped("sword") != "fengxiao-jianfa")
                return notify_fail("你现在无法使用七绝剑气。\n");

    if ( (int)me->query("neili") < 200)
                return notify_fail("你的内力不够，无法使用七绝剑气。\n");

        msg = HIW"\n$N怒吼一声，手腕一抖，挽出七个剑花，飞向$n。就在
$n不知所措的时候，剑花中飞出七道剑气：七绝剑气！！！像闪电
一样飞向$n。\n\n"NOR;

        if( random(me->query("combat_exp")) > (int)target->query("combat_exp")/3 ) {
                msg +=HIW"$n惨号一声，已经中剑！\n"NOR;
                damage = 3*(int)me->query_skill("fengxiao-jianfa", 1);
                damage = damage / 2 + random(damage / 2);
                if (damage > target->query("neili") / 10)
                        damage -= target->query("neili") / 15;
                target->receive_damage("qi", damage);
                target->receive_wound("qi", damage/3);
                if( damage < 40 ) msg += HIR"$n已身中七道剑气，身上七处伤口喷血。\n"NOR;
                else if( damage < 80 ) msg += HIR"$n身中七道剑气，向后就倒！\n"NOR;
                else msg += HIR"$n“哇”的狂叫一声，眼见不活了！\n"NOR;
                message_vision(msg, me, target);
        } 
        else {
                msg += HIY"$n慌忙一伏，逃得了性命。好险！\n"NOR;
                message_vision(msg, me, target);
        }
        me->add("neili", -180);
        me->start_busy(2);

        return 1;
}
