diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 7a94e32cf..d8ac7fbc5 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -1049,6 +1049,7 @@ enum Targets TARGET_CURRENT_ENEMY_COORDINATES = 53, // set unit coordinates as dest, only 16 target B imlemented TARGET_ALL_RAID_AROUND_CASTER = 56, TARGET_SINGLE_FRIEND_2 = 57, + TARGET_NARROW_FRONTAL_CONE = 60, TARGET_AREAEFFECT_PARTY_AND_CLASS = 61, TARGET_DUELVSPLAYER_COORDINATES = 63, TARGET_BEHIND_VICTIM = 65, // used in teleport behind spells, caster/target dependent from spell effect diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 36e6b611b..3137f3980 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1315,6 +1315,7 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap) { case TARGET_RANDOM_NEARBY_LOC: radius *= sqrt(rand_norm()); // Get a random point in circle. Use sqrt(rand) to correct distribution when converting polar to Cartesian coordinates. + // no 'break' expected since we use code in case TARGET_RANDOM_CIRCUMFERENCE_POINT!!! case TARGET_RANDOM_CIRCUMFERENCE_POINT: { float angle = 2.0 * M_PI * rand_norm(); @@ -1748,6 +1749,9 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap) FillAreaTargets(TagUnitMap,m_caster->GetPositionX(), m_caster->GetPositionY(),radius,inFront ? PUSH_IN_FRONT : PUSH_IN_BACK,SPELL_TARGETS_AOE_DAMAGE); break; } + case TARGET_NARROW_FRONTAL_CONE: + FillAreaTargets(TagUnitMap,m_caster->GetPositionX(), m_caster->GetPositionY(), radius, PUSH_IN_FRONT_15, SPELL_TARGETS_AOE_DAMAGE); + break; case TARGET_IN_FRONT_OF_CASTER_30: FillAreaTargets(TagUnitMap,m_caster->GetPositionX(), m_caster->GetPositionY(), radius, PUSH_IN_FRONT_30, SPELL_TARGETS_AOE_DAMAGE); break; diff --git a/src/game/Spell.h b/src/game/Spell.h index c197c3e61..b4c42b104 100644 --- a/src/game/Spell.h +++ b/src/game/Spell.h @@ -84,6 +84,7 @@ enum SpellNotifyPushType { PUSH_IN_FRONT, PUSH_IN_FRONT_30, + PUSH_IN_FRONT_15, PUSH_IN_BACK, PUSH_SELF_CENTER, PUSH_DEST_CENTER, @@ -714,6 +715,10 @@ namespace MaNGOS if(i_spell.GetCaster()->isInFrontInMap((Unit*)(itr->getSource()), i_radius, M_PI/6 )) i_data->push_back(itr->getSource()); break; + case PUSH_IN_FRONT_15: + if(i_spell.GetCaster()->isInFrontInMap((Unit*)(itr->getSource()), i_radius, M_PI/12 )) + i_data->push_back(itr->getSource()); + break; case PUSH_IN_BACK: if(i_spell.GetCaster()->isInBackInMap((Unit*)(itr->getSource()), i_radius, 2*M_PI/3 )) i_data->push_back(itr->getSource()); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 3e82e1243..f96a6a351 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8542" + #define REVISION_NR "8543" #endif // __REVISION_NR_H__