void Test_ScheduleTasks(TestResult *result) {
  char buffer[80];
  sprintf(buffer,
	  "For %s, RECUR_N=%d and NUM_TASKS=%d\n"
	  "RUN_IN_PARALLEL=%d, ",
	  GetTestModeString(TEST_MODE).c_str(), RECUR_N, NUM_TASKS,
	  RUN_IN_PARALLEL);
  result->overall += std::string(buffer);

  std::vector<int> data_vec;  // own the memory.
  // Comment the line below will make the job crash due to address
  // change during container's memory reallocation.  See comment on
  // top of this file.
  data_vec.reserve(NUM_TASKS);
  TaskManager task_manager;
  ScheduleTasks(NUM_TASKS, &data_vec, &task_manager);

  result->details += (GetNowString() + " Before: " +
		      PrintVector(data_vec) + "\n");

  CpuTimer timer;
  timer.Start();
  task_manager.Run();
  timer.Stop();
 
  result->details += (GetNowString() + " After: " +
		      PrintVector(data_vec) + "\n");

  sprintf(buffer, "total in ms: %d\n", timer.GetInMs());
  result->overall += std::string(buffer);
  result->cost_in_ms = timer.GetInMs();
}
    void Emerge()
    {
        me->UpdateSpeed(MOVE_RUN);
        uint32 submergeSpell = wasMobile ? SPELL_SUBMERGE : SPELL_SUBMERGE_2;
        me->RemoveAurasDueToSpell(submergeSpell);
        me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_0);
        DoCastSelf(SPELL_EMERGE);
        DoCastAOE(SPELL_HATE_TO_ZERO, true);
        me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
        me->SetReactState(REACT_AGGRESSIVE);
        if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
            AttackStart(target);

        // if the worm was mobile before submerging, make him stationary now
        if (wasMobile)
        {
            me->SetControlled(true, UNIT_STATE_ROOT);
            me->SetDisplayId(modelStationary);
            DoCastSelf(SPELL_GROUND_VISUAL_1, true);
            events.SetPhase(PHASE_STATIONARY);
        }
        else
        {
            if (Unit* target = me->GetVictim())
                me->GetMotionMaster()->MoveChase(target);
            me->SetDisplayId(modelMobile);
            events.SetPhase(PHASE_MOBILE);
        }
        wasMobile = !wasMobile;
        ScheduleTasks();
    }
 void JustEngagedWith(Unit* /*who*/) override
 {
     me->SetCombatPulseDelay(5);
     me->setActive(true);
     ScheduleTasks();
     HandleInstanceProgress();
     instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
     if (IsHeroic())
         HandleWithHeroicEvents();
 }
void BossAI::_EnterCombat()
{
    if (instance)
    {
        // bosses do not respawn, check only on enter combat
        if (!instance->CheckRequiredBosses(_bossId))
        {
            EnterEvadeMode(EVADE_REASON_SEQUENCE_BREAK);
            return;
        }
        instance->SetBossState(_bossId, IN_PROGRESS);
    }

    me->SetCombatPulseDelay(5);
    me->setActive(true);
    DoZoneInCombat();
    ScheduleTasks();
}
Example #5
0
 void JustEngagedWith(Unit* who) override
 {
     CreatureAI::JustEngagedWith(who);
     ScheduleTasks();
 }
Example #6
0
 void EnterCombat(Unit* /*who*/) override
 {
     me->SetCombatPulseDelay(5);
     me->setActive(true);
     ScheduleTasks();
 }
 void JustEngagedWith(Unit* /*who*/) override
 {
     ScheduleTasks();
 }
 void JustEngagedWith(Unit* /*who*/) override
 {
     me->SetCombatPulseDelay(5);
     me->setActive(true);
     ScheduleTasks();
 }