[Bug Fix] Add debugging and fix edge case where no target for aggro mob (#1344)

Co-authored-by: Noudess <noudess@gmail.com>
This commit is contained in:
Paul Coene 2021-05-10 02:10:13 -04:00 committed by GitHub
parent 0ce7c11d36
commit 843aac631b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -916,6 +916,10 @@ bool NPC::Process()
if (assist_timer.Check() && IsEngaged() && !Charmed() && !HasAssistAggro() && if (assist_timer.Check() && IsEngaged() && !Charmed() && !HasAssistAggro() &&
NPCAssistCap() < RuleI(Combat, NPCAssistCap)) { NPCAssistCap() < RuleI(Combat, NPCAssistCap)) {
// Some cases like flash of light used for aggro haven't set target
if (!GetTarget()) {
SetTarget(hate_list.GetEntWithMostHateOnList(this));
}
AIYellForHelp(this, GetTarget()); AIYellForHelp(this, GetTarget());
if (NPCAssistCap() > 0 && !assist_cap_timer.Enabled()) if (NPCAssistCap() > 0 && !assist_cap_timer.Enabled())
assist_cap_timer.Start(RuleI(Combat, NPCAssistCapTimer)); assist_cap_timer.Start(RuleI(Combat, NPCAssistCapTimer));
@ -3217,6 +3221,11 @@ bool NPC::AICheckCloseBeneficialSpells(
*/ */
void NPC::AIYellForHelp(Mob *sender, Mob *attacker) void NPC::AIYellForHelp(Mob *sender, Mob *attacker)
{ {
LogAIYellForHelp("Mob[{}] Target[{}]",
(sender == nullptr ? "NULL MOB" : GetCleanName()),
(attacker == nullptr ? "NULL TARGET" : attacker->GetCleanName())
);
if (!sender || !attacker) { if (!sender || !attacker) {
return; return;
} }
@ -3225,11 +3234,14 @@ void NPC::AIYellForHelp(Mob *sender, Mob *attacker)
* If we dont have a faction set, we're gonna be indiff to everybody * If we dont have a faction set, we're gonna be indiff to everybody
*/ */
if (sender->GetPrimaryFaction() == 0) { if (sender->GetPrimaryFaction() == 0) {
LogAIYellForHelp("No Primary Faction");
return; return;
} }
if (sender->HasAssistAggro()) if (sender->HasAssistAggro()) {
LogAIYellForHelp("I have assist aggro");
return; return;
}
LogAIYellForHelp( LogAIYellForHelp(
"NPC [{}] ID [{}] is starting to scan", "NPC [{}] ID [{}] is starting to scan",