Beispiel #1
0
        public KoralonTheFlameWatcher()
        {
            // If not listed here use values from defaults
            #region Info
            Name     = "Koralon the Flame Watcher";
            Instance = "The Vault of Archavon";
            Content  = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version  = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            Health            = new float[] { 4183500f, 4183500f, 0, 0 };
            BerserkTimer      = new int[] { 19 * 60, 19 * 60, 0, 0 };
            SpeedKillTimer    = new int[] { 3 * 60, 3 * 60, 0, 0 };
            InBackPerc_Melee  = new double[] { 0.95f, 0.95f, 0, 0 };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
            Max_Players       = new int[] { 10, 25, 0, 0 };
            Min_Tanks         = new int[] { 2, 2, 0, 0 };
            Min_Healers       = new int[] { 2, 4, 0, 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 < 2; i++)
            {
                this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost    = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire     = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy     = new double[] { 0.00f, 0.00f, 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 };
            #endregion

            /* TODO:
             */
        }
Beispiel #2
0
 public KoralonTheFlameWatcher() {
     // If not listed here use values from defaults
     #region Info
     Name = "Koralon the Flame Watcher";
     Instance = "The Vault of Archavon";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 4183500f, 4183500f, 0, 0 };
     BerserkTimer = new int[] { 19*60, 19*60, 0, 0 };
     SpeedKillTimer = new int[] { 3*60, 3*60, 0, 0 };
     InBackPerc_Melee = new double[] { 0.95f, 0.95f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks   = new int[] {  2,  2, 0, 0 };
     Min_Healers = new int[] {  2,  4, 0, 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 < 2; i++) {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     /* TODO:
      */
 }
Beispiel #3
0
        public Halion()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Halion";
            Instance = "Ruby Sanctum";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            // Fight is split into 3 phases, first two everyone is DPSing him together, Phase 3 DPS is split up between live and shadow realm
            Health = new float[] { 11156000f, 40440500f, 15339900f, 58569000f };
            BerserkTimer = new int[] { 8 * 60, 8 * 60, 8 * 60, 8 * 60, };
            SpeedKillTimer = new int[] { 300, 300, 300, 300 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 3, 5, 3, 5 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,
                    AttackType = ATTACK_TYPES.AT_MELEE,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #4
0
        public SavianaRagefire()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Saviana Ragefire";
            Instance = "Ruby Sanctum";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            // Normal and Heroic setting provide no difference to her health or abilities
            Health = new float[] { 4183000f, 13945000f, 0f, 0f };
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 0, 0 };
            SpeedKillTimer = new int[] { 120, 120, 0, 0 };
            Max_Players = new int[] { 10, 25, 0, 0 };
            Min_Tanks = new int[] { 2, 2, 0, 0 };
            Min_Healers = new int[] { 3, 5, 0, 0 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 2; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Flame Breath - Inflicts 24,500 to 31,500 Fire damage to enemies in a cone in front of Saviana.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Flame Breath",
                    DamageType = ItemDamageType.Fire,
                    DamagePerHit = new int[] { (24500 + 31500), (33687 + 43312), 0, 0 }[i] / 2f,
                    MaxNumTargets = 1f,
                    // First attack is 12 seconds in, and every 25 seconds after
                    AttackSpeed = (this[i].BerserkTimer / ((this[i].BerserkTimer - 12f) / 25f)),
                    AttackType = ATTACK_TYPES.AT_MELEE,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Enrage - Decreases the time between your attacks by 150% for 10 sec.
                this[i].Attacks.Add(new DoT
                {
                    Name = "Enrage",
                    DamageType = ItemDamageType.Physical,
                    NumTicks = 10f / (2f / 1.5f),
                    TickInterval = (2f / 1.5f),
                    DamagePerTick = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = this[i].Min_Tanks,
                    AttackSpeed = 30f,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    Interruptable = true,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Fire Nova - Inflicts 7,601 to 7,600 Fire damage to players within 100 yards.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Fire Nova",
                    DamageType = ItemDamageType.Fire,
                    DamagePerHit = 7600f,
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 15f,
                    AttackType = ATTACK_TYPES.AT_AOE,
                });
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            for (int i = 0; i < 4; i++)
            {
                // Conflagration - Causes the affected players to temporarily do Fire damage to all nearby allies.
                //    Assume all players are spread out; Can target tanks; Stuns targets for 6 seconds
                this[i].Stuns.Add(new Impedance()
                {
                    Frequency = this[i].BerserkTimer / ((this[i].BerserkTimer - 32f) / 50f),
                    Duration = 6f * 1000f,
                    Chance = new float[] { 2, 5, 2, 5 }[i] / this[i].Max_Players,
                    Breakable = false,
                });
            }
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #5
0
        public TheLichKing()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "The Lich King";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            // You have 15 minutes to bring him down to 10.4%. After which point it's a free kill with no berserker time.
            Health = new float[] { 17431250f * .896f, 61009376f * .896f, 29458812f * .896f, 103151168f * .896f };
            BerserkTimer = new int[] { 15 * 60, 15 * 60, 15 * 60, 15 * 60 };
            SpeedKillTimer = new int[] { 8 * 60, 13 * 60, 8 * 60, 13 * 60 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 3, 5, 3, 5 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank] = true;
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #6
0
 public ValathriaDreamwalker()
 {
     // If not listed here use values from defaults
     #region Info
     Name = "Valathria Dreamwalker";
     Instance = "Icecrown Citadel";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
     #endregion
     #region Basics
     // Health is half her total health, which you HEAL, not dps
     Health = new float[] { 12000007f / 2f, 36002816f / 2f, 12000007f / 2f, 35999996f / 2f };
     BerserkTimer = new int[] { 7 * 60, 7 * 60, 7 * 60, 7 * 60, };
     SpeedKillTimer = new int[] { 180, 240, 240, 240 };
     Max_Players = new int[] { 10, 25, 10, 25 };
     Min_Tanks = new int[] { 2, 2, 2, 3 }; // 1-2 Tertiary Tanks to kite the Blistering Zombie on Heroic 25
     Min_Healers = new int[] { 3, 5, 3, 6 };
     #endregion
     #region Offensive
     //MaxNumTargets = new double[] { 1, 1, 1, 1 };
     //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
     #region Attacks
     for (int i = 0; i < 4; i++)
     {
         // Valathria does not actually fight you, you fight a crap load of adds while healers heal Valathria back to full health
         // Heroic, Valathria does take damage
     }
     #endregion
     #endregion
     #region Impedances
     //Moves;
     //Stuns;
     //Fears;
     //Roots;
     //Disarms;
     TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
     #endregion
     /* TODO:
      */
 }
Beispiel #7
0
        public BloodPrinceCouncil()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Blood Prince Council";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            // Health is shared between Prince Valanar, Prince Keleseth, and Prince Taldaram
            Health = new float[] { 5647725f, 22590900f, 7624429f, 30497716f };
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60, };
            SpeedKillTimer = new int[] { 150, 180, 180, 210 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 3, 2, 3 }; // in 25 each boss is tanked separately.
            Min_Healers = new int[] { 3, 5, 3, 5 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,
                    AttackType = ATTACK_TYPES.AT_MELEE,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #8
0
        public NorthrendBeasts()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Northrend Beasts";
            Instance = "Trial of the Crusader";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            // Gormok the Impaler (a magnataur), Acidmaw and Dreadscale (a pair of jormungar) and Icehowl (a yeti).
            Health = new float[] { (2230000 + 1255050 + 1255050 + 3486250), (8924800 + 5020200 + 5020200 + 13247750), (2789000 + 1673400 + 1673400 + 4648300), (11853250 + 6693600 + 6693600 + 18128500) };
            BerserkTimer = new int[] { 19 * 60, 19 * 60, 10 * 60, 10 * 60 };
            SpeedKillTimer = new int[] { 5 * 60, 5 * 60, 5 * 60, 5 * 60 };
            InBackPerc_Melee = new double[] { 0.95f, 0.95f, .95f, .95f };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 2, 4, 2, 5 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[ (int)this[i].Content ],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 4; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            /* TODO:
             *  - Get actual Acidmaw and Dreadscale Health for 10man Heroic (currently estimated based on the health increase for 25 normal and heroic)
             *  - Get actual Icehowl Health for 10man Heroic (currently estimated based on the health increase for 25 normal and heroic)
             */
        }
Beispiel #9
0
 public AssemblyofIron() {
     // If not listed here use values from defaults
     #region Info
     Name = "Assembly of Iron";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 2998175f, 6763325f, 0, 0 };
     BerserkTimer = new int[] { 15 * 60, 15 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 0.75f, 0.75f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 3, 0, 0 };
     Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     // TODO:
     /* Steelbreaker
      * - High Voltage - An aura that inflicts 1,500 (Heroic: 3,000)
      *   to the whole raid every 3 seconds.
      * - Fusion Punch - Inflicts 18,850 to 21,150 (Heroic: 35,000)
      *   Nature damage to his target, and deals additional 15,000
      *   (Heroic: 20,000) Nature damage every 1 second, for 4 seconds.
      * - [1 Supercharge] Static Disruption - Inflicts 3,500 (Heroic:
      *   7,000) Nature damage to enemies in 6 yards radius area. Also
      *   increases Nature damage taken by 25% (Heroic: 75%) for 20
      *   seconds.
      * - [2 Supercharges] Overwhelming Power - Increases the size and
      *   damage done by his target by 200%, and affects it with
      *   Meltdown after 60 (Heroic: 30) seconds.
      * - [2 Supercharges] Meltdown - Causes the target to die, dealing
      *   29,250 to 30,750 Nature damage to friendly units within 15
      *   yards.
      * - [2 Supercharges] Electrical Charge - Increases Steelbreaker's
      *   damage by 25% and heals him for 20% of his maximum hit points
      *   whenever a player or a pet dies. Affected by healing
      *   reduction effects.*/
     /* Runemaster Molgeim
      * - Shield of Runes - Absorbs 20,000 (Heroic: 50,000) damage.
      *   When the Shield is broken by damage, it increases Molgeim's
      *   damage by 50% for 15 seconds. Using Spellsteal bypasses the
      *   damage increase.
      * - Rune of Power - Summons a Rune of Power under the feet of a
      *   random target. Rune of Power increases the damage of everybody
      *   who stands on it by 50%. Lasts 1 minute.
      * - [1 Supercharge] Rune of Death - Summons a Rune of Death
      *   under the feet of a random player. Rune of Death inflicts
      *   2,750 (Heroic: 3,500) Shadow damage to players within 13
      *   yards of it, every half-second for 30 seconds
      * - [2 Supercharges] Rune of Summoning - Summons a Rune of
      *   Summoning near a random player. Rune of Summoning periodically
      *   spawns Lightning Elementals, which will rush towards random
      *   players and cast Lightning Blast.
      * - [2 Supercharges] Lightning Blast - Inflicts 9,425 to 10,575
      *   (Heroic: 14,138 to 15,862) Nature damage to all players within
      *   30 yards of the caster. The Lightning Elemental dies after
      *   the spell goes off.*/
     /* Stormcaller Brundir
      * - Chain Lightning - Inflicts 4,163 to 4,837 (Heroic: 5,550 to
      *   6,450) Nature damage to its main target, and arcs to nearby
      *   players. Interruptible.
      * - Overload - Inflicts 20,000 (Heroic: 25,000) Nature damage to
      *   players within 30 yards of the caster, after 6 seconds of
      *   channeling. Also applies knockback.
      * - [1 Supercharge] Lightning Whirl - Inflicts 3,770 to 4,230
      *   (Heroic: 5,655 to 6,345) Nature damage to random players
      *   every 1 second for 5 seconds. Interruptible.
      * - [2 Supercharges] Lightning Tendrils - Chooses a random
      *   target and starts flying towards it. Players near Brundir
      *   take 3,000 (Heroic: 5,000) Nature damage every 1 second
      *   until they get away. Brundir cannot be stunned or interrupted
      *   while casting Lightning Tendrils.*/
 }
Beispiel #10
0
 public XT002Deconstructor() {
     // If not listed here use values from defaults
     #region Info
     Name = "XT-002 Deconstructor";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 5000008f, 6763325f, 0, 0 };
     BerserkTimer = new int[] { 10 * 60, 10 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 1.00f, 1.00f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 3, 0, 0 };
     Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
         {
             /* Gravity Bomb - Causes the target to spawn a Gravity Bomb
              * after 9 seconds, which damages the target for 12,000
              * (Heroic: 15,000) and pulls other players within 12 yards
              * and inflicts them with 11,700 to 12,300 (Heroic: 14,625
              * to 15,375) Shadow damage.*/
             Attack a = new Attack
             {
                 Name = "Gravity Bomb",
                 DamageType = ItemDamageType.Shadow,
                 DamagePerHit = 12000f,
                 MaxNumTargets = this[i].Max_Players,
                 AttackSpeed = 25,
             };
             this[i].Attacks.Add(a);
             this[i].Moves.Add(new Impedance()
             {
                 Frequency = a.AttackSpeed,
                 Duration = (9f + 5f) * 1000f,
                 Chance = 1f / this[i].Max_Players,
                 Breakable = false,
             });
         }
         {
             /* Searing Light - Causes the target to inflict 3,000
              * (Heroic: 3,500) damage to the target and other players
              * within 10 yards every 1 second, for 9 seconds.*/
             Attack a = new Attack
             {
                 Name = "Searing Light",
                 DamageType = ItemDamageType.Holy,
                 DamagePerHit = 3000f,
                 MaxNumTargets = this[i].Max_Players,
                 AttackSpeed = 25,
             };
             this[i].Attacks.Add(a);
             this[i].Moves.Add(new Impedance()
             {
                 Frequency = a.AttackSpeed,
                 Duration = (9f + 5f) * 1000f,
                 Chance = 1f / this[i].Max_Players,
                 Breakable = false,
             });
         }
         {
             /* Tympanic Tantrum - Damages everybody for 10% of their
              * maximum hit points every 1 second, for 8 seconds. This
              * is a channeled spell, which also dazes the affected
              * targets for 2 seconds.*/
             Attack a = new Attack
             {
                 Name = "Tympanic Tantrum",
                 DamageType = ItemDamageType.Physical,
                 DamagePerHit = 22000f * 0.10f * 8f,
                 MaxNumTargets = this[i].Max_Players,
                 AttackSpeed = 25,
             };
             this[i].Attacks.Add(a);
         }
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     /* TODO:
      * 
      * Heart Phase: At 75%, 50%, and 25% XT's Heart of the
      * Deconstructor will become exposed and attackable. It
      * will leak energy, which summons adds - Pummellers,
      * Scrapbots and Boombots. During this 30-second Phase XT
      * will take 100% extra damage through his heart and won't
      * attack.
      * o XM-024 Pummellers - Attack with Arcing Smash, Trample,
      *   and Uppercut.
      * o XS-013 Scrapbots - Run to XT and cause him to restore
      *   1% health per Scrapbot, through Scrap Repair.
      * o XE-321 Boombots - Explode on death, inflicting damage
      *   to nearby players and NPCs.*/
 }
Beispiel #11
0
 public Razorscale() {
     // If not listed here use values from defaults
     #region Info
     Name = "Razorscale";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 3555975f, 6763325f, 0, 0 };
     BerserkTimer = new int[] { 15 * 60, 15 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 0.90f, 0.90f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 3, 0, 0 };
     Min_Healers = new int[] { 3, 4, 0, 0 };
     #endregion
     #region Offensive
     //MaxNumTargets = new double[] { 5, 5, 0, 0 };// need to drop this down to only when the swarm is up
     //MultiTargsPerc = new double[] { 0.50d, 0.50d, 0.00d, 0.00d };// need to sim this out
     #region Attacks
     for (int i = 0; i < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     // TODO:
     /* Phase 1: Air Phase
      * 1. (Spell #63014) - Inflicts 5,088 to 5,912 (Heroic: 7,863 to 9,137) Fire damage to a player, and additional 5,088 to 5,912 (Heroic: 7,863 to 9,137) Fire damage every 1 second to anyone within 6 yards of the initial impact, for 25 seconds.
      * 2. Fireball - Inflicts 6,660 to 7,740 (Heroic: 9,713 to 11,287) Fire damage.
      * 3. Flame Breath - Inflicts 13,125 to 16,875 (Heroic: 17,500 to 22,500) Fire damage to enemies in a cone in front of the caster. Used just before Razorscale goes back to the air.
      * 4. Wing Buffet - Knocks back enemies in 35 yards radius around the caster. Used right after Flame Breath.
      * 5. Dark Rune Adds - Adds will come in waves from mole machines. One mole can spawn a Dark Rune Watcher with 1-2 Guardians, or a lone Sentinel. Up to 4 mole machines can spawn adds at any given time.
      *     1. Dark Rune Watchers - Cast Lightning Bolt, inflicting 5,950 to 8,050 (Heroic: 8,075 to 10,925) Nature damage and Chain Lightning, inflicting 5,088 to 5,912 (Heroic: 8,788 to 10,212)
      *     2. Dark Rune Sentinels - Cast Whirlwind, hitting for ~9,000 Physical damage on plate.
      *     3. Dark Rune Guardians - Cast Stormstrike, which increases the Nature damage done to the target by 20% for 12 seconds.
      * Phase 2: Ground Phase
      * 1. Flame Buffet - Increases the Fire damage an enemy takes by 1,000 (Heroic: 1,500) for 1 minute, stacking up to 99 times.
      * 2. Wing Buffet - Knocks back enemies in 35 yards radius around the caster. Used in the beginning of the phase.
      * 3. Fuse Armor - Reduces armor, attack and movement speed by 20% for 20 seconds, stacking up to 5 times. 5 stacks of Fused Armor will stun the tank for several seconds.
      * 4. Flame Breath - Inflicts 13,125 to 16,875 (Heroic: 17,500 to 22,500) Fire damage to enemies in a cone in front of the caster. Affected by Flame Buffet.
      * 5. (Spell #63014) - Inflicts 5,088 to 5,912 (Heroic: 7,863 to 9,137) Fire damage to a player, and additional 5,088 to 5,912 (Heroic: 7,863 to 9,137) Fire damage every 1 second to anyone within 6 yards of the initial impact, for 25 seconds. Affected by Flame Buffet.
      */
 }
Beispiel #12
0
        public NorthrendBeasts()
        {
            // If not listed here use values from defaults
            #region Info
            Name     = "Northrend Beasts";
            Instance = "Trial of the Crusader";
            Content  = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version  = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            // Gormok the Impaler (a magnataur), Acidmaw and Dreadscale (a pair of jormungar) and Icehowl (a yeti).
            Health            = new float[] { (2230000 + 1255050 + 1255050 + 3486250), (8924800 + 5020200 + 5020200 + 13247750), (2789000 + 1673400 + 1673400 + 4648300), (11853250 + 6693600 + 6693600 + 18128500) };
            BerserkTimer      = new int[] { 19 * 60, 19 * 60, 10 * 60, 10 * 60 };
            SpeedKillTimer    = new int[] { 5 * 60, 5 * 60, 5 * 60, 5 * 60 };
            InBackPerc_Melee  = new double[] { 0.95f, 0.95f, .95f, .95f };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f };
            Max_Players       = new int[] { 10, 25, 10, 25 };
            Min_Tanks         = new int[] { 2, 2, 2, 2 };
            Min_Healers       = new int[] { 2, 4, 2, 5 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name          = "Melee",
                    DamageType    = ItemDamageType.Physical,
                    AttackType    = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit  = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed   = 2f,

                    Dodgable  = true,
                    Missable  = true,
                    Parryable = true,
                    Blockable = true,

                    IgnoresMeleeDPS  = true,
                    IgnoresRangedDPS = true,
                    IgnoresHealers   = true,

                    IsTheDefaultMelee = true,
                });
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost    = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire     = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy     = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 4; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
            #endregion

            /* TODO:
             *  - Get actual Acidmaw and Dreadscale Health for 10man Heroic (currently estimated based on the health increase for 25 normal and heroic)
             *  - Get actual Icehowl Health for 10man Heroic (currently estimated based on the health increase for 25 normal and heroic)
             */
        }
Beispiel #13
0
        public Anubarak()
        {
            // If not listed here use values from defaults
            #region Info
            Name     = "Anub'arak";
            Instance = "Trial of the Crusader";
            Content  = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version  = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            Health            = new float[] { 4180000, 20910000, 5440000, 27200000 };
            BerserkTimer      = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60 };
            SpeedKillTimer    = new int[] { 3 * 60, 3 * 60, 3 * 60, 3 * 60 };
            InBackPerc_Melee  = new double[] { 0.75f, 0.75f, .75f, .75f };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f };
            Max_Players       = new int[] { 10, 25, 10, 25 };
            Min_Tanks         = new int[] { 2, 2, 2, 2 };
            Min_Healers       = new int[] { 2, 4, 2, 5 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name          = "Melee",
                    DamageType    = ItemDamageType.Physical,
                    AttackType    = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit  = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed   = 2f,

                    Dodgable  = true,
                    Missable  = true,
                    Parryable = true,
                    Blockable = true,

                    IgnoresMeleeDPS  = true,
                    IgnoresRangedDPS = true,
                    IgnoresHealers   = true,

                    IsTheDefaultMelee = true,
                });
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost    = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire     = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy     = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 4; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
            #endregion

            /* TODO:
             */
        }
Beispiel #14
0
        public FactionChampions()
        {
            // If not listed here use values from defaults
            #region Info
            Name     = "Faction Champions";
            Instance = "Trial of the Crusader";
            Content  = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version  = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            // Since clothies have lower health than non-clothies, I'm averaging out everyone's health combined then multiplying by the number of champions
            // Clothies (4) - Mage, Warlock, Shadow Priest, Disc Priest
            // Non-Clothies (10) - DK, Boomkin, Resto Druid, Hunter, Holy Pally, Ret Pally, Rogue, Resto Sham, Enh Sham, Warrior
            Health            = new float[] { ((322560 * 4) + (403200 * 10)) * 6 / 14, ((1935360 * 4) + (2419000 * 10)) * 10 / 14, ((483840 * 4) + (604800 * 10)) * 6 / 14, ((2580480 * 4) + (3225600 * 10)) * 10 / 14 };
            BerserkTimer      = new int[] { 19 * 60, 19 * 60, 19 * 60, 19 * 60 };
            SpeedKillTimer    = new int[] { 5 * 60, 5 * 60, 5 * 60, 5 * 60 };
            InBackPerc_Melee  = new double[] { 0.95f, 0.95f, .95f, .95f };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f };
            Max_Players       = new int[] { 10, 25, 10, 25 };
            Min_Tanks         = new int[] { 2, 2, 2, 2 };
            Min_Healers       = new int[] { 2, 4, 2, 5 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name          = "Melee",
                    DamageType    = ItemDamageType.Physical,
                    AttackType    = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit  = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed   = 2f,

                    Dodgable  = true,
                    Missable  = true,
                    Parryable = true,
                    Blockable = true,

                    IgnoresMeleeDPS  = true,
                    IgnoresRangedDPS = true,
                    IgnoresHealers   = true,

                    IsTheDefaultMelee = true,
                });
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost    = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire     = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy     = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 4; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
            #endregion

            /* TODO:
             *  - Double Check clothies 10man Heroic Health
             */
        }
Beispiel #15
0
        public DeathbringerSaurfang()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Deathbringer Saurfang";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            Health = new float[] { 8785350f, 31376250f, 12299490f, 43926752f };
            BerserkTimer = new int[] { 8 * 60, 8 * 60, 8 * 60, 8 * 60, };
            SpeedKillTimer = new int[] { 150, 180, 150, 180 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 2, 5, 3, 5 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack
                {
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 1f,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Boiling Blood - Inflicts 5,000 Physical damage every 3 seconds for 24 seconds. 
                //       Used on a random target. (Same amount in all three versions)
                this[i].Attacks.Add(new DoT()
                {
                    Name = "Boiling Blood",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_RANGED,
                    TickInterval = 3f,
                    NumTicks = 8f,
                    DamagePerTick = 5000f,
                    MaxNumTargets = new int[] { 1, 3, 1, 3 }[i],
                    AttackSpeed = 15.5f,
                });
                // Blood Nova - Inflicts 7,600/9,500 to 8,400/10,500 Physical damage 
                //       to a random target and all players within 12 yards.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Blood Nova",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_RANGED,
                    DamagePerHit = new int[] { (7600 + 8400), (9500 + 10500), (7600 + 8400), (9500 + 10500) }[i] / 2f, // 1 person only assuming everyone is more than 12 yards apart
                    MaxNumTargets = 1f,
                    AttackSpeed = 20f,
                });
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            #region BossAdds
            /*
             * Name = Blood Beast (Summoned 2/5 mobs every 30 seconds)
             * Health = new float[] { 100000f, 120000f, 90997f, 140134f };
             * Resistant Skin - The skin of this creature is highly resistant. Damage from area of effect attacks is 
             *          reduced by 95% and damage from Diseases is reduced by 70%.
             * Scent of Blood - Saurfang buffs the Blood Beasts, causing them to reduce the movement speed of all nearby players by 80%,
             *          while increasing the Beasts' damage by 300%. Lasts 10 seconds. (Heroic 10 and 25 only)
             *          Normal, adds die in 7 seconds
             *          Heroic - about 10 seconds
             */
            #endregion
            /* TODO:
             * TO DO: Blood Power - Increases damage and size by 1%; Stacks up to 100%
             *        This is based on the amount of raid damage and how fast tanks can taunt.
             *        High end guilds can get 2-3 100% stacks out in a fight, 0 on normal;
             *        10man normal 0 - 100% stacks; 10man heroic 1-2 - 100% stacks
             * TO DO: Frenzy  - Increases Saurfang's attack speed by 30% and size by 20%.
             *       Used when Saurfang's health reaches 30%.
             * TO DO: Rune of Blood - Marks a target with Rune of Blood, causing Saurfang's melee attacks
             *       against that target to leech 5,100/5,950 to 6,900/8,050 health from them, and heal the 
             *       Deathbringer for 10 times that amount. Lasts 20 seconds.
             */
        }
Beispiel #16
0
        public Rotface()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Rotface";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            Health = new float[] { 7321125f, 36257000f, 10458750f, 47413000f };
            // Soft enrage is about 7 minutes in, Hard enrage is after 10 minutes (as shown in the DK soloing video)
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60, };
            SpeedKillTimer = new int[] { 120, 150, 180, 210 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 3, 5, 3, 5 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,
                    AttackType = ATTACK_TYPES.AT_MELEE,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #17
0
 public Kologarn() {
     // If not listed here use values from defaults
     #region Info
     Name = "Kologarn";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 3625700f, 6763325f, 0, 0 };
     BerserkTimer = new int[] { 19 * 60, 19 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 1.00f, 1.00f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 3, 0, 0 };
     Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     /* TODO:
     * Kologarn
          1. Focused Eyebeam - Inflicts 2,313 to 2,687 (Heroic: 3,238 to 3,762) Nature damage every 1 second. Two beams will spawn around a player, following by a raid warning. The beams will converge onto the player and start inflicting damage after a few seconds. They will follow their target.
          2. Overhead Smash - Inflicts physical damage and applies stacking Crunch Armor, which reduces the target's armor by 20% for 6 seconds (Heroic: 25% for 45 seconds).
          3. One-Armed Overhead Smash - Inflicts less Physical damage than the normal one, but still applies stackable Crunch Armor, which reduces the target's armor by 20% for 6 seconds (Heroic: 25% for 45 seconds). Cast if one of Kologarn's Arms is dead.
          4. Stone Shout - Inflicts 1,084 to 1,216 Physical damage to the entire raid every 1 second. Cast if both of Kologarn's Arms are dead.
          5. Petrifying Breath - Inflicts 14,063 to 15,937 (Heroic: 18,750 to 21,250) Nature damage every 1 second, and applies Brittle Skin, which increases damage taken by 20% for 8 seconds. Cast if there are no targets in melee range.
     * Right Arm
          1. Stone Grip - Grabs 1 (Heroic: 3) target, incapacitating them and inflicting 2,925 to 3,075 (Heroic: 3,413 to 3,587) Physical damage every 1 second, until they are freed. The Arm can sustain 100,000 (Heroic: 480,000) damage before it releases its target.
          2. Death - Killing the Right Arm decreases Kologarn's health by 15% for 30 seconds, until the Arm respawns. It also spawns 5 Rubbles, that cast Stone Nova, which inflicts 5,550 to 6,450 Physical damage to targets within 10 yards of the caster, increasing damage taken by 5% for 10 sec. Rubbles are stunnable.
     * Left Arm
          1. Shockwave - Inflicts 8,788 to 10,212 (Heroic: 13,875 to 16,125) Nature damage to the whole raid.
          2. Death - Killing the Right Arm decreases Kologarn's health by 15% for 30 seconds, until the Arm respawns. It also spawns 5 Rubbles, that cast Stone Nova, which inflicts 5,550 to 6,450 Physical damage to targets within 10 yards of the caster, increasing damage taken by 5% for 10 sec. Rubbles are stunnable.
      */
 }
Beispiel #18
0
        public Anubarak()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Anub'arak";
            Instance = "Trial of the Crusader";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            Health = new float[] { 4180000, 20910000, 5440000, 27200000 };
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60 };
            SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 3 * 60, 3 * 60 };
            InBackPerc_Melee = new double[] { 0.75f, 0.75f, .75f, .75f };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 2, 4, 2, 5 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 4; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            /* TODO:
             */
        }
Beispiel #19
0
 public Auriaya() {
     // If not listed here use values from defaults
     #region Info
     Name = "Auriaya";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 3137625f, 16734000f, 0, 0 };
     BerserkTimer = new int[] { 10 * 60, 10 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 0.00f, 0.00f, 0, 0 };// This is a boss where you CANNOT be behind her or she Fubar's the raid
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 2, 0, 0 };
     Min_Healers = new int[] { 2, 4, 0, 0 };
     #endregion
     #region Offensive
     #region Attacks
     for (int i = 0; i < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
         // She summons extra targets a lot, most of the time, they are within melee range of persons on the boss
         // Guardian Swarm: Marks a player and summons a pack of 10 Swarming Guardians with low health around them soon after.
         // Feral Defender: If you leave him alone, he's up about 90% of the fight
         //this[i].MultiTargsPerc = 0.90f; // need to sim this out
         //this[i].MaxNumTargets = 10f; // need to drop this down to only when the swarm is up
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0 };
     #endregion
     #region Impedances
     for (int i = 0; i < 2; i++)
     {
         //Moves;
         //Stuns;
         //Fears;
         // Terrifying Screech: Raid-wide fear for 5 seconds. Magic effect.
         // Going to assume the CD is 45 sec for now (cuz I know she doesnt do it every 8 sec)
         this[i].Fears.Add(new Impedance()
         {
             Frequency = 45f,
             Duration = 5f * 1000f,
             Chance = 1f,
             Breakable = true,
         });
         //Roots;
         //Disarms;
     }
     TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
     #endregion
     /* TODO:
      */
 }
Beispiel #20
0
        public ProfessorPutricide()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Professor Putricide";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            Health = new float[] { 9761500f, 41835000f, 13666100f, 50202000f };
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60, };
            SpeedKillTimer = new int[] { 240, 270, 300, 330 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 3, 2, 3 }; // One tank does not do much damage to the boss while in Abom, doesn't start tanking until Phase 3
            Min_Healers = new int[] { 3, 5, 3, 5 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,
                    AttackType = ATTACK_TYPES.AT_MELEE,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #21
0
 public Mimiron() {
     // If not listed here use values from defaults
     #region Info
     Name = "Mimiron";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 1742400f*3f, 6763325f, 0, 0 };
     BerserkTimer = new int[] { 15 * 60, 15 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 0.50f, 0.50f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 3, 0, 0 };
     Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     /* TODO:
     * Phase 1: Leviathan MK II
          1. Proximity Mines - Drops 8-10 Proximity Mines around MK II. After a small arming time, the mines will use Explosion, inflicting 9,000 (Heroic: 12,000) Fire damage to anyone who walks over them.
          2. Napalm Shell - Inflicts 7,540 to 8,460 (Heroic: 9,425 to 10,575) Fire damage instantly and an additional 4,000 (Heroic: 6,000) every 1 second, for 8 seconds. This spell will always attempt to hit targets farther than 15 yards of MK II.
          3. Plasma Blast - After a 3-second cast, MK II will channel a stream of plasma for 6 seconds, inflicting 20,000 (Heroic: 30,000) irresistible Fire damage every 1 second to his target.
          4. Shock Blast - After a 4-second cast, MK II will inflict 100,000 Nature damage to all enemies within 15 yards of him. Used soon after a Plasma Blast.
     * Phase 2: VX-001
          1. Rapid Burst - Inflicts 1,414 to 1,586 (Heroic: 1,885 to 2,115) Spellfire damage to a random target every half-second for 3 seconds.
          2. P3Wx2 Laser Barrage - After a 4-second cast, VX-001 will shoot a laser in a random direction and spin slowly. The laser will inflict 20,000 Fire damage every 0.25 seconds, and will last 10 seconds.
          3. Rocket Strike - VX-001 will fire a rocket that will travel to a location underneath one of the players. Reaching the location, it will inflict 5 million Fire damage to everyone in 3 yards radius.
          4. Heat Wave - Inflicts 1,885 to 2,115 (Heroic: 2,828 to 3,172) Fire damage instantly and an additional 2,000 (Heroic: 3,000) Fire damage to the whole raid every 1 second, for 5 seconds.
     * Phase 3: Aerial Command Unit
          1. Plasma Ball - Inflicts 9,425 to 10,575 (Heroic: 14,138 to 15,862) Spellfire damage to its current target.
          2. Summon Adds - ACU will periodically summon Assault Bots, Bomb Bots, and Junk Bots.
                1. Assault Bots - Cast Magnetic Field on their target, locking it in place and causing it to take 30% more damage for 6 seconds. When killed, Assault Bots will drop Magnetic Core, which can be used bring ACU to the ground, disable it and cause it to take 50% more damage for a few seconds. The Magnetic Core has to be used underneath the ACU. Assault Bots spawn off red beams.
                2. Bomb Bots - Walk aimlessly and explode when they die, inflicting 9,425 to 10,575 damage. They spawn underneath ACU, after a short cast.
                3. Junk Bots - Low on health and with weak damage, Junk Bots don't do anything special. They spawn off green beams.
     * Phase 4: V0-L7R-0N
          1. Proximity Mines - Drops 8-10 Proximity Mines around V0-L7R-0N's MK II. After a small arming time, the mines will inflict 12,000 Fire damage to anyone who walks over them.
          2. Shock Blast - After a 4-second cast, V0-L7R-0N's MK II will inflict 100,000 Nature damage to all enemies within 15 yards of him.
          3. Hand Pulse - Inflicts 4,242 to 4,758 (Heroic: 6,598 to 7,402) Spellfire damage to a random target and all enemies between the caster and the target.
          4. P3Wx2 Laser Barrage - After a 4-second cast, V0-L7R-0N's VX-001 will shoot a laser in a random direction and spin slowly. The laser will inflict 20,000 Fire damage every 0.25 seconds, and will last 10 seconds.
          5. Rocket Strike - V0-L7R-0N's VX-001 will fire two rockets that will travel to a location underneath two of the players. Reaching the location, they will inflict 5 million Fire damage to everyone in 3 yards radius. During all the duration of the spell, the MK II component is stunned.
          6. Plasma Ball - Inflicts 9,425 to 10,575 (Heroic: 14,138 to 15,862) Spellfire damage to its current target.
      */
 }
Beispiel #22
0
        public BloodQueenLanathel()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Blood-Queen Lana'thel";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            Health = new float[] { 14154175f, 59419644f, 18899660f, 71300784f };
            // 5 minute, 20 second fight
            BerserkTimer = new int[] { 320, 320, 320, 320 };
            SpeedKillTimer = new int[] { 210, 210, 270, 270 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 3, 5, 3, 5 };
            this.InBackPerc_Melee = new double[] { (320 - 12 - 12) / 320, (320 - 12 - 12) / 320, (320 - 12 - 12) / 320, (320 - 12 - 12) / 320 };
            this.InBackPerc_Ranged = new double[] { (320 - 4 - 4) / 320, (320 - 4 - 4) / 320, (320 - 4 - 4) / 320, (320 - 4 - 4) / 320 }; ;

            // Assume that by the time by the end of the second Air Phase, guilds should be at 35%
            //Under35Perc = new double[] { (320 - 124 - 100 - 3) / 320, (320 - 127 - 100 - 3) / 320, (320 - 124 - 100 - 3) / 320, (320 - 127 - 100 - 3) / 320 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            int avgbitetargets10 = (1 + 2 + 4 + 8) / 4;      // average number of bites in 10 man
            int avgbitetargets25 = (1 + 2 + 4 + 8 + 16) / 5; // average number of bites in 25 man

            for (int i = 0; i < 4; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Hits for about 18k on normal 25
                    // Heroic increases Lana'thel's damage by 10/5% in 10/25 man respecfully for each application of Essence of the Blood Queen
                    DamagePerHit = (1 + (new int[] { 0, avgbitetargets10, 0, avgbitetargets25 }[i] * new float[] { 0f, .10f, 0f, .05f }[i])) * BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank] = true;

                // Blood Mirrored Melee attack from MT to OT as Shadow Damage
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Off-Tank Melee Damage",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Hits for about 18k on normal 25
                    // Heroic increases Lana'thel's damage by 10/5% in 10/25 man respecfully for each application of Essence of the Blood Queen
                    DamagePerHit = (1 + (new int[] { 0, avgbitetargets10, 0, avgbitetargets25 }[i] * new float[] { 0f, .10f, 0f, .05f }[i])) * BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;

                // Shroud of Sorrow - An aura of sorrow and despair emanates from the caster, 
                //        inflicting 4500 Shadow damage every 2 sec. to nearby enemies.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Shroud of Sorrow",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { 4000, 4500, 4500, 4500 }[i],
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 2f,
                });

                // Delirious Slash - Inflicts 50% of weapon damage to an enemy and causes it 
                //        to bleed for 4500 to 5500 damage per application every 3 sec. for 15 sec.
                // Only goes to Off-Tank
                this[i].Attacks.Add(new DoT
                {
                    Name = "Delirious Slash",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    TickInterval = 3f,
                    NumTicks = 5f,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content] * new float[] { .5f, .5f, .75f, .75f }[i],
                    DamagePerTick = new int[] { (4500 + 5500), (5250 + 6750), (6125 + 7875), (7000 + 9000) }[i] / 2f,
                    MaxNumTargets = 1f,
                    AttackSpeed = 20f,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;

                // Vampiric Bite - Inflicts 12,025 to 13,975 physical damage to a target, granting them Essence of the Blood Queen
                this[i].Attacks.Add(new Attack
                {
                    Name = "Vampiric Bite",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (8325 + 9675), (10175 + 11825), (8325 + 9675), (10175 + 11825) }[i] / 2f,
                    MaxNumTargets = new int[] { avgbitetargets10, avgbitetargets25, avgbitetargets10, avgbitetargets25 }[i],
                    // Bites are usable every 75/60 seconds in 10/25 respectfully
                    AttackSpeed = new int[] { 75, 60, 75, 60 }[i] + 5f, // Assuming biting within 5 seconds of the 15 seconds
                    // The OT COULD be targeted but only as a last resourt. The MT should NOT be targeted.
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MeleeDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RangedDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffAndTertTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RaidHealer] = true;
                // Bitters or bittees need to move to get bitten
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 3f * 1000f, // Assume 3 seconds to move to the new biting target
                    Chance = 1f / new int[] { avgbitetargets10, avgbitetargets25, avgbitetargets10, avgbitetargets25 }[i],
                    Breakable = false,
                });

                // If the person doesn't bite a non-vampire player within 15 seconds
                // They go into a Uncontrollable Frenzy where they are Mind Controlled for 60 seconds then die after that period
                this[i].Attacks.Add(new Attack
                {
                    Name = "Uncontrollable Frenzy",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = 1f,
                    DamageIsPerc = true,
                    MaxNumTargets = new int[] { avgbitetargets10, avgbitetargets10, avgbitetargets25, avgbitetargets25 }[i],
                    // Bites are usable every 75/60 seconds in 10/25 respectfully
                    AttackSpeed = new int[] { 75, 60, 75, 60 }[i] + 5f, // Assuming biting within 5 seconds of the 15 seconds
                    Interruptable = true, // Can be avoided if bitten correctly
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MeleeDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RangedDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffAndTertTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RaidHealer] = true;
                // if biten incorrectly, the bitter is mind controlled
                this[i].Stuns.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 60f * 1000f, // 60 seconds of mind control before dying
                    Chance = 1f / new int[] { avgbitetargets10, avgbitetargets10, avgbitetargets25, avgbitetargets25 }[i],
                    Breakable = false,
                });

                // Twilight Bloodbolt - Inflicts 9,250 to 10,750 shadow damage to a target and other players within 6 yards.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Twilight Bloodbolt",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (9250 + 10750), (11250 + 13750), (9250 + 10750), (11250 + 13750) }[i] / 2f, // assume range is spread out and doesn't do any splash damage
                    MaxNumTargets = new int[] { 2, 3, 2, 3 }[i], // assume range is spread out so that ther is no AOE
                    // TODO: Double Check attack Speed
                    AttackSpeed = 20f,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RangedDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffAndTertTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RaidHealer] = true;

                // Swarming Shadows - The affected player spawns a mass of shadows every 1 second for 6 seconds. Each mass inflicts 
                //         2,313 to 2,687 shadow damage every 1 second to all targets within it.
                this[i].Attacks.Add(new DoT
                {
                    Name = "Swarming Shadows",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    NumTicks = 6f,
                    TickInterval = 1f,
                    // TODO: Double Check Damage per tick
                    DamagePerTick = new int[] { (2313 + 2687), (2313 + 2687), (2313 + 2687), (2313 + 2687) }[i] / 2f, // assume range is spread out and doesn't do any splash damage
                    MaxNumTargets = new int[] { 1, 1, 1, 1 }[i],
                    // TODO: Double Check attack Speed
                    AttackSpeed = 30.5f,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MeleeDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RangedDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffAndTertTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RaidHealer] = true;
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 6f * 1000f, // move the shadows to the wall for 6 seconds
                    Chance = 1f / (this[i].Max_Players - this[i].Min_Tanks),
                    Breakable = false,
                });

                // Pact of the Darkfallen - Links a number of players together, causing them to inflict 
                //       3,500 Shadow damage every 1 second to non-linked players within 10 yards.
                //       This effect expires when all linked targets are within 5 yards of each other.
                this[i].Attacks.Add(new DoT
                {
                    Name = "Pact of the Darkfallen",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    NumTicks = 4f,  // assume 4 seconds to remove the debuff
                    TickInterval = 1f,
                    DamagePerTick = new int[] { 3500, 3500, 3500, 3500 }[i],
                    // Assume half of the raid get hit by by the debuff while people are running to get rid of the debuff
                    MaxNumTargets = this[i].Max_Players / 2f,
                    AttackSpeed = 30.5f,
                });
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 4f * 1000f, // assume 4 seconds to remove the debuff
                    Chance = new float[] { 2, 3, 2, 3 }[i] / (this[i].Max_Players - this[i].Min_Tanks),
                    Breakable = false,
                });

                // Bloodbolt Whirl - Shoots a lot of Twilight Bloodbolts to random players for 6 seconds.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Bloodbolt Whirl",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (9250 + 10750), (12025 + 13975), (14250 + 15750), (16150 + 17850) }[i] / 2f, // assume range is spread out and doesn't do any splash damage
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = (new int[] { 124, 127, 124, 127 }[i] + 100f + 100f) / 3f,
                });
                // Right before the Bloodbolt Whirl, the boss fears everyone for 4 seconds. This can be dispelled/ fear warded
                this[i].Fears.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed - 6f,
                    Duration = 4f * 1000,
                    Chance = this[i].Max_Players / this[i].Max_Players,
                    Breakable = true,
                });
                // After the fear is gone, everyone has 3 seconds to spread out for the Bloodbolt whirl.
                //      If people are too close to each other, they cause splash damage to each other.
                //      Some people can find spots immediatly upon release of fear so it is "breakable."
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed - 2f,
                    Duration = 3f * 1000,
                    Chance = 1f,
                    Breakable = true,
                });

                // TODO: Essence of the Blood Queen - Increases damage by 100%, and causes attacks to 
                //       heal the player for 15% of the damage done, as well as cause no threat.
                // Lasts 75 seconds on 10 man, 60 seconds on 25 man
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #23
0
 public Freya() {
     // If not listed here use values from defaults
     #region Info
     Name = "Freya";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 1394500f, 6763325f, 0, 0 };
     BerserkTimer = new int[] { 10 * 60, 10 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 1.00f, 1.00f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 3, 0, 0 };
     Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     /* TODO:
     Elders
         * Elder Brightleaf
              1. Brightleaf Flux - Changes Elder Brightleaf's damage and healing randomly every 5 seconds.
              2. Solar Flare - Inflicts 7,863 to 9,137 (Heroic: 12,950 to 15,050) Fire damage on a number of targets based on Brightleaf Flux.
              3. Unstable Sun Beam - Increases damage and healing done by 5%, stacking up to 10 times. Canceled by Unstable Energy.
              4. Unstable Energy - Inflicts 12,950 to 15,050 (Heroic: 16,650 to 19,350) Nature damage and cancels the effects of Unstable Sun Beam. Damage done is modified by the number of stacks of Unstable Sun Beam.
              5. Photosynthesis - Heals Elder Brightleaf for 10,000 damage every 1 sec. Used while inside a Sun Beam.
         * Elder Ironbranch
              1. Impale - Inflicts 16,650 to 19,350 (Heroic: 32,375 to 37,625) Physical damage every 1 second for 5 seconds. Stuns the target.
              2. Iron Roots - Summons Iron Roots that root a player and inflict 5,550 to 6,450 (Heroic: 7,800 to 8,200) Nature damage every 2 seconds to them. Lasts until the roots are dead.
              3. Thorn Swarm - Inflicts 8,325 to 9,675 (Heroic: 12,488 to 14,512) Nature damage to enemies within 6 yards of the target.
         * Elder Stonebark
              1. Fists of Stone - Decreases movement speed by 20%, increases damage done by 250% and gives Elder Stonebark's attacks chance to cause Broken Bones, which renders the target unable to dodge, parry or block.
              2. Ground Tremor - Inflicts 8,550 to 9,450 (Heroic: 11,400 to 12,600) Physical damage to the entire raid, and interrupts spellcasting for 8 seconds.
              3. Petrified Bark - Causes melee attacks to damage the attacker as well. 60 charges (Heroic: 120).
     Freya
         * Sunbeam - Inflicts 5,088 to 5,912 (Heroic: 7,400 to 8,600) Nature damage to enemies within 8 yards of Freya's target.
         * Attuned to Nature - Increases healing done to Freya by 4%. Starts at 150 stacks, or 600%.
         * Touch of Eonar - Heals Freya for 6,000 (Heroic: 24,000) every 1 second.
         * Lifebinder's Gift Summon - Summons an Eonar's Gift, which uses Lifebinder's Gift after ~12 seconds, healing Freya and her allies for 30% (Heroic: 60%) of their maximum health. Eonar's Gift's Pheromones negates the effect of Conservator's Grip on nearby players.
         * Summon Allies of Nature - Summons one of the three following waves of adds every minute. Total of 6 waves will be summoned. Killing any of the adds reduces the number of stacks of Freya's Attuned to Nature.
              1. Detonating Lashers - Each of the 12 Lashers reduces Freya's Attuned to Nature by 2 stacks. They will attack with Flame Lash and Detonate for 4,163 to 4,837 (Heroic: 6,825 to 7,175) Fire damage when they die.
              2. Elemental Adds - each one of those reduces Freya's Attuned to Nature by 10 stacks.
                     o Ancient Water Spirit - Attacks with Tidal Wave, which inflicts Frost damage in a frontal cone.
                     o Storm Lasher - Attacks with Stormbolt for 6,013 to 6,987 (Heroic: 8,788 to 10,212) Nature damage. Also casts Lightning Lash for 5,088 to 5,912 (Heroic: 6,938 to 8,062), which hits up to 3 (Heroic: 5) targets.
                     o Snaplasher - Attacks against the Snaplasher trigger Hardened Bark, which causes attacks against it to increase its damage, but decrease its movement speed (Heroic: doesn't reduce movement speed)
              3. Ancient Conservator - Reduces Freya's Attuned to Nature by 30 stacks. Applies Conservator's Grip when he spawns, preventing players from attacking or casting spells. Getting under one of the many Healthy Spores or an Eonar's Gift negates the effect. He will also debuff players with Nature's Fury, which cause the debuffed player to damage nearby allies for 4,163 to 4,837 (Heroic: 5,550 to 6,450) Nature damage every 2 seconds for 10 seconds.
         * Nature Bomb - Summons immobile Nature Bombs around the feet of random raid members. The bombs use Nature Bomb after a few seconds, inflicting 5,850 to 6,150 (Heroic: 8,775 to 9,225) Nature damage to enemies within 10 yards and knocking them back. Used frequently 6 minutes into the fight.             */
 }
Beispiel #24
0
        public ToravonTheIceWatcher()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Toravon The Ice Watcher";
            Instance = "The Vault of Archavon";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            Health = new float[] { 4601850f, 15060600f, 0, 0 };
            BerserkTimer = new int[] { 5 * 60, 5 * 60, 0, 0 };
            SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
            InBackPerc_Melee = new double[] { 0.95f, 0.95f, 0, 0 };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
            Max_Players = new int[] { 10, 25, 0, 0 };
            Min_Tanks = new int[] { 2, 2, 0, 0 };
            Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
            {
                float frostmultiplierfromwhiteout = ( ( (BerserkTimer[i] - 25f) / 38f ) * .15f ) / 2f;
                this[i].Attacks.Add(GenAStandardMelee(this[i].Content));

                // Frozen Mallet - Applies debuff Frostbite
                // Frostbite - The Frostbite inflicts 1950 to 2050 Frost damage every 2 sec and reduces move speed by 5% for 20 sec.
                // Tanks generally take 4 stacks of this debuff
                this[i].Attacks.Add(new DoT
                {
                    Name = "Frostbite",
                    DamageType = ItemDamageType.Frost,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = this[i].Min_Tanks,
                    AttackSpeed = new float[] { (90 / (70 / 2)), (90 / (70 / 2)), (90 / (60 / 2)), (90 / (60 / 2)) }[i],

                    Dodgable = false,
                    Missable = false,
                    Parryable = false,
                    Blockable = false,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
            #endregion
            /* TODO:
             */
        }
Beispiel #25
0
        public Thorim() {
            // If not listed here use values from defaults
            #region Info
            Name = "Thorim";
            Instance = "Ulduar";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            Health = new float[] { 1742400f, 6763325f, 0, 0 };
            BerserkTimer = new int[] { 5 * 60 * 2, 5 * 60 * 2, 0, 0 };
            SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
            InBackPerc_Melee = new double[] { 1.00f, 1.00f, 0, 0 };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
            Max_Players = new int[] { 10, 25, 0, 0 };
            Min_Tanks = new int[] { 2, 3, 0, 0 };
            Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
            {
                this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
            #endregion
            /* TODO:
            * Pre-Phase Adds
                 1. Jormungar Behemoth - Attacks with Acid Breath (Heroic) and Sweep (Heroic)
                 2. Captured Mercenary Captain • Captured Mercenary Captain - Attacks with Devastate and Heroic Strike
                 3. Captured Mercenary Soldiers • Captured Mercenary Soldiers - Attack with Shoot, Barbed Shot and Wing Clip
            * Phase 1: Adds
                 1. Arena
                        o Dark Rune Acolyte - Uses Greater Heal to heal an ally for 40,500 to 49,500 (Heroic: 94,500 to 115,500); Renew for 9,263 to 9,737 (Heroic: 13,650 to 14,350) every 3 seconds for 15 seconds, and Holy Smite to attack for 4,950 to 6,050 (Heroic: 7,650 to 9,350) Holy damage.
                        o Dark Rune Champions - Attack with Mortal Strike, can Charge and Whirlwind.
                        o Dark Rune Commoners - Attack with Low Blow and can interrupt spellcasting with Pummel.
                        o Dark Rune Evokers - Attack with Runic Lightning (Heroic); they also protect their allies with Runic Mending (Heroic) and Runic Shield (Heroic).
                        o Dark Rune Warbringers - Attack with Runic Strike and have a passive Aura of Celerity
                 2. Hallway
                        o Iron Ring Guard - Can use Whirling Trip to stun the target, or Impale (Heroic) to damage it.
                        o Dark Rune Acolyte - Uses Greater Heal to heal an ally for 40,500 to 49,500 (Heroic: 94,500 to 115,500); Renew for 9,263 to 9,737 (Heroic: 13,650 to 14,350) every 3 seconds for 15 seconds, and Holy Smite to attack for 4,950 to 6,050 (Heroic: 7,650 to 9,350) Holy damage.
                        o Runic Colossus (Mini Boss) - Uses Smash, Runic Barrier and randomly does Charge, which hits for 4,625 to 5,375 (Heroic: 6,938 to 8,062) Physical damage.
                        o Iron Honor Guard - Attack with Cleave, occasionally Hamstring and can stun with Shield Smash (Heroic)
                        o Ancient Rune Giant (Mini Boss) - Buffs allies with Runic Fortification, uses Stomp (Heroic) and randomly casts Rune Detonation.

            * Phase 1: Thorim (inactive)
                 1. Sheath of Lightning - Reduces all damage done to Thorim by 99% for the duration of the Phase.
                 2. Stormhammer - Inflicts 2,451 to 2,551 Nature damage to a player, stuns them for 2 seconds and causes Deafening Thunder around them.
                 3. Deafening Thunder - Inflicts 4,625 to 5,375 Nature damage and increases casting speed by 75% for 8 seconds.
                 4. Charge Orb - Charges one of the four orbs in the room with lightning, causing it to strike with Lightning Shock, inflicting 2,831 to 3,169 Nature damage to any player nearby.
                 5. Berserk - 5 minutes after the raid defeats the jormungar and the captives, Thorim will empower all adds in both Arena and Hallway, making them almost impossible to kill.
                 6. Summon Lightning Orb - As soon as the Berserk occurs, Thorim will send a ball of lightning through the hallway, killing everyone inside.
            * Phase 2: Thorim
                 1. Touch of Dominion - Reduces Thorim's health and damage by 25%. This debuff only becomes active if Thorim is forced into the Arena 3 or more minutes after he is engaged.
                 2. Chain Lightning - Inflicts 3,700 to 4,300 (Heroic: 4,625 to 5,375) Nature damage on its main target and increases its damage by 100% (Heroic: 50%) each time it jumps.
                 3. Lightning Charge - Charges a 60-degrees cone at random direction with lightning sparks. The cone will cause Lightning Charge after a few seconds, inflicting 17,344 to 20,156 Nature damage to players in it, and increasing Thorim's attack speed by 15% and Nature damage by 10%.
                 4. Unbalancing Strike - Inflicts 200% weapon damage on the main target and reduces its defense skill by 200 for 15 seconds.             */
        }
Beispiel #26
0
        public Baltharus()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Baltharus";
            Instance = "Ruby Sanctum";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            // Normal and Heroic setting provide no difference to his health or abilities
            Health = new float[] { 3486000f, 11156000f, 0f, 0f };
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 0, 0 };
            SpeedKillTimer = new int[] { 120, 120, 0, 0 };
            Max_Players = new int[] { 10, 25, 0, 0 };
            Min_Tanks = new int[] { 2, 2, 0, 0 };
            Min_Healers = new int[] { 3, 5, 0, 0 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 2; i++)
            {
                // 300 / (300 * (.5 * .5)) = 300 / 75 = 4
                int cloneattackspeed10man = (int)(BerserkTimer[i] / (BerserkTimer[i] * (.5f * .5f)));
                // 300 / ( ( 300 * (.66 * .5 ) ) + ( 300 * (.33 * .5) ) ) = 300 / ( 99 + 49.5 ) = 300 / 148.5 = 2.020202
                int cloneattackspeed25man = (int)(BerserkTimer[i] / ((BerserkTimer[i] * (.66f * .5f)) + (BerserkTimer[i] * (.33f * .5f))));

                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    // TODO: Double Check Enervating Brand's CD; minus 20 seconds; all divided by 2 seconds
                    AttackSpeed = 3f,
                    AttackType = ATTACK_TYPES.AT_MELEE,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank] = true;

                // At 50% in 10man and 66% and 33% in 25 man, the boss will split himself up; the new add will be picked
                //    by the off-tank. DPS does not attack the adds and focus on the main boss
                //    The boss will then perform a knockback/stun when he does this ability that lasts for 4 seconds
                //    to everyone in melee range of him
                // Can be 3 tanked if needbe (1 OT and 1 TT) if the damage is too much for one off-tank in 25 man, 
                //              though not necessary
                this[i].Attacks.Add(new Attack
                {
                    Name = "Cloned Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = new int[] { 1, (1 + 2) / 2, 0, 0 }[i] * BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = new int[] { cloneattackspeed10man, cloneattackspeed25man, cloneattackspeed10man, cloneattackspeed25man }[i],

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank] = true;

                // Enervating Brand: Brands an enemy, drawing energy from him and allies within 12 yards. 
                //     Stacks every 2 seconds, reducing the enemies' damage by 2% and increasing the caster's damage by 2%. Lasts 20 seconds.
                // Siphoned Might: Increases the caster's damage by 2% per applied brands.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Siphoned Might",
                    DamageType = ItemDamageType.Arcane,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Assuming everyone is spread out
                    DamagePerHit = ((1f + (1f + (.02f * 20f / 2f))) / 2f) * BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    // TODO: Double Check Enervating Brand's CD; minus normal attacks uptime; all divided by 2 seconds
                    AttackSpeed = (30f - 10f) / 3f,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank] = true;

                // Blade Tempest: Deals 70% of weapon damage to enemies in front of the attacker. 
                this[i].Attacks.Add(new Attack
                {
                    Name = "Blade Tempest",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content] * .7f,
                    MaxNumTargets = this[i].Min_Tanks,
                    AttackSpeed = 1.5f,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank] = true;

                // Repelling Wave: Knocks nearby enemies back, inflicting 4,163 to 4,837 Fire damage, and stunning them for 3 seconds.
                //        Used while summoning a clone.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Repelling Wave",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content] * .7f,
                    MaxNumTargets = this[i].Max_Players - this[i].Min_Healers,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
                // Repelling wave stuns melee for 3 seconds. At the same time, the boss knocks Melee away from the boss
                // This stun is scripted and cannot be dispelled
                this[i].Stuns.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 3f * 1000f,
                    Chance = 1f / (this[i].Max_Players - this[i].Min_Healers),
                    Breakable = false,
                });
                // Allow 3 seconds for melee to run back to the boss after the stun.
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 3f * 1000f,
                    Chance = 1f / (this[i].Max_Players - this[i].Min_Healers),
                    Breakable = false,
                });

                // Cleave: Inflicts 110% of normal melee damage to an enemy and its nearest allies, affecting up to 3 targets. 
                this[i].Attacks.Add(new Attack
                {
                    Name = "Cleave",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content] * 1.1f,
                    MaxNumTargets = 3f,
                    AttackSpeed = 20f,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             *  Enervating Brand: Brands an enemy, drawing energy from him and allies within 12 yards. 
             *        Stacks every 2 seconds, reducing the enemies' damage by 2%. Lasts 20 seconds.
             */
        }
Beispiel #27
0
 public Hodir() {
     // If not listed here use values from defaults
     #region Info
     Name = "Hodir";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 8115990f, 32477904f, 0, 0 };
     BerserkTimer = new int[] { 8 * 60, 8 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 0.75f, 0.75f, 0, 0 };// he moves A LOT so it's hard to stay behind him at all times
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 1, 1, 0, 0 };
     Min_Healers = new int[] { 3, 5, 0, 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 < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0 };
     #endregion
     #region Impedances
     for (int i = 0; i < 2; i++)
     {
         //Moves;
         //Stuns;
         //Fears;
         //Roots;
         // Freeze: Inflicts 5,550 to 6,450 Frost damage to players within 10 yards. Also roots
         // the targets in place for 10 seconds. The rooting component of the spell is a magic debuff.
         // Going to assume the CD is 45 sec for now
         this[i].Roots.Add(new Impedance()
         {
             Frequency = 45f,
             Duration = 10f * 1000f,
             Chance = 1.00f,
             Breakable = true,
         });
         //Disarms;
     }
     TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
     #endregion
     /* TODO:
     * Biting Cold - Applies exponentially increasing damage-over-time Frost damage effect every 1 second to stationary targets. 1 second of moving or a jump will reduce the stack by 1.
     * Freeze - Inflicts 5,550 to 6,450 Frost damage to players within 10 yards. Also roots the targets in place for 10 seconds. The rooting component of the spell is a magic debuff.
     * Flash Freeze - Encases the entire raid in tombs of ice with 35,000 (Heroic: 44,000) hit points. Kills targets already frozen. Flash Freeze has 9 seconds cast time and its effects can be negated by standing in a Snowdrift spawned by Icicle.
     * Icicle - Inflicts 14,000 Frost damage in a random area through Ice Shards. Larger Icicles will fall just as Hodir casts Flash Freeze - they leave Snowdrift, which protects against the Flash Freeze.
     * Frozen Blows - Reduces Hodir's physical damage by 70%, but grants each of his attacks 31,062 (Heroic: 40,000) additional Frost damage, for 20 seconds. Enemies take 4,000 additional Frost damage every 2 seconds for the duration of the spell.
     * Friendly NPCs - Hodir will engage with 4 (Heroic: 8) NPCs friendly to the raid enclosed in ice tombs. The raid can choose to free any number of them and benefit from their abilities.
          1. Druids - Tor Greycloud • Kar Greycloud or Eivi Nightfeather • Ellie Nightfeather. They attack with Wrath, which does 1,913 to 2,587 Nature damage, and cast Starlight, which increases attack and casting speed of the affected targets by 100% for 1 minute.
          2. Shamans - Spiritwalker Tara • Spiritwalker Yona or Elementalist Mahfuun • Elementalist Avuun. They attack with Lava Burst, which does 4,250 to 5,750 Fire damage, and cast Storm Cloud, which allows the affected player to buff up to 4 (Heroic: 6) allies with Storm Power, which increases critical strike damage by 135% for 30 seconds.
          3. Mages - Amira Blazeweaver • Veesha Blazeweaver or Missy Flamecuffs • Sissy Flamecuffs. They attack with Fireball, which does 3,570 to 4,830 Fire damage and an additional 900 Fire damage every 3 second for 6 seconds. They also cast Conjure Toasty Fire, which prevents the effects of Biting Cold and Freeze, and Melt Ice, which attempts to free a target encased in a frost tomb over 10 seconds. Players standing near a Toasty Fire have a chance to apply Singed when hitting with spells.
          4. Priests - Battle-Priest Eliza • Battle-Priest Gina or Field Medic Penny • Field Medic Jessy. They attack with Smite, which does 3,400 to 4,600 Holy damage and can use Great Heal, which heals for 19,000 to 21,000. They also cast Dispel Magic, which can free players from the immobilizing effect of Freeze.
      */
 }
Beispiel #28
0
        public GeneralZarithrian()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "General Zarithrian";
            Instance = "Ruby Sanctum";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            // Normal and Heroic setting provide no difference to his health or abilities
            Health = new float[] { 4141000f, 14098395f, 0f, 0f };
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 0, 0 };
            SpeedKillTimer = new int[] { 120, 120, 0, 0 };
            Max_Players = new int[] { 10, 25, 0, 0 };
            Min_Tanks = new int[] { 2, 2, 0, 0 };
            Min_Healers = new int[] { 3, 5, 0, 0 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 1, 1, 1, 1 };
            //MultiTargsPerc = new double[] { 0.00d, 0.00d, 0.00d, 0.00d };
            #region Attacks
            for (int i = 0; i < 2; i++)
            {
                this[i].Attacks.Add(new Attack
                {
                    // Melee Attacks
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Missable = true,
                    Parryable = true,
                    Dodgable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Summon Flamecaller - Summons 3 Onyx Flamecallers.
                this[i].Targets.Add(new TargetGroup()
                {
                    // First set of adds is after 15.5 seconds, then every 45.5 seconds after
                    Frequency = this[i].BerserkTimer / ((this[i].BerserkTimer - 15.5f) / 45.5f),
                    Chance = 1f,
                    Duration = 15f * 1000f, // Assume 15 seconds to kill adds; Can be ignored and just burn the boss
                    NearBoss = false,
                    NumTargs = 3f,
                });
                // Blast Nova - Inflicts 5688 to 7312 Fire damage to nearby enemies.
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Blast Nova",
                    DamageType = ItemDamageType.Fire,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (5688 + 7312), (6563 + 8437), 0, 0 }[i] / 2f,
                    MaxNumTargets = this[i].Max_Players,
                    // Averaging Flamecallers frequency by their duration, assume that the normal cast of the spell is every 5 seconds; All devided by the number of targets
                    AttackSpeed = ((this[i].Targets[this[i].Targets.Count - 1].Frequency * 1000f) / (this[i].Targets[this[i].Targets.Count - 1].Duration / 5f)) / this[i].Targets[this[i].Targets.Count - 1].NumTargs,

                    Missable = true,
                });
                // Lava Gout - Inflicts 8483 to 9517 Fire damage to an enemy; Can be interrupted
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Lava Gout",
                    DamageType = ItemDamageType.Fire,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (8483 + 9517), (9897 + 9897), 0, 0 }[i] / 2f,
                    MaxNumTargets = this[i].Targets[this[i].Targets.Count - 1].NumTargs,
                    // Averaging Flamecallers frequency by their duration, assume that the normal cast of the spell is every 2 seconds; All devided by the number of targets
                    AttackSpeed = ((this[i].Targets[this[i].Targets.Count - 1].Frequency * 1000f) / (this[i].Targets[this[i].Targets.Count - 1].Duration / 2f)) / this[i].Targets[this[i].Targets.Count - 1].NumTargs,
                    Interruptable = true,

                    Missable = true,
                });
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            for (int i = 0; i < 4; i++)
            {
                // Intimidating Roar - Causes all raid members to be stunned in fear for 4 seconds.
                //         This is a scripted event that cannot be broken
                this[i].Stuns.Add(new Impedance()
                {
                    // First stun is after 14 seconds, then every 33 seconds after
                    Frequency = this[i].BerserkTimer / ((this[i].BerserkTimer - 14f) / 33f),
                    Chance = 1f,
                    Duration = 4f * 1000f,
                    Breakable = false,
                });
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             *    Add tank Armor reducing ability
             *    Cleave Armor - Reduces the target's [tanks] armor by 20% for 30 seconds. Stacks up to 5 times.
             *                 Tanks taunt after 3 stacks
             */
        }
Beispiel #29
0
 public IgnistheFurnaceMaster() {
     // If not listed here use values from defaults
     #region Info
     Name = "Ignis the Furnace Master";
     Instance = "Ulduar";
     Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
     Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
     #endregion
     #region Basics
     Health = new float[] { 5578000f, 6763325f, 0, 0 };
     BerserkTimer = new int[] { 19 * 60, 19 * 60, 0, 0 };
     SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
     InBackPerc_Melee = new double[] { 0.90f, 0.90f, 0, 0 };
     InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
     Max_Players = new int[] { 10, 25, 0, 0 };
     Min_Tanks = new int[] { 2, 3, 0, 0 };
     Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
     {
         this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
         {
             /* Flame Jets - Inflicts 5,655 to 6,345 (Heroic: 8,483 to 9,517)
              *      Fire damage and interrupts spellcasting for 6 seconds. Affected
              *      targets take additional 1,000 (Heroic: 2,000) Fire damage
              *      every 1 second, for 6 seconds.
              */
             Attack a = new Attack()
             {
                 Name = "Flame Jets",
                 AttackSpeed = 25f,
                 AttackType = ATTACK_TYPES.AT_AOE,
                 DamagePerHit = (5655f - 6345f) / 2f,
                 DamageType = ItemDamageType.Fire,
                 MaxNumTargets = this[i].Max_Players,
             };
            this[i].Attacks.Add(a);
         }
         {
             /* Scorch - Inflicts 2,357 to 2,643 (Heroic: 3,770 to 4,230)
              *  Fire damage every half-second to targets in front of the caster
              *  within 30 yards. In addition, the ground within 13 yards becomes
              *  scorched, inflicting 1,885 to 2,115 (Heroic: 3,016 to 3,384)
              *  Fire damage every 1 second. Iron Constructs gain Heat while
              *  standing on scorched ground.
              */
             Attack a = new Attack()
             {
                 Name = "Scorch",
                 AttackSpeed = 25f,
                 AttackType = ATTACK_TYPES.AT_AOE,
                 DamagePerHit = (2357f - 2643f) / 2f,
                 DamageType = ItemDamageType.Fire,
                 MaxNumTargets = this[i].Max_Players,
             };
             this[i].Attacks.Add(a);
             this[i].Moves.Add(new Impedance()
             {
                 Frequency = a.AttackSpeed,
                 Duration = 5f * 1000f,
                 Chance = 1f,
                 Breakable = false,
             });
         }
     }
     #endregion
     #endregion
     #region Defensive
     Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
     Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
     #endregion
     // TODO:
     /* Slag Pot - Charges and grabs a random target and incapacitates them,
      *   inflicting 4,500 (Heroic: 6,000) Fire damage every 1 second for 10
      *   seconds. If the target survives, they will gain 100% (Heroic: 150%)
      *   haste for 10 seconds.
      * Iron Constructs - Iron Constructs brought to ground scorched by
      *   Scorch, will gain stackable Heat buff, which increases their movement
      *   speed and haste by 5 per application. If Iron Constructs gain 10
      *   stacks of Heat, they will become Molten, increasing their haste by
      *   100% and inflicting 1,885 to 2,115 Fire damage every 1 second to
      *   enemies within 7 yards. Molten Iron Constructs can be brought to
      *   water, which causes them to become Brittle and unable to perform any
      *   action for 20 seconds. Critical strike chance against Brittle Iron
      *   Constructs is increased by 50%. If a single attack deals more than
      *   5,000 damage to a Brittle Iron Construct, it will Shatter, inflicting
      *   18,850 to 21,150 Physical damage not mitigated by armor, to enemies
      *   within 10 yards. Shattering the Construct causes Ignis to lose a
      *   stack of Strength of the Creator.
      * Strength of the Creator - For every Iron Construct active and alive,
      *   Ignis gains 15% damage, stacking up to 99 times.
      */
 }
Beispiel #30
0
        public LadyDeathwhisper()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Lady Deathwhisper";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            // Health = Mana + Health
            // Mana Barrier, have to destroy mana before dps'g boss
            Health = new float[] { 3264800f + 3346800f, 11193600f + 13387200f, 3264800f + 6693600f, 13992000f + 26774400f };
            BerserkTimer = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60, };
            SpeedKillTimer = new int[] { 150, 300, 150, 300 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 3, 2, 3 };
            Min_Healers = new int[] { 2, 5, 3, 5 };
            #endregion
            #region Offensive
            //MaxNumTargets = new double[] { 2, 2, 2, 2 };
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Adds come 3 at a time, either 2 Adherents 1 Fanatic or 1 Adherent 2 Fanatics
                // 10 man - only 3 at a time
                // 25 man - 7 at a time (3 on left [2 fanatic, 1 adherent], 3 on right [1 fanatic, 2 adherent], 1 in the back [random between the two])
                // They will also randomly respawn as Reanimated or Mutated or Empowered
                this[i].Targets.Add(new TargetGroup()
                {
                    Frequency = new float[] { 60, 60, 45, 45 }[i],
                    Duration = 35 * 1000,
                    NumTargs = new float[] { 3, 7, 3, 7 }[i],
                    Chance = .5f, // phase 1 which lasts for about 50%
                    NearBoss = false,
                });
                // at least 1 add is reanimated to full health each round in Phase 1
                this[i].Targets.Add(new TargetGroup()
                {
                    Frequency = new float[] { 60, 60, 45, 45 }[i],
                    Duration = 35f * 1000,
                    NumTargs = 1f,
                    Chance = .5f * new float[] { 1 / 3, 1 / 7, 1 / 3, 1 / 7 }[i], // phase 1 which lasts for about 50%
                    NearBoss = false,
                });

                // Heroic version spawns adds (1 add on 10 man, 3 adds on 25 man); 50% of fight in Phase 2
                //          None of the adds are turned into Reanimated, Mutated, or Empowered mobs
                this[i].Targets.Add(new TargetGroup()
                {
                    Frequency = 45f, // Every 45 seconds and up for 35 sec before back on boss
                    Duration = 35f * 1000,
                    NumTargs = new float[] { 0, 0, 1, 3 }[i],
                    Chance = new float[] { 0, 0, .5f, .5f }[i], // only 1 phase has them and only in Heroic Mode
                    NearBoss = false,
                });

                // Melee attacks only in Phase 2
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // hits for about 11k in Normal 25 
                    DamagePerHit = ((BossHandler.StandardMeleePerHit[(int)this[i].Content] / 1.3f) / 1.3f),
                    MaxNumTargets = 1f,
                    AttackSpeed = this[i].BerserkTimer / ((this[i].BerserkTimer * .5f) / 2f),

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Shadow Bolt - Inflicts 7,438 to 9,562 Shadow damage to the current target.
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Shadow Bolt",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (7438 + 9562), (9188 + 11812), (9188 + 11812), (11375 + 14625) }[i] / 2f,
                    MaxNumTargets = 1f,
                    AttackSpeed = 4f,
                });

                // Frostbolt - Inflicts 40,950/44,850/50,700/58,500 to 43,050/47,150/53,330/61,500 Frost damage
                //           to the current target. Can be interrupted. 4 second Cast
                //      Only cast during Phase 2
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Frostbolt",
                    DamageType = ItemDamageType.Frost,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = new int[] { (40950 + 43050), (50700 + 53330), (44850 + 47150), (58500 + 61500) }[i] / 2f,
                    MaxNumTargets = 1f,
                    AttackSpeed = this[i].BerserkTimer / ((this[i].BerserkTimer * .5f) / 4f),
                    Interruptable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Frostbolt Volley - Inflicts 8550/10800/14400 to 10450/13200/17600 Frost damage to nearby enemies, reducing their movement speed by 30% for 4 sec.
                //      Only cast during Phase 2
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Frostbolt Volley",
                    DamageType = ItemDamageType.Frost,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (8550 + 10450), (10800 + 13200), (10800 + 13200), (14400 + 17600) }[i] / 2f,
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = this[i].BerserkTimer / ((this[i].BerserkTimer * .5f) / 20f),
                });

                // Death and Decay - Inflicts 4,500 Shadow damage every 1 second to enemies within the area of the spell. 
                //          The entire spell lasts 10 seconds.
                this[i].Attacks.Add(new DoT()
                {
                    Name = "Death and Decay",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    NumTicks = 10f,
                    TickInterval = 1f,
                    DamagePerTick = new int[] { 4500, 4500, 6000, 6000 }[i] * 0.25f, // 4.5k/6k per tick for 1 sec. 25% mod as people will be running away to take less damage
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 45f,
                });
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = 45f,
                    Duration = 4f * 1000f, // assume 4 seconds to move out
                    Chance = 1 / this[i].Max_Players,
                    Breakable = false,
                });

                // **** Add information **** \\
                // Cult Adherent/Empowered Adherent/Reanimated Adherent
                // Deathchill Bolt - Deals 8788 to 10212 Shadowfrost damage to an enemy target. 2 sec cast. 11563-13437 on Heroic
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Deathchill Bolt",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (6938 + 8062), (8788 + 10212), (8788 + 10212), (11563 + 13437) }[i] / 2f,
                    MaxNumTargets = 1f,
                    // Average uptime of the 2 second cast per round; * average number of casters per pull; for half the fight
                    AttackSpeed = ((new float[] { 60, 60, 45, 45 }[i] / (35f / 2f)) * new float[] { 1.5f, 3.5f, 1.5f, 3.5f }[i] * .5f) + ((new float[] { 60, 60, 45, 45 }[i] / (35f / 2f)) * new float[] { 0f, 0f, .5f, 1.5f }[i] * .5f),
                });

                // Cult Fanatic/Deformed Fanatic/Reanimated Fanatic
                // Necrotic Strike - Strikes an enemy with a cursed blade, dealing 70% of weapon damage to the target and inflicting
                //          a lasting malady that negates the next 14000 healing received. Instant. 20 sec duration. 20000 healing on Heroic 
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Necrotic Strike",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = ((BossHandler.StandardMeleePerHit[(int)this[i].Content] / 1.3f) / 1.3f) * .7f,
                    MaxNumTargets = 1f,
                    // Average uptime of the 20 second cd per round; * average number of fanatic per pull; for half the fight
                    AttackSpeed = ((new float[] { 60, 60, 45, 45 }[i] / (35f / 20f)) * new float[] { 1.5f, 3.5f, 1.5f, 3.5f }[i] * .5f) + ((new float[] { 60, 60, 45, 45 }[i] / (35f / 20f)) * new float[] { 0f, 0f, .5f, 1.5f }[i] * .5f),
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Shadow Cleave - Inflicts 15913 to 17587 Shadow damage to enemies in front of the attacker. 19000-21000 on Heroic (6 sec cooldown)
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Shadow Cleave",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = new int[] { (14250 + 15750), (15913 + 17587), (15913 + 17587), (19000 + 21000) }[i] / 2f,
                    MaxNumTargets = 1f,
                    // Average uptime of the 6 second cd per round; * average number of fanatic per pull; for half the fight
                    AttackSpeed = ((new float[] { 60, 60, 45, 45 }[i] / (35f / 6f)) * new float[] { 1.5f, 3.5f, 1.5f, 3.5f }[i] * .5f) + ((new float[] { 60, 60, 45, 45 }[i] / (35f / 6f)) * new float[] { 0f, 0f, .5f, 1.5f }[i] * .5f),

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                //  Vengeful Shades - Inflicts 19300 to 20700 Shadowfrost damage to an enemy. Normal; 1 shad in 10, 3 shades in 25; most raids don't move on normal
                //     in Heroic people will move since it hits multiple people within a 15/20 yard radius in 10 and 25 man respectfully.
                //     Dies within 10 seconds if it does not hit it's target.
                //     Cannot be targeted
                this[i].Targets.Add(new TargetGroup()
                {
                    Frequency = 30f,
                    Duration = 7f * 1000,
                    NumTargs = new float[] { 1, 3, 1, 3 }[i],
                    Chance = .5f, // phase 2 which lasts for about 50%
                    NearBoss = false,
                });
                // Vengeful Blast on Normal - Most raids don't have people run away from them since they only target 1 or 3 people in 10 or 25 man respectfully
                //    And just heal through the damage
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Vengeful Blast on Normal",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { (17853 + 19147), (19300 + 20700), 0, 0 }[i] / 2f,
                    MaxNumTargets = new float[] { 1, 3, 1, 3 }[i],
                    AttackSpeed = 30f,
                });
                // Vengeful Blast on Heroic - People run away from them on heroic since they damage all people within a 15 or 20 yard radius in 10 or 25 man respectfully
                //    if the vengeful spirit hits their intended target.
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Vengeful Blast on Heroic",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { 0, 0, (17370 + 18630), (23160 + 24840) }[i] / 2f,
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 30f,
                    // Interruptable if the person is successfully able to kit the vengeful Spirit for 7 seconds
                    Interruptable = true,
                });
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = 30f,
                    Duration = 7f * 1000,
                    Chance = new int[] { 0, 0, 1, 3 }[i] / (this[i].Max_Players - this[i].Min_Tanks),
                    Breakable = false,
                });
            }
            #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            // Dominate Mind - 1 target in 10 man heroic, and 25 normal; 3 targets in 25 heroic. Lasts 12 seconds; 40 second Cooldown
            for (int i = 0; i < 4; i++)
            {
                this[i].Stuns.Add(new Impedance()
                {
                    // First dominate mind is after 30 seconds, then every 40 seconds there-after
                    Frequency = this[i].BerserkTimer / ((this[i].BerserkTimer - 30f) / 40f),
                    Duration = 12f * 1000f,
                    Chance = new int[] { 0, (1 / (this[i].Max_Players - this[i].Min_Tanks)), (1 / (this[i].Max_Players - this[i].Min_Tanks)), (3 / (this[i].Max_Players - this[i].Min_Tanks)) }[i],
                    Breakable = false,
                });
            }
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             * Dark Empowerment - Empowers a random Adherent or Fanatic, causing them to deal area damage with spells. Also makes the target immune to interrupts.
             * Curse of Torpor - Afflicts an enemy target with a curse that increases ability cooldowns by 15 seconds. (ie an instant cast becomes a 15 second cd)
             * Frost Fever  - A disease dealing Frost damage every 3 seconds and reducing the target's melee and ranged attack 
             *          speed by 14% for 15 seconds. Instant 
             * Deathchill Blast  - Deals 11563 to 13437 Shadowfrost damage to all enemies within 10 yards of the target. 2 sec 
             *          cast. Only cast while empowered. 11563-13437 on Heroic 
             *          If everyone is away from add people should not take damage from this
             * Necrotic Strike - Strikes an enemy with a cursed blade, inflicting a lasting malady that negates the next 14000 healing received. 
             *          lasts 20 seconds; 20000 healing on Heroic 
             */
        }
Beispiel #31
0
        public GeneralVezax() {
            // If not listed here use values from defaults
            #region Info
            Name = "General Vezax";
            Instance = "Ulduar";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, BossHandler.TierLevels.T8_0, BossHandler.TierLevels.T8_5, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            Health = new float[] { 6275250f, 6763325f, 0, 0 };
            BerserkTimer = new int[] { 10 * 60, 1 * 60, 0, 0 };
            SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0 };
            InBackPerc_Melee = new double[] { 1.00f, 1.00f, 0, 0 };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0 };
            Max_Players = new int[] { 10, 25, 0, 0 };
            Min_Tanks = new int[] { 2, 3, 0, 0 };
            Min_Healers = new int[] { 2, 4, 0, 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 < 2; i++)
            {
                this[i].Attacks.Add(GenAStandardMelee(this[i].Content));
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 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 };
            #endregion
            /* TODO:
            * Aura of Despair - Prevents most mana regeneration methods. Melee attack speed is reduced by 20% for all raid members as well.
              Mana Regeneration

              Lifebloom, Aspect of the Viper, Shamanistic Rage, Judgements of the Wise (without the Replenishment component), Spiritual Attunement, Stormstrike/Improved Stormstrike all work at least partially.
              Hymn of Hope increases the mana pool of the targets, but does not regenerate mana.
            * Shadow Crash - Shoots a shadow missile towards a random target (preferring ranged), inflicting 11,310 to 12,690 Shadow damage to the target and anyone in 10 yd radius. A dark puddle spawns under the area of impact, increasing magical damage by 100%, decreasing casting speed by 100%, healing done and mana cost by 75%.
            * Mark of the Faceless - Applies a Mark of the Faceless to a random raid member (preferring ranged), causing them to drain 5,000 hit points every 1 second, for 10 seconds, from other nearby players. Vezax will heal for 20 times more health than he has drained (100,000 for every 5,000).
            * Searing Flames - Inflicts 13,875 to 16,125 Fire damage to everybody in the room, and reduces their armor by 75%. Can be interrupted.
            * Surge of Darkness - Increases Vezax's damage by 100%, but decreases his movement speed by 55%, for 10 seconds. Cast every 60-70 seconds.
            * Saronite Barrier - Reduces all damage taken by 99%. Cast if 6 Saronite Vapors spawn and not a single one of them is destroyed. Vezax will also summon a Saronite Animus. The Barrier disappears when the Animus dies.
            * Saronite Animus - Casts Profound Darkness frequently, which does 750 Shadow damage to the entire raid and increases the Shadow damage taken by 10%.
             */
        }
Beispiel #32
0
        public Festergut()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Festergut";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            Health = new float[] { 9412875f, 40440500f, 13666100f, 52293752f };
            BerserkTimer = new int[] { 5 * 60, 5 * 60, 5 * 60, 5 * 60, };
            SpeedKillTimer = new int[] { 150, 180, 180, 210 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 3, 5, 3, 5 };
            #endregion
            #region Offensive
            float inhalerotationlength = (30f * 4f) + (3.5f * 3f) + 3f;
            for (int i = 0; i < 4; i++)
            {
                #region Attacks
                // Inhale rotation consists of 4 x 30 second Gaseous Blight rotations, 3 x 3.5 second Inhale cast times, and 1 x 3 second Pungent Blight cast time
                // Melee
                // 0 Inhales
                this[i].Attacks.Add(new Attack
                {
                    Name = "Melee with 0 Inhales",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // hits for about 11k in 25 man
                    DamagePerHit = ((BossHandler.StandardMeleePerHit[(int)this[i].Content] / 1.3f) / 1.3f),
                    MaxNumTargets = 1f,
                    AttackSpeed = (inhalerotationlength / (30f / (2f / 1.1f))), // hits every 1.8 seconds for 30 seconds

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
                // 1 Inhale
                this[i].Attacks.Add(new Attack
                {
                    Name = "Melee with 1 Inhales",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // hits for about 14k in 25 man
                    DamagePerHit = (BossHandler.StandardMeleePerHit[(int)this[i].Content] / 1.3f),
                    MaxNumTargets = 1f,
                    AttackSpeed = (inhalerotationlength / (30f / (2f / 1.4f))), // hits every 1.45 seconds for 30 seconds

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
                // 2 inhales
                this[i].Attacks.Add(new Attack
                {
                    Name = "Melee with 2 Inhales",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // hits for about 19k in 25 man
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = (inhalerotationlength / (30f / (2f / 1.7f))),  // hits 1.17 seconds for 30 seconds

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
                // 3 inhales
                this[i].Attacks.Add(new Attack
                {
                    Name = "Melee with 3 Inhales",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // hits for about 25k in 25 man
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content] * 1.3f,
                    MaxNumTargets = 1f,
                    AttackSpeed = (inhalerotationlength / 30f),  // hits every second for 30 seconds

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Gaseous Blight—The Gaseous Plague inflicts 4,388 to 4,612 Shadow damage to all nearby players.
                //              (lasts 30 seconds + 1st inhale cast time [3.5 seconds])
                this[i].Attacks.Add(new DoT()
                {
                    Name = "Gaseous Blight with 0 inhales",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    TickInterval = 1f,
                    NumTicks = 33.5f, //lasts 30 seconds + 1st inhale cast time [3.5 seconds]
                    DamagePerTick = new int[] { (2925 + 3075), (4388 + 4612), (4388 + 4612), (6338 + 6662) }[i] / 2f,
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = inhalerotationlength,
                });

                // Gaseous Blight—(After 1 inhale) The Gaseous Plague inflicts 2,925 to 3,075 Shadow damage to all nearby players.
                //             (lasts 30 seconds + 2st inhale cast time [3.5 seconds]) (lasts 30 seconds + 2st inhale cast time [3.5 seconds])
                this[i].Attacks.Add(new DoT()
                {
                    Name = "Gaseous Blight with 1 inhales",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    TickInterval = 1f,
                    NumTicks = 33.5f, //lasts 30 seconds + 2st inhale cast time [3.5 seconds]
                    DamagePerTick = (new int[] { (1950 + 2050), (2925 + 3075), (2925 + 3075), (4388 + 4612) }[i] / 2f) * .25f, // assume 25% shadow reduction
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = inhalerotationlength,
                });
                // Gaseous Blight—(After 2 inhale ) The Gaseous Plague inflicts 1,463 to 1,537 Shadow damage to all nearby players. 
                //             (lasts 30 seconds + Pungent Blight cast time [3 seconds]) (assume 50% shadow reduction)
                this[i].Attacks.Add(new DoT()
                {
                    Name = "Gaseous Blight with 2 inhales",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    TickInterval = 1f,
                    NumTicks = 33f, //lasts 30 seconds + Pungent Blight cast time [3 seconds]
                    DamagePerTick = (new int[] { (1463 + 1537), (1950 + 2050), (1950 + 2050), (2925 + 3075) }[i] / 2f) * .5f, // assume 50% shadow reduction
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = inhalerotationlength,
                });
                // Pungent Blight—Violently releases the Gaseous Blight, dealing 48,750 to 51,250 Shadow damage to all enemy players, 
                //                 releasing the deadly Blight back into the room. ( inhalerotationlength cd ) (assume 75% shadow reduction)
                this[i].Attacks.Add(new Attack
                {
                    Name = "Pungent Blight",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = (new int[] { (42900 + 45100), (63375 + 66625), (48750 + 51250), (73125 + 76875) }[i] / 2f) * .75f, // assume 75% shadow reduction
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = inhalerotationlength,
                });
                // Vile Gas—Inflicts a Vile plague in targeted area, inflicting 4,875 to 5,125 damage every 2 seconds for 6 seconds. The plague causes the infected targets to vomit uncontrollably, inflicting 3,900 to 4,100 damage to nearby allies. Does not affect melee if there are at least 3 ranged players (2 on 10-man; 3 on 25-man).
                this[i].Attacks.Add(new DoT()
                {
                    Name = "Vile Gas",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    TickInterval = 2f,
                    NumTicks = 3f, //damage every 2 seconds for 6 seconds
                    DamagePerTick = new int[] { (3900 + 4100), (4875 + 5125), (4875 + 5125), (6338 + 6662) }[i] / 2f, // assume everyone is spread out 8 yards and doesn't get hit with aoe from attack
                    MaxNumTargets = new float[] { 2f, 3f, 2f, 3f }[i],
                    AttackSpeed = 20f,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RangedDPS] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffAndTertTankHealer] = true;
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RaidHealer] = true;
                this[i].Stuns.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 6f * 1000f,
                    Chance = 1f / (this[i].Max_Players - this[i].Min_Tanks),
                    Breakable = false,
                });
                // Gas Spore - inflicting 1,950 to 2,050 Shadow damage every 1 second for 6 seconds to any players within 8 yards range. 
                //                      Players who survive the DoT will become Inoculated, which decreases Shadow damage taken by 25%, 
                //                      stacking up to 3 times. Pungent Blight resets the stack of Inoculated.
                this[i].Attacks.Add(new DoT
                {
                    Name = "Gas Spore",
                    DamageType = ItemDamageType.Shadow,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    TickInterval = 1f,
                    NumTicks = 6f, //damage every 1 second for 6 seconds
                    DamagePerTick = new int[] { (1950 + 2050), (1950 + 2050), (1950 + 2050), (1950 + 2050) }[i] / 2f,
                    MaxNumTargets = 1f,
                    AttackSpeed = 40f, // 40 second cooldown, first spore after 12 seconds
                });
                // Some people will have to move, Tanks don't and some will not (aka melee).
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 3f * 1000f,
                    Chance = 1f / (this[i].Max_Players - this[i].Min_Tanks),
                    Breakable = true,
                });
                // Gastric Bloat—Inflicts 9,750 to 10,250 Nature damage to the target. Damage done by affected increased by 
                //               10% per application. Causes Gastric Explosion, immediately killing the player, if it reaches 10 stacks.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Gastric Bloat",
                    DamageType = ItemDamageType.Nature,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = new int[] { (9750 + 10250), (12188 + 12812), (12188 + 12812), (14625 + 15375) }[i] / 2f,
                    MaxNumTargets = 1f,
                    AttackSpeed = 11f,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
                // Gastric Explosion—Immediately kills the affected player, and does 29,250 to 30,750 shadow damage to all players
                //                    in a 10 yard range. 
                this[i].Attacks.Add(new Attack
                {
                    Name = "Gastric Explosion on Tank",
                    DamageType = ItemDamageType.Nature,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = 1f,
                    DamageIsPerc = true,
                    MaxNumTargets = 1f,
                    AttackSpeed = 100f,
                    Interruptable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
                // Assuming the explosion does go off, it would most likely explode near melee
                this[i].Attacks.Add(new Attack
                {
                    Name = "Gastric Explosion on Melee",
                    DamageType = ItemDamageType.Nature,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = new int[] { (29250 + 30750), (29250 + 30750), (48750 + 51250), (48750 + 51250) }[i] / 2f,
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 100f,
                    Interruptable = true,
                });
                // Malleable Goo - (Heroic Only) Inflicts 14625/19500 to 15375/20500 damage in a 5 yard radius and slows casting
                //                              and attack speed by 250% for 20 sec.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Malleable Goo",
                    DamageType = ItemDamageType.Nature,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    DamagePerHit = new int[] { 0, (14625 + 15375), 0, (19500 + 20500) }[i] / 2f,
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 10f,
                    Interruptable = true,
                });
                // run away if Malleable Goo targets the spot/melee that your in; estimate 2 seconds to move away 5 yards
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 2f * 1000f,
                    Chance = 1f / this[i].Max_Players,
                    Breakable = false,
                });
            }
                #endregion
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #33
0
        public FactionChampions()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Faction Champions";
            Instance = "Trial of the Crusader";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            // Since clothies have lower health than non-clothies, I'm averaging out everyone's health combined then multiplying by the number of champions
            // Clothies (4) - Mage, Warlock, Shadow Priest, Disc Priest
            // Non-Clothies (10) - DK, Boomkin, Resto Druid, Hunter, Holy Pally, Ret Pally, Rogue, Resto Sham, Enh Sham, Warrior
            Health = new float[] { ((322560 * 4) + (403200 * 10)) * 6 / 14, ((1935360 * 4) + (2419000 * 10)) * 10 / 14, ((483840 * 4) + (604800 * 10)) * 6 / 14, ((2580480 * 4) + (3225600 * 10)) * 10 / 14 };
            BerserkTimer = new int[] { 19 * 60, 19 * 60, 19 * 60, 19 * 60 };
            SpeedKillTimer = new int[] { 5 * 60, 5 * 60, 5 * 60, 5 * 60 };
            InBackPerc_Melee = new double[] { 0.95f, 0.95f, .95f, .95f };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 2, 2, 2 };
            Min_Healers = new int[] { 2, 4, 2, 5 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed = 2f,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 4; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            /* TODO:
             *  - Double Check clothies 10man Heroic Health
             */
        }
Beispiel #34
0
        public LordMarrowgar()
        {
            // If not listed here use values from defaults
            #region Info
            Name = "Lord Marrowgar";
            Instance = "Icecrown Citadel";
            Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T10_0, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_5, BossHandler.TierLevels.T10_9, };
            Version = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10H, BossHandler.Versions.V_25H, };
            #endregion
            #region Basics
            Health = new float[] { 6972500f, 23706500f, 10458750f, 31376250f };

            BerserkTimer = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60, };
            SpeedKillTimer = new int[] { 120, 180, 120, 150 };
            Max_Players = new int[] { 10, 25, 10, 25 };
            Min_Tanks = new int[] { 2, 3, 2, 3 };
            Min_Healers = new int[] { 2, 5, 3, 5 };
            // 90 seconds behind the boss, 20/30 seconds without during bone storm
            //      110 seconds rotation during normal; 120 seconds rotation during heroic
            InBackPerc_Melee = new double[] { 70 / 90, 70 / 90, 60 / 90, 60 / 90 };
            InBackPerc_Ranged = new double[] { 70 / 90, 70 / 90, 60 / 90, 60 / 90 };

            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name = "Melee",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    // Hits for about 18k on normal 25
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    // Only performs this attack during non-Bone Storm phases
                    AttackSpeed = new float[] { (90 / (70 / 2)), (90 / (70 / 2)), (90 / (60 / 2)), (90 / (60 / 2)) }[i],

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Saber Lash - Inflicts 200% weapon damage split evenly between the target and its 2 nearest allies.
                this[i].Attacks.Add(new Attack
                {
                    Name = "Saber Lash",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = this[i].Min_Tanks,
                    // Only performs this attack during non-Bone Storm phases
                    AttackSpeed = new float[] { (90 / (70 / 2)), (90 / (70 / 2)), (90 / (60 / 2)), (90 / (60 / 2)) }[i],

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                    = true;

                // Coldflame - Inflicts 6,000 Frost damage every 1 second for 3 seconds to anyone caught by the moving line of frost.
                this[i].Attacks.Add(new DoT
                {
                    Name = "Coldflame",
                    DamageType = ItemDamageType.Frost,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    NumTicks = 3,
                    TickInterval = 1,
                    DamagePerTick = new int[] { 6000, 8000, 9000, 11000 }[i],
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 6.0f,
                });

                // Bone Spike Graveyard
                //   Hurls a spike at a random player, impaling all players between the boss and the target on Bone Spikes,
                //   inflicting 9,000 direct Physical damage, and additional 10% health as damage every 1 second until the
                //   spike is destroyed.
                // The player that is spiked is considered unbreakably stunned
                this[i].Attacks.Add(new DoT
                {
                    Name = "Bone Spike Graveyard",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_RANGED,
                    NumTicks = 3f, // Assuming you will be broken out within 3 sec
                    DamagePerHit = 9000f,
                    DamagePerTick = new float[] { 0.10f, 0.10f, 0.10f, 0.10f }[i],
                    DamageIsPerc = true,
                    MaxNumTargets = new int[] { 1, 1, 3, 3 }[i],
                    // Cooldown is every 18 seconds. Normal 10 or 25 does not get cast during bone storm,
                    //      Heroic 10 and 25 bone spike continues during bone storm
                    AttackSpeed = new float[] { (float)(90 / 4), (float)(90 / 4), 18, 18 }[i],
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MeleeDPS]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RangedDPS]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTankHealer]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffAndTertTankHealer]
                    = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.RaidHealer]
                    = true;
                this[i].Targets.Add(new TargetGroup()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Chance = this[i].Attacks[this[i].Attacks.Count - 1].MaxNumTargets / (this[i].Max_Players - this[i].Min_Tanks),
                    Duration = 3f * 1000f,
                    NumTargs = this[i].Attacks[this[i].Attacks.Count - 1].MaxNumTargets,
                    NearBoss = false,
                });
                this[i].Stuns.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = 3f * 1000f,
                    Chance = this[i].Attacks[this[i].Attacks.Count - 1].MaxNumTargets / (this[i].Max_Players - this[i].Min_Tanks),
                    Breakable = false,
                });

                // Bone Storm
                //   Inflicts 6,000 Physical damage every 2 seconds to players caught in the Bone Storm.
                //   The entire storm lasts ~20 seconds.
                this[i].Attacks.Add(new DoT
                {
                    Name = "Bone Storm",
                    DamageType = ItemDamageType.Physical,
                    AttackType = ATTACK_TYPES.AT_AOE,
                    NumTicks = new int[] { 20, 20, 30, 30 }[i] / 2f,
                    TickInterval = 2f,
                    DamagePerTick = new int[] { 6000, 12000, 12000, 14000 }[i] * 0.25f, // 6k per tick for 2 sec. 25% mod as people will be running away to take less damage
                    MaxNumTargets = this[i].Max_Players,
                    AttackSpeed = 90f,

                    Dodgable = true,
                    Missable = true,
                    Parryable = true,
                    Blockable = true,
                });
                this[i].Moves.Add(new Impedance()
                {
                    Frequency = this[i].Attacks[this[i].Attacks.Count - 1].AttackSpeed,
                    Duration = new int[] { 20, 30, 20, 30 }[i] * 1000f,
                    Chance = 1f,
                    Breakable = false,
                });
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            //Moves;
            //Stuns;
            //Fears;
            //Roots;
            //Disarms;
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0.00f, 0.00f };
            #endregion
            /* TODO:
             */
        }
Beispiel #35
0
        public TwinValkyr()
        {
            // If not listed here use values from defaults
            #region Info
            Name     = "Twin Val'kyr";
            Instance = "Trial of the Crusader";
            Content  = new BossHandler.TierLevels[] { BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, BossHandler.TierLevels.T9_0, BossHandler.TierLevels.T9_5, };
            Version  = new BossHandler.Versions[] { BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, BossHandler.Versions.V_10N, BossHandler.Versions.V_25N, };
            #endregion
            #region Basics
            // Composed of Eydis Darkbane and Combat Fjola Lightbane; both share the same health pool
            Health            = new float[] { 5790000, 27980000, 8376000, 39000000 };
            BerserkTimer      = new int[] { 10 * 60, 10 * 60, 10 * 60, 10 * 60 };
            SpeedKillTimer    = new int[] { 3 * 60, 3 * 60, 3 * 60, 3 * 60 };
            InBackPerc_Melee  = new double[] { 0.95f, 0.95f, .95f, .95f };
            InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0.00f, 0.00f };
            Max_Players       = new int[] { 10, 25, 10, 25 };
            Min_Tanks         = new int[] { 2, 2, 2, 2 };
            Min_Healers       = new int[] { 2, 4, 2, 5 };
            #endregion
            #region Offensive
            #region Attacks
            for (int i = 0; i < 4; i++)
            {
                // Melee
                this[i].Attacks.Add(new Attack()
                {
                    Name          = "Melee",
                    DamageType    = ItemDamageType.Physical,
                    AttackType    = ATTACK_TYPES.AT_MELEE,
                    DamagePerHit  = BossHandler.StandardMeleePerHit[(int)this[i].Content],
                    MaxNumTargets = 1f,
                    AttackSpeed   = 2f,

                    Dodgable  = true,
                    Missable  = true,
                    Parryable = true,
                    Blockable = true,

                    IsTheDefaultMelee = true,
                });
                this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.MainTank]
                        = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.OffTank]
                        = this[i].Attacks[this[i].Attacks.Count - 1].AffectsRole[PLAYER_ROLES.TertiaryTank]
                        = true;
            }
            #endregion
            #endregion
            #region Defensive
            Resist_Physical = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Frost    = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Fire     = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Nature   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Arcane   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Shadow   = new double[] { 0.00f, 0.00f, 0, 0 };
            Resist_Holy     = new double[] { 0.00f, 0.00f, 0, 0 };
            #endregion
            #region Impedances
            for (int i = 0; i < 4; i++)
            {
                //Moves;
                //Stuns;
                //Fears;
                //Roots;
                //Disarms;
            }
            TimeBossIsInvuln = new float[] { 0.00f, 0.00f, 0, 0 };
            #endregion

            /* TODO:
             */
        }