void PlayerbotPaladinAI::DoNonCombatActions() { if (!m_ai) return; if (!m_bot) return; if (!m_bot->isAlive() || m_bot->IsInDuel()) return; CheckAuras(); CheckSeals(); //Put up RF if tank if (m_ai->GetCombatOrder() & PlayerbotAI::ORDERS_TANK) m_ai->SelfBuff(RIGHTEOUS_FURY); //Disable RF if not tank else if (m_bot->HasAura(RIGHTEOUS_FURY)) m_bot->RemoveAurasDueToSpell(RIGHTEOUS_FURY); // Revive if (HealPlayer(GetResurrectionTarget()) & RETURN_CONTINUE) return; // Heal if (m_ai->IsHealer()) { if (HealPlayer(GetHealTarget()) & RETURN_CONTINUE) return;// RETURN_CONTINUE; } else { // Is this desirable? Debatable. // TODO: In a group/raid with a healer you'd want this bot to focus on DPS (it's not specced/geared for healing either) if (HealPlayer(m_bot) & RETURN_CONTINUE) return;// RETURN_CONTINUE; } // buff group if (Buff(&PlayerbotPaladinAI::BuffHelper, 1) & RETURN_CONTINUE) // Paladin's BuffHelper takes care of choosing the specific Blessing so just pass along a non-zero value return; // hp/mana check if (m_bot->getStandState() != UNIT_STAND_STATE_STAND) m_bot->SetStandState(UNIT_STAND_STATE_STAND); if (EatDrinkBandage()) return; // m_ai->TellMaster("DoNonCombatActions() - 10. past EatDrinkBandage()"); // debug }
CombatManeuverReturns PlayerbotPaladinAI::DoNextCombatManeuver(Unit* pTarget) { if (CheckSeals()) return RETURN_CONTINUE; switch (m_ai->GetScenarioType()) { case PlayerbotAI::SCENARIO_PVP_DUEL: case PlayerbotAI::SCENARIO_PVP_BG: case PlayerbotAI::SCENARIO_PVP_ARENA: case PlayerbotAI::SCENARIO_PVP_OPENWORLD: return DoNextCombatManeuverPVP(pTarget); case PlayerbotAI::SCENARIO_PVE: case PlayerbotAI::SCENARIO_PVE_ELITE: case PlayerbotAI::SCENARIO_PVE_RAID: default: return DoNextCombatManeuverPVE(pTarget); break; } return RETURN_NO_ACTION_ERROR; }