diff --git a/Source/monster.cpp b/Source/monster.cpp index 60e8cfb96bb6..9baf7a2d5ece 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -1546,11 +1546,14 @@ void FollowTheLeader(Monster &monster) if (leader == nullptr) return; - if (monster.activeForTicks >= leader->activeForTicks) - return; - - monster.position.last = leader->position.tile; - monster.activeForTicks = leader->activeForTicks - 1; + if (leader->activeForTicks > monster.activeForTicks) { + monster.position.last = leader->position.tile; + monster.activeForTicks = leader->activeForTicks - 1; + } + if (monster.ai == MonsterAIID::Gargoyle && (monster.flags & MFLAG_ALLOW_SPECIAL) != 0) { + monster.flags &= ~MFLAG_ALLOW_SPECIAL; + monster.mode = MonsterMode::SpecialMeleeAttack; + } } void GroupUnity(Monster &monster)