diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellAuraEffects.cpp | 8 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 29 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/game/SpellAuraEffects.cpp b/src/game/SpellAuraEffects.cpp index 9eafa7fc05f..f9cf199e90f 100644 --- a/src/game/SpellAuraEffects.cpp +++ b/src/game/SpellAuraEffects.cpp @@ -715,7 +715,15 @@ void AuraEffect::CalculatePeriodic(Unit * caster, bool create) case SPELL_AURA_PERIODIC_MANA_LEECH: case SPELL_AURA_PERIODIC_DAMAGE_PERCENT: case SPELL_AURA_POWER_BURN_MANA: + m_isPeriodic = true; + break; case SPELL_AURA_PERIODIC_TRIGGER_SPELL: + if (GetId() == 51912) + { + m_amplitude = 3000; + } + m_isPeriodic = true; + break; case SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE: case SPELL_AURA_PERIODIC_DUMMY: m_isPeriodic = true; diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index ed8beaaf4a3..6a0ffebfea4 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5691,6 +5691,35 @@ void Spell::EffectScriptEffect(uint32 effIndex) m_caster->CastSpell(m_caster,uiSpells[uiRandom],true); break; } + case 45668: // Ultra-Advanced Proto-Typical Shortening Blaster + { + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) + return; + + if (roll_chance_i(50)) // chance unknown, using 50 + return; + + static uint32 const spellPlayer[5] = + { + 45674, // Bigger! + 45675, // Shrunk + 45678, // Yellow + 45682, // Ghost + 45684 // Polymorph + }; + + static uint32 const spellTarget[5] = { + 45673, // Bigger! + 45672, // Shrunk + 45677, // Yellow + 45681, // Ghost + 45683 // Polymorph + }; + + m_caster->CastSpell(m_caster, spellPlayer[urand(0,4)], true); + unitTarget->CastSpell(unitTarget, spellTarget[urand(0,4)], true); + break; + } } break; } |