diff --git a/Source/Game/Spells/SpellEffects.cs b/Source/Game/Spells/SpellEffects.cs index 080f26f73..72e761299 100644 --- a/Source/Game/Spells/SpellEffects.cs +++ b/Source/Game/Spells/SpellEffects.cs @@ -593,59 +593,6 @@ namespace Game.Spells } return; } - // Ultrasafe Transporter: Toshley's Station - case 36941: - { - if (RandomHelper.randChance(50)) // 50% success - { - int rand_eff = RandomHelper.IRand(1, 7); - switch (rand_eff) - { - case 1: - // soul split - evil - m_caster.CastSpell(m_caster, 36900, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - break; - case 2: - // soul split - good - m_caster.CastSpell(m_caster, 36901, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - break; - case 3: - // Increase the size - m_caster.CastSpell(m_caster, 36895, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - break; - case 4: - // Decrease the size - m_caster.CastSpell(m_caster, 36893, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - break; - case 5: - // Transform - { - if (m_caster.ToPlayer().GetTeam() == Team.Alliance) - m_caster.CastSpell(m_caster, 36897, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - else - m_caster.CastSpell(m_caster, 36899, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - break; - } - case 6: - // chicken - m_caster.CastSpell(m_caster, 36940, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - break; - case 7: - // evil twin - m_caster.CastSpell(m_caster, 23445, new CastSpellExtraArgs(TriggerCastFlags.FullMask) - .SetOriginalCastId(m_castId)); - break; - } - } - return; - } } } @@ -2756,11 +2703,6 @@ namespace Game.Spells case 45204: // Clone Me! m_caster.CastSpell(unitTarget, (uint)damage, new CastSpellExtraArgs(true)); break; - case 55693: // Remove Collapsing Cave Aura - if (unitTarget == null) - return; - unitTarget.RemoveAurasDueToSpell((uint)effectInfo.CalcValue()); - break; // Brittle Armor - need remove one 24575 Brittle Armor aura case 24590: unitTarget.RemoveAuraFromStack(24575); @@ -2848,19 +2790,6 @@ namespace Game.Spells m_originalCaster.CastSpell(m_originalCaster, (uint)damage, new CastSpellExtraArgs(false)); break; } - // Deathbolt from Thalgran Blightbringer - // reflected by Freya's Ward - // Retribution by Sevenfold Retribution - case 51854: - { - if (unitTarget == null) - return; - if (unitTarget.HasAura(51845)) - unitTarget.CastSpell(m_caster, 51856, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId)); - else - m_caster.CastSpell(unitTarget, 51855, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId)); - break; - } // Summon Ghouls On Scarlet Crusade case 51904: { diff --git a/Source/Scripts/Spells/Items.cs b/Source/Scripts/Spells/Items.cs index 6b0f22c7e..0311db671 100644 --- a/Source/Scripts/Spells/Items.cs +++ b/Source/Scripts/Spells/Items.cs @@ -171,8 +171,11 @@ namespace Scripts.Spells.Items public const uint ScrollOfRecallFailAlliance1 = 60323; public const uint ScrollOfRecallFailHorde1 = 60328; - // DimensionalRipperArea52 - public const uint TransporterMalfunction = 36895; + // TransporterSpells + public const uint EvilTwin = 23445; + public const uint TransporterMalfunctionSmaller = 36893; + public const uint TransporterMalfunctionBigger = 36895; + public const uint TransporterMalfunctionChicken = 36940; public const uint TransformHorde = 36897; public const uint TransformAlliance = 36899; public const uint SoulSplitEvil = 36900; @@ -1798,7 +1801,60 @@ namespace Scripts.Spells.Items } } - [Script] + [Script] // 36941 - Ultrasafe Transporter: Toshley's Station + class spell_item_ultrasafe_transporter : SpellScript + { + public override bool Load() + { + return GetCaster().IsPlayer(); + } + + void HandleScript(uint effIndex) + { + if (!RandomHelper.randChance(50)) // 50% success + return; + + Unit caster = GetCaster(); + + uint spellId = 0; + switch (RandomHelper.URand(0, 6)) + { + case 0: + spellId = SpellIds.TransporterMalfunctionSmaller; + break; + case 1: + spellId = SpellIds.TransporterMalfunctionBigger; + break; + case 2: + spellId = SpellIds.SoulSplitEvil; + break; + case 3: + spellId = SpellIds.SoulSplitGood; + break; + case 4: + if (caster.ToPlayer().GetTeamId() == TeamId.Alliance) + spellId = SpellIds.TransformHorde; + else + spellId = SpellIds.TransformAlliance; + break; + case 5: + spellId = SpellIds.TransporterMalfunctionChicken; + break; + case 6: + spellId = SpellIds.EvilTwin; + break; + } + + caster.CastSpell(caster, spellId, true); + } + + public override void Register() + { + OnEffectHitTarget.Add(new EffectHandler(HandleScript, 0, SpellEffectName.TeleportUnits)); + } + } + + [Script] // 36890 - Dimensional Ripper - Area 52 class spell_item_dimensional_ripper_area52 : SpellScript { public override bool Load() @@ -1817,7 +1873,7 @@ namespace Scripts.Spells.Items switch (RandomHelper.URand(0, 3)) { case 0: - spellId = SpellIds.TransporterMalfunction; + spellId = SpellIds.TransporterMalfunctionBigger; break; case 1: spellId = SpellIds.SoulSplitEvil;