public override void Initialize() { WaitVars = new WaitLoops(0, 3, true); Cost = 122; Range = 45; Priority = SkillPriority.High; PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast); PreCast.Criteria += (s) => !Hotbar.HasDebuff(SNOPower.Succubus_BloodStar); ClusterConditions.Add(new SkillClusterConditions(4d, 45f, 4, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: Range, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal | TargetProperties.Fast)); SingleUnitCondition.Add(new UnitTargetConditions { TrueConditionFlags = TargetProperties.None, Criteria = (unit) => FunkyGame.Hero.dCurrentEnergyPct > 0.9d, //Distance = Range, FalseConditionFlags = TargetProperties.LowHealth, }); FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial; }
public override void Initialize() { WaitVars = new WaitLoops(1, 1, true); Cost = 250; Range = RuneIndex == 4 ? 20 : 40; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy | SkillPrecastFlags.CheckCanCast)); PreCast.Criteria += (s) => !Hotbar.HasDebuff(SNOPower.Succubus_BloodStar); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: Range, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal | TargetProperties.Fast)); //Any unit when our energy is greater than 90%! SingleUnitCondition.Add(new UnitTargetConditions { TrueConditionFlags = TargetProperties.None, Criteria = (unit) => FunkyGame.Hero.dCurrentEnergyPct > 0.9d, MaximumDistance = Range, FalseConditionFlags = TargetProperties.LowHealth, }); ClusterConditions.Add(new SkillClusterConditions(4d, RuneIndex == 4 ? 20f : 40f, 2, true)); FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial; }
public override void Initialize() { FullMarauderSetBonus = Equipment.CheckLegendaryItemCount(LegendaryItemTypes.EmbodimentoftheMarauder, 6); BombadiersRucksack = Equipment.CheckLegendaryItemCount(LegendaryItemTypes.BombadiersRucksack); WaitVars = new WaitLoops(0, 0, true); Cost = 30; Range = 55; Priority = SkillPriority.High; PreCast = new SkillPreCast { Flags = SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast, }; PreCast.Criteria += skill => FunkyGame.Targeting.Cache.Environment.HeroPets.DemonHunterSentry < SentryMax(); PreCast.CreatePrecastCriteria(); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, Range, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); //Any unit when our energy is greater than 90%! SingleUnitCondition.Add(new UnitTargetConditions { TrueConditionFlags = TargetProperties.None, Criteria = (unit) => FunkyGame.Hero.dCurrentEnergyPct > (FullMarauderSetBonus ? 0.5d : 0.9d), MaximumDistance = Range, FalseConditionFlags = TargetProperties.LowHealth, }); ClusterConditions.Add(new SkillClusterConditions(6d, Range, 3, true)); FcriteriaCombat = (u) => FunkyGame.Targeting.Cache.Environment.HeroPets.DemonHunterSentry < SentryMax(); }
public override void Initialize() { if (RuneIndex != 4) { Cooldown = 20000; } Range = 49; Cost = RuneIndex == 4 ? 40 : 0; Priority = SkillPriority.High; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); //Fires of Heaven (Straight Line Fire) ClusterConditions.Add(RuneIndex == 4 ? new SkillClusterConditions(5d, 45f, 3, true) : new SkillClusterConditions(8d, 45f, 4, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); //Fire of Heaven (No CD!) if (RuneIndex == 4) { SingleUnitCondition.Add(new UnitTargetConditions { TrueConditionFlags = TargetProperties.None, Criteria = (unit) => FunkyGame.Hero.dCurrentEnergyPct > 0.90d, FalseConditionFlags = TargetProperties.LowHealth | TargetProperties.Weak, }); } }
public override void Initialize() { WaitVars = new WaitLoops(0, 1, true); Cost = 10; if (RuneIndex != 4) { IsDestructiblePower = true; Range = 50; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy)); ClusterConditions.Add(new SkillClusterConditions(4d, 40, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 50, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial && ((!Hotbar.HasPower(SNOPower.DemonHunter_ClusterArrow)) || LastUsedMilliseconds >= 110000); } else { //Shuriken Cloud _executiontype = SkillExecutionFlags.Buff; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); Priority = SkillPriority.High; IsBuff = true; FcriteriaBuff = () => !Hotbar.HasBuff(SNOPower.DemonHunter_Chakram); FcriteriaCombat = (u) => !Hotbar.HasBuff(SNOPower.DemonHunter_Chakram); } }
public override void Initialize() { WaitVars = new WaitLoops(0, 1, true); Cost = RuneIndex == 3 ? 10 : 20; Range = 50; IsChanneling = true; IsDestructiblePower = true; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); ClusterConditions.Add(new SkillClusterConditions(10d, 45f, 2, true)); FcriteriaCombat = (u) => { if (FunkyGame.Hero.Class.bWaitingForSpecial) { return(false); } var isChanneling = (IsFiring || LastUsedMilliseconds < 450); //If channeling, check if energy is greater then 10.. else only start when energy is at least -40- return((isChanneling && FunkyGame.Hero.dCurrentEnergy > 6) || (FunkyGame.Hero.dCurrentEnergy > 40) && (!FunkyGame.Hero.Class.bWaitingForSpecial || FunkyGame.Hero.dCurrentEnergy >= FunkyGame.Hero.Class.iWaitingReservedAmount)); }; }
public override void Initialize() { FullMarauderSetBonus = Equipment.CheckLegendaryItemCount(LegendaryItemTypes.EmbodimentoftheMarauder, 6); Cost = 50; Range = 50; Priority = SkillPriority.Medium; PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: Range, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); ClusterConditions.Add(new SkillClusterConditions(7d, Range, 3, true)); //Any unit when our energy is greater than 90%! SingleUnitCondition.Add(new UnitTargetConditions { TrueConditionFlags = TargetProperties.None, Criteria = (unit) => FunkyGame.Hero.dCurrentEnergyPct > (FullMarauderSetBonus ? 0.5d : 0.9d), MaximumDistance = Range, FalseConditionFlags = TargetProperties.LowHealth, }); FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial; }
public override void Initialize() { //Runeindex 2 == Sticky Trap! if (RuneIndex == 2) { ExecutionType = SkillExecutionFlags.Target | SkillExecutionFlags.ClusterTarget; } WaitVars = new WaitLoops(1, 1, true); Cost = 30; Range = 40; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckRecastTimer | SkillPrecastFlags.CheckEnergy)); if (RuneIndex == 2) //sticky trap on weak non-full HP units! { SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.Weak, falseConditionalFlags: TargetProperties.FullHealth)); } else { SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.RareElite)); } ClusterConditions.Add(new SkillClusterConditions(6d, 45f, 2, true)); FcriteriaCombat = (u) => FunkyGame.Targeting.Cache.Environment.HeroPets.DemonHunterSpikeTraps < (Hotbar.PassivePowers.Contains(SNOPower.DemonHunter_Passive_CustomEngineering) ? 6 : 3); }
public override void Initialize() { Range = 49; Cost = 20; Priority = SkillPriority.Medium; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); ClusterConditions.Add(new SkillClusterConditions(10d, 35f, 3, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, Range, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); //Use on any unit with Gyrfalcons Foote equipped. if (Equipment.LegendaryEquippedItems.Any(i => i == LegendaryItemTypes.GyrfalconsFoote)) { SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, Range)); } else { //Use on any unit when energy is greater than 90% SingleUnitCondition.Add(new UnitTargetConditions { TrueConditionFlags = TargetProperties.None, Criteria = (unit) => FunkyGame.Hero.dCurrentEnergyPct > 0.9d, MaximumDistance = Range, FalseConditionFlags = TargetProperties.LowHealth, }); } }
public override void Initialize() { Priority = SkillPriority.Low; Range = 10; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast)); ClusterConditions.Add(new SkillClusterConditions(4d, 10f, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None)); }
public override void Initialize() { Range = 30; Priority = SkillPriority.Low; PreCast = new SkillPreCast(SkillPrecastFlags.None); ClusterConditions.Add(new SkillClusterConditions(8d, 20f, 3, true)); SingleUnitCondition.Add(new UnitTargetConditions()); }
public override void Initialize() { Range = 20; Priority = SkillPriority.High; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); ClusterConditions.Add(new SkillClusterConditions(10d, 20f, 5, false, useRadiusDistance: true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, 20, MinimumHealthPercent: 0.99d, falseConditionalFlags: TargetProperties.Normal)); }
public override void Initialize() { Range = 8; Priority = SkillPriority.High; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 20, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); ClusterConditions.Add(new SkillClusterConditions(10d, 25, 10, false)); FcriteriaCombat = (u) => FunkyGame.Hero.dCurrentHealthPct < 0.75d; }
public override void Initialize() { Range = 40; Cost = 10; Priority = SkillPriority.Medium; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); ClusterConditions.Add(new SkillClusterConditions(5d, 40, 6, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 40, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); }
public override void Initialize() { Range = 50; Priority = SkillPriority.Low; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast)); ClusterConditions.Add(new SkillClusterConditions(5d, 49f, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 49)); }
public override void Initialize() { Range = 35; Priority = SkillPriority.Low; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast)); ClusterConditions.Add(new SkillClusterConditions(4d, 35, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions()); }
public override void Initialize() { Range = 8; Priority = SkillPriority.High; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 30, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); ClusterConditions.Add(new SkillClusterConditions(10d, 30, 10, false)); }
public override void Initialize() { Cooldown = 15000; WaitVars = new WaitLoops(0, 1, true); Cost = 59; Counter = 5; Priority = SkillPriority.Medium; Range = 10; PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast); ClusterConditions.Add(new SkillClusterConditions(6d, 10f, 4, false, useRadiusDistance: true)); if (!Equipment.CheckLegendaryItemCount(LegendaryItemTypes.RaimentoftheJadeHarvester, 6)) { SingleUnitCondition.Add(new UnitTargetConditions { Criteria = (unit) => Hotbar.GetBuffStacks(SNOPower.Witchdoctor_SoulHarvest) == 0, MaximumDistance = 9, FalseConditionFlags = TargetProperties.Normal, HealthPercent = 0.95d, TrueConditionFlags = TargetProperties.None, }); FcriteriaCombat = (u) => { double lastCast = LastUsedMilliseconds; int RecastMS = RuneIndex == 1 ? 45000 : 20000; bool recast = lastCast > RecastMS; //if using soul to waste -- 45ms, else 20ms. int stackCount = Hotbar.GetBuffStacks(SNOPower.Witchdoctor_SoulHarvest); if (stackCount < 5) { return(true); } if (recast) { return(true); } return(false); }; } else { SingleUnitCondition.Add(new UnitTargetConditions { MaximumDistance = 9, FalseConditionFlags = TargetProperties.Normal, HealthPercent = 0.95d, TrueConditionFlags = TargetProperties.None, }); } }
public override void Initialize() { ClusterConditions.Add(new SkillClusterConditions(6d, 40f, 1, true)); WaitVars = new WaitLoops(0, 0, false); Cost = 0; Range = 40; Priority = SkillPriority.Low; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast)); }
public override void Initialize() { Cooldown = 90000; WaitVars = new WaitLoops(0, 1, true); Priority = SkillPriority.High; SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.Boss, maxdistance: 50, MinimumHealthPercent: 0.75d)); ClusterConditions.Add(new SkillClusterConditions(10d, 50f, 4, true, clusterflags: ClusterProperties.Elites)); PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast); }
public override void Initialize() { Priority = SkillPriority.High; Range = 50; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast | SkillPrecastFlags.CheckPlayerIncapacitated)); //SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.IsSpecial, 50, 0.50d, falseConditionalFlags: TargetProperties.Fast)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.Boss, maxdistance: 40, MinimumHealthPercent: 0.75d)); ClusterConditions.Add(new SkillClusterConditions(6d, 40, 8, false)); ClusterConditions.Add(new SkillClusterConditions(6d, 40, 2, false, clusterflags: ClusterProperties.Elites)); }
public override void Initialize() { WaitVars = new WaitLoops(1, 1, true); Priority = SkillPriority.High; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast)); ClusterConditions.Add(new SkillClusterConditions(10d, 50f, 13, false)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.Boss, 45, MinimumHealthPercent: 0.95d)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, 45, -1, 0.95d, TargetProperties.Normal)); }
public override void Initialize() { Range = 30; Priority = SkillPriority.Medium; PreCast = new SkillPreCast(SkillPrecastFlags.CheckRecastTimer); //Clusters with 3 units within 30f ClusterConditions.Add(new SkillClusterConditions(10d, 30f, 3, true)); //Any Non-Normal Mob thats within 20f and is below 95% HP. SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 20, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); }
public override void Initialize() { Range = 9; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast | SkillPrecastFlags.CheckPlayerIncapacitated)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, Range, falseConditionalFlags: TargetProperties.Normal)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, Range, falseConditionalFlags: TargetProperties.Fast | TargetProperties.LowHealth)); ClusterConditions.Add(new SkillClusterConditions(5d, Range, 2, true, useRadiusDistance: true)); }
public override void Initialize() { Range = 8; Cost = 10; Priority = SkillPriority.Low; ClusterConditions.Add(new SkillClusterConditions(10d, 15f, 3, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); if (!FunkyGame.Hero.Class.ContainsAnyPrimarySkill) { SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None)); } }
public override void Initialize() { WaitVars = new WaitLoops(1, 1, true); Cost = 3; SecondaryEnergy = true; Range = 40; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy | SkillPrecastFlags.CheckRecastTimer)); ClusterConditions.Add(new SkillClusterConditions(4d, 35f, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.RareElite, maxdistance: 40)); }
public override void Initialize() { WaitVars = new WaitLoops(1, 2, true); Cost = 50; Range = 50; Priority = SkillPriority.Medium; PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast); ClusterConditions.Add(new SkillClusterConditions(4d, 50f, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal | TargetProperties.Fast)); FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial; }
public override void Initialize() { WaitVars = new WaitLoops(1, 2, true); Cost = 20; Range = 50; Priority = SkillPriority.High; PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast); ClusterConditions.Add(new SkillClusterConditions(7d, 50f, 5, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.Boss, maxdistance: 40, MinimumHealthPercent: 0.95d)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 40, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal | TargetProperties.LowHealth)); }
public override void Initialize() { Cooldown = 9000; WaitVars = new WaitLoops(0, 0, true); Range = 14; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast)); ClusterConditions.Add(new SkillClusterConditions(7d, 20f, 2, false)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, 20, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); }
public override void Initialize() { Cooldown = 200; Range = 15; Priority = SkillPriority.Low; IsDestructiblePower = true; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated)); ClusterConditions.Add(new SkillClusterConditions(6d, 10f, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None)); }