Exemple #1
0
void execute_leap( event_data* event )
{
  char_data* ch      = (char_data*) event->owner;
  char_data* victim  = (char_data*) event->pointer;

  extract( event );

  if( ch->position <= POS_SLEEPING ) 
    return;

  if( ch->fighting != NULL || ch->active.time != -1 )
    return;

  ch->shown = 1;

  passive_action( ch );

  if( ch->active.time != -1 )
    return; 

  leap_message( ch, victim );

  ch->fighting = victim;
  react_attack( ch, victim );

  fight_round( ch );
}
void Battle_AI_Object::start_fight(Fighter* fighter){
	if(fighter == NULL){
		return;
	}
	// own start fight
	if(fighter != owner_){
		return;
	}
	begin_time_ = Time_Value::gettimeofday();
	fight_round_ = 0;
	fight_round(fighter);
	int skill_id = this->ai_select_skill();
	fighter->set_first_used_skill(skill_id);

}
Exemple #3
0
void next_action( event_data* event )
{
  char_data*  ch  = (char_data*) event->owner;

  if( ch->position <= POS_SLEEPING ) 
    return;

  ch->shown = 1;

  passive_action( ch );

  if( !ch->Is_Valid( ) || ch->active.time != -1 
    || ( ch->fighting == NULL && is_empty( ch->aggressive ) ) )
    return;

  if( ch->fighting != NULL ) 
    fight_round( ch );
  else
    init_attack( ch, ch->aggressive[0] );
}