mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
[Bots] Add missing stance options (#4681)
- Moved stance check to function - Added check for Efficient and Assist stances. - Sets aggressive to ignore aggrochecks by default - Adds more types to default aggrocheck list - Sets Assist to hold CCs
This commit is contained in:
parent
9aa0f7c695
commit
3b399dfac5
51
zone/bot.cpp
51
zone/bot.cpp
@ -10762,6 +10762,7 @@ bool Bot::GetDefaultSpellTypeHold(uint16 spell_type, uint8 stance) {
|
||||
switch (stance) {
|
||||
case Stance::AEBurn:
|
||||
case Stance::Burn:
|
||||
case Stance::Assist:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@ -11041,31 +11042,36 @@ bool Bot::GetDefaultSpellTypeAggroCheck(uint16 spell_type, uint8 stance) {
|
||||
switch (stance) {
|
||||
case Stance::AEBurn:
|
||||
case Stance::Burn:
|
||||
case Stance::Aggressive:
|
||||
return false;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (spell_type) {
|
||||
case BotSpellTypes::Nuke:
|
||||
case BotSpellTypes::Root:
|
||||
case BotSpellTypes::Snare:
|
||||
case BotSpellTypes::DOT:
|
||||
case BotSpellTypes::Slow:
|
||||
case BotSpellTypes::Debuff:
|
||||
case BotSpellTypes::Fear:
|
||||
case BotSpellTypes::Stun:
|
||||
case BotSpellTypes::AEDebuff:
|
||||
case BotSpellTypes::AEDispel:
|
||||
case BotSpellTypes::AEDoT:
|
||||
case BotSpellTypes::AEFear:
|
||||
case BotSpellTypes::AEHateLine:
|
||||
case BotSpellTypes::AELifetap:
|
||||
case BotSpellTypes::AENukes:
|
||||
case BotSpellTypes::AERains:
|
||||
case BotSpellTypes::AEStun:
|
||||
case BotSpellTypes::AEDebuff:
|
||||
case BotSpellTypes::AERoot:
|
||||
case BotSpellTypes::AESlow:
|
||||
case BotSpellTypes::AESnare:
|
||||
case BotSpellTypes::AEFear:
|
||||
case BotSpellTypes::AEDispel:
|
||||
case BotSpellTypes::AERoot:
|
||||
case BotSpellTypes::AEDoT:
|
||||
case BotSpellTypes::AEStun:
|
||||
case BotSpellTypes::DOT:
|
||||
case BotSpellTypes::Debuff:
|
||||
case BotSpellTypes::Dispel:
|
||||
case BotSpellTypes::Fear:
|
||||
case BotSpellTypes::HateLine:
|
||||
case BotSpellTypes::Nuke:
|
||||
case BotSpellTypes::PBAENuke:
|
||||
case BotSpellTypes::Root:
|
||||
case BotSpellTypes::Slow:
|
||||
case BotSpellTypes::Snare:
|
||||
case BotSpellTypes::Stun:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@ -13160,3 +13166,20 @@ std::vector<Mob*> Bot::GetSpellTargetList(bool entire_raid) {
|
||||
|
||||
return entire_raid ? _spell_target_list : _group_spell_target_list;
|
||||
}
|
||||
|
||||
bool Bot::IsValidBotStance(uint8 stance) {
|
||||
switch (stance) {
|
||||
case Stance::Passive:
|
||||
case Stance::Balanced:
|
||||
case Stance::Efficient:
|
||||
case Stance::Aggressive:
|
||||
case Stance::Assist:
|
||||
case Stance::Burn:
|
||||
case Stance::AEBurn:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -816,6 +816,7 @@ public:
|
||||
|
||||
bool GetRangerAutoWeaponSelect() { return _rangerAutoWeaponSelect; }
|
||||
uint8 GetBotStance() { return _botStance; }
|
||||
static bool IsValidBotStance(uint8 stance);
|
||||
uint8 GetChanceToCastBySpellType(uint16 spell_type);
|
||||
bool IsGroupHealer() const { return m_CastingRoles.GroupHealer; }
|
||||
bool IsGroupSlower() const { return m_CastingRoles.GroupSlower; }
|
||||
|
||||
@ -1263,12 +1263,7 @@ void bot_command_stance(Client *c, const Seperator *sep)
|
||||
if (sep->IsNumber(1)) {
|
||||
++ab_arg;
|
||||
value = atoi(sep->arg[1]);
|
||||
if (
|
||||
value < Stance::Passive ||
|
||||
value > Stance::AEBurn ||
|
||||
value == Stance::Reactive ||
|
||||
value == Stance::Assist
|
||||
) {
|
||||
if (!Bot::IsValidBotStance(value)) {
|
||||
c->Message(
|
||||
Chat::Yellow,
|
||||
fmt::format(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user