// kuangfeng.c  狂风绝技

#include <ansi.h>

inherit F_SSERVER;

int perform(object me, object target)
{
        string msg;
        mapping prepare;
        object weapon;
        int tp, cp, damage, rand;

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

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

        if (!(me->query("thd/perform") & 4))
                return notify_fail("你虽然听说过“狂风绝技”是桃花岛看门神技，可是却未获黄岛主传授。\n");

        prepare = me->query_skill_prepare();
        if ( sizeof(prepare) < 2)
                return notify_fail("你必须同时prepare落英神剑掌和旋风扫叶腿才能施展出狂风绝技！\n");

/*      if ( (prepare((keys(prepare))[0]) != "luoying-zhang" && prepare((keys(prepare))[0]) != "xuanfeng-tui") 
        || (prepare((keys(prepare))[1]) != "luoying-zhang" && prepare((keys(prepare))[1]) != "xuanfeng-tui") )
                return notify_fail("你必须同时prepare落英神剑掌和旋风扫叶腿才能施展出狂风绝技！\n");
*/
        if( (int)me->query_skill("luoying-zhang", 1) < 100 )
                return notify_fail("你的落英神剑掌不够娴熟，无法施展出狂风绝技。\n");

        if( (int)me->query_skill("xuanfeng-tui", 1) < 100 )
                return notify_fail("你的旋风扫叶腿不够娴熟，无法施展出狂风绝技。\n");

        if ( (int)me->query("neili") < 400)
                return notify_fail("你的内力不够，无法施展出狂风绝技。\n");

        tp = 10 * (7 * me->query("neili") + 3 * me->query_skill("force")) / (7 * target->query("neili") + 3 * target->query_skill("force"));
        if (tp < 1) tp = 1;
        if (tp > 100) tp = 100;

        msg = CYN "$N一声清啸，拳脚齐施！\n\n$N迅捷无伦地一掌按向$n。\n";

        cp = 10 * me->query("combat_exp") / target->query("combat_exp");
        if (cp < 10) cp = 10;
        if (cp > 20) cp = 20;
        
        rand = random(cp);
        if (rand > 3) {
                msg += "$n躲闪不及，被击了个正着！\n";
                damage = me->query_skill("luoying-zhang", 1) + me->query_skill("xuanfeng-tui", 1);
                damage = (damage + random(tp)) / 5;
                target->receive_damage("qi", damage);
                target->receive_wound("qi", damage/3);
                if( damage < 40 ) msg += HIY"$n的脸色大变，被击中处疼痛难忍。\n"NOR;
                else if( damage < 80 ) msg += HIR"$n的内息竟然一滞，全身似乎都要瘫了！\n"NOR;
                else msg += RED"$n手捂胸口，“哇”的一声吐出了一口鲜血。\n"NOR;
                message_vision(msg, me, target);
        } 
        else {
                msg += "$n飞速后退，方才躲过了这第一掌！\n" NOR;
                message_vision(msg, me, target);
        }

        msg = CYN "\n$N踏上一步，跟着又是一掌，直袭的$n前胸。\n";

        rand = random(cp);
        if (rand > 5) {
                msg += "$n躲闪不及，被击了个正着！\n";
                damage = me->query_skill("luoying-zhang", 1) + me->query_skill("xuanfeng-tui", 1);
                damage = (damage + random(tp)) / 4;
                target->receive_damage("qi", damage);
                target->receive_wound("qi", damage/3);
                if( damage < 40 ) msg += HIY"$n的脸色大变，被击中处疼痛难忍。\n"NOR;
                else if( damage < 80 ) msg += HIR"$n的内息竟然一滞，全身似乎都要瘫了！\n"NOR;
                else msg += RED"$n手捂胸口，“哇”的一声吐出了一口鲜血。\n"NOR;
                message_vision(msg, me, target);
        } 
        else {
                msg += "$n赶忙向后飞退，掌力尚未及身，躲过了这第二掌！\n" NOR;
                message_vision(msg, me, target);
        }

        msg = CYN "\n$N又再踏上一步，双掌同时拍出，霎时掌力已笼罩了$n的全身。\n";

        rand = random(cp);
        if (rand > 6) {
                msg += "$n躲闪不及，被击了个正着！\n";
                damage = me->query_skill("luoying-zhang", 1) + me->query_skill("xuanfeng-tui", 1);
                damage = (damage + random(tp)) / 4;
                target->receive_damage("qi", damage);
                target->receive_wound("qi", damage/3);
                if( damage < 40 ) msg += HIY"$n的脸色大变，被击中处疼痛难忍。\n"NOR;
                else if( damage < 80 ) msg += HIR"$n的内息竟然一滞，全身似乎都要瘫了！\n"NOR;
                else msg += RED"$n手捂胸口，“哇”的一声吐出了一口鲜血。\n"NOR;
                message_vision(msg, me, target);
        } 
        else {
                msg += "$n一个铁板桥，万分惊险地让过了这第三掌！\n" NOR;
                message_vision(msg, me, target);
        }

        msg = CYN "\n$N忽然左足在身前一划，扫向$n的小腿。\n";

        rand = random(cp);
        if (rand > 4) {
                msg += "$n躲闪不及，被扫了个踉跄！\n";
                damage = me->query_skill("luoying-zhang", 1) + me->query_skill("xuanfeng-tui", 1);
                damage = (damage + random(tp)) / 5;
                target->receive_damage("qi", damage);
                target->receive_wound("qi", damage/3);
                if( damage < 40 ) msg += HIY"$n的脸色大变，被击中处疼痛难忍。\n"NOR;
                else if( damage < 80 ) msg += HIR"$n的内息竟然一滞，全身似乎都要瘫了！\n"NOR;
                else msg += RED"$n胸口一甜，“哇”的一声吐出了一口鲜血。\n"NOR;
                message_vision(msg, me, target);
        } 
        else {
                msg += "$n耸身一纵，让过了这第一腿，已经吓出一身冷汗！\n" NOR;
                message_vision(msg, me, target);
        }

        msg = CYN "\n$N跟上又是一腿，直踢$n的前心。\n";

        rand = random(cp);
        if (rand > 5) {
                msg += "$n躲闪不及，被踢了个跟斗！\n";
                damage = me->query_skill("luoying-zhang", 1) + me->query_skill("xuanfeng-tui", 1);
                damage = (damage + random(tp)) / 4;
                target->receive_damage("qi", damage);
                target->receive_wound("qi", damage/3);
                if( damage < 40 ) msg += HIY"$n的脸色大变，被击中处疼痛难忍。\n"NOR;
                else if( damage < 80 ) msg += HIR"$n的内息竟然一滞，全身似乎都要瘫了！\n"NOR;
                else msg += RED"$n胸口一甜，“哇”的一声吐出了一口鲜血。\n"NOR;
                message_vision(msg, me, target);
        } 
        else {
                msg += "$n向旁边连纵，堪堪躲过了这第二腿！\n" NOR;
                message_vision(msg, me, target);
        }

        msg = CYN "\n$N飞身跃起，空中双腿一剪，夹向$n的颈部。\n";

        rand = random(cp);
        if (rand > 6) {
                msg += "$n躲闪不及，被夹住了脖颈！\n";
                damage = me->query_skill("luoying-zhang", 1) + me->query_skill("xuanfeng-tui", 1);
                damage = (damage + random(tp)) / 3;
                target->receive_damage("qi", damage);
                target->receive_wound("qi", damage/3);
                if( damage < 40 ) msg += HIY"$n的脸色大变，被击中处疼痛难忍。\n"NOR;
                else if( damage < 80 ) msg += HIR"$n的内息竟然一滞，全身似乎都要瘫了！\n"NOR;
                else msg += RED"$n胸口一甜，“哇”的一声吐出了一口鲜血。\n"NOR;
                message_vision(msg, me, target);
        } 
        else {
                msg += "$n连忙缩头蹲身，只听头顶风响，险些就被夹中！\n" NOR;
                message_vision(msg, me, target);
        }


        me->add("neili", -350);
        me->start_busy(4);

        return 1;
}
