Changeset 246 for trunk/src/game/SpellEffects.cpp
- Timestamp:
- 11/19/08 13:50:23 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/SpellEffects.cpp
r240 r246 334 334 break; 335 335 } 336 // must only affect demons 336 // must only affect demons (also undead?) 337 337 case 45072: 338 338 { 339 if(unitTarget->GetCreatureType() != CREATURE_TYPE_DEMON) 339 if(unitTarget->GetCreatureType() != CREATURE_TYPE_DEMON 340 || unitTarget->GetCreatureType() != CREATURE_TYPE_UNDEAD) 340 341 return; 341 342 break; 342 343 } 344 // gruul's shatter 345 case 33671: 346 { 347 // don't damage self and only players 348 if(unitTarget->GetGUID() == m_caster->GetGUID() || unitTarget->GetTypeId() != TYPEID_PLAYER) 349 return; 350 351 float radius = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[0])); 352 if(!radius) return; 353 float distance = m_caster->GetDistance2d(unitTarget); 354 damage = (distance > radius ) ? 0 : (int32)(m_spellInfo->EffectBasePoints[0]*((radius - distance)/radius)); 355 }break; 343 356 } 344 357 break; … … 2638 2651 float radius = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[i])); 2639 2652 Unit *caster = m_originalCasterGUID ? m_originalCaster : m_caster; 2653 if(!caster) return; 2640 2654 2641 2655 if(Player* modOwner = caster->GetSpellModOwner())