#include <combat.h>
#include <ansi.h>A
inherit SKILL;
void sp_att3(object me, object victim, object  weapon, int damage);
void sp_att1(object me, object victim, object  weapon, int damage);
void sp_att2(object me, object victim, object  weapon, int damage);
int kar=this_player()->query("kar",1);
int cps=this_player()->query("cps",1);
int str=this_player()->query("str",1);
int cor=this_player()->query("cor",1);
int int1=this_player()->query("int",1);
int spi=this_player()->query("spi",1);
int i;

mapping *action = ({
      ([      "action":
"$N手中$w一翻，一招「"HIC"□HIW"□HIC"□HIW"□HIC"□HIW"y"HIC"□HIW"□NOR"”手里的$w如一条长龙流转，往$n$l刺去",
        "damage": 50,
        "dodge":        -50,
        "parry":        -20,
        "damage_type":  "刺伤",
        ]),
      ([      "action":
"$N看准$n的来势，将手中$w趁隙攻入，一招「"HIB"□HIW"□HIB"□HIW"□HIB"□HIW"□HIB"□HIW"□NOR"”手里的$w如顺流之舟，往$n$l急速刺去",
        "damage": 50,
        "dodge":        -50,
        "parry":        -20,
        "damage_type":  "刺伤",
        ]),
      ([      "action":
"$N缓缓运行体内真气，真气带动四周强风扬起沙尘，一招「"HIY"□HIW"c"HIY"□HIW"P"HIY"□HIW"I"HIY"□HIW"I"NOR"”手里的$w如同黑夜繁星，笔影如同星光往$n$l刺去",
        "damage": 40,
        "dodge":        -40,
        "parry":        -20,
        "damage_type":  "刺伤",
        ]),
      ([ "action":
"$N身形流转，连踩七步，手中$w一招「"HIM"□HIW"C"HIM"□HIW"B"HIM"□HIW"□HIM"□HIW"□NOR"”往$n点去",
           "damage":           30,
           "dodge":           20,   
           "parry":          -30,
           "damage_type":  "刺伤"      
          ]),
              ([         "action":
"$N手中$w摇晃，步法微顿，倏地一招「"HIG"□HIW"□HIG"□HIW"s"HIG"□HIW"□HIG"□HIW"□NOR"”将$w挥出，连出三下往$n点去",
           "damage":         80,     
           "dodge":          0,
           "parry":         -50,
           "force":          100,
            "damage_type":  "刺伤"
           ]),
           ([      "action":
"$N将手里的$w高高举起，忽地手中$w急变招数，一招「"HIR"□HIW"□HIR"□HIW"□HIR"□HIW"□HIR"□HIW"□NOR"”连绵不绝的往$n急点",
           "damage":        70,
           "dodge":        -30,
           "parry":         10,
              "damage_type": "刺伤"
            ]),
           ([       "action":
"$N将握$w换成拿刀之态，忽地$w幻化成刀，准备使出儒门镇教绝式之一\n"
"$N尚未完全掌握刀意，刀势虚实不定，$n只能看透部份刀势。",
           "damage":        60,
           "dodge":        -30,
           "parry":         10,
           "post_action":  (: sp_att1 :),
              "damage_type":"砍伤"
          ]),  
           ([        "action":
"$N慢慢将真气运行全身带动四周气流，缓缓收起$w，准备使出儒门镇教绝式之一\n"
"$N的真气突然慢慢消失，掌力顺时降至三分，$n只有点招架不住。",
           "damage":        70,
           "dodge":        -30,
           "parry":         10,
           "post_action":  (: sp_att2 :),
              "damage_type":"瘀伤"
            ]),
           ([         "action":
"$N将握$w换成拿剑之态，忽地手中幻化成剑，准备使出儒教镇教绝式之一\n"
"$N因无法掌握住诱困杀灭四项剑意，$n似乎有点看穿破招之法。", 
           "damage":        70,
           "dodge":        -30,
           "parry":         10,
           "post_action":  (: sp_att3 :),
              "damage_type":"割伤"
            ]),

});

// valid_learn 只是检查是否可以学, 不能在此加 skill
int valid_learn(object me)
{
  if ((int)me->query_skill("literate")*2<(int)me->query_skill("knowpen"))
    return notify_fail("你的读书识字程度不够，不能领悟其中的道理。\n");
  return 1;
}

int valid_enable(string usage)
{
        return (usage=="stabber")||(usage=="parry");
}

mapping query_action(object me, object weapon)
{
        return action[random(sizeof(action))];
}

void movedown(object me,object target, object weapon,int damage)
{
        if(random(8)>1)
               return;
        if(me->query("force")<20) return;
        me->add("force",-20);
          message_vision(HIG "$N使出行云流水笔法中的「七星封穴”往$n身上的穴道连点！\n"NOR,me,target);
        if
(random(target->query("combat_exp"))<random(me->query("combat_exp")))
          {
               message_vision( GRN "结果$n被$N点中，穴道被封！\n"NOR,me,target);
                target->start_busy(me->query_skill("knowpen",1)/20);
          }
           else
              message_vision(   GRN
"结果被$n识破，没有命中。\n"NOR,me,target);
}

// 这个只是查询是否可以练习, 增加 skill 不是在这儿.
int practice_skill(object me)
{
  object weapon;

  me->receive_damage("sen",30);
  if (me->query_skill("literate")*2<me->query_skill("knowpen"))
    return notify_fail("你的读书识字不够，不能领悟其中的道理。\n");
  if( !objectp(weapon = me->query_temp("weapon")) ||(string)weapon->query("skill_type")!="stabber")
  {
    return notify_fail("你要有适合的武器才能练行云流水笔法。\n");
  }

  if ((int)me->query("sen")<30)
    return notify_fail("你的神不够，不能练行云流水笔法。\n");
  return 1;
}

string perform_action_file(string action)
{
        return CLASS_D("scholar")+"/knowpen/"+action;
}

void sp_att1(object me, object victim, object weapon, int damage)
{
    if(weapon->query("id")=="bird_pen")
{
message_vision(
""HIW"$N已经掌握住虚实之飘缈刀意，刀势在$n四周逐渐形成儒门镇教秘式"NOR"\n"
""HIW"        ‘～儒～教～至～招～"HIY"□HIW"□HIW"～"HIY"□HIW"□HIW"～"HIY"□HIW"□HIW"～"HIY"□HIW"v"HIW"～’"NOR"\n"
""HIW"飘缈刀意与刀意融为一体，刀势飘缈虚实不定，$n无法看透刀意受到重创。"NOR"\n",me,victim);
victim->receive_wound("kee",me->query_skill("newpen",1)*2);
         COMBAT_D->report_status(victim, 1);
}
       else
{
          victim->receive_wound("kee",me->query_skill("newpen",1)*1);
          COMBAT_D->report_status(victim, 1);
        }
          me->add("force",-50);
 }
void sp_att2(object me, object victim, object weapon, int damage)
{
    if(weapon->query("id")=="wind_pen")
{
message_vision(
""HIW"$N再缓缓将真气运转入任督二脉，顺时真气充盈于全身之中，使出儒门镇教秘招"NOR"\n"
""HIW"               ‘～儒～教～极～招～"HIC"□HIW"g"HIW"～"HIC"□HIW"l"HIW"～"HIC"□HIW"□HIW"～’"NOR"\n"
""HIW"$N真气随掌而去，并带动四周气流击向$n，$n如失线之风筝受创飞起。"NOR"\n",me,victim);
         victim->receive_wound("kee",me->query_skill("newpen",1)*2);
         victim->apply_condition("wind-stial",3);
         COMBAT_D->report_status(victim, 1);
}
       else
{
          victim->receive_wound("kee",me->query_skill("newpen",1)*1);
          COMBAT_D->report_status(victim, 1);
        }
          me->add("force",-100);
 }
void sp_att3(object me, object victim, object weapon, int damage)
{
    if(weapon->query("id")=="bird_sword_pen")
{
int i;
for(i=1;i<=4;i++)
{
message_vision(HIW"你握起手中之诸凤剑笔，以笔代剑，顺时点破绝式精妙之处，十分流畅的使出剑招！\n"NOR,me,victim);
switch(i)
{
case 1:
message_vision(sprintf("$N使出‘"HIC"剑～影～诱～敌"NOR"’，以无数虚招迷惑$n。\n"),me,victim);
break;
case 2:
message_vision(sprintf("$N使出‘"HIC"剑～势～困～敌"NOR"’，以无数剑势困住$n。\n"),me,victim);
break;
case 3:
message_vision(sprintf("$N使出‘"HIC"剑～招～杀～敌"NOR"’，以无数剑招杀向$n。\n"),me,victim
);
break;
case 4:
message_vision(sprintf("$N使出‘"HIC"剑～锋～灭～敌"NOR"’，以锋利剑锋杀灭$n。\n"),me,victim
);
break;
}
         victim->receive_wound("kee",50);
 COMBAT_D->report_status(victim, 1);
}
}
       else
{
          victim->receive_wound("kee",me->query_skill("newpen",1)*1);
          COMBAT_D->report_status(victim, 1);
        }
          me->add("force",-100);
 }
      
