From f6c5560e9cf3042d0f4211d546b497f825f3b286 Mon Sep 17 00:00:00 2001 From: Aeadoin <109764533+Aeadoin@users.noreply.github.com> Date: Sun, 27 Nov 2022 14:39:34 -0500 Subject: [PATCH] [Bot] Update Bot Logic to ignore ST_TargetsTarget when buffing (#2584) * [Bot] Update Bot Logic to ignore ST_TargetsTarget when buffing * Fix Not Operator * Update botspellsai.cpp Co-authored-by: Alex King <89047260+Kinglykrab@users.noreply.github.com> --- zone/botspellsai.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/zone/botspellsai.cpp b/zone/botspellsai.cpp index 21cc6e1b6..cf98eec33 100644 --- a/zone/botspellsai.cpp +++ b/zone/botspellsai.cpp @@ -371,13 +371,22 @@ bool Bot::AICastSpell(Mob* tar, uint8 iChance, uint32 iSpellTypes) { continue; } // Validate target - - if (!((spells[selectedBotSpell.SpellId].target_type == ST_Target || spells[selectedBotSpell.SpellId].target_type == ST_Pet || tar == this || - spells[selectedBotSpell.SpellId].target_type == ST_Group || spells[selectedBotSpell.SpellId].target_type == ST_GroupTeleport || - (botClass == BARD && spells[selectedBotSpell.SpellId].target_type == ST_AEBard)) - && !tar->IsImmuneToSpell(selectedBotSpell.SpellId, this) - && (tar->CanBuffStack(selectedBotSpell.SpellId, botLevel, true) >= 0))) { - continue; + // TODO: Add ST_TargetsTarget support for Buffing. + if ( + !( + ( + spells[selectedBotSpell.SpellId].target_type == ST_Target || + spells[selectedBotSpell.SpellId].target_type == ST_Pet || + (tar == this && spells[selectedBotSpell.SpellId].target_type != ST_TargetsTarget) || + spells[selectedBotSpell.SpellId].target_type == ST_Group || + spells[selectedBotSpell.SpellId].target_type == ST_GroupTeleport || + (botClass == BARD && spells[selectedBotSpell.SpellId].target_type == ST_AEBard) + ) && + !tar->IsImmuneToSpell(selectedBotSpell.SpellId, this) && + tar->CanBuffStack(selectedBotSpell.SpellId, botLevel, true) >= 0 + ) + ) { + continue; } // Put the zone levitate and movement check here since bots are able to bypass the client casting check