// sword.c

#include <ansi.h>

inherit SKILL;

int valid_enable(string usage) { return usage=="array"; }

void doing_array(object *,object );
int form_array(object leader)
{
	object *member;
        int i;
        int enable_array=0;
        int add_attack,add_dodge;
	member = leader->query_team();
	if( sizeof(member) != 2 )
		return notify_fail("此剑阵共需两人，少一个多一个都不行。\n");
//	if( member->query("enable_array",1) || leader->query("enable_array",1) )
//	       return notify_fail("剑阵正在施展中。\n");
	message_vision( HIG "$N带领着展开阴阳两仪剑阵。\n" NOR, leader);
	doing_array(member,leader); 
        return 1;
  }      

void doing_array(object *member,object leader)
{
   int i;  
   object victim;
   int enable_array=0;
   int add_dodge,add_attack;  
   add_attack=random(10);
   add_dodge=random(10);
   say("1");
      for(i= 0; i< sizeof(member);i++)
	{
	  if(present(member[i]->query("id"),environment(leader))&& (leader->is_fighting()|| leader->is_killing()))
	   {
	      victim = leader-> query("last_attacker");   
	      member[i]->set_temp("enable_array",1);
	      member[i]->set_temp("apply/attack",add_attack);
	      member[i]->set_temp("apply/dodge",add_dodge );
	      member[i]->add("gin",-50);
              member[i]->kill_ob(victim);
            }
          else 
             message_vision("阵中人数不对，队形开始散乱了起来",leader);    
          } 
          leader->start_call_out( (: call_other, __FILE__, "remove_array",
          member, add_attack, add_dodge,enable_array,leader :), 10);
}

void remove_array( object *member,int add_attack, int add_dodge,int enable_array,object leader)
 {
   int i;
   say("2");
   message_vision("[1m$N稍一分神，剑阵已然被破。\n[0m",leader);
   for(i=0; i<sizeof(member);i ++)
   {
     member[i]->add_temp("apply/attack",-add_attack);
     member[i]->add_temp("apply/dodge",-add_dodge);
     member[i]->delete_temp("enbale_array");
   }
  }