Esempio n. 1
0
        public Ragnaros()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Ragnaros";
            Instance = "Firelands";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T12_10, BossHandler.TierLevels.T12_25, BossHandler.TierLevels.T12_10H, BossHandler.TierLevels.T12_25H, BossHandler.TierLevels.T12_LFR };
            Comment = "Not modeled in detail yet.";
            #endregion
            #region Basics
            // Rag "dies" at 10% on normal (goes back under the lava).
            // Apparently Rag heals to about 50% once he hits phase 4 and starts moving around the platform
            // So for heroic his health is 90% to phase 4 and 50% while in Phase 4 so 140% health
            Health = new float[] { 50246820f * 0.9f, 150740464f * 0.9f, 74200000f * 1.40f, 246910064f * 1.40f, 0 }; // TODO: Double check Heroic 10-man health
            MobType = (int)MOB_TYPES.ELEMENTAL;
            BerserkTimer = new int[] { 18 * 60, 18 * 60, 18 * 60, 18 * 60, 0 };
            SpeedKillTimer = new int[] { 5 * 60, 8 * 60, 12 * 60, 12 * 60, 0 };
            InBackPerc_Melee = new double[] { 0.95f, 0.95f, 0.95f, 0.95f, 0 };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f, 0 };
            Max_Players = new int[] { 10, 25, 10, 25, 0 };
            Min_Tanks = new int[] { 2, 2, 2, 2, 0 };
            Min_Healers = new int[] { 2, 5, 2, 3, 0 };
            TimeBossIsInvuln = new float[] { 45f * 2f, 45f * 2f, (45 * 2f) + 14f, (45 * 2f) + 14f, 0 }; // Assume 45 seconds during each phase transition, and 14 seconds going into phase 4
            Under35Perc = new double[] { 0.166666667, 0.166666667, 0.214285714, 0.214285714, 0 };
            Under20Perc = new double[] { 0.122222222, 0.122222222, 0.221428571, 0.221428571, 0 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 0, 0 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                Phase ByFirebePurged = new Phase() { Name = "By Fire be Purged!" }; // Phase 1
                Phase Intermission1 = new Phase() { Name = "Intermission: Minions of Fire!" }; // Intermission 1
                Phase SulfuaswillbeYourEnd = new Phase() { Name = "Sulfuras will be Your End!" }; // Phase 2
                Phase Intermission2 = new Phase() { Name = "Intermission: Denizens of Flame!" }; // Intermission 2
                Phase BegoneFrommyRealm = new Phase() { Name = "Begone From my Realm!" }; // Phase 3
                Phase Intermission3 = new Phase() { Name = "Ah! Outsiders! This is not your Realm!" }; // Intermission 3
                Phase TheTruePoweroftheFireLord = new Phase() { Name = "The True Power of the Fire Lord!" }; // Heroic Only

                float IntermissionLength = 45f;
                float Intermission3Length = 14f;
                float phase1to3Length = (BerserkTimer[i] - (45f * 2) - (i > 1 ? Intermission3Length : 0f)) * (i < 2 ? (1f / 3f) : (3f / 14f));
                float phase4Length = (BerserkTimer[i] - (45f * 2) - Intermission3Length) * (5f / 14f);

                Attack melee = GenAStandardMelee(this[i].Content);
                melee.DamagePerHit *= 1.25f;
                ByFirebePurged.Attacks.Add(melee);
                SulfuaswillbeYourEnd.Attacks.Add(melee);
                BegoneFrommyRealm.Attacks.Add(melee);
                TheTruePoweroftheFireLord.Attacks.Add(melee);

                #region By Fire be Purged!
                #region Sulfuras Smash
                /*Ragnarose faces a random player and begins prepares to smash Sulfuras on the platform. The
                 * impact creates several Lava Waves which move out in several directions from the point of
                 * impact.*/
                // 10 man - http://ptr.wowhead.com/spell=98708
                // 25 man - http://ptr.wowhead.com/spell=100256
                // 10 man heroic - http://ptr.wowhead.com/spell=100257
                // 25 man heroic - http://ptr.wowhead.com/spell=100258
                // Melee should need to worry about this since they are positioned behind the attack zone thus missing the attack
                // This should never be hit by the player

                #region Lava Wave
                /* A Lava Wave inflicts 87871 to 92379 Fire damage and knocks back all players it passes
                 * through. Targets who are knocked back suffer an additional 25106 to 26394 Fire damage
                 * every 1 sec for 5 sec.*/
                // 10 man - http://ptr.wowhead.com/spell=98928
                // 25 man - http://ptr.wowhead.com/spell=100292
                // 10 man heroic - http://ptr.wowhead.com/spell=100293
                // 25 man heroic - http://ptr.wowhead.com/spell=100294
                // This SHOULD NEVER happen
                // Iv anything it should be a movement to move around the attack
                Impedance LavaWave_Move = new Impedance
                {
                    Name = "Lava Wave Move",
                    Duration = 2f * 1000f,
                    Chance = 0.20f, // Five possible spots it can hit, thus 20% chance it will hit in your area thus having to move
                    Frequency = 30f,
                    Breakable = false,
                };
                LavaWave_Move.SetAffectsRoles_Healers();
                LavaWave_Move.AffectsRole[PLAYER_ROLES.RangedDPS] = true;
                ByFirebePurged.Moves.Add(LavaWave_Move);
                
                
                #endregion
                #endregion

                #region Wrath of Ragnaros
                /* Ragnaros targets a player, inflicting 75318 to 79182 Fire damage to all players within 6 yards
                 * and knocking them back.
                 * 
                 * *Warning* In 25 player raids, Ragnaros targets three players.*/
                // 10 man - http://ptr.wowhead.com/spell=98263
                // 25 man - http://ptr.wowhead.com/spell=100113
                // 10 man heroic - http://ptr.wowhead.com/spell=100114
                // 25 man heroic - http://ptr.wowhead.com/spell=100115
                Attack WrathofRagnaros = new Attack
                {
                    Name = "Wrath of Ragnaros",
                    AttackSpeed = 30f,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamageType = ItemDamageType.Fire,
                    DamagePerHit = new float[] { (43875f + 46125f), (43875f + 46125f), (62156f + 65343f), (62156f + 65343f), 0f }[i] / 2f,
                    MaxNumTargets = new float[] { 1f, 3f, 1f, 3f, 0f }[i],
                    SpellID = new float[] { 98263, 100113, 100114, 100115, 0 }[i],
                };
                WrathofRagnaros.SetAffectsRoles_Healers();
                WrathofRagnaros.AffectsRole[PLAYER_ROLES.RangedDPS] = true;
                ByFirebePurged.Attacks.Add(WrathofRagnaros);
                #endregion

                #region Hand of Ragnaros
                /* Ragnaros inflicts 37659 to 39591 Fire damage to all enemies within 55 yards, knocking them
                 * back.*/
                // 10 man - http://ptr.wowhead.com/spell=98237
                // 25 man - http://ptr.wowhead.com/spell=100383
                // 10 man heroic - http://ptr.wowhead.com/spell=100384
                // 25 man heroic - http://ptr.wowhead.com/spell=100387
                // Only affects Melee and Tanks
                Attack HandofRagnaros = new Attack
                {
                    Name = "Hand of Ragnaros",
                    AttackSpeed = 25f,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamageType = ItemDamageType.Fire,
                    DamagePerHit = new float[] { (21937f + 23062f), (21937f + 23062f), (33150f + 34850f), (33150f + 34850f), 0f }[i] / 2f,
                    MaxNumTargets = Max_Players[i],
                    SpellID = new float[] { 98237, 100383, 100384, 100387, 0 }[i],
                };
                HandofRagnaros.AffectsRole[PLAYER_ROLES.MeleeDPS] = true;
                HandofRagnaros.SetAffectsRoles_Tanks();
                ByFirebePurged.Attacks.Add(HandofRagnaros);
                SulfuaswillbeYourEnd.Attacks.Add(HandofRagnaros);
                BegoneFrommyRealm.Attacks.Add(HandofRagnaros);
                #endregion

                #region Magma Trap
                /*Ragnaros periodically forms a Magmaw Trap at a random player's location. The Magma Trap
                 * persists for the duration of the battle, and will trigger when stepped on, causing a Magma Trap
                 * Eruption.*/
                // http://ptr.wowhead.com/spell=98164
                // damage - http://ptr.wowhead.com/spell=98170
                // summons after damage - http://ptr.wowhead.com/npc=53086
                // Normal we are popping them immediatly on spawn
                // On Heroic we need to wait 45 seconds before popping the next trap.
                // That means on the bear minimum, we need to pop 4 traps in Phase 1 and 3 traps in phase 2
                
                #region Magma Trap Eruption
                /* When triggered, a Magma Trap erupts for 75318 to 79182 Fire damage to all enemies
                 * within the Firelands, and violently knocking the player who tripped the Magma Trap into the air.
                 * 
                 * *Heroic* An enemy that triggers a Magma Trap will take 50% additional fire damage from the Magma
                 * Trap Eruption for 45 sec. Stacks.*/
                // This means we cannot pop the next trap until the debuf wears off or 45 second cooldown
                // This debuff ONLY increases the damage of your next Magma Trap damage, not overall fire damage
                /* Eruption
                 * 10 man - http://ptr.wowhead.com/spell=98175
                 * 25 man - http://ptr.wowhead.com/spell=100106
                 * 10 man heroic - http://ptr.wowhead.com/spell=100107
                 * 25 man heroic - http://ptr.wowhead.com/spell=100108 */
                // Timers are adjusted by 16 seconds
                Attack MagmaTrapEruption = new Attack
                {
                    Name = "Magma Trap Eruption",
                    AttackSpeed = (phase1to3Length/ (phase1to3Length - 16f)) * (i < 2 ? 25f : 45f),
                    DamagePerHit = new float[] { (58500f + 61500f), (58500f + 61500f), (82875f + 87125f), (97500f + 102500f), 0f }[i] / 2f,
                    MaxNumTargets = Max_Players[i],
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamageType = ItemDamageType.Fire,
                    SpellID = new float[] { 98175, 100106, 100107, 100108, 0 }[i],
                };
                MagmaTrapEruption.SetAffectsRoles_All();
                ByFirebePurged.Attacks.Add(MagmaTrapEruption);

                Attack MagmaTrapEruptionPhase2 = MagmaTrapEruption.Clone();
                // At most 3 traps should be up during phase 2 on Heroic
                MagmaTrapEruptionPhase2.AttackSpeed = phase1to3Length / 3f;
                if (i > 1) { SulfuaswillbeYourEnd.Attacks.Add(MagmaTrapEruptionPhase2); }
                /* Vulnerability
                 * 10-man Heroic - http://ptr.wowhead.com/spell=100238
                 * 25-man heroic - http://ptr.wowhead.com/spell=100239 */
                // Not going to model this part since I'm factoring in the 45 second debuff into my attack speed
                #endregion
                #endregion

                #region Magma Blast
                /* Ragnaros blasts magma at his current target if he cannot reach and melee them, 
                 * inflicting 73125 to 76875 Fire damage and increasing Fire damage taken by 50% for 6 sec. */
                // http://ptr.wowhead.com/spell=98313
                // This should NEVER happen
                #endregion

                #region Burning Wound
                /* The attacks from Ragnaros open a Burning Wound, inflicting 3656 to 3843 Fire damage every 2 sec
                 * for 20 sec.  The wound causes the target's attacks to become infused with fire, causing a
                 * Burning Blast.*/
                // 10-man - http://ptr.wowhead.com/spell=99399
                // 25-man - http://ptr.wowhead.com/spell=101238
                // 10-man Heroic - http://ptr.wowhead.com/spell=101239
                // 25-man Heroic - http://ptr.wowhead.com/spell=101240
                // 5 second cooldown on application
                // Only allow 4 stacks to be applied
                float BurningWoundDamage = new float[] { (3656f + 3843f), (3656f + 3843f), (5386f + 5663f), (5386f + 5663f), 0f }[i] / 2f;
                Attack BurningWound = new Attack
                {
                    Name = "Burning Wound",
                    AttackSpeed = 40f,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamageType = ItemDamageType.Fire,
                    // Average damage after the stacking equates to ABOUT 1.3 times the base damage
                    DamagePerTick = BurningWoundDamage * 1.3f,
                    TickInterval = 2f,
                    Duration = 20f + 20f, // 20 seconds to stack the debuff, 20 seconds to let it drop
                    IsDoT = true,
                    SpellID = new float[] { 99399, 101238, 101239, 101240, 0 }[i],
                };
                BurningWound.SetAffectsRoles_Tanks();
                ByFirebePurged.Attacks.Add(BurningWound);

                #region Burning Blast
                /* Inflicts 1950 to 2050 Fire damage, each stack of Burning Wound increases the damage of
                 * Burning Blast.*/
                // 10-man - http://ptr.wowhead.com/spell=99400
                // 25-man - http://ptr.wowhead.com/spell=101241
                // 10-man Heroic - http://ptr.wowhead.com/spell=101242
                // 25-man Heroic - http://ptr.wowhead.com/spell=101243
                float BurningBlastDamaage = (1950f + 2050f) / 2f;
                Stats BurningBlastStat = new Stats();
                SpecialEffect BurningBlastSpecialEffect = new SpecialEffect(Trigger.PhysicalAttack, new Stats() { FireDamage = BurningBlastDamaage }, 20f, 5f, 1f, 4);
                BurningBlastStat.AddSpecialEffect(BurningBlastSpecialEffect);
                BurningBlastSpecialEffect = new SpecialEffect(Trigger.Use, BurningBlastStat, 40f, 40f, 1f);
                BurningBlastStat = new Stats();
                BurningBlastStat.AddSpecialEffect(BurningBlastSpecialEffect);
                BuffState BurningBlast = new BuffState
                {
                    Name = "Burning Blast",
                    Frequency = 40f,
                    Duration = 40f * 1000f,
                    Chance = 1f,
                    Breakable = false,
                    Stats = BurningBlastStat,
                };
                BurningBlast.SetAffectsRoles_Tanks();
                ByFirebePurged.BuffStates.Add(BurningBlast);
                #endregion
                #endregion
                #endregion

                #region Intermission: Minions of Fire!
                /* At 70% health, Ragnaros will cast Splitting Blow wedging Sulfuras into the platform and creating
                 * Sons of Flame across the platform. Ragnaros will stay submerged for 45 seconds or until all of the
                 * Sons of Flame are destroyed.*/

                #region Splitting Blow
                /* Ragnaros buries Sulfuras within the platform, creating Sons of Flame that attempt to reach the
                 * mighty hammer.*/
                /* 12 different ids all with the same descriptions:
                 * http://ptr.wowhead.com/spell=98951; http://ptr.wowhead.com/spell=98952; http://ptr.wowhead.com/spell=98953
                 * http://ptr.wowhead.com/spell=100877; http://ptr.wowhead.com/spell=100878; http://ptr.wowhead.com/spell=100879
                 * http://ptr.wowhead.com/spell=100880; http://ptr.wowhead.com/spell=100881; http://ptr.wowhead.com/spell=100882
                 * http://ptr.wowhead.com/spell=100883; http://ptr.wowhead.com/spell=100884; http://ptr.wowhead.com/spell=100885*/
                // initial Summon Sons trigger - http://ptr.wowhead.com/spell=99012
                // Summon Cast - http://ptr.wowhead.com/spell=99056
                // Number of summons - http://ptr.wowhead.com/spell=99054
                // This means that 10 Sons are summoned that need to be slowed and killed within 45 seconds.
                // The damage from Splitting Blow should NEVER hit a player
                #endregion

                #region Son of Flame
                /*Sons of Flame will cross the platform and attempt to reform with Sulfuras, causing a
                 * Supernova if they are able to reach the mighty weapon.*/
                // http://ptr.wowhead.com/npc=53140
                TargetGroup SonsofFlame = new TargetGroup
                {
                    Name = "Sons of Flame",
                    Chance = 1f,
                    Frequency = 1f,
                    Duration = IntermissionLength * 1000f,
                    LevelOfTargets = 87,
                    NearBoss = false,
                    NumTargs = 10f,
                    TargetID = 53140f,
                };
                SonsofFlame.SetAffectsRoles_All();
                Intermission1.Targets.Add(SonsofFlame);

                #region Burning Speed
                /* Sons of Flame move faster as their blaze burns hotter. Their movement speed is
                 * increased by an amount equal to every 1% health they have above 50% health.*/
                // 10 man - http://ptr.wowhead.com/spell=99414
                // 25 man - http://ptr.wowhead.com/spell=100306
                // 10 man heroic - http://ptr.wowhead.com/spell=100307
                // 25 man heroic - http://ptr.wowhead.com/spell=100308
                // Don't Need to model
                #endregion

                #region Supernova
                /* If a Son of Flame reaches Sulfuras, the elemental will explode in a Supernova,
                 * inflicting 112978 to 118772 Fire damage to all players within the Firelands.*/
                // 10 man - http://ptr.wowhead.com/spell=99112
                // 25 man - http://ptr.wowhead.com/spell=100259
                // 10 man heroic - http://ptr.wowhead.com/spell=100260
                // 25 man heroic - http://ptr.wowhead.com/spell=100261
                // Since if this happens at ANY time, it's a wipe, so assuming that this does not take place
                #endregion
                #endregion

                #region Lava Bolt
                /* While Ragnaros lies submerged underneath the lava, bolts of hot magma fall on four random players every 4 seconds.
                 * A Lava Bolt inflicts 43875 to 46125 Fire Damage.
                 * 
                 * In 25 player raids, bolts of hot magma fall on ten players.*/
                // 10-man - http://ptr.wowhead.com/spell=98981
                // 25-man - http://ptr.wowhead.com/spell=100289
                // 10-man Heroic - http://ptr.wowhead.com/spell=100290
                // 25-man Heroic - http://ptr.wowhead.com/spell=100291
                Attack LavaBolt = new Attack
                {
                    Name = "Lava Bolt",
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamageType = ItemDamageType.Fire,
                    AttackSpeed = 4f,
                    DamagePerHit = new float[] { (43875f + 46125f), (43875f + 46125f), (68250f + 71750f), (68250f + 71750f), 0 }[i] / 2f,
                    MaxNumTargets = new float[] { 4, 10, 4, 10, 0 }[i],
                    SpellID = new float[] { 98981, 100289, 100290, 100291, 0 }[i],
                };
                LavaBolt.SetAffectsRoles_All();
                Intermission1.Attacks.Add(LavaBolt);
                #endregion
                #endregion

                #region Sulfuras will be Your End!
                #region Sulfuras Smash
                /*Ragnarose faces a random player and begins prepares to smash Sulfuras on the platform. The
                 * impact creates several Lava Waves which move out in several directions from the point of
                 * impact.*/
                // 10 man - http://ptr.wowhead.com/spell=98708
                // 25 man - http://ptr.wowhead.com/spell=100256
                // 10 man heroic - http://ptr.wowhead.com/spell=100257
                // 25 man heroic - http://ptr.wowhead.com/spell=100258

                #region Lava Wave
                /* A Lava Wave inflicts 87871 to 92379 Fire damage and knocks back all players it passes
                 * through. Targets who are knocked back suffer an additional 25106 to 26394 Fire damage
                 * every 1 sec for 5 sec.*/
                // 10 man - http://ptr.wowhead.com/spell=98928
                // 25 man - http://ptr.wowhead.com/spell=100292
                // 10 man heroic - http://ptr.wowhead.com/spell=100293
                // 25 man heroic - http://ptr.wowhead.com/spell=100294
                SulfuaswillbeYourEnd.Moves.Add(LavaWave_Move);
                #endregion
                #endregion

                #region World of Flames [Heroic Only]
                /* Ragnaros periodically engulfs one third of the platform in flame every 2.60 sec for 13 sec.
                 * Inflicting 87871 to 92379 Fire damage to players caught in the conflagration.*/
                // cast - http://ptr.wowhead.com/spell=100171
                // spell - http://ptr.wowhead.com/spell=99171
                #endregion

                #region Molten Seed
                /*Ragnaros forms a Molten Seed at the location of 10 random players, inflicing 69042 to 72583
                 * Fire damage to all players withing 6 yards. After 10 sec the Molten Seed will burst in a Molten
                 * Inferno.
                 * 
                 * *Warning* In 25 player raids, Ragnaros targets 20 players.*/
                // 10 man - http://ptr.wowhead.com/spell=98498
                // 25 man - http://ptr.wowhead.com/spell=100579
                // 10 man heroic - http://ptr.wowhead.com/spell=100580
                // 25 man heroic - http://ptr.wowhead.com/spell=100581

                /* Molten Inferno
                 * When Molten Seed burst, they cause a Molten Inferno that inflicts 128749 to 128750
                 * Fire damage to all players who are near the Molten Seed. The damage decreases the
                 * farther away the target is.
                 * 
                 * Following the Molten inferno, a Molten Elemental is created at the location of the Seed.*/
                // 10 man - http://ptr.wowhead.com/spell=98518
                // 25 man - http://ptr.wowhead.com/spell=100252
                // 10 man heroic - http://ptr.wowhead.com/spell=100253
                // 25 man heroic - http://ptr.wowhead.com/spell=100254

                #region Molten Elemental
                // The Molten Elemental is spawned from a Molten Inferno. It will attack and fixate one random player.
                // http://db.mmo-champion.com/c/53189/

                /* Molten Power [Heroic Only]
                 * The Molten Elemental is empowered by nearby Molten Elementals, increasing its
                 * damage by 25% and causing it to be immune to Snare effects.*/
                // 10 man heroic - http://ptr.wowhead.com/spell=100158
                // 25 man heroic - http://ptr.wowhead.com/spell=100302
                #endregion
                #endregion

                #region Magma Blast
                /* Ragnaros blasts magma at his current target if he cannot reach and melee them, 
                 * inflicting 73125 to 76875 Fire damage and increasing Fire damage taken by 50% for 6 sec. */
                // http://ptr.wowhead.com/spell=98313
                // This should NEVER happen
                #endregion

                #region Burning Wound
                /* The attacks from Ragnaros open a Burning Wound, inflicting 3656 to 3843 Fire damage every 2 sec
                 * for 20 sec.  The wound causes the target's attacks to become infused with fire, causing a
                 * Burning Blast.*/
                // 10-man - http://ptr.wowhead.com/spell=99399
                // 25-man - http://ptr.wowhead.com/spell=101238
                // 10-man Heroic - http://ptr.wowhead.com/spell=101239
                // 25-man Heroic - http://ptr.wowhead.com/spell=101240
                // 5 second cooldown on application
                // Only allow 4 stacks to be applied
                SulfuaswillbeYourEnd.Attacks.Add(BurningWound);

                #region Burning Blast
                /* Inflicts 1950 to 2050 Fire damage, each stack of Burning Wound increases the damage of
                 * Burning Blast.*/
                // 10-man - http://ptr.wowhead.com/spell=99400
                // 25-man - http://ptr.wowhead.com/spell=101241
                // 10-man Heroic - http://ptr.wowhead.com/spell=101242
                // 25-man Heroic - http://ptr.wowhead.com/spell=101243
                SulfuaswillbeYourEnd.BuffStates.Add(BurningBlast);
                #endregion
                #endregion
                #endregion

                #region Intermission: Denizens of Flame!
                /* At 40% health, Ragnaros will cast Splitting Blow, wedging Sulfuras into the platform and creating
                 * Sons of Flame. Ragnaros will stay submerged for 45 seconds or until all of the Sons of Flame are
                 * destroyed.*/

                #region Splitting Blow
                /* Ragnaros buries Sulfuras within the platform, creating Sons of Flame that attempt to reach the
                 * mighty hammer.*/
                /* 12 different ids all with the same descriptions:
                 * http://ptr.wowhead.com/spell=98951; http://ptr.wowhead.com/spell=98952; http://ptr.wowhead.com/spell=98953
                 * http://ptr.wowhead.com/spell=100877; http://ptr.wowhead.com/spell=100878; http://ptr.wowhead.com/spell=100879
                 * http://ptr.wowhead.com/spell=100880; http://ptr.wowhead.com/spell=100881; http://ptr.wowhead.com/spell=100882
                 * http://ptr.wowhead.com/spell=100883; http://ptr.wowhead.com/spell=100884; http://ptr.wowhead.com/spell=100885*/
                // initial Summon Sons trigger - http://ptr.wowhead.com/spell=99012
                // Summon Cast - http://ptr.wowhead.com/spell=99056
                // Number of summons - http://ptr.wowhead.com/spell=99054
                // This means that 10 Sons are summoned that need to be slowed and killed within 45 seconds.
                // The damage from Splitting Blow should NEVER hit a player
                #endregion

                #region Son of Flame
                /*Sons of Flame will cross the platform and attempt to reform with Sulfuras, causing a
                 * Supernova if they are able to reach the mighty weapon.*/
                // http://ptr.wowhead.com/npc=53140
                Intermission2.Targets.Add(SonsofFlame);

                #region Burning Speed
                /* Sons of Flame move faster as their blaze burns hotter. Their movement speed is
                 * increased by an amount equal to every 1% health they have above 50% health.*/
                // 10 man - http://ptr.wowhead.com/spell=99414
                // 25 man - http://ptr.wowhead.com/spell=100306
                // 10 man heroic - http://ptr.wowhead.com/spell=100307
                // 25 man heroic - http://ptr.wowhead.com/spell=100308
                // Don't need to model
                #endregion

                #region Supernova
                /* If a Son of Flame reaches Sulfuras, the elemental will explode in a Supernova,
                 * inflicting 112978 to 118772 Fire damage to all players within the Firelands.*/
                // 10 man - http://ptr.wowhead.com/spell=99112
                // 25 man - http://ptr.wowhead.com/spell=100259
                // 10 man heroic - http://ptr.wowhead.com/spell=100260
                // 25 man heroic - http://ptr.wowhead.com/spell=100261
                // Since if this happens at ANY time, it's a wipe, so assuming that this does not take place
                #endregion
                #endregion

                #region Lava Scion
                // One Lava Scion will form on each side of the platform.
                // http://ptr.wowhead.com/npc=53231
                TargetGroup LavaScion = new TargetGroup
                {
                    Name = "Lava Scion",
                    Chance = 1f,
                    Duration = 60f * 1000f,
                    Frequency = 1f,
                    LevelOfTargets = 87,
                    NearBoss = true,
                    NumTargs = 2f,
                    TargetID = 53231,
                };
                LavaScion.SetAffectsRoles_All();
                Intermission2.Targets.Add(LavaScion);

                #region Blazing Heat
                /* The Lava Scion inflicts a random target with Blazing Heat, causing them to create a trail of
                 * Blazing Heat in their wake. Blazing Heat inflicts 62765 to 65985 Fire damage every 1
                 * sec, and heals Sons of Flame and Lava Scions for 10% every 1 sec.*/
                /* Damaging Part
                 * 10 man - http://ptr.wowhead.com/spell=99144
                 * 25 man - http://ptr.wowhead.com/spell=100303
                 * 10 man heroic - http://ptr.wowhead.com/spell=100304
                 * 25 man heroic - http://ptr.wowhead.com/spell=100305*/
                // Healing Part - http://ptr.wowhead.com/spell=99145
                // Just assume 2 people get chosen with the debuff and have to move for the entire duration
                // Blazing heat has a 3 second cast and a 9 second duration. So, 12 seconds movement
                // Not going to model the damaing part or the Healing Part
                Impedance BlazingHeat_Move = new Impedance
                {
                    Name = "Blazing Heat Move",
                    Breakable = false,
                    Chance = 2f / (Max_Players[i] - Min_Tanks[i]),
                    Duration = 12f * 1000f,
                    Frequency = IntermissionLength - 12f,
                };
                BlazingHeat_Move.SetAffectsRoles_DPS();
                BlazingHeat_Move.SetAffectsRoles_Healers();
                Intermission2.Moves.Add(BlazingHeat_Move);
                #endregion
                #endregion
                #endregion

                #region Begone From my Realm!
                #region Sulfuras Smash
                /*Ragnarose faces a random player and begins prepares to smash Sulfuras on the platform. The
                 * impact creates several Lava Waves which move out in several directions from the point of
                 * impact.*/
                // 10 man - http://ptr.wowhead.com/spell=98708
                // 25 man - http://ptr.wowhead.com/spell=100256
                // 10 man heroic - http://ptr.wowhead.com/spell=100257
                // 25 man heroic - http://ptr.wowhead.com/spell=100258

                #region Lava Wave
                /* A Lava Wave inflicts 87871 to 92379 Fire damage and knocks back all players it passes
                 * through. Targets who are knocked back suffer an additional 25106 to 26394 Fire damage
                 * every 1 sec for 5 sec.*/
                // 10 man - http://ptr.wowhead.com/spell=98928
                // 25 man - http://ptr.wowhead.com/spell=100292
                // 10 man heroic - http://ptr.wowhead.com/spell=100293
                // 25 man heroic - http://ptr.wowhead.com/spell=100294
                BegoneFrommyRealm.Moves.Add(LavaWave_Move);
                #endregion
                #endregion

                #region World of Flames [Heroic Only]
                /* Ragnaros periodically engulfs one third of the platform in flame every 2.60 sec for 13 sec.
                 * Inflicting 87871 to 92379 Fire damage to players caught in the conflagration.*/
                // cast - http://ptr.wowhead.com/spell=100171
                // spell - http://ptr.wowhead.com/spell=99171
                #endregion

                #region Summon Living Meteor
                /* Ragnaros calls down an increasing number of Living Meteors over time, inclicting 81595 to
                 * 85780 Fire damage to players within 5 yards of the location.*/
                // http://ptr.wowhead.com/spell=99268

                #region Living Meteor
                /* The Living Meteor will fixate on a random target and chase them. A player that gets
                 * within 4 yards of the Living Meteor will trigger a Metoer Impact, inflicting 627656 to
                 * 659844 Fire damage to enemies within 8 yards.*/
                // http://ptr.wowhead.com/npc=53500
                // 10 man - http://ptr.wowhead.com/spell=99317
                // 25 man - http://ptr.wowhead.com/spell=100989
                // 10 man heroic - http://ptr.wowhead.com/spell=100990
                // 25 man heroic - http://ptr.wowhead.com/spell=100991
                TargetGroup LivingMeteor = new TargetGroup
                {
                    Name = "Living Meteor",
                    Chance = 1f,
                    Duration = phase1to3Length * 1000f,
                    Frequency = 45f,
                    LevelOfTargets = 87,
                    NearBoss = false,
                    NumTargs = 1f,
                    TargetID = 53500,
                };
                LivingMeteor.SetAffectsRoles_All();
                BegoneFrommyRealm.Targets.Add(LivingMeteor);

                #region Meteor Impact
                /* A player that gets within 4 yards of the Living Meteor will trigger a Metoer Impact,
                 * inflicting 627656 to 659844 Fire damage to enemies within 8 yards.*/
                // 10 man - http://ptr.wowhead.com/spell=99287
                // 25 man - http://ptr.wowhead.com/spell=100299
                // 10 man heroic - http://ptr.wowhead.com/spell=100300
                // 25 man heroic - http://ptr.wowhead.com/spell=100301
                // THIS SHOULD NEVER HAPPEN!!!!
                #endregion

                #region Combustible
                /* The Living Meteor is highly Combustible. When attacked, it will cause Combustion,
                 * knocking it back several yards away from the enemy that hit it. Combustible is
                 * removed for several seconds after Combustion is triggered.*/

                #region Combustion
                /* While combustible is active, the Living Meteor is knocked back several yards
                 * from the enemy that hit it.*/
                // 10 man - http://ptr.wowhead.com/spell=99296
                // 25 man - http://ptr.wowhead.com/spell=100282
                // 10 man heroic - http://ptr.wowhead.com/spell=100283
                // 25 man heroic - http://ptr.wowhead.com/spell=100284
                #endregion

                // Personal note, Living Meteors can be knocked into the target by way of combustion
                // http://ptr.wowhead.com/spell=100911

                #endregion

                // On Heroic Living Meteors have a 10% additional run speed associated with them
                // 10 man heroic - http://ptr.wowhead.com/spell=100277
                // 25 man heroic - http://ptr.wowhead.com/spell=100286

                // Living Meteors MAY have a 99% damage reduction associated with them
                // http://ptr.wowhead.com/spell=100904
 
                #endregion
                #endregion

                #region Magma Blast
                /* Ragnaros blasts magma at his current target if he cannot reach and melee them, 
                 * inflicting 73125 to 76875 Fire damage and increasing Fire damage taken by 50% for 6 sec. */
                // http://ptr.wowhead.com/spell=98313
                // This should NEVER happen
                #endregion

                #region Burning Wound
                /* The attacks from Ragnaros open a Burning Wound, inflicting 3656 to 3843 Fire damage every 2 sec
                 * for 20 sec.  The wound causes the target's attacks to become infused with fire, causing a
                 * Burning Blast.*/
                // 10-man - http://ptr.wowhead.com/spell=99399
                // 25-man - http://ptr.wowhead.com/spell=101238
                // 10-man Heroic - http://ptr.wowhead.com/spell=101239
                // 25-man Heroic - http://ptr.wowhead.com/spell=101240
                // 5 second cooldown on application
                // Only allow 4 stacks to be applied
                BegoneFrommyRealm.Attacks.Add(BurningWound);

                #region Burning Blast
                /* Inflicts 1950 to 2050 Fire damage, each stack of Burning Wound increases the damage of
                 * Burning Blast.*/
                // 10-man - http://ptr.wowhead.com/spell=99400
                // 25-man - http://ptr.wowhead.com/spell=101241
                // 10-man Heroic - http://ptr.wowhead.com/spell=101242
                // 25-man Heroic - http://ptr.wowhead.com/spell=101243
                BegoneFrommyRealm.BuffStates.Add(BurningBlast);
                #endregion
                #endregion
                #endregion

                #region The True Power of the Fire Lord [Heroic Only]
                /* The Fire lord unleashes his full power and is able to move freely around the platform. Players have
                 * the aid of powerful heroes of Azeroth to support them.*/

                #region Superheated [Heroic Only]
                /* Ragnaros is at his full power and is now Superheated, inflicting 2510 to 2640 Fire
                 * damage every 1, increasing damage taken from Superheated by 10%. Stacks.*/
                // 10 man heroic - http://ptr.wowhead.com/spell=100594
                // 25 man heroic - http://ptr.wowhead.com/spell=100915
                #endregion

                #region Empower Sulfuras [Heroic Only]
                /*Ragnaros begins to empower Sulfuras. After 5 sec, Sulfuras becomes Empowered and attacks
                 * made by Ragnaros cause Flames of Sulfuras, inflicting 627656 to 659844 Fire damage to all
                 * enemies within the Firelands.*/
                /* Cast
                 * 10 man heroic - http://ptr.wowhead.com/spell=100604
                 * 25 man heroic - http://ptr.wowhead.com/spell=100997 */
                // Damage - http://ptr.wowhead.com/spell=100628
                
                #region Flames of Sulfuras [Heroic Only]
                /* When Sulfuras is Empowered, attacks made by Ragnaros cause Flames of Sulfuras,
                 * inflicting 627656 to 659844 Fire damage to all enemies within the Firelands.*/
                // http://ptr.wowhead.com/spell=100630
                #endregion
                #endregion

                #region Dreadflame [Heroic Only]
                /* Sulfuras creates a Dreadflame at two nearby locations. The Dreadflame multiplies rapidly
                 * and spreads across the platform. Dreadflame inflicts 43935 to 46190 Fire damage and an
                 * additional 4506 to 4507 Fire damage every 1 sec for 30 sec.
                 * 
                 * *Warning* In 25 player raids, Dreadflame will strike five locations at once.*/
                // 10 man heroic - http://ptr.wowhead.com/spell=100941
                // 25 man heroic - http://ptr.wowhead.com/spell=100998
                #endregion

                #region Magma Geyser [Heroic Only]
                /* Ragnaros will target a Magma Geyser whenever he notices four players in a cluster together. The
                 * Magma Geyser inflicts 69042 to 72583 Fire damage every 1 sec and destroy any nearby
                 * Breadth of Frost.
                 * 
                 * *Warning* In 25 player raids, Ragnaros will use Magma Geyser on clusters of 10 players.*/
                // 10 man heroic - http://ptr.wowhead.com/spell=100861
                // 25 man heroic - http://ptr.wowhead.com/spell=100999
                #endregion

                #region Cenarius [Heroic Only]
                /* Cenarius is a demigod, the son of Malorne and Elune, and the patron of all of Azeroth's druids.
                 * 
                 * Cenarius will support the raid by freezing Living Meteors and reducing the damage caused by
                 * Superheated.*/
                // http://ptr.wowhead.com/npc=53872

                #region Breadth of Frost [Heroic Only]
                /* Cenarius forms a Breadth of Frost at a nearby location. Any Living Meteors that enter the
                 * Breadth of Frost are Frozen and take 15000% additional damage. Additionally, players who
                 * stand within the Breadth of Frost are immune to Superheated damage and have the
                 * Superheaded debuff removed from them.*/
                // Living Meteor - http://ptr.wowhead.com/spell=100567
                // Shield from Superheated - http://ptr.wowhead.com/spell=100503
                #endregion
                #endregion

                #region Arch Druid Hamuul Runetotem [Heroic Only]
                /* Humuul Runetotem is a tauren druid and leads the druids of Thunder Bluff. In Mount Hyjal, he
                 * assists Ysera in protecting Nordrassil from Ragnaros.
                 * 
                 * The arch druid will support the raid by entrapping Ragnaros.*/
                // http://ptr.wowhead.com/npc=53913

                #region Entrapping Roots [Heroic Only]
                /* Arch Druid Humuul Runetotem forms Entrapping Roots at a nearby location. If
                 * Ragnaros enters the area of the Entrapping Roots, he will become stunned for 10 sec and
                 * take 50% additional damage while stunned.*/
                // Cast - http://ptr.wowhead.com/spell=100646
                // Stun - http://ptr.wowhead.com/spell=100653
                #endregion
                #endregion

                #region Malfurion Stormrage [Heroic Only]
                /* Malfurion Stormrage is an ancient and powerful night elf druid. He leads the army of Cenarius in
                 * the Defense of Mount Hyjal against the forces of Ragnaros.
                 * 
                 * Malfurion will support the raid by protecting players from Dreadflame.*/
                // http://ptr.wowhead.com/npc=52135

                #region Cloudburst [Heroic Only]
                /* Malfurion forms a Cloudburst. The players who interact with the Cloudburst will be
                 * surrounded with a Deluge. Deluge makes the player immune to Dreadflame damage, and
                 * also allows the player to extinguish any nearby Dreadflame.
                 * 
                 * *Warning* In 25 player raids, up to three players can use a single Cloudburst.*/
                // 10 man heroic - http://ptr.wowhead.com/spell=100758
                // 25 man heroic - http://ptr.wowhead.com/spell=100766

                #region Deluge [Heroic Only]
                /* Makes the player immune to Dreadflame damage, and also allows the player to
                 * extinguish any nearby Dreadflame.*/
                // 10 man heroic - http://ptr.wowhead.com/spell=100713
                // 25 man heroic - http://ptr.wowhead.com/spell=101015
                // Spell that extinguishes the Dreadflame - http://ptr.wowhead.com/spell=100757
                #endregion
                #endregion
                #endregion
                #endregion

                #region Apply Phases
                // Pull then at 30 Sec, Empower Blade w/ 50/50 chance for which blade type.
                // 15 secs of empowered blade
                // Return to normal mode.
                float phasestart = 0;
                ApplyAPhasesValues(ByFirebePurged, i, 1, phasestart, phase1to3Length, BerserkTimer[i]); phasestart += phase1to3Length;
                ApplyAPhasesValues(Intermission1, i, 2, phasestart, IntermissionLength, BerserkTimer[i]); phasestart += IntermissionLength;
                ApplyAPhasesValues(SulfuaswillbeYourEnd, i, 3, phasestart, phase1to3Length, BerserkTimer[i]); phasestart += phase1to3Length;
                ApplyAPhasesValues(Intermission2, i, 4, phasestart, IntermissionLength, BerserkTimer[i]); phasestart += IntermissionLength;
                ApplyAPhasesValues(BegoneFrommyRealm, i, 5, phasestart, phase1to3Length, BerserkTimer[i]); phasestart += phase1to3Length;
                if (i > 1)
                {
                    ApplyAPhasesValues(Intermission3, i, 6, phasestart, Intermission3Length, BerserkTimer[i]); phasestart += Intermission3Length;
                    ApplyAPhasesValues(TheTruePoweroftheFireLord, i, 7, phasestart, phase4Length, BerserkTimer[i]);
                }
                AddAPhase(ByFirebePurged, i);
                AddAPhase(Intermission1, i);
                AddAPhase(SulfuaswillbeYourEnd, i);
                AddAPhase(Intermission2, i);
                AddAPhase(BegoneFrommyRealm, i);
                if (i > 1)
                {
                    AddAPhase(Intermission3, i);
                    AddAPhase(TheTruePoweroftheFireLord, i);
                }
                #endregion

            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 2; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0, 0 };
            #endregion
            /* TODO:
             */
        }
Esempio n. 2
0
        // The tank and healing check of the raid instance
        // ALMOST a Patchwork fight
        public Baleroc()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Baleroc, the Gatekeeper";
            Instance = "Firelands";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T12_10, BossHandler.TierLevels.T12_25, BossHandler.TierLevels.T12_10H, BossHandler.TierLevels.T12_25H, BossHandler.TierLevels.T12_LFR };
            #endregion
            #region Basics
            Health = new float[] { 31565310f, 99978288f, 59428676f, 166239664f, 0 };
            MobType = (int)MOB_TYPES.ELEMENTAL;
            BerserkTimer = new int[] { 6 * 60, 6 * 60, 6 * 60, 6 * 60, 0 };
            SpeedKillTimer = new int[] { 5 * 60, 5 * 60, 5 * 60, 5 * 60, 0 };
            InBackPerc_Melee = new double[] { 0.95f, 0.95f, 0.95f, 0.95f, 0 };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f, 0 };
            Max_Players = new int[] { 10, 25, 10, 25, 0 };
            Min_Tanks = new int[] { 2, 2, 2, 2, 0 };
            Min_Healers = new int[] { 3, 5, 3, 5, 0 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                Phase Normal = new Phase() { Name = "Normal Phase" };
                Phase DecimationBlade = new Phase() { Name = "Decimation Blade" };
                Phase InfernoBlade = new Phase() { Name = "Inferno Blade" };
                Phase BothPhases = new Phase() { Name = "Both Phases" };

                Attack Melee = GenAStandardMelee(this[i].Content);
                Melee.IsDualWielding = true;
                Melee.AffectsRole[PLAYER_ROLES.MainTank] = true;
                Normal.Attacks.Add(Melee);

                #region Blaze of Glory
                /* Baleroc's assault periodically awakens a burning spark within his primary target, increasing the
                 * target's physical damage taken by 20%, but also raising their maximum health by 20%.
                 * 
                 * Every time Baleroc applies Blaze of Glory, he gains an application of Incendiary Soul, increasing Fire
                 * damage done by 20%.*/
                // http://ptr.wowhead.com/spell=99252
                // He averages out to applying this once every 12 seconds
                Stats BlazeofGloryStats = new Stats();
                SpecialEffect BlazeofGlorySpecialEffect = new SpecialEffect(Trigger.Use, new Stats() { BonusHealthMultiplier = 0.2f, DamageTakenReductionMultiplier = -0.20f }, BerserkTimer[i], 12f, 1f, 99);
                BlazeofGloryStats.AddSpecialEffect(BlazeofGlorySpecialEffect);
                BuffState BlazeofGlory = new BuffState
                {
                    Name = "Blaze of Glory",
                    Chance = 1,
                    Frequency = BerserkTimer[i],
                    Stats = BlazeofGloryStats,
                    Breakable = false,
                    Duration = BerserkTimer[i] * 1000f,
                };
                BlazeofGlory.SetAffectsRoles_Tanks();
                BothPhases.BuffStates.Add(BlazeofGlory);

                /* Incendiary Soul
                 * Every time Baleroc applies Blaze of Glory, he gains an application of Incendiary Soul, increasing Fire
                 * damage done by 20%.*/
                // http://ptr.wowhead.com/spell=99369
                Stats IncendiarySoulStat = new Stats();
                SpecialEffect IncendiarySoulSpecialEffect = new SpecialEffect(Trigger.Use, new Stats() { FireDamageTakenMultiplier = 0.20f }, BerserkTimer[i], 12f, 1f, 99);
                IncendiarySoulStat.AddSpecialEffect(IncendiarySoulSpecialEffect);
                BuffState IncendiarySoul = new BuffState
                {
                    Name = "Incendiary Soul",
                    Chance = 1,
                    Frequency = BerserkTimer[i],
                    Stats = IncendiarySoulStat,
                    Breakable = false,
                    Duration = BerserkTimer[i] * 1000f,
                };
                IncendiarySoul.SetAffectsRoles_Tanks();
                BothPhases.BuffStates.Add(IncendiarySoul);
                #endregion

                #region Shards of Torment
                /* Baleroc summons *warning* two chrystals *end warning* amonst his foes, which continually channel
                 * a shadowy beam on the player that is nearest to them.*/
                // Summon - http://ptr.wowhead.com/spell=99260
                // NPC - http://db.mmo-champion.com/c/53495/
                float ShardofTormentDebuff = new float[] { 40, 60, 40, 60 }[i];

                #region Torment
                // Deals 3500 Shadow damage per application to the nearest player, stacking once per second.
                // 10 man - http://ptr.wowhead.com/spell=99256
                // 25 man - http://ptr.wowhead.com/spell=100230
                // 10 man heroic - http://ptr.wowhead.com/spell=100231
                // 25 man heroic - http://ptr.wowhead.com/spell=100232
                // At most people should be taking 12 stacks of Torment
                float TormentDamageMultiplier = (1 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11) / 12f;
                float Affected = ((i == 0) || (i == 2 ) ? 1f : 2f );
                Attack Torment = new Attack
                {
                    Name = "Torment",
                    AttackSpeed = 34f,
                    DamagePerTick = new float[] { 3000, 3000, 4250, 4250, 0 }[i] * TormentDamageMultiplier,
                    IsDoT = true,
                    Duration = 12f,
                    TickInterval = 1f,
                    MaxNumTargets = Affected * 2f,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamageType = ItemDamageType.Shadow,
                    SpellID = new float[] { 99256, 100230, 100231, 100232, 0 }[i],
                };
                Torment.SetAffectsRoles_DPS();
                BothPhases.Attacks.Add(Torment);
                #endregion

                #region Tormented
                /* When Torment fades from a player, they are afflicted by the Tormented effect, which increases
                 * Shadow damage taken by 250% and reduces healing done by 75%, for 40 sec.
                 * *Warning* Direct melee contact with any other player will apply a fresh copy of the Tormented effect
                 * to that player. [Heroic ONLY]*/
                // 10 man - http://ptr.wowhead.com/spell=99257
                // 25 man - http://ptr.wowhead.com/spell=99402
                // 10 man heroic - http://ptr.wowhead.com/spell=99403
                // 25 man heroic - http://ptr.wowhead.com/spell=99404
                // This should NEVER get placed on a Healer
                float TormentedDamageIncrease = new float[] { 2.5f, 2.5f, 5f, 5f, 0f }[i];
                BuffState Tormented = new BuffState
                {
                    Name = "Tormented",
                    Chance = Affected / (Max_Players[i] - Min_Healers[i] - Min_Tanks[i]),
                    Breakable = false,
                    Duration = ShardofTormentDebuff * 1000f,
                    Frequency = 34f,
                    Stats = new Stats() { SpellDamageTakenReductionMultiplier = -TormentedDamageIncrease, BonusHealingDoneMultiplier = -0.50f },
                };
                Tormented.SetAffectsRoles_DPS();
                BothPhases.BuffStates.Add(Tormented);
                #endregion

                #region Wave of Torment
                /* If there are no players within 15 yards of a Shard of Torment, the Shard pulses this effect, dealing
                 * 14250 to 15750 Shadow damage each second to all players.*/
                // 10 man - http://ptr.wowhead.com/spell=99261
                // 25 man - http://www.wowhead.com/spell=101636
                // 10 man heroic - http://www.wowhead.com/spell=101637
                // 25 man heroic - http://www.wowhead.com/spell=101638
                // This should NEVER happen
                #endregion

                #region Vital Spark
                /* If a player casts a direct heal on someone who is being damaged by Torment, the healer gains an
                 * application of Vital Spark for each (three/five [Normal/Heroic]) stacks of Torment on the target.
                 * Casting a single-target direct heal on a target affected by Blaze of Glory will trigger Vital Flame,
                 * increasing healing done on such targets by 5% per stack of vital Spark, lasting for 15 sec.*/
                // http://ptr.wowhead.com/spell=99262
                float VitalSparkBaseCD = new float[] { 3, 3, 5, 5, 0 }[i];
                float VitalSparkCD = BerserkTimer[i] / ((BerserkTimer[i] * ((Torment.Duration * 2f) / Torment.AttackSpeed)) / VitalSparkBaseCD);
                Stats VitalSparkStats = new Stats();
                // Assume half the healers get the buff at any given time
                SpecialEffect VitalSparkSpecialEffect = new SpecialEffect(Trigger.HealingSpellHit, new Stats() { BonusHealingDoneMultiplier = 0.05f }, 60f, VitalSparkCD, 0.5f, 999);
                VitalSparkStats.AddSpecialEffect(VitalSparkSpecialEffect);
                BuffState VitalSpark = new BuffState
                {
                    Name = "Vital Spark",
                    Breakable = false,
                    Chance = 1f,
                    Duration = BerserkTimer[i] * 1000f,
                    Frequency = BerserkTimer[i] - 1f,
                    Stats = VitalSparkStats,
                };
                VitalSpark.SetAffectsRoles_Healers();
                BothPhases.BuffStates.Add(VitalSpark);
                #endregion

                #region Vital Flame
                /* Increasing healing done to targets affected by Blaze of Glory by 5% per stack of Vital Spark
                 * consumed to create this effect, lasting for 15 sec. When Vital Flame expires, it restores the
                 * Vital Spark stacks that were consumed to create the effect.*/
                // http://ptr.wowhead.com/spell=99263
                Stats VitalFlameStats = new Stats();
                SpecialEffect VitalFlameSpecialEffect = new SpecialEffect(Trigger.Use, new Stats() { HealingReceivedMultiplier = 0.05f }, 60f, VitalSparkCD, 1f, 999);
                VitalFlameStats.AddSpecialEffect(VitalFlameSpecialEffect);
                BuffState VitalFlame = new BuffState
                {
                    Name = "Vital Flame",
                    Breakable = false,
                    Chance = 1f,
                    Duration = BerserkTimer[i] * 1000f,
                    Frequency = BerserkTimer[i] - 1f,
                    Stats = VitalFlameStats,
                };
                VitalFlame.SetAffectsRoles_Tanks();
                BothPhases.BuffStates.Add(VitalFlame);
                #endregion
                #endregion

                #region Blades of Baleroc
                /*Baleroc will periodically empower one of his blades with Shadow or Fire energy, and wield it
                 * alone for 15 sec.*/

                /* Decimation Blade
                 * Baleroc's melee strikes deal Shadow damage equal to 90% of the target's maximum health,
                 * instead of their normal physical damage. This damage cannot be resisted or mitigated by
                 * normal means.*/
                // http://ptr.wowhead.com/spell=99352
                // http://ptr.wowhead.com/spell=99353
                Attack DecimatingStrike = new Attack
                {
                    // Decimation Blades' Attack speed was reduced for 5 second per swing to 6.25 on Sep 19, 2011
                    Name = "Decimating Strike",
                    AttackSpeed = 6.25f,
                    DamagePerHit = .9f,
                    DamageType = ItemDamageType.Shadow,
                    DamageIsPerc = true,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    SpellID = 99353,
                    Blockable = false,
                    Dodgable = true,
                    Parryable = true,
                    Missable = true,
                    IsDualWielding = false,
                };
                DecimatingStrike.AffectsRole[PLAYER_ROLES.OffTank] = true;
                DecimationBlade.Attacks.Add(DecimatingStrike);

                /* Inferno Blade
                 * Baleroc's melee strikes deal 102999 to 103000 Fire damage to the target, instead of their
                 * normal physical damage, while this effect is active.*/
                // Initial Cast - http://ptr.wowhead.com/spell=99350
                // 10 man - http://ptr.wowhead.com/spell=99351
                // 25 man - http://ptr.wowhead.com/spell=101000
                // 10 man heroic - http://ptr.wowhead.com/spell=101001
                // 25 man heroic - http://ptr.wowhead.com/spell=101002
                Attack InfernoStrike = new Attack
                {
                    Name = "Inferno Strike",
                    AttackSpeed = 4f,
                    DamagePerHit = new float[] { (73125f + 76875f), (124312f + 130687f), (116025f + 121975f), (197242f + 207357f), 0f }[i] / 2f,
                    DamageType = ItemDamageType.Fire,
                    DamageIsPerc = false,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    SpellID = new float[] { 99351, 10100, 101001, 101002, 0 }[i],
                    Blockable = true,
                    Dodgable = true,
                    Parryable = true,
                    Missable = true,
                    IsDualWielding = false,
                };
                InfernoStrike.AffectsRole[PLAYER_ROLES.MainTank] = true;
                InfernoBlade.Attacks.Add(InfernoStrike);

                #endregion

                #region Countdown [Heroic Only]
                /* Baleroc links two players to each other for 8 sec. If the chosen players move within 3 yards of each
                 * other, the effect will dissipate harmlessly, but if the effect runs its full course, both players will
                 * explode, dealing 125000 Fire damage to all allies within 45 yards.*/
                // http://ptr.wowhead.com/spell=99516
                // possible explosion id: http://ptr.wowhead.com/spell=99518
                // This should NEVER go off, so one has to move at most 7 of the 8 seconds
                if (i > 1)
                {
                    Impedance Countdown_Move = new Impedance
                    {
                        Name = "Countdown Move",
                        Duration = 7f * 1000f,
                        Chance = 2f / (Max_Players[i] - Min_Tanks[i]),
                        Breakable = false,
                        Frequency = 45f,
                    };
                    Countdown_Move.SetAffectsRoles_DPS();
                    Countdown_Move.SetAffectsRoles_Healers();
                    BothPhases.Moves.Add(Countdown_Move);
               }
                #endregion

                #region Apply Phases
                // Pull then at 30 Sec, Empower Blade w/ 50/50 chance for which blade type.
                // 15 secs of empowered blade
                // Return to normal mode.
                int phasestart = 0;
                int EBdur = 15;
                int NormalDur = 30;
                InnerPhase InnerPhaseNormal, InnerPhaseEmpoweredBlade;
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 30 seconds;  OT builds stacks
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(InfernoBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 45 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 1 minute 15 seconds
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(DecimationBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 1 minute 30 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 2 minutes 0 seconds
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(InfernoBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 2 minutes 15 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 2 minute 45 seconds
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(DecimationBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 3 minute 0 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 3 minutes 30 seconds
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(InfernoBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 3 minutes 45 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 4 minute 15 seconds
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(DecimationBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 4 minute 30 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 5 minutes 0 seconds
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(InfernoBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 5 minutes 15 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                InnerPhaseNormal = new InnerPhase(Normal, i, 1, phasestart, NormalDur, BerserkTimer[i]); phasestart += NormalDur; // 5 minute 45 seconds
                BothPhases.InnerPhases.Add(InnerPhaseNormal);
                InnerPhaseEmpoweredBlade = new InnerPhase(DecimationBlade, i, 1, phasestart, EBdur, BerserkTimer[i]); phasestart += EBdur; // 6 minute 0 seconds
                BothPhases.InnerPhases.Add(InnerPhaseEmpoweredBlade);
                ApplyAPhasesValues(BothPhases, i, 1, 0, BerserkTimer[i], BerserkTimer[i]);
                AddAPhase(BothPhases, i);
                #endregion
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 2; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0, 0 };
            #endregion
            /* TODO:
             * Heroic
             */
        }