From 7edd88457efc9782bb162c3fb2a4ddf488e8d615 Mon Sep 17 00:00:00 2001 From: staphen Date: Tue, 1 Oct 2024 00:57:53 -0400 Subject: [PATCH] Wake up the whole pack of Gargoyles when disturbed --- Source/monster.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Source/monster.cpp b/Source/monster.cpp index 01055fcbd..d0bee084e 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -1582,11 +1582,17 @@ void FollowTheLeader(Monster &monster) if (leader == nullptr) return; - if (monster.activeForTicks >= leader->activeForTicks) - return; + if (leader->activeForTicks > monster.activeForTicks) { + monster.position.last = leader->position.tile; + monster.activeForTicks = leader->activeForTicks - 1; + } - monster.position.last = leader->position.tile; - monster.activeForTicks = leader->activeForTicks - 1; + if (monster.ai != MonsterAIID::Gargoyle || (monster.flags & MFLAG_ALLOW_SPECIAL) == 0) + return; + if (leader->mode == MonsterMode::SpecialMeleeAttack && (leader->flags & MFLAG_ALLOW_SPECIAL) != 0) + return; + monster.flags &= ~MFLAG_ALLOW_SPECIAL; + monster.mode = MonsterMode::SpecialMeleeAttack; } void GroupUnity(Monster &monster)