mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
Core/Spells: Fix SPELL_AURA_FORCE_WEATHER
This commit is contained in:
@@ -390,7 +390,7 @@ enum AuraType
|
||||
SPELL_AURA_PROC_ON_POWER_AMOUNT = 328,
|
||||
SPELL_AURA_MOD_RUNE_REGEN_SPEED = 329, // NYI
|
||||
SPELL_AURA_CAST_WHILE_WALKING = 330,
|
||||
SPELL_AURA_FORCE_WEATHER = 331, // NYI
|
||||
SPELL_AURA_FORCE_WEATHER = 331,
|
||||
SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS = 332,
|
||||
SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS_2 = 333,
|
||||
SPELL_AURA_MOD_BLIND = 334, // NYI
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "Vehicle.h"
|
||||
#include "Battlefield.h"
|
||||
#include "BattlefieldMgr.h"
|
||||
#include "WeatherMgr.h"
|
||||
|
||||
class Aura;
|
||||
//
|
||||
@@ -386,7 +387,7 @@ pAuraEffectHandler AuraEffectHandler[TOTAL_AURAS]=
|
||||
&AuraEffect::HandleNoImmediateEffect, //328 SPELL_AURA_PROC_ON_POWER_AMOUNT implemented in Unit::HandleAuraProcOnPowerAmount
|
||||
&AuraEffect::HandleNULL, //329 SPELL_AURA_MOD_RUNE_REGEN_SPEED
|
||||
&AuraEffect::HandleNoImmediateEffect, //330 SPELL_AURA_CAST_WHILE_WALKING
|
||||
&AuraEffect::HandleNULL, //331 SPELL_AURA_331
|
||||
&AuraEffect::HandleAuraForceWeather, //331 SPELL_AURA_FORCE_WEATHER
|
||||
&AuraEffect::HandleNoImmediateEffect, //332 SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS implemented in WorldSession::HandleCastSpellOpcode
|
||||
&AuraEffect::HandleNoImmediateEffect, //333 SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS_2 implemented in WorldSession::HandleCastSpellOpcode
|
||||
&AuraEffect::HandleNULL, //334 SPELL_AURA_334
|
||||
@@ -6714,3 +6715,36 @@ void AuraEffect::HandleRaidProcFromChargeWithValueAuraProc(AuraApplication* aurA
|
||||
sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "AuraEffect::HandleRaidProcFromChargeWithValueAuraProc: Triggering spell %u from aura %u proc", triggerSpellId, GetId());
|
||||
target->CastCustomSpell(target, triggerSpellId, &value, NULL, NULL, true, NULL, this, GetCasterGUID());
|
||||
}
|
||||
|
||||
void AuraEffect::HandleAuraForceWeather(AuraApplication const* aurApp, uint8 mode, bool apply) const
|
||||
{
|
||||
if (!(mode & AURA_EFFECT_HANDLE_REAL))
|
||||
return;
|
||||
|
||||
Player* target = aurApp->GetTarget()->ToPlayer();
|
||||
|
||||
if (!target)
|
||||
return;
|
||||
|
||||
if (apply)
|
||||
{
|
||||
WorldPacket data(SMSG_WEATHER, (4 + 4 + 1));
|
||||
|
||||
data << uint32(GetMiscValue()) << 1.0f << uint8(0);
|
||||
target->GetSession()->SendPacket(&data);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send weather for current zone
|
||||
if (Weather* weather = WeatherMgr::FindWeather(target->GetZoneId()))
|
||||
weather->SendWeatherUpdateToPlayer(target);
|
||||
else
|
||||
{
|
||||
if (!WeatherMgr::AddWeather(target->GetZoneId()))
|
||||
{
|
||||
// send fine weather packet to remove old weather
|
||||
WeatherMgr::SendFineWeatherUpdateToPlayer(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,6 +277,7 @@ class AuraEffect
|
||||
void HandleAuraOverrideSpells(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
void HandleAuraSetVehicle(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
void HandlePreventResurrection(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
void HandleAuraForceWeather(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
|
||||
// aura effect periodic tick handlers
|
||||
void HandlePeriodicDummyAuraTick(Unit* target, Unit* caster) const;
|
||||
|
||||
Reference in New Issue
Block a user