aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-02-15 12:23:05 +0100
committerTreeston <treeston.mmoc@gmail.com>2018-02-15 12:23:05 +0100
commit4da9321d2bdde17ddf1a55b92ab130216e9af27b (patch)
tree7355aaf01734f12bb422a74ba4cb5eb75ac1f0f3 /src
parentcfc77fd84355d28737f3f85f2ba318be5caacdea (diff)
Core/Combat: Unify combat permitted checks between CvC and PvC - only require "not friendly" in all cases. Fixes Yogg-Saron encounter. Closes #21380.
Also some bonus cleanup to Yogg's script to make transition cleaner.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Combat/CombatManager.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp9
2 files changed, 7 insertions, 14 deletions
diff --git a/src/server/game/Combat/CombatManager.cpp b/src/server/game/Combat/CombatManager.cpp
index 2f5a4fa87b9..5e315350158 100644
--- a/src/server/game/Combat/CombatManager.cpp
+++ b/src/server/game/Combat/CombatManager.cpp
@@ -44,16 +44,8 @@
return false;
if (a->HasUnitState(UNIT_STATE_IN_FLIGHT) || b->HasUnitState(UNIT_STATE_IN_FLIGHT))
return false;
- if (a->IsControlledByPlayer() || b->IsControlledByPlayer())
- { // PvSomething, only block friendly fire
- if (a->IsFriendlyTo(b) || b->IsFriendlyTo(a))
- return false;
- }
- else
- { // CvC, need hostile reaction to start a fight
- if (!a->IsHostileTo(b) && !b->IsHostileTo(a))
- return false;
- }
+ if (a->IsFriendlyTo(b) || b->IsFriendlyTo(a))
+ return false;
Player const* playerA = a->GetCharmerOrOwnerPlayerOrPlayerItself();
Player const* playerB = b->GetCharmerOrOwnerPlayerOrPlayerItself();
// ...neither of the two units must be (owned by) a player with .gm on
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index b3318d83022..d4c65a7b87e 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -462,7 +462,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
void MoveInLineOfSight(Unit* who) override
{
// TODO: MoveInLineOfSight doesn't work for such a big distance
- if (who->GetTypeId() == TYPEID_PLAYER && me->GetDistance2d(who) < 99.0f && !me->IsInCombat())
+ if (who->GetTypeId() == TYPEID_PLAYER && !who->ToPlayer()->IsGameMaster() && me->GetDistance2d(who) < 99.0f && !me->IsInCombat())
DoZoneInCombat();
}
@@ -624,9 +624,9 @@ class boss_voice_of_yogg_saron : public CreatureScript
me->SummonCreature(NPC_YOGG_SARON, YoggSaronSpawnPos);
if (Creature* brain = instance->GetCreature(DATA_BRAIN_OF_YOGG_SARON))
DoZoneInCombat(brain);
- events.ScheduleEvent(EVENT_SUMMON_CORRUPTOR_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
- events.ScheduleEvent(EVENT_SUMMON_CONSTRICTOR_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
- events.ScheduleEvent(EVENT_SUMMON_CRUSHER_TENTACLE, 1, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
+ events.ScheduleEvent(EVENT_SUMMON_CORRUPTOR_TENTACLE, 5s, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
+ events.ScheduleEvent(EVENT_SUMMON_CONSTRICTOR_TENTACLE, 7s, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
+ events.ScheduleEvent(EVENT_SUMMON_CRUSHER_TENTACLE, 5s, EVENT_GROUP_SUMMON_TENTACLES, PHASE_TWO);
events.ScheduleEvent(EVENT_ILLUSION, 60000, 0, PHASE_TWO);
break;
case ACTION_TOGGLE_SHATTERED_ILLUSION:
@@ -939,6 +939,7 @@ class boss_yogg_saron : public CreatureScript
void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
{
+ // Val'anyr
if (spell->Id == SPELL_IN_THE_MAWS_OF_THE_OLD_GOD)
me->AddLootMode(32);
}