Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2024-10-04 21:57:35 +08:00
90 changed files with 381 additions and 169 deletions
@@ -19,7 +19,6 @@
#define _AUTHCODES_H
#include "Define.h"
#include <array>
enum AuthResult
{
-1
View File
@@ -30,7 +30,6 @@
#include "DatabaseEnv.h"
#include "DatabaseLoader.h"
#include "DeadlineTimer.h"
#include "GitRevision.h"
#include "IPLocation.h"
#include "IoContext.h"
#include "Log.h"
@@ -23,7 +23,6 @@
#include "CryptoHash.h"
#include "CryptoRandom.h"
#include "DatabaseEnv.h"
#include "Errors.h"
#include "IPLocation.h"
#include "Log.h"
#include "RealmList.h"
@@ -28,7 +28,6 @@
#include "SRP6.h"
#include "Socket.h"
#include <boost/asio/ip/tcp.hpp>
#include <memory>
using boost::asio::ip::tcp;
@@ -20,7 +20,6 @@
#include "Define.h"
#include <future>
#include <mutex>
void process_message(struct soap* soap_message);
void ACSoapThread(const std::string& host, uint16 port);
@@ -18,11 +18,9 @@
#ifndef __RASESSION_H__
#define __RASESSION_H__
#include "Common.h"
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/streambuf.hpp>
#include <future>
#include <memory>
using boost::asio::ip::tcp;
@@ -16,7 +16,6 @@
*/
#include "AdhocStatement.h"
#include "Errors.h"
#include "MySQLConnection.h"
#include "QueryResult.h"
@@ -29,7 +29,6 @@
#include "Implementation/PlayerbotsDatabase.h"
#endif
#include "Field.h"
#include "PreparedStatement.h"
#include "QueryCallback.h"
#include "QueryResult.h"
@@ -19,7 +19,6 @@
#define DatabaseEnvFwd_h__
#include <future>
#include <memory>
struct QueryResultFieldMetadata;
class Field;
-1
View File
@@ -20,7 +20,6 @@
#include "Log.h"
#include "MySQLHacks.h"
#include "StringConvert.h"
#include "Types.h"
Field::Field()
{
-1
View File
@@ -18,7 +18,6 @@
#ifndef _FIELD_H
#define _FIELD_H
#include "DatabaseEnvFwd.h"
#include "Define.h"
#include "Duration.h"
#include <array>
@@ -20,7 +20,6 @@
#include "Log.h"
#include "MySQLHacks.h"
#include "MySQLPreparedStatement.h"
#include "MySQLWorkaround.h"
#include "PreparedStatement.h"
#include "QueryResult.h"
#include "StringConvert.h"
@@ -21,7 +21,6 @@
#include "DatabaseEnvFwd.h"
#include "Define.h"
#include <map>
#include <memory>
#include <mutex>
#include <string>
#include <vector>
@@ -19,7 +19,6 @@
#include "Errors.h"
#include "Log.h"
#include "MySQLConnection.h"
#include "MySQLPreparedStatement.h"
#include "MySQLWorkaround.h"
#include "QueryResult.h"
@@ -20,7 +20,6 @@
#include "Define.h"
#include "Duration.h"
#include "Optional.h"
#include "SQLOperation.h"
#include <future>
#include <tuple>
@@ -24,7 +24,6 @@
#include <future>
#include <list>
#include <queue>
#include <utility>
class AC_DATABASE_API QueryCallback
{
@@ -24,7 +24,6 @@
#include "StringFormat.h"
#include <functional>
#include <mutex>
#include <utility>
#include <vector>
/*! Transactions, high level class. */
@@ -20,7 +20,6 @@
#include "Config.h"
#include "DatabaseEnv.h"
#include "DatabaseLoader.h"
#include "GitRevision.h"
#include "Log.h"
#include "StartProcess.h"
#include "UpdateFetcher.h"
@@ -25,6 +25,8 @@
#include <fstream>
#include <sstream>
#include "QueryResult.h"
using namespace std::filesystem;
struct UpdateFetcher::DirectoryEntry
-1
View File
@@ -23,7 +23,6 @@
#include "GameObject.h"
#include "Object.h"
#include "QuestDef.h"
#include <list>
class Creature;
class GameObject;
+3
View File
@@ -60,6 +60,9 @@ void GuardAI::EnterEvadeMode(EvadeReason /*why*/)
void GuardAI::JustDied(Unit* killer)
{
if (!killer)
return;
if (Player* player = killer->GetCharmerOrOwnerPlayerOrPlayerItself())
me->SendZoneUnderAttackMessage(player);
}
-1
View File
@@ -17,7 +17,6 @@
#include "PassiveAI.h"
#include "Creature.h"
#include "TemporarySummon.h"
PassiveAI::PassiveAI(Creature* c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); }
PossessedAI::PossessedAI(Creature* c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); }
-1
View File
@@ -17,7 +17,6 @@
#include "ReactorAI.h"
#include "CreatureAIImpl.h"
#include "Errors.h"
int32 ReactorAI::Permissible(Creature const* creature)
{
-1
View File
@@ -19,7 +19,6 @@
#define ACORE_TOTEMAI_H
#include "CreatureAI.h"
#include "Timer.h"
class Creature;
class Totem;
-1
View File
@@ -19,7 +19,6 @@
#define ACORE_CREATUREAI_H
#include "AreaBoundary.h"
#include "Common.h"
#include "Creature.h"
#include "EventMap.h"
#include "TaskScheduler.h"
-3
View File
@@ -18,13 +18,10 @@
#ifndef CREATUREAIIMPL_H
#define CREATUREAIIMPL_H
#include "Common.h"
#include "CreatureAI.h"
#include "Define.h"
#include "SpellMgr.h"
#include "TemporarySummon.h"
#include <functional>
#include <type_traits>
template<typename First, typename Second, typename... Rest>
static inline First const& RAND(First const& first, Second const& second, Rest const& ... rest)
-1
View File
@@ -20,7 +20,6 @@
#include "FactoryHolder.h"
#include "GameObjectAI.h"
#include "ObjectRegistry.h"
typedef FactoryHolder<GameObjectAI, GameObject> GameObjectAICreator;
@@ -18,7 +18,6 @@
#ifndef ACORE_SMARTAI_H
#define ACORE_SMARTAI_H
#include "Common.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "GameObjectAI.h"
@@ -22,8 +22,6 @@
#include "GameObject.h"
#include "ObjectAccessor.h"
#include "SharedDefines.h"
#include "Utilities/Util.h"
#include "WorldPacket.h"
#include "ZoneScript.h"
enum BattlefieldTypes
@@ -22,7 +22,6 @@
#include "Log.h"
#include "ObjectAccessor.h"
#include "World.h"
#include "WorldPacket.h"
class Group;
class BattlefieldWG;
@@ -19,6 +19,7 @@
#define _ARENA_SCORE_H
#include "BattlegroundScore.h"
#include "SharedDefines.h"
#include "StringFormat.h"
struct AC_GAME_API ArenaScore : public BattlegroundScore
@@ -21,7 +21,6 @@
#include "Map.h"
#include "QueryResult.h"
#include <list>
#include <map>
class WorldSession;
class WorldPacket;
@@ -20,10 +20,8 @@
#include "Battleground.h"
#include "BattlegroundQueue.h"
#include "Common.h"
#include "CreatureAIImpl.h"
#include "DBCEnums.h"
#include <functional>
#include <unordered_map>
typedef std::map<uint32, Battleground*> BattlegroundContainer;
@@ -20,7 +20,6 @@
#include "Errors.h"
#include "ObjectGuid.h"
#include "SharedDefines.h"
class WorldPacket;
@@ -21,7 +21,6 @@
#include "GameEventMgr.h"
#include "GameGraveyard.h"
#include "GameObject.h"
#include "Language.h"
#include "ObjectMgr.h"
#include "Player.h"
#include "SpellAuras.h"
@@ -21,7 +21,6 @@
#include "Battleground.h"
#include "BattlegroundScore.h"
#include "EventMap.h"
#include "Language.h"
enum BG_EY_Events
{
@@ -16,12 +16,10 @@
*/
#include "BattlegroundRV.h"
#include "ArenaScore.h"
#include "Battleground.h"
#include "GameObject.h"
#include "Log.h"
#include "ObjectAccessor.h"
#include "Pet.h"
#include "Player.h"
#include "WorldPacket.h"
-3
View File
@@ -21,15 +21,12 @@
#include "Common.h"
#include "GridNotifiersImpl.h"
#include "Language.h"
#include "Log.h"
#include "ObjectMgr.h"
#include "Opcodes.h"
#include "Player.h"
#include "Realm.h"
#include "ScriptMgr.h"
#include "SpellMgr.h"
#include "Tokenize.h"
#include "UpdateMask.h"
#include "World.h"
#include "WorldPacket.h"
#include "WorldSession.h"
-1
View File
@@ -19,7 +19,6 @@
#define AZEROTHCORE_CHAT_H
#include "ChatCommand.h"
#include "Errors.h"
#include "Player.h"
#include "SharedDefines.h"
#include "WorldSession.h"
@@ -30,7 +30,6 @@
#include <cstddef>
#include <map>
#include <tuple>
#include <type_traits>
#include <utility>
#include <variant>
#include <vector>
@@ -17,7 +17,6 @@
#include "ChatCommandHelpers.h"
#include "Chat.h"
#include "ObjectMgr.h"
void Acore::Impl::ChatCommands::SendErrorMessageToHandler(ChatHandler* handler, std::string_view str)
{
@@ -24,7 +24,6 @@
#include <optional>
#include <string>
#include <string_view>
#include <type_traits>
#include <variant>
class ChatHandler;
@@ -25,14 +25,10 @@
#include "Util.h"
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <cmath>
#include <cstring>
#include <iostream>
#include <string>
#include <string_view>
#include <tuple>
#include <type_traits>
#include <utility>
#include <variant>
class ChatHandler;
-2
View File
@@ -23,8 +23,6 @@
#include <array>
#include <string>
#include <string_view>
#include <type_traits>
#include <utility>
struct AchievementEntry;
struct GlyphPropertiesEntry;
@@ -21,8 +21,6 @@
#include "ScriptMgr.h"
#include "SpellAuraEffects.h"
#include "Transport.h"
#include "UpdateMask.h"
#include "World.h"
DynamicObject::DynamicObject(bool isWorldObject) : WorldObject(isWorldObject), MovableMapObject(),
_aura(nullptr), _removedAura(nullptr), _caster(nullptr), _duration(0), _isViewpoint(false), _updateViewerVisibilityTimer(0)
@@ -18,7 +18,6 @@
#ifndef GAMEOBJECTDATA_H
#define GAMEOBJECTDATA_H
#include "Common.h"
#include "SharedDefines.h"
#include "WorldPacket.h"
#include <string>
@@ -26,12 +26,10 @@
#include "CharacterDatabaseCleaner.h"
#include "Chat.h"
#include "Common.h"
#include "ConditionMgr.h"
#include "Config.h"
#include "DatabaseEnv.h"
#include "DisableMgr.h"
#include "GameEventMgr.h"
#include "GameGraveyard.h"
#include "GameObjectAI.h"
#include "GameTime.h"
#include "GridNotifiers.h"
@@ -63,10 +61,8 @@
#include "StringConvert.h"
#include "Tokenize.h"
#include "Transport.h"
#include "UpdateData.h"
#include "UpdateFieldFlags.h"
#include "Util.h"
#include "Vehicle.h"
#include "World.h"
#include "WorldPacket.h"
+17 -7
View File
@@ -57,7 +57,6 @@
#include "SpellAuras.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
#include "StringConvert.h"
#include "TargetedMovementGenerator.h"
#include "TemporarySummon.h"
#include "Tokenize.h"
@@ -5076,6 +5075,14 @@ void Unit::RemoveAurasDueToItemSpell(uint32 spellId, ObjectGuid castItemGuid)
else
++iter;
}
for (AuraMap::iterator iter = m_ownedAuras.begin(); iter != m_ownedAuras.end();)
{
if (iter->second->GetCastItemGUID() == castItemGuid)
RemoveOwnedAura(iter, AURA_REMOVE_BY_DEFAULT);
else
++iter;
}
}
void Unit::RemoveAurasByType(AuraType auraType, ObjectGuid casterGUID, Aura* except, bool negative, bool positive)
@@ -14279,14 +14286,14 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
{
if (IsCreature() && IsControlledByPlayer()) // not sure if good for pet
{
main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED);
stack_bonus = GetTotalAuraMultiplier(SPELL_AURA_MOD_VEHICLE_SPEED_ALWAYS);
main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED);
stack_bonus = GetTotalAuraMultiplier(SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACKING);
// for some spells this mod is applied on vehicle owner
int32 owner_speed_mod = 0;
if (Unit* owner = GetCharmer())
owner_speed_mod = owner->GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED);
owner_speed_mod = owner->GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED);
main_speed_mod = std::max(main_speed_mod, owner_speed_mod);
}
@@ -14294,11 +14301,14 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
{
main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED);
stack_bonus = GetTotalAuraMultiplier(SPELL_AURA_MOD_MOUNTED_FLIGHT_SPEED_ALWAYS);
non_stack_bonus += GetMaxPositiveAuraModifier(SPELL_AURA_MOD_FLIGHT_SPEED_MOUNTED_NOT_STACKING) / 100.0f;
}
else // Use not mount (shapeshift for example) auras (should stack)
main_speed_mod = GetTotalAuraModifier(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED) + GetTotalAuraModifier(SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED);
non_stack_bonus += GetMaxPositiveAuraModifier(SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACK) / 100.0f;
{
main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED);
stack_bonus = GetTotalAuraModifier(SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS);
non_stack_bonus += GetMaxPositiveAuraModifier(SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACKING) / 100.0f;
}
// Update speed for vehicle if available
if (IsPlayer() && GetVehicle())
@@ -21,16 +21,13 @@
#include "DynamicObject.h"
#include "GameObject.h"
#include "GridNotifiers.h"
#include "Log.h"
#include "Map.h"
#include "MapMgr.h"
#include "ObjectDefines.h"
#include "ObjectMgr.h"
#include "Opcodes.h"
#include "Pet.h"
#include "Player.h"
#include "Transport.h"
#include "Vehicle.h"
template<class T>
void HashMapHolder<T>::Insert(T* o)
-4
View File
@@ -21,11 +21,7 @@
#include "Define.h"
#include "GridDefines.h"
#include "Object.h"
#include "UpdateData.h"
#include <mutex>
#include <set>
#include <shared_mutex>
#include <unordered_map>
class Creature;
class Corpse;
-2
View File
@@ -23,9 +23,7 @@
#include "Corpse.h"
#include "Creature.h"
#include "DatabaseEnv.h"
#include "DynamicObject.h"
#include "GameObject.h"
#include "GossipDef.h"
#include "ItemTemplate.h"
#include "Log.h"
#include "Mail.h"
-1
View File
@@ -19,7 +19,6 @@
#define ACORE_CELL_H
#include "GridDefines.h"
#include "TypeContainer.h"
#include "TypeContainerVisitor.h"
class Map;
-1
View File
@@ -21,7 +21,6 @@
#include "Cell.h"
#include "Map.h"
#include "Object.h"
#include <cmath>
inline Cell::Cell(CellCoord const& p)
{
@@ -18,7 +18,6 @@
#include "GridNotifiers.h"
#include "Map.h"
#include "ObjectAccessor.h"
#include "SpellMgr.h"
#include "Transport.h"
#include "UpdateData.h"
#include "WorldPacket.h"
@@ -22,10 +22,7 @@
#include "CreatureAI.h"
#include "GridNotifiers.h"
#include "Object.h"
#include "Opcodes.h"
#include "Player.h"
#include "SpellAuras.h"
#include "UpdateData.h"
#include "WorldPacket.h"
#include "WorldSession.h"
@@ -24,7 +24,6 @@
#include "GridNotifiers.h"
#include "ObjectMgr.h"
#include "Transport.h"
#include "Vehicle.h"
// for loading world object at grid loading (Corpses)
//TODO: to implement npc on transport, also need to load npcs at grid loading
-2
View File
@@ -21,8 +21,6 @@
#include "Cell.h"
#include "Define.h"
#include "GridDefines.h"
#include "GridLoader.h"
#include "TypeList.h"
class ObjectWorldLoader;
@@ -18,11 +18,9 @@
#ifndef ACORE_MOVEMENTGENERATOR_H
#define ACORE_MOVEMENTGENERATOR_H
#include "Common.h"
#include "Define.h"
#include "FactoryHolder.h"
#include "MotionMaster.h"
#include "ObjectRegistry.h"
class Unit;
@@ -18,10 +18,8 @@
#include "ConfusedMovementGenerator.h"
#include "Creature.h"
#include "MapMgr.h"
#include "MoveSpline.h"
#include "MoveSplineInit.h"
#include "Player.h"
#include "VMapFactory.h"
#ifdef MAP_BASED_RAND_GEN
#define rand_norm() unit.rand_norm()
@@ -18,8 +18,6 @@
#include "EscortMovementGenerator.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "Errors.h"
#include "MoveSpline.h"
#include "MoveSplineInit.h"
#include "Player.h"
@@ -22,7 +22,6 @@
#include "MoveSplineInit.h"
#include "ObjectAccessor.h"
#include "Player.h"
#include "VMapFactory.h"
#define MIN_QUIET_DISTANCE 28.0f
#define MAX_QUIET_DISTANCE 43.0f
@@ -18,7 +18,6 @@
#include "PointMovementGenerator.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "Errors.h"
#include "MoveSpline.h"
#include "MoveSplineInit.h"
#include "ObjectAccessor.h"
@@ -19,6 +19,7 @@
#define SCRIPT_OBJECT_PLAYER_SCRIPT_H_
#include "ScriptObject.h"
#include "SharedDefines.h"
#include <vector>
// TODO to remove
@@ -266,12 +266,12 @@ enum AuraType
SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_DAMAGE = 203,
SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_DAMAGE = 204,
SPELL_AURA_MOD_SCHOOL_CRIT_DMG_TAKEN = 205,
SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED = 206,
SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED = 206,
SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED = 207,
SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED = 208,
SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS = 208,
SPELL_AURA_MOD_MOUNTED_FLIGHT_SPEED_ALWAYS = 209,
SPELL_AURA_MOD_VEHICLE_SPEED_ALWAYS = 210,
SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACK = 211,
SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACKING = 210,
SPELL_AURA_MOD_FLIGHT_SPEED_MOUNTED_NOT_STACKING = 211,
SPELL_AURA_MOD_RANGED_ATTACK_POWER_OF_STAT_PERCENT = 212,
SPELL_AURA_MOD_RAGE_FROM_DAMAGE_DEALT = 213,
SPELL_AURA_214 = 214,
@@ -267,11 +267,11 @@ pAuraEffectHandler AuraEffectHandler[TOTAL_AURAS] =
&AuraEffect::HandleNoImmediateEffect, //203 SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_DAMAGE implemented in Unit::CalculateMeleeDamage and Unit::CalculateSpellDamage
&AuraEffect::HandleNoImmediateEffect, //204 SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_DAMAGE implemented in Unit::CalculateMeleeDamage and Unit::CalculateSpellDamage
&AuraEffect::HandleNULL, //205 SPELL_AURA_MOD_SCHOOL_CRIT_DMG_TAKEN
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //206 SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //206 SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //207 SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //208 SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //208 SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //209 SPELL_AURA_MOD_MOUNTED_FLIGHT_SPEED_ALWAYS
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //210 SPELL_AURA_MOD_VEHICLE_SPEED_ALWAYS
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //210 SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACKING
&AuraEffect::HandleAuraModIncreaseFlightSpeed, //211 SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACK
&AuraEffect::HandleAuraModRangedAttackPowerOfStatPercent, //212 SPELL_AURA_MOD_RANGED_ATTACK_POWER_OF_STAT_PERCENT
&AuraEffect::HandleNoImmediateEffect, //213 SPELL_AURA_MOD_RAGE_FROM_DAMAGE_DEALT implemented in Player::RewardRage
+3 -4
View File
@@ -46,10 +46,8 @@
#include "SpellMgr.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
#include "Totem.h"
#include "Unit.h"
#include "UpdateData.h"
#include "UpdateMask.h"
#include "Util.h"
#include "VMapFactory.h"
#include "Vehicle.h"
@@ -3160,8 +3158,9 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
if (m_spellAura)
{
// Prevent aura application if target is immuned
if (m_targets.GetUnitTarget() && m_targets.GetUnitTarget()->IsImmunedToDamageOrSchool(m_spellAura->GetSpellInfo()))
// Prevent aura application if target is banished and immuned
if (m_targets.GetUnitTarget() && m_targets.GetUnitTarget()->IsImmunedToDamageOrSchool(m_spellAura->GetSpellInfo())
&& m_targets.GetUnitTarget()->HasUnitState(UNIT_STATE_ISOLATED))
{
m_spellAura->Remove();
return SPELL_MISS_IMMUNE;
-1
View File
@@ -19,7 +19,6 @@
#define SPELLDEFINES_H
#include "Define.h"
#include "ObjectGuid.h"
#include <vector>
enum SpellInterruptFlags
-3
View File
@@ -16,7 +16,6 @@
*/
#include "Battleground.h"
#include "BattlegroundEY.h"
#include "BattlegroundIC.h"
#include "BattlegroundMgr.h"
#include "BattlegroundSA.h"
@@ -57,8 +56,6 @@
#include "Totem.h"
#include "Transport.h"
#include "Unit.h"
#include "UpdateData.h"
#include "UpdateMask.h"
#include "Util.h"
#include "Vehicle.h"
#include "World.h"
-1
View File
@@ -30,7 +30,6 @@
#include "SharedDefines.h"
#include "Spell.h"
#include "SpellAuraDefines.h"
#include "SpellAuras.h"
#include "SpellInfo.h"
#include "World.h"
-5
View File
@@ -22,12 +22,7 @@
#include "Common.h"
#include "Duration.h"
#include "ObjectGuid.h"
#include "QueryResult.h"
#include "SharedDefines.h"
#include <atomic>
#include <list>
#include <map>
#include <set>
#include <unordered_map>
class WorldPacket;
-1
View File
@@ -86,7 +86,6 @@
#include "Util.h"
#include "VMapFactory.h"
#include "VMapMgr2.h"
#include "Vehicle.h"
#include "Warden.h"
#include "WardenCheckMgr.h"
#include "WaypointMovementGenerator.h"
-1
View File
@@ -31,7 +31,6 @@
#include <atomic>
#include <list>
#include <map>
#include <set>
#include <unordered_map>
class Object;
@@ -316,6 +316,7 @@ struct boss_illidan_stormrage : public BossAI
DoStopAttack();
me->SetControlled(true, UNIT_STATE_ROOT);
me->SetCombatMovement(false);
DoResetThreatList();
DoCastSelf(SPELL_DEMON_TRANSFORM_1, true);
me->m_Events.AddEventAtOffset([&] {
@@ -734,7 +735,10 @@ struct npc_akama_illidan : public ScriptedAI
scheduler.CancelAll();
me->m_Events.KillAllEvents(true);
me->SetReactState(REACT_AGGRESSIVE);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
if (instance->GetBossState(DATA_ILLIDAN_STORMRAGE) == DONE)
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
else
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->setActive(false);
summons.DespawnAll();
DoCastSelf(SPELL_REDUCED_THREAT, true);
@@ -27,67 +27,67 @@
enum Says
{
SAY_BROKEN_FREE_0 = 0,
SAY_BROKEN_FREE_1 = 1,
SAY_BROKEN_FREE_2 = 2,
SAY_LOW_HEALTH = 3,
SAY_DEATH = 4,
SAY_BROKEN_FREE_0 = 0,
SAY_BROKEN_FREE_1 = 1,
SAY_BROKEN_FREE_2 = 2,
SAY_LOW_HEALTH = 3,
SAY_DEATH = 4,
SAY_BROKEN_S1 = 0,
SAY_BROKEN_S2 = 1
SAY_BROKEN_S1 = 0,
SAY_BROKEN_S2 = 1
};
enum Spells
{
// Akama
SPELL_STEALTH = 34189,
SPELL_DESTRUCTIVE_POISON = 40874,
SPELL_CHAIN_LIGHTNING = 39945,
SPELL_AKAMA_SOUL_CHANNEL = 40447,
SPELL_FIXATE = 40607,
SPELL_AKAMA_SOUL_RETRIEVE = 40902, // epilogue
SPELL_AKAMA_SOUL_EXPEL_CHANNEL = 40927, // epilogue
SPELL_STEALTH = 34189,
SPELL_DESTRUCTIVE_POISON = 40874,
SPELL_CHAIN_LIGHTNING = 39945,
SPELL_AKAMA_SOUL_CHANNEL = 40447,
SPELL_FIXATE = 40607,
SPELL_AKAMA_SOUL_RETRIEVE = 40902, // epilogue
SPELL_AKAMA_SOUL_EXPEL_CHANNEL = 40927, // epilogue
// Shade & Channelers
SPELL_SHADE_SOUL_CHANNEL = 40401,
SPELL_THREAT = 41602,
SPELL_SHADE_OF_AKAMA_TRIGGER = 40955,
SPELL_SHADE_SOUL_CHANNEL = 40401,
SPELL_THREAT = 41602,
SPELL_SHADE_OF_AKAMA_TRIGGER = 40955,
// Summons
SPELL_ASHTONGUE_WAVE_A = 42073, // unused
SPELL_ASHTONGUE_WAVE_B = 42035,
SPELL_SUMMON_ASHTONGUE_SORCERER = 40476,
SPELL_SUMMON_ASHTONGUE_DEFENDER = 40474
SPELL_ASHTONGUE_WAVE_A = 42073, // unused
SPELL_ASHTONGUE_WAVE_B = 42035,
SPELL_SUMMON_ASHTONGUE_SORCERER = 40476,
SPELL_SUMMON_ASHTONGUE_DEFENDER = 40474
};
enum Creatures
{
NPC_ASHTONGUE_SORCERER = 23215,
NPC_ASHTONGUE_DEFENDER = 23216,
NPC_ASHTONGUE_ELEMENTAL = 23523,
NPC_ASHTONGUE_ROGUE = 23318,
NPC_ASHTONGUE_SPIRITBIND = 23524,
NPC_ASHTONGUE_BROKEN = 23319
NPC_ASHTONGUE_SORCERER = 23215,
NPC_ASHTONGUE_DEFENDER = 23216,
NPC_ASHTONGUE_ELEMENTAL = 23523,
NPC_ASHTONGUE_ROGUE = 23318,
NPC_ASHTONGUE_SPIRITBIND = 23524,
NPC_ASHTONGUE_BROKEN = 23319
};
enum Misc
{
SUMMON_GROUP_BROKENS = 1,
SUMMON_GROUP_BROKENS = 1,
POINT_ENGAGE = 0,
POINT_OUTRO = 1,
POINT_ENGAGE = 0,
POINT_OUTRO = 1,
ACTION_GENERATOR_START = 1,
ACTION_GENERATOR_STOP = 2,
ACTION_GENERATOR_DESPAWN_ALL = 3,
ACTION_GENERATOR_START = 1,
ACTION_GENERATOR_STOP = 2,
ACTION_GENERATOR_DESPAWN_ALL = 3,
ACTION_GENERATOR_DESPAWN_NON_DEFENDERS = 4,
COUNTER_SPAWNS_MAX = 20, // Max number of spawns for each generator, number chosen at random
COUNTER_SPAWNS_MAX = 20, // Max number of spawns for each generator, number chosen at random
ACTION_AKAMA_START_OUTRO = 1,
ACTION_AKAMA_START_OUTRO = 1,
FACTION_DEFAULT = 1820,
FACTION_ENGAGE = 1868,
FACTION_DEFENDER = 1847
FACTION_DEFAULT = 1820,
FACTION_MONSTER_SPAR = 1847
};
Position AkamaEngage = { 517.4877f, 400.79926f, 112.77704f };
@@ -222,6 +222,7 @@ struct npc_akama_shade : public ScriptedAI
_sayLowHealth = false;
_died = false;
scheduler.CancelAll();
_generators.clear();
}
void MovementInform(uint32 type, uint32 point) override
@@ -232,7 +233,7 @@ struct npc_akama_shade : public ScriptedAI
{
case POINT_ENGAGE:
me->SetHomePosition(me->GetPosition());
me->SetFaction(FACTION_ENGAGE);
me->SetFaction(FACTION_MONSTER_SPAR_BUDDY);
DoCastSelf(SPELL_AKAMA_SOUL_CHANNEL, true);
break;
case POINT_OUTRO:
@@ -279,6 +280,10 @@ struct npc_akama_shade : public ScriptedAI
else if (damage >= me->GetHealth() && !_died)
{
_died = true;
me->GetCreatureListWithEntryInGrid(_generators, NPC_CREATURE_GENERATOR_AKAMA, 100.0f);
for (Creature* generator : _generators)
generator->AI()->DoAction(ACTION_GENERATOR_DESPAWN_ALL);
damage = me->GetHealth() - 1;
Talk(SAY_DEATH);
if (Creature* shade = instance->GetCreature(DATA_SHADE_OF_AKAMA))
@@ -342,6 +347,7 @@ struct npc_akama_shade : public ScriptedAI
private:
bool _sayLowHealth;
bool _died;
std::list<Creature *> _generators;
};
struct npc_creature_generator_akama : public ScriptedAI
@@ -355,7 +361,6 @@ struct npc_creature_generator_akama : public ScriptedAI
void Reset() override
{
summons.DespawnAll();
scheduler.CancelAll();
}
@@ -363,6 +368,7 @@ struct npc_creature_generator_akama : public ScriptedAI
{
spawnCounter++;
ScriptedAI::JustSummoned(summon);
summons.Summon(summon);
switch (summon->GetEntry())
{
@@ -374,13 +380,10 @@ struct npc_creature_generator_akama : public ScriptedAI
summon->GetMotionMaster()->MovePoint(POINT_ENGAGE, x, y, z);
}
break;
case NPC_ASHTONGUE_DEFENDER:
summon->SetFaction(FACTION_DEFENDER);
if (Creature* akama = instance->GetCreature(DATA_AKAMA_SHADE))
summon->AI()->AttackStart(akama);
break;
default:
summon->SetInCombatWithZone();
if (Creature* akama = instance->GetCreature(DATA_AKAMA_SHADE))
summon->AI()->AttackStart(akama);
break;
}
}
@@ -434,6 +437,14 @@ struct npc_creature_generator_akama : public ScriptedAI
summons.DespawnAll();
scheduler.CancelAll();
break;
case ACTION_GENERATOR_DESPAWN_NON_DEFENDERS:
summons.DoForAllSummons([&](WorldObject* summon)
{
if (Creature* c = summon->ToCreature())
if (c->GetEntry() != NPC_ASHTONGUE_DEFENDER && c->GetEntry() != NPC_ASHTONGUE_SORCERER)
c->DespawnOrUnsummon();
});
break;
}
}
+1 -1
View File
@@ -1017,7 +1017,7 @@ class spell_dru_swift_flight_passive : public AuraScript
void Register() override
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_swift_flight_passive::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_INCREASE_VEHICLE_FLIGHT_SPEED);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_swift_flight_passive::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED);
}
};
@@ -18,6 +18,7 @@
#include "DBCDatabaseLoader.h"
#include "DatabaseEnv.h"
#include "Errors.h"
#include "QueryResult.h"
#include "StringFormat.h"
DBCDatabaseLoader::DBCDatabaseLoader(char const* tableName, char const* dbcFormatString, std::vector<char*>& stringPool)
@@ -19,7 +19,6 @@
#define DBCDatabaseLoader_h__
#include "DBCFileLoader.h"
#include <string>
#include <vector>
struct DBCDatabaseLoader
@@ -19,7 +19,6 @@
#define DBCStorageIterator_h__
#include "Define.h"
#include <iterator>
template <class T>
class DBCStorageIterator
@@ -20,7 +20,6 @@
#include "DBCEnums.h"
#include "Define.h"
#include "SharedDefines.h"
#include "Util.h"
#include <array>
#include <map>
-1
View File
@@ -16,7 +16,6 @@
*/
#include "Realm.h"
#include "IpAddress.h"
#include "IpNetwork.h"
#include <boost/asio/ip/tcp.hpp>
-1
View File
@@ -22,7 +22,6 @@
#include "Realm.h"
#include <array>
#include <map>
#include <unordered_set>
#include <vector>
struct RealmBuildInfo
+1
View File
@@ -23,6 +23,7 @@
#include "DatabaseEnv.h"
#include "Errors.h"
#include "Log.h"
#include "QueryResult.h"
#include "SharedDefines.h"
#define SECRET_FLAG_FOR(key, val, server) server ## _ ## key = (val ## ull << (16*SERVER_PROCESS_ ## server))
-1
View File
@@ -19,7 +19,6 @@
#define __ACORE_SECRETMGR_H__
#include "BigNumber.h"
#include "Common.h"
#include "Log.h"
#include "Optional.h"
#include <array>