#include <ansi.h>
//#include "valid_kill.h";
inherit SSERVER;

int cast(object me, object target)
{
        object *enemy;
        string callname;
        int level,i,kdamage,sdamage,tlevel;
         
        tlevel = 0;

         if( !me->query("dujie/power") )
                return notify_fail("你还未掌握毁灭法则!\n");

         if( !wizardp(me) && environment(me)->query("no_fight") )
                return notify_fail("这里不准战斗。\n");
         
         if( !me->is_fighting() )
                return notify_fail("掌控毁灭只能在战斗中使用!\n");

         if( me->is_busy() )
                return notify_fail("你正忙着呢!\n");

       if( time()-(int)me->query_temp("djpower_end") < 15 )
                return notify_fail("绝招用多就不灵了！\n");

         level = (int)me->query("dujie/power");
         if( level < 5)
          {
        if( !target ) target = offensive_target(me);

        if( !target
        ||      !target->is_character()
        ||      target->is_corpse()
        ||      target==me)
                return notify_fail("你要对谁施展毁灭法则？\n");
        tlevel = (int)target->query("dujie/power");    
        callname = RANK_D->query_rude(target);
        kdamage = 2000+me->query_str()+(int)me->query("max_kee");
        kdamage += kdamage*(level-1)/5;
        kdamage -= kdamage*(tlevel)/5;
        sdamage = 2000+(int)me->query("mana_factor")+(int)me->query("max_sen");
        sdamage += sdamage*(level-1)/5;
        sdamage -= sdamage*(tlevel)/5;
kdamage -=( (int)target->query_temp("apply/armor") + (int)target->query_temp("apply/armor_vs_force") );
sdamage -=((int)target->query_temp("apply/armor") + (int)target->query_temp("apply/armor_vs_spells") );
        if (kdamage<2) kdamage = 2;
        if (sdamage<2) sdamage = 2;
        kdamage = kdamage/2+random(kdamage/2);
        sdamage = sdamage/2+random(sdamage/2);
        message_vision(HIW"$N对着$n"+HIW+"喝道"+ callname + "让你知道法则的威力！\n                    "+level+"重毁灭法则·····灭！\n"NOR, me, target);      
        message_vision(HIW"只见一道堪比雷劫的闪电从$N的眉心射出！【轰】的一下正好劈在$n的身上。\n"NOR, me, target);        
target->receive_damage("sen",sdamage,me);
target->receive_damage("kee",kdamage,me);
target->receive_wound("sen",sdamage/2,me);
target->receive_wound("kee",kdamage/2,me);
COMBAT_D->report_status(target);
 COMBAT_D->report_sen_status(target);
        me->set_temp("djpower_end",time());
             }
         else 
           {
             enemy=me->query_enemy();
        kdamage = 2000+me->query_str()+(int)me->query("max_kee");
        kdamage += kdamage*(level-1)/5;
        sdamage = 2000+(int)me->query("mana_factor")+(int)me->query("max_sen");
        sdamage += sdamage*(level-1)/5;
                    message_vision(HIW"\n    只见$N凝空而立，眉间射出无数雷电射向四周，居然是毁灭法则全方位攻击！\n"NOR, me);                         
                   for(i=0;i<sizeof(enemy);i++)
                    {
                    	if( !enemy[i]
					        ||      !enemy[i]->is_character()
					        ||      enemy[i]->is_corpse()
					        ||      enemy[i]==me)
					                continue;
        tlevel = (int)enemy[i]->query("dujie/power");    
        kdamage -= kdamage*(tlevel)/5;
        sdamage -= sdamage*(tlevel)/5;
kdamage -=( (int)enemy[i]->query_temp("apply/armor") + (int)enemy[i]->query_temp("apply/armor_vs_force") );
sdamage -=((int)enemy[i]->query_temp("apply/armor") + (int)enemy[i]->query_temp("apply/armor_vs_spells") );
        if (kdamage<2) kdamage = 2;
        if (sdamage<2) sdamage = 2;
        kdamage = kdamage/2+random(kdamage/2);
        sdamage = sdamage/2+random(sdamage/2);
          message_vision(HIM""+enemy[i]->query("name")+""+HIM+"一声惨叫！被雷电射了个正着。\n"NOR, me);   
  enemy[i]->receive_damage("sen",sdamage,me);
enemy[i]->receive_damage("kee",kdamage,me);
enemy[i]->receive_wound("sen",sdamage/2,me);
enemy[i]->receive_wound("kee",kdamage/2,me);
COMBAT_D->report_status(enemy[i]);  
 COMBAT_D->report_sen_status(enemy[i]);
                     }
        me->set_temp("djpower_end",time());
             }
return 1;
}
