public override void Initialize() { Cooldown = 30000; WaitVars = new WaitLoops(3, 3, true); Priority = SkillPriority.High; PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast); //Important!! We have to override the default return of true.. we dont want this to fire as a combat Ability. FcriteriaCombat = (u) => { return(FunkyGame.Hero.dCurrentHealthPct <= FunkyBaseExtension.Settings.Combat.PotionHealthPercent); }; }
public override void Initialize() { Cooldown = 115000; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 2, true); Cost = 25; Counter = 1; UseageType = AbilityUseage.Anywhere; IsBuff = true; Priority = AbilityPriority.High; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckEnergy | AbilityPreCastFlags.CheckExisitingBuff)); }
public override void Initialize() { Cooldown = 120500; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(4, 4, true); Cost = 50; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.High; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckRecastTimer | AbilityPreCastFlags.CheckEnergy | AbilityPreCastFlags.CheckCanCast | AbilityPreCastFlags.CheckPlayerIncapacitated)); //ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 1); //SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 25); }
public override void Initialize() { Cooldown = 5; ExecutionType = AbilityExecuteFlags.Target; WaitVars = new WaitLoops(0, 1, true); Cost = 10; Range = 48; IsRanged = true; IsProjectile = true; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.Low; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated)); }
public override void Initialize() { Cooldown = 20200; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 1, true); UseageType = AbilityUseage.Anywhere; Priority = AbilityPriority.High; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckRecastTimer)); //TODO:: Give better conditions FcriteriaCombat = () => Bot.Character.Data.dCurrentHealthPct <= 0.45d && Bot.Targeting.Cache.Environment.iAnythingWithinRange[(int)RangeIntervals.Range_20] > 0; }
public override void Initialize() { Cooldown = 5; ExecutionType = AbilityExecuteFlags.Target | AbilityExecuteFlags.ClusterTargetNearest; WaitVars = new WaitLoops(0, 2, true); Cost = 0; Range = 10; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.Low; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated)); ClusterConditions = new SkillClusterConditions(4d, 10f, 2, true); SingleUnitCondition = new UnitTargetConditions(TargetProperties.None); }
public override void Initialize() { Cooldown = 100000; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 1, true); Cost = 20; IsBuff = true; UseageType = AbilityUseage.Anywhere; Priority = AbilityPriority.Low; PreCast = new SkillPreCast(AbilityPreCastFlags.CheckExisitingBuff | AbilityPreCastFlags.CheckEnergy | AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckCanCast); FcriteriaBuff = () => true; FcriteriaBuff = () => LastUsedMilliseconds > 30000; }
public override void Initialize() { Priority = SkillPriority.Medium; Range = 60; PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast | SkillPrecastFlags.CheckPlayerIncapacitated); ClusterConditions.Add(new SkillClusterConditions(4d, Range, 3, false, useRadiusDistance: true)); var IntersectingUnitTargetConditions = new UnitTargetConditions { TrueConditionFlags = TargetProperties.None, MaximumDistance = Range, Criteria = (unit) => unit.TargetInfo.IntersectingUnits > 2 }; SingleUnitCondition.Add(IntersectingUnitTargetConditions); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, Range, falseConditionalFlags: TargetProperties.Normal)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.Summoner, Range, falseConditionalFlags: TargetProperties.LowHealth)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.AvoidanceSummoner, Range, falseConditionalFlags: TargetProperties.LowHealth)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.Debuffing, Range, falseConditionalFlags: TargetProperties.LowHealth)); FCombatMovement = v => { float fDistanceFromTarget = FunkyGame.Hero.Position.Distance(v); if (FunkyBaseExtension.Settings.General.OutOfCombatMovement && !FunkyGame.Hero.Class.bWaitingForSpecial && FunkyBaseExtension.Difference(FunkyGame.Hero.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 20f) { if (fDistanceFromTarget > Range) { return(MathEx.CalculatePointFrom(v, FunkyGame.Hero.Position, Range)); } return(v); } return(Vector3.Zero); }; FOutOfCombatMovement = v => { float fDistanceFromTarget = FunkyGame.Hero.Position.Distance(v); if (FunkyBaseExtension.Difference(FunkyGame.Hero.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 20f) { if (fDistanceFromTarget > Range) { return(MathEx.CalculatePointFrom(v, FunkyGame.Hero.Position, Range)); } return(v); } return(Vector3.Zero); }; }
public override void Initialize() { Cooldown = 10200; WaitVars = new WaitLoops(2, 2, true); ExecutionType = AbilityExecuteFlags.ClusterLocation | AbilityExecuteFlags.Location; Range = 35; Priority = AbilityPriority.Medium; UseageType = AbilityUseage.Combat; IsASpecialMovementPower = true; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckRecastTimer | AbilityPreCastFlags.CheckCanCast)); ClusterConditions = new SkillClusterConditions(5d, 30, 2, true); SingleUnitCondition = new UnitTargetConditions(TargetProperties.IsSpecial, falseConditionalFlags: TargetProperties.Fast, MinimumDistance: 30); FCombatMovement = (v) => { float fDistanceFromTarget = Bot.Character.Data.Position.Distance(v); if (!Bot.Character.Class.bWaitingForSpecial && Funky.Difference(Bot.Character.Data.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 20f) { if (fDistanceFromTarget > 35f) { return(MathEx.CalculatePointFrom(v, Bot.Character.Data.Position, 35f)); } else { return(v); } } return(Vector3.Zero); }; FOutOfCombatMovement = (v) => { float fDistanceFromTarget = Bot.Character.Data.Position.Distance(v); if (Funky.Difference(Bot.Character.Data.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 20f) { if (fDistanceFromTarget > 35f) { return(MathEx.CalculatePointFrom(v, Bot.Character.Data.Position, 35f)); } else { return(v); } } return(Vector3.Zero); }; }
public override void Initialize() { Cooldown = 5; ExecutionType = AbilityExecuteFlags.Target; WaitVars = new WaitLoops(0, 0, true); Cost = 20; Range = 35; IsRanged = true; IsProjectile = true; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.Medium; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckEnergy)); FcriteriaCombat = () => !Bot.Character.Class.bWaitingForSpecial; }
public override void Initialize() { WaitVars = new WaitLoops(1, 1, true); Range = 48; Priority = SkillPriority.High; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast)); ClusterConditions.Add(new SkillClusterConditions(5d, 48f, 2, false, minDistance: 15f)); FcriteriaCombat = (u) => { return((FunkyBaseExtension.Settings.Wizard.bTeleportFleeWhenLowHP && (FunkyGame.Hero.dCurrentHealthPct < 0.5d) || (FunkyGame.Targeting.Cache.RequiresAvoidance)) || (FunkyBaseExtension.Settings.Wizard.bTeleportIntoGrouping && LastConditionPassed == ConditionCriteraTypes.Cluster) || (!FunkyBaseExtension.Settings.Wizard.bTeleportFleeWhenLowHP && !FunkyBaseExtension.Settings.Wizard.bTeleportIntoGrouping)); }; FCombatMovement = v => { float fDistanceFromTarget = FunkyGame.Hero.Position.Distance(v); if (!FunkyGame.Hero.Class.bWaitingForSpecial && FunkyBaseExtension.Difference(FunkyGame.Hero.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 25f) { if (fDistanceFromTarget > 50f) { return(MathEx.CalculatePointFrom(v, FunkyGame.Hero.Position, 50f)); } return(v); } return(Vector3.Zero); }; FOutOfCombatMovement = v => { float fDistanceFromTarget = FunkyGame.Hero.Position.Distance(v); if (FunkyBaseExtension.Difference(FunkyGame.Hero.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 20f) { if (fDistanceFromTarget > 50f) { return(MathEx.CalculatePointFrom(v, FunkyGame.Hero.Position, 50f)); } return(v); } return(Vector3.Zero); }; }
public override void Initialize() { Range = (RuneIndex == 2 ? 15 : 40); Priority = SkillPriority.Low; PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast)); //Aim for cluster with 2 units very close together. ClusterConditions.Add(new SkillClusterConditions(3d, RuneIndex == 2 ? 15 : 40, 2, true)); //No conditions for a single target. SingleUnitCondition.Add(new UnitTargetConditions()); }
public override void Initialize() { WaitVars = new WaitLoops(1, 2, true); Counter = Equipment.CheckLegendaryItemCount(LegendaryItemTypes.SerpentSparker) ? 2 : 1; Cost = 15; Range = 50; Priority = SkillPriority.High; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy | SkillPrecastFlags.CheckRecastTimer | SkillPrecastFlags.CheckPetCount)); ClusterConditions.Add(new SkillClusterConditions(7d, 50f, 2, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal | TargetProperties.Fast)); }
public override void Initialize() { Cooldown = 5; ExecutionType = AbilityExecuteFlags.ClusterTarget | AbilityExecuteFlags.Target; WaitVars = new WaitLoops(0, 2, false); UseageType = AbilityUseage.Combat; Priority = AbilityPriority.Low; Range = RuneIndex == 0?25:12; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckCanCast)); ClusterConditions = new SkillClusterConditions(5d, 20f, 1, true); SingleUnitCondition = new UnitTargetConditions(TargetProperties.None); }
public override void Initialize() { WaitVars = new WaitLoops(1, 1, true); Cost = 74; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy | SkillPrecastFlags.CheckCanCast)); //UnitsWithinRangeConditions = new Tuple<RangeIntervals, int>(RangeIntervals.Range_12, 6); //ElitesWithinRangeConditions = new Tuple<RangeIntervals, int>(RangeIntervals.Range_12, 1); ClusterConditions.Add(new SkillClusterConditions(5d, 12, 6, true)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, 12, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); }
public override void Initialize() { Cooldown = 16000; Priority = SkillPriority.High; WaitVars = new WaitLoops(1, 1, true); //Range=48; PreCast = new SkillPreCast { Criteria = skill => skill.LastUsed == DateTime.MinValue }; }
public override void Initialize() { Cooldown = 10000; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 1, true); Cost = 20; Range = 0; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.Medium; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckRecastTimer | AbilityPreCastFlags.CheckEnergy)); ClusterConditions = new SkillClusterConditions(4d, 10f, 2, false); //SingleUnitCondition=new UnitTargetConditions(TargetProperties.CloseDistance); }
public override void Initialize() { Cooldown = 16000; ExecutionType = AbilityExecuteFlags.Target; WaitVars = new WaitLoops(1, 1, true); Range = 48; UseageType = AbilityUseage.Anywhere; Priority = AbilityPriority.Medium; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckRecastTimer | AbilityPreCastFlags.CheckCanCast)); UnitsWithinRangeConditions = new Tuple <RangeIntervals, int>(RangeIntervals.Range_25, 2); ElitesWithinRangeConditions = new Tuple <RangeIntervals, int>(RangeIntervals.Range_25, 1); SingleUnitCondition = new UnitTargetConditions(TargetProperties.IsSpecial, 35); }
public override void Initialize() { Cooldown = 5; ExecutionType = AbilityExecuteFlags.Target; WaitVars = new WaitLoops(0, 1, true); Range = Bot.Character.Class.HotBar.RuneIndexCache[SNOPower.Wizard_ShockPulse] == 2?40 :Bot.Character.Class.HotBar.RuneIndexCache[SNOPower.Wizard_ShockPulse] == 1?26:15; IsRanged = true; IsProjectile = true; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.Low; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated)); }
public override void Initialize() { Cooldown = 10000; WaitVars = new WaitLoops(1, 1, true); Cost = 20; Range = 0; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckRecastTimer | SkillPrecastFlags.CheckEnergy)); ClusterConditions.Add(new SkillClusterConditions(4d, 10f, 2, false)); //SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.CloseDistance); }
public override void Initialize() { Cooldown = 20500; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 1, true); Cost = 0; Range = 0; IsBuff = true; UseageType = AbilityUseage.Anywhere; Priority = AbilityPriority.Highest; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckCanCast | AbilityPreCastFlags.CheckPlayerIncapacitated)); FcriteriaBuff = () => true; FcriteriaCombat = () => true; }
public override void Initialize() { Priority = SkillPriority.Medium; PreCast = new SkillPreCast { Flags = SkillPrecastFlags.CheckRecastTimer | SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast, }; PreCast.Criteria += skill => Hotbar.HasBuff(SNOPower.Barbarian_Revenge_Buff); PreCast.CreatePrecastCriteria(); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, 10, falseConditionalFlags: TargetProperties.Normal)); ClusterConditions.Add(new SkillClusterConditions(5d, 7, 2, false, useRadiusDistance: true)); }
public override void Initialize() { WaitVars = new WaitLoops(0, 1, true); Cost = 10; Range = 48; Priority = SkillPriority.Medium; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy)); ClusterConditions.Add(new SkillClusterConditions(4d, 40, 2, true)); FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial && (!u.IsTreasureGoblin && u.SNOID != 5208 && u.SNOID != 5209 && u.SNOID != 5210); }
public override void Initialize() { Cooldown = 16000; WaitVars = new WaitLoops(1, 1, true); Priority = SkillPriority.High; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast)); //UnitsWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 2); //ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 1); ClusterConditions.Add(new SkillClusterConditions(7d, 25f, 2, false)); SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, 35, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal)); }
public override void Initialize() { Cooldown = 45200; ExecutionType = AbilityExecuteFlags.Target; WaitVars = new WaitLoops(1, 1, true); Cost = 74; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.Medium; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckEnergy | AbilityPreCastFlags.CheckCanCast)); UnitsWithinRangeConditions = new Tuple <RangeIntervals, int>(RangeIntervals.Range_12, 6); ElitesWithinRangeConditions = new Tuple <RangeIntervals, int>(RangeIntervals.Range_12, 1); SingleUnitCondition = new UnitTargetConditions(TargetProperties.IsSpecial, 12); }
public override void Initialize() { Cooldown = 10000; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 1, true); Cost = 0; UseageType = AbilityUseage.Anywhere; Priority = AbilityPriority.Medium; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckRecastTimer | AbilityPreCastFlags.CheckCanCast)); UnitsWithinRangeConditions = new Tuple <RangeIntervals, int>(RangeIntervals.Range_25, 7); ElitesWithinRangeConditions = new Tuple <RangeIntervals, int>(RangeIntervals.Range_25, 1); }
public override void Initialize() { Cooldown = 16000; ExecutionType = AbilityExecuteFlags.ClusterLocation | AbilityExecuteFlags.ZigZagPathing; WaitVars = new WaitLoops(0, 1, true); Cost = 15; Range = 35; UseageType = AbilityUseage.Combat; IsASpecialMovementPower = true; Priority = AbilityPriority.High; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckCanCast | AbilityPreCastFlags.CheckEnergy)); ClusterConditions = new SkillClusterConditions(5d, 48f, 2, false); //TestCustomCombatConditionAlways=true, FcriteriaCombat = () => ((Bot.Settings.Class.bTeleportFleeWhenLowHP && Bot.Character.Data.dCurrentHealthPct < 0.5d) || (Bot.Settings.Class.bTeleportIntoGrouping && Bot.Targeting.Cache.Clusters.AbilityClusterCache(combatClusterCondition).Count > 0 && Bot.Targeting.Cache.Clusters.AbilityClusterCache(combatClusterCondition)[0].Midpoint.Distance( Bot.Character.Data.PointPosition) > 15f) || (!Bot.Settings.Class.bTeleportFleeWhenLowHP && !Bot.Settings.Class.bTeleportIntoGrouping)); FCombatMovement = v => { float fDistanceFromTarget = Bot.Character.Data.Position.Distance(v); if (!Bot.Character.Class.bWaitingForSpecial && Funky.Difference(Bot.Character.Data.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 20f) { if (fDistanceFromTarget > 35f) { return(MathEx.CalculatePointFrom(v, Bot.Character.Data.Position, 35f)); } return(v); } return(Vector3.Zero); }; FOutOfCombatMovement = v => { float fDistanceFromTarget = Bot.Character.Data.Position.Distance(v); if (Funky.Difference(Bot.Character.Data.Position.Z, v.Z) <= 4 && fDistanceFromTarget >= 20f) { if (fDistanceFromTarget > 35f) { return(MathEx.CalculatePointFrom(v, Bot.Character.Data.Position, 35f)); } return(v); } return(Vector3.Zero); }; }
public override void Initialize() { Cooldown = 5000; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 1, true); UseageType = AbilityUseage.Anywhere; Priority = AbilityPriority.High; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated | AbilityPreCastFlags.CheckRecastTimer | AbilityPreCastFlags.CheckCanCast)); Cost = Bot.Character.Class.HotBar.RuneIndexCache[SNOPower.DemonHunter_Preparation] == 0?25:0; FcriteriaCombat = () => Bot.Character.Data.dDisciplinePct < 0.25d //Rune: Punishment (Restores all Hatered for 25 disc) || (Bot.Character.Class.HotBar.RuneIndexCache[Power] == 0 && Bot.Character.Data.dCurrentEnergyPct < 0.20d); }
public override void Initialize() { Cooldown = 5000; ExecutionType = AbilityExecuteFlags.Buff; WaitVars = new WaitLoops(1, 1, true); Cost = 10; Range = 48; UseageType = AbilityUseage.Combat; Priority = AbilityPriority.High; PreCast = new SkillPreCast((AbilityPreCastFlags.CheckCanCast)); FcriteriaCombat = () => (Bot.Character.Data.dCurrentHealthPct <= 0.50 || Bot.Targeting.Cache.Environment.iAnythingWithinRange[(int)RangeIntervals.Range_30] >= 5 || Bot.Character.Data.bIsIncapacitated || Bot.Character.Data.bIsRooted || Bot.Targeting.Cache.CurrentTarget.ObjectIsSpecial); }
public override void Initialize() { Priority = SkillPriority.High; Cost = 20; Range = 35; PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast)); FcriteriaBuff = () => !Hotbar.HasBuff(SNOPower.Barbarian_BattleRage); FcriteriaCombat = (u) => !Hotbar.HasBuff(SNOPower.Barbarian_BattleRage) || //Only if we cannot spam sprint.. (!Hotbar.HasPower(SNOPower.Barbarian_Sprint) && ((FunkyBaseExtension.Settings.Barbarian.bFuryDumpWrath && FunkyGame.Hero.dCurrentEnergyPct >= 0.98 && Hotbar.HasBuff(SNOPower.Barbarian_WrathOfTheBerserker) && FunkyGame.Hero.dCurrentHealthPct > 0.50d) || (FunkyBaseExtension.Settings.Barbarian.bFuryDumpAlways && FunkyGame.Hero.dCurrentEnergyPct >= 0.98 && FunkyGame.Hero.dCurrentHealthPct > 0.50d))); }