                               
//  six-closefist.c
#include <ansi.h>
#include <combat.h>
inherit SKILL;
inherit SSERVER;
void power(object me, object victim, object weapon, int damage);
void burn(object me, object victim, object weapon, int damage);
//void diyk(object me, object victim, object weapon, int damage);//
mapping *action = ({
 (["action":"$N大喝一声,一招"HIW"‘虎 抱 头’"NOR"$N左脚一跨、身子一起，
左手手肘以强烈的冲击往$n顶过去",
                  "dodge":     -40,
                  "parry":     -30,
                  "force":     130,
                  "damage":    60,
                  "damage_type":     "挫伤",
                 ]),
 (["action":"$N身子一侧，使出一招"HIY"‘乌牛\摆\头\’"NOR"$N右脚往右一跨，拳劲顺势往$n的左肩一击",
                  "dodge":     -40,
                  "parry":     -10,
                  "force":     130,
                  "damage":     65,
                  "damage_type":    "瘀伤",
            ]),
 (["action":"$N沉马一站，运起全身劲力使出一招"HIB"‘怀抱顽石·鹰捉把’"NOR"$N右手手肘往$n一顶，趁$n不防之时使出掌劲将$n一头按下",
                  "dodge":     -50,
                  "parry":     -30,
                  "force":     130,
                  "damage":     70,
                  "damage_type":     "瘀伤",
                  "post_action":  (: burn :),
                 ]),
 (["action":"$N趁势使出六合拳之"HIC"‘怀抱顽石．双推把．双把’"NOR"，掌劲浑厚顺势往$n五脏六腑击出五掌",
                  "dodge":     -50,
                  "parry":     -30,
                  "force":     130,
                  "damage":     80,
                  "damage_type":     "瘀伤",
                 ]),
 (["action":"$N丹田一运、气\功\一\调使出一招"HIG"‘丹凤朝阳．虎蹲山’"NOR"$N脚往前一跨，拳劲往$n下额一击伺机在以掌劲往$n头部一切",
                  "dodge":     -40,
                  "parry":     -30,
                  "force":     140,
                  "damage":     90,
                  "damage_type":     "瘀伤",
                  "post_action":  (: burn :),
                 ]),
 (["action":"$N使出心意六合拳之"HIG"‘盘肘．丹凤朝阳’"NOR"$N双手一盘，往$n右胸顶过去，在以反手掌劲往$n下额拍去",
                "dodge":                -30,
                "parry":                -20,
                "force":                180,
                "damage":               100,
                "damage_type": "瘀伤",
                "post_action":  (: power :),
       ]),

 (["action":"$N马步一沉，一招六合拳之"HIM"‘鸡子栽肩’"NOR"$N右膝往$n的腹部一顶，右手拳劲顺势往$n顶门一击过去",
                  "dodge":     -50,
                  "parry":     -30,
                  "force":     150,
                  "damage":     100,
                  "damage_type":     "瘀伤",
                "post_action":  (: power :),
                 ]),
 (["action":"$N使出六合拳一招"HIB"‘鸡腿．半旋风’"NOR"$N脚劲凌厉往$n身上连踹两脚",
                "dodge":                -30,
                "parry":                -10,
                "force":                200,
                "damage":               110,
                "damage_type":  "瘀伤",
                "post_action":  (: power :),
                 ]),
 (["action":"$N使出六合拳之"HIR"‘七寸腿．乌牛\摆\头\’"NOR"$N右脚微踢，在以浑厚拳劲往$n头部一击",
                     "dodge":     -40,
                     "parry":     -10,
                     "force":     200,
                     "damage":    120,
                     "damage_type":    "瘀伤",
                     "post_action":  (: burn :),
       ]),
 (["action":"$N使出心意六合拳之精华"HIY"【云闭日月把】"NOR"$N双掌将$n双手按下，伺机再以双掌顺势往$n的下额和胸部击掌过去",
                     "dodge":     -40,
                     "parry":     -40,
                     "force":     200,
                     "damage_type":    "瘀伤",
                     "damage":    150,
                     "post_action":  (: burn :),
       ]),
 (["action":"$N使出心意六合拳之精随"HIY"【心 意 把】"NOR"$N将$n手反手按住再用
坚实的肩部顶向$n的胸部",
                     "dodge":     -40,
                     "parry":     -40,
                     "force":     200,
                     "damage":    160,
                     "damage_type":    "瘀伤",
                     "post_action":  (: burn :),
    ]),

});
void power(object me, object victim, object weapon, int damage)

{

int i;
 if(me->query("combat_exp") >= 600000 )
 if(me->query("force")>100&&me->query("force_factor"))      

{
   for(i=1;i<=3;i++)
{
    switch(i)
{
case 1:
message_vision(sprintf(
HIC"$N见敌人的攻势瓦解决定使出心意六合拳之"HIY"‘硬开三皇锁’"NOR"，"HIC"直取敌人的三处要害。\n"NOR),me);


message_vision(sprintf(
HIG"$N单手将$n的右手抓住，使出左手掌劲往$n手关节处击去，只听见$n唉嚎一声。\n"NOR),me,victim);
break;
case 2:
message_vision(sprintf(
HIW"$N再以雄厚的手肘顺势往$n的胸部要害狠狠的顶过去，只听见$n惨叫一声。\n"NOR),me,victim);
break;
case 3:
message_vision(sprintf(
HIM"$N再顺是以反手掌劲往$n的面门一拍，霎时$n血喷八步，$n的面门惨不能睹。\n"NOR),me,victim);
break;
}
     if(me->query_skill("six-closefist",1)>random(80))
{
message_vision(sprintf("结果被$N确确实实的命中要害，$n看来快气绝身亡了。\n"),me,victim);
            victim->receive_wound("kee",80,me);
          COMBAT_D->report_status(victim, 1);
   me->add("force",-80);
}else{

message_vision(sprintf("结果$N的攻击被$n轻松避了开来。\n"),me,victim);
}
}
}
}
void burn(object me, object victim, object  weapon, int damage)
{
message_vision(HIM"$N的劲力使$n的体内血脉筋骨断裂，使$n受到了严重的内伤\n"NOR,me,victim);
         victim->apply_condition("burn",random(30));
         victim->add("kee",-30);
         victim->add("force",-30);
         COMBAT_D->report_status(victim, 1);
 }

int valid_learn(object me)
{
        if( me->query_temp("weapon") || me->query_temp("secondary_weapon") )
                           return   notify_fail("心意六合拳必需空手。\n");
        if(me->query("max_force")<100)
               return notify_fail("喂! 小子, 内力上限要 100 喔，等你长大点再来。\n");
        if(me->query_skill("snowforce",1)<10)
               return notify_fail("你的六合心法火候不够，不能练心意六合拳。\n");
        if(me->query_skill_mapped("dodge")=="six-closefist")
               me->map_skill("dodge","black-steps");
        return 1;

}
 
int valid_enable(string  usage)  {

        if(this_player()->query_skill("six-closefist",1) >= 50)
         {
            return (usage=="unarmed")||(usage=="parry");
         }
             return usage=="unarmed";
}

 

mapping query_action(object me, object weapon)

{
   int skill;
   skill=me->query_skill("six-closefist", 1);
   if( skill < 20)
      return action[random(3)];
   else if( skill < 40)
      return action[random(4)];
   else if( skill < 60)
      return action[random(5)];
   else if( skill < 80)
      return action[random(9)];
   else if( skill < 90)
      return action[random(10)];
   else 
      return action[random(11)];   

}

int practice_skill(object me)

{
        if( (int)me->query("kee") < 30 )
                      return  notify_fail("你的气不够，无法练习心意六合拳。\n");
        if( (int)me->query("force") < 5 )
                   return  notify_fail("你的内力不够，不能练习心意六合拳。\n");
        me->receive_damage("kee", 30);
        me->add("force", -5);
        return 1;
}

string perform_action_file(string action)

{
        return CLASS_D("fighter")+"/six-closefist/"+action;
}


