diff --git a/zone/bot.cpp b/zone/bot.cpp index 7f044046c..a1ee0f691 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -2089,7 +2089,7 @@ void Bot::AI_Process() return; } - if (raid && r_group == RAID_GROUPLESS) { + if (HOLDING || (raid && r_group == RAID_GROUPLESS)) { glm::vec3 Goal(0, 0, 0); TryNonCombatMovementChecks(bot_owner, follow_mob, Goal); @@ -2271,7 +2271,7 @@ void Bot::AI_Process() } } - if (!IsBotNonSpellFighter() && !HOLDING && AI_HasSpells() && AI_EngagedCastCheck()) { + if (!IsBotNonSpellFighter() && AI_HasSpells() && AI_EngagedCastCheck()) { return; } @@ -2332,6 +2332,7 @@ void Bot::AI_Process() SetAttackFlag(false); SetCombatRoundForAlerts(false); SetAttackingFlag(false); + if (!bot_owner->GetBotPulling()) { SetPullingFlag(false); @@ -2347,7 +2348,6 @@ void Bot::AI_Process() SetTarget(nullptr); if (HasPet() && (GetClass() != Class::Enchanter || GetPet()->GetPetType() != petAnimation || GetAA(aaAnimationEmpathy) >= 1)) { - GetPet()->WipeHateList(); GetPet()->SetTarget(nullptr); } @@ -2362,10 +2362,10 @@ void Bot::AI_Process() if (TryNonCombatMovementChecks(bot_owner, follow_mob, Goal)) { return; } - if (!HOLDING && AI_HasSpells() && TryIdleChecks(fm_distance)) { + if (AI_HasSpells() && TryIdleChecks(fm_distance)) { return; } - if (!HOLDING && AI_HasSpells() && TryBardMovementCasts()) { + if (AI_HasSpells() && TryBardMovementCasts()) { return; } }