mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-18 19:41:30 +00:00
[Bots] Cleanup AI_IdleCastCheck Logic (#3004)
* [Bots] Cleanup AI_IdleCastCheck Logic * cleanup logic
This commit is contained in:
parent
a470931fdd
commit
d2c3c14ae0
@ -2470,6 +2470,7 @@ void Bot::AI_Process()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We also need a leash owner and follow mob (subset of primary AI criteria)
|
// We also need a leash owner and follow mob (subset of primary AI criteria)
|
||||||
|
bot_group->VerifyGroup();
|
||||||
Client* leash_owner = (bot_group->GetLeader() && bot_group->GetLeader()->IsClient() ? bot_group->GetLeader()->CastToClient() : bot_owner);
|
Client* leash_owner = (bot_group->GetLeader() && bot_group->GetLeader()->IsClient() ? bot_group->GetLeader()->CastToClient() : bot_owner);
|
||||||
if (!leash_owner) {
|
if (!leash_owner) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -1303,8 +1303,7 @@ bool Bot::AI_IdleCastCheck() {
|
|||||||
|
|
||||||
if (HasGroup() && GetGroup()->GetLeader() && GetGroup()->GetLeader()->IsClient()) {
|
if (HasGroup() && GetGroup()->GetLeader() && GetGroup()->GetLeader()->IsClient()) {
|
||||||
test_against = GetGroup()->GetLeader()->CastToClient();
|
test_against = GetGroup()->GetLeader()->CastToClient();
|
||||||
}
|
} else if (GetOwner() && GetOwner()->IsClient()) {
|
||||||
else if (GetOwner() && GetOwner()->IsClient()) {
|
|
||||||
test_against = GetOwner()->CastToClient();
|
test_against = GetOwner()->CastToClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1317,17 +1316,12 @@ bool Bot::AI_IdleCastCheck() {
|
|||||||
// Healers WITHOUT pets will check if a heal is needed before buffing.
|
// Healers WITHOUT pets will check if a heal is needed before buffing.
|
||||||
case CLERIC:
|
case CLERIC:
|
||||||
case PALADIN:
|
case PALADIN:
|
||||||
case RANGER:
|
case RANGER: {
|
||||||
case MONK:
|
|
||||||
case ROGUE:
|
|
||||||
case WARRIOR:
|
|
||||||
case BERSERKER: {
|
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Cure)) {
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Cure)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Heal)) {
|
if (!AICastSpell(this, 100, SpellType_Heal)) {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Heal)) {
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Heal)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
||||||
//
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1337,13 +1331,46 @@ bool Bot::AI_IdleCastCheck() {
|
|||||||
result = true;
|
result = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case MONK:
|
||||||
|
case ROGUE:
|
||||||
|
case WARRIOR:
|
||||||
|
case BERSERKER: {
|
||||||
|
if (!AICastSpell(this, 100, SpellType_Cure)) {
|
||||||
|
if (!AICastSpell(this, 100, SpellType_Heal)) {
|
||||||
|
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
||||||
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Pets class will first cast their pet, then buffs
|
// Pets class will first cast their pet, then buffs
|
||||||
case DRUID:
|
|
||||||
case MAGICIAN:
|
case MAGICIAN:
|
||||||
case SHADOWKNIGHT:
|
case SHADOWKNIGHT:
|
||||||
case SHAMAN:
|
|
||||||
case NECROMANCER:
|
case NECROMANCER:
|
||||||
case ENCHANTER:
|
case ENCHANTER: {
|
||||||
|
if (!AICastSpell(this, 100, SpellType_Pet)) {
|
||||||
|
if (!AICastSpell(this, 100, SpellType_Cure)) {
|
||||||
|
if (!AICastSpell(GetPet(), 100, SpellType_Cure)) {
|
||||||
|
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
||||||
|
if (!AICastSpell(GetPet(), 100, SpellType_Heal)) {
|
||||||
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DRUID:
|
||||||
|
case SHAMAN:
|
||||||
case BEASTLORD: {
|
case BEASTLORD: {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Cure)) {
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Cure)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Pet)) {
|
if (!AICastSpell(this, 100, SpellType_Pet)) {
|
||||||
@ -1365,16 +1392,12 @@ bool Bot::AI_IdleCastCheck() {
|
|||||||
}
|
}
|
||||||
case WIZARD: { // This can eventually be move into the BEASTLORD case handler once pre-combat is fully implemented
|
case WIZARD: { // This can eventually be move into the BEASTLORD case handler once pre-combat is fully implemented
|
||||||
if (pre_combat) {
|
if (pre_combat) {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Cure)) {
|
if (!AICastSpell(this, 100, SpellType_Pet)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Pet)) {
|
if (!AICastSpell(this, 100, SpellType_Cure)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Heal)) {
|
if (!AICastSpell(this, 100, SpellType_Heal)) {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Heal)) {
|
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_PreCombatBuff)) {
|
||||||
if (!AICastSpell(GetPet(), 100, SpellType_Heal)) {
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_PreCombatBuff)) {
|
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1383,15 +1406,11 @@ bool Bot::AI_IdleCastCheck() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Cure)) {
|
if (!AICastSpell(this, 100, SpellType_Cure)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Pet)) {
|
if (!AICastSpell(this, 100, SpellType_Pet)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Heal)) {
|
if (!AICastSpell(this, 100, SpellType_Heal)) {
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Heal)) {
|
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
||||||
if (!AICastSpell(this, 100, SpellType_Buff)) {
|
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
||||||
if (!AICastSpell(GetPet(), 100, SpellType_Heal)) {
|
|
||||||
if (!entity_list.Bot_AICheckCloseBeneficialSpells(this, 100, BotAISpellRange, SpellType_Buff)) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user