本文整理汇总了C#中Attack.SetAffectsRoles_Tanks方法的典型用法代码示例。如果您正苦于以下问题:C# Attack.SetAffectsRoles_Tanks方法的具体用法?C# Attack.SetAffectsRoles_Tanks怎么用?C# Attack.SetAffectsRoles_Tanks使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Attack
的用法示例。
在下文中一共展示了Attack.SetAffectsRoles_Tanks方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Alizabal
public Alizabal()
{
// If not listed here use values from defaults
#region Info
Name = "Alizabal, Mistress of Hate";
Instance = "Baradin Hold";
Content = new BossHandler.TierLevels[] { BossHandler.TierLevels.T13_10, BossHandler.TierLevels.T13_25, BossHandler.TierLevels.T13_10H, BossHandler.TierLevels.T13_25H, BossHandler.TierLevels.T13_LFR };
#endregion
#region Basics
Health = new float[] { 25166000f, 80900000f, 0, 0, 0 };
MobType = (int)MOB_TYPES.DEMON;
// 5 minute Berserk timer
BerserkTimer = new int[] { 5 * 60, 5 * 60, 0, 0, 0 };
SpeedKillTimer = new int[] { 3 * 60, 3 * 60, 0, 0, 0 };
InBackPerc_Melee = new double[] { 0.95f, 0.95f, 0, 0, 0 };
InBackPerc_Ranged = new double[] { 0.00f, 0.00f, 0, 0, 0 };
Max_Players = new int[] { 10, 25, 0, 0, 0 };
Min_Tanks = new int[] { 2, 2, 0, 0, 0 };
Min_Healers = new int[] { 3, 5, 0, 0, 0 };
TimeBossIsInvuln = new float[] { 5f * 15f, 5f * 15f, 0, 0, 0 };
#endregion
#region The Phases
for (int i = 0; i < 2; i++)
{
Phase Phase1 = new Phase() { Name = "Phase 1: Soaking" };
Phase Phase2 = new Phase() { Name = "Phase 2: Blade Dance" };
#region MT and OT Melee Swapping
// MT and OT tank swap
// Each should take half of the total damage
// does not melee during Firestorm
Attack MTMelee = new Attack
{
Name = "MT Melee",
AttackType = ATTACK_TYPES.AT_MELEE,
IsTheDefaultMelee = true,
DamageType = ItemDamageType.Physical,
DamagePerHit = BossHandler.StandardMeleePerHit[(int)Content[i]],
MaxNumTargets = 1f,
AttackSpeed = 5f,
IsDualWielding = true,
};
MTMelee.AffectsRole[PLAYER_ROLES.MainTank] = true;
Phase1.Attacks.Add(MTMelee);
Attack OTMelee = MTMelee.Clone();
OTMelee.Name = "OT Melee";
OTMelee.AffectsRole[PLAYER_ROLES.MainTank] = false;
OTMelee.AffectsRole[PLAYER_ROLES.OffTank] = true;
Phase1.Attacks.Add(OTMelee);
#endregion
#region Skewer
// Alizabal skewers her current target, stunning them. In addition, Skewer inflicts 20,000 damage
// every second and increases damage taken by 100%.
// http://ptr.wowhead.com/spell=104936
// Tanks switch every 10 seconds so minimize any extra damage the tank gets while stunned.
// TODO: double check attack speed of the attack
#region Main Attack
Attack SkewerMainTank = new Attack
{
Name = "Skewer",
SpellID = 104936,
DamageType = ItemDamageType.Physical,
AttackType = ATTACK_TYPES.AT_MELEE,
DamagePerTick = (18000f + 22000f) / 2f,
IsDoT = true,
Duration = 8f,
TickInterval = 1f,
MaxNumTargets = 1f,
// Based on early videos, it appears that the boss applies this every 20 second per tank
AttackSpeed = 40f,
};
SkewerMainTank.SetUnavoidable();
SkewerMainTank.SetAffectsRoles_Tanks();
Phase1.Attacks.Add(SkewerMainTank);
#endregion
#region Stun
Impedance SkewerMTImpedance = new Impedance
{
Name = "Skewer Stun",
Chance = 1f,
Duration = SkewerMainTank.Duration,
Frequency = SkewerMainTank.AttackSpeed,
};
SkewerMTImpedance.SetAffectsRoles_Tanks();
Phase1.Stuns.Add(SkewerMTImpedance);
#endregion
#region Increased Damage
BuffState SkewerMTBuffState = new BuffState
{
Name = "Skewer Increased Damage Taken",
Chance = 1f,
Duration = SkewerMainTank.Duration * 1000f,
Frequency = SkewerMainTank.AttackSpeed,
Breakable = false,
Stats = new Stats() { DamageTakenReductionMultiplier = -1f },
};
//.........这里部分代码省略.........
示例2: Ragnaros
//.........这里部分代码省略.........
{
Name = "Wrath of Ragnaros",
AttackSpeed = 30f,
AttackType = ATTACK_TYPES.AT_AOE,
DamageType = ItemDamageType.Fire,
DamagePerHit = new float[] { (43875f + 46125f), (43875f + 46125f), (62156f + 65343f), (62156f + 65343f), 0f }[i] / 2f,
MaxNumTargets = new float[] { 1f, 3f, 1f, 3f, 0f }[i],
SpellID = new float[] { 98263, 100113, 100114, 100115, 0 }[i],
};
WrathofRagnaros.SetAffectsRoles_Healers();
WrathofRagnaros.AffectsRole[PLAYER_ROLES.RangedDPS] = true;
ByFirebePurged.Attacks.Add(WrathofRagnaros);
#endregion
#region Hand of Ragnaros
/* Ragnaros inflicts 37659 to 39591 Fire damage to all enemies within 55 yards, knocking them
* back.*/
// 10 man - http://ptr.wowhead.com/spell=98237
// 25 man - http://ptr.wowhead.com/spell=100383
// 10 man heroic - http://ptr.wowhead.com/spell=100384
// 25 man heroic - http://ptr.wowhead.com/spell=100387
// Only affects Melee and Tanks
Attack HandofRagnaros = new Attack
{
Name = "Hand of Ragnaros",
AttackSpeed = 25f,
AttackType = ATTACK_TYPES.AT_AOE,
DamageType = ItemDamageType.Fire,
DamagePerHit = new float[] { (21937f + 23062f), (21937f + 23062f), (33150f + 34850f), (33150f + 34850f), 0f }[i] / 2f,
MaxNumTargets = Max_Players[i],
SpellID = new float[] { 98237, 100383, 100384, 100387, 0 }[i],
};
HandofRagnaros.AffectsRole[PLAYER_ROLES.MeleeDPS] = true;
HandofRagnaros.SetAffectsRoles_Tanks();
ByFirebePurged.Attacks.Add(HandofRagnaros);
SulfuaswillbeYourEnd.Attacks.Add(HandofRagnaros);
BegoneFrommyRealm.Attacks.Add(HandofRagnaros);
#endregion
#region Magma Trap
/*Ragnaros periodically forms a Magmaw Trap at a random player's location. The Magma Trap
* persists for the duration of the battle, and will trigger when stepped on, causing a Magma Trap
* Eruption.*/
// http://ptr.wowhead.com/spell=98164
// damage - http://ptr.wowhead.com/spell=98170
// summons after damage - http://ptr.wowhead.com/npc=53086
// Normal we are popping them immediatly on spawn
// On Heroic we need to wait 45 seconds before popping the next trap.
// That means on the bear minimum, we need to pop 4 traps in Phase 1 and 3 traps in phase 2
#region Magma Trap Eruption
/* When triggered, a Magma Trap erupts for 75318 to 79182 Fire damage to all enemies
* within the Firelands, and violently knocking the player who tripped the Magma Trap into the air.
*
* *Heroic* An enemy that triggers a Magma Trap will take 50% additional fire damage from the Magma
* Trap Eruption for 45 sec. Stacks.*/
// This means we cannot pop the next trap until the debuf wears off or 45 second cooldown
// This debuff ONLY increases the damage of your next Magma Trap damage, not overall fire damage
/* Eruption
* 10 man - http://ptr.wowhead.com/spell=98175
* 25 man - http://ptr.wowhead.com/spell=100106
* 10 man heroic - http://ptr.wowhead.com/spell=100107
* 25 man heroic - http://ptr.wowhead.com/spell=100108 */
// Timers are adjusted by 16 seconds
Attack MagmaTrapEruption = new Attack
{
示例3: LordRhyolith
//.........这里部分代码省略.........
{
Name = "Summon Fragment or Spark",
DamagePerHit = new float[] { 15000, 15000, 15000, 15000, 0 }[i],
AttackSpeed = 22.5f,
IsDoT = false,
AttackType = ATTACK_TYPES.AT_AOE,
DamageType = ItemDamageType.Fire,
IsFromAnAdd = true,
};
SummonAdds.SetUnavoidable();
SummonAdds.SetAffectsRoles_All();
ObsidianForm.Attacks.Add(SummonAdds);
#region Fragments of Rhyolith
// Fragments of Rhyolith have low Heath. If not slain within 30 sec, they inflict
// damage equal to their current health to a random player.
// In 25 person raids, they deal damage equal to half their current health to a
// random player.
// Fragments should not be damaging anyone besides the tank tanking them.
// Meaning they should be killed within the 30 second timeframe.
// 5 x Fragments to be tanked & DPS'd down
TargetGroup Fragments = new TargetGroup
{
Name = "Fragments of Rhyolith",
NumTargs = 5,
LevelOfTargets = 85,
Frequency = 45f,
Duration = 30f * 1000f,
TargetID = 52620,
NearBoss = true,
};
Fragments.SetAffectsRoles_DPS();
Fragments.SetAffectsRoles_Tanks();
ObsidianForm.Targets.Add(Fragments);
Attack FragmentMelee = new Attack
{
Name = "Melee from Fragment Adds",
DamagePerHit = BossHandler.StandardMeleePerHit[(int)Content[i]] * 0.1f,
AttackSpeed = 2.5f / 5f, // 5 mobs hitting every 2.5 secs.
AttackType = ATTACK_TYPES.AT_MELEE,
DamageType = ItemDamageType.Physical,
IsFromAnAdd = true,
};
FragmentMelee.SetAffectsRoles_Tanks();
ObsidianForm.Attacks.Add(FragmentMelee);
#endregion
#region Spark of Rhyolith
// 1 x Spark to be tanked & DPS'd down.
// Sparks should not be up with more than 10 stacks of Infernal Rage
TargetGroup Spark = new TargetGroup
{
Name = "Spark of Rhyolith",
NumTargs = 1,
LevelOfTargets = 85,
Frequency = 70f,
Duration = 5f * 10f * 1000f,
TargetID = 53211,
NearBoss = false,
};
Spark.SetAffectsRoles_DPS();
Spark.SetAffectsRoles_Tanks();
ObsidianForm.Targets.Add(Spark);
示例4: Alysrazor
//.........这里部分代码省略.........
FlightofFlamesPart2.Targets.Add(WestVoraciousHatchling);
}
else
FireStormPhase.Targets.Add(WestVoraciousHatchling);
TargetGroup EastVoraciousHatchling = WestVoraciousHatchling.Clone();
EastVoraciousHatchling.Name = "East Voracious Hatchling";
EastVoraciousHatchling.TargetID = 53509;
EastVoraciousHatchling.AffectsRole[PLAYER_ROLES.MainTank] = false;
EastVoraciousHatchling.AffectsRole[PLAYER_ROLES.OffTank] = true;
if (i < 2)
{
FlightofFlames.Targets.Add(EastVoraciousHatchling);
FlightofFlamesPart2.Targets.Add(EastVoraciousHatchling);
}
else
FireStormPhase.Targets.Add(EastVoraciousHatchling);
Attack VoraciousHatchlingMelee = new Attack
{
Name = "Voracious hatchling Melee",
DamagePerHit = BossHandler.StandardMeleePerHit[(int)Content[i]],
AttackSpeed = 1f,
AttackType = ATTACK_TYPES.AT_MELEE,
DamageType = ItemDamageType.Physical,
IsFromAnAdd = true,
MaxNumTargets = 1f,
Missable = true,
Parryable = true,
Dodgable = true,
Blockable = true,
IsTheDefaultMelee = true,
};
VoraciousHatchlingMelee.SetAffectsRoles_Tanks();
if (i < 2)
{
FlightofFlames.Attacks.Add(VoraciousHatchlingMelee);
FlightofFlamesPart2.Attacks.Add(VoraciousHatchlingMelee);
}
else
FireStormPhase.Attacks.Add(VoraciousHatchlingMelee);
#region Imprinted
/* Upon hatchling, Voracious Hatchlings become imprinted on the nearest enemy. The hatchling
* will only attack that target, but the target gains 1000% additional damage against the
* hatchling.*/
// http://ptr.wowhead.com/spell=99389; alt - http://ptr.wowhead.com/spell=100359
WestVoraciousHatchling.AffectsRole[PLAYER_ROLES.MainTank] = true;
EastVoraciousHatchling.AffectsRole[PLAYER_ROLES.OffTank] = true;
BuffState Imprint = new BuffState
{
Name = "Imprint",
Frequency = WestVoraciousHatchling.Frequency,
Duration = WestVoraciousHatchling.Duration,
Chance = 1f,
Breakable = false,
Stats = new Stats() { BonusDamageMultiplier = 10f },
};
Imprint.SetAffectsRoles_Tanks();
if (i < 2)
{
FlightofFlames.BuffStates.Add(Imprint);
FlightofFlamesPart2.BuffStates.Add(Imprint);
}
else
FireStormPhase.BuffStates.Add(Imprint);