From 175c961c549866ae49663cc69ef4c4dbc0fa0ee7 Mon Sep 17 00:00:00 2001 From: Pedro Antonio <37176834+Valdifer@users.noreply.github.com> Date: Thu, 16 Mar 2023 18:51:59 +0100 Subject: [PATCH] fix(Core/BattlefieldWG): Workshops/Graveyard not changing to neutral (#14002) --- src/server/game/Battlefield/Zones/BattlefieldWG.h | 11 +++++++++++ src/server/game/Spells/SpellMgr.cpp | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index f603d2a35..89f8848ab 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -1474,6 +1474,17 @@ struct WGWorkshop // Send warning message to all player to inform a faction attack to a workshop // alliance / horde attacking a workshop bf->SendWarning(teamControl ? WorkshopsData[workshopId].attackText : (WorkshopsData[workshopId].attackText + 2)); + + // Updating worldstate, update icon to neutral + state = BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_INTACT; + bf->SendUpdateWorldState(WorkshopsData[workshopId].worldstate, state); + + // Found associate graveyard and update it + if (workshopId < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST) + if (bf->GetGraveyardById(workshopId)) + bf->GetGraveyardById(workshopId)->GiveControlTo(team); + + teamControl = team; break; } case TEAM_ALLIANCE: diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 9b8aba867..552659a6c 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1193,6 +1193,8 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 return spellId == 56618; else if (team == TEAM_ALLIANCE) return spellId == 56617; + else + return false; break; } // Hellscream's Warsong