Esempio n. 1
0
        public override void Initialize()
        {
            Cooldown=150;
                ExecutionType=AbilityExecuteFlags.ZigZagPathing;
                WaitVars=new WaitLoops(0, 0, true);
                Cost=15;
                IsChanneling=true;
                Range=23;
                Priority=AbilityPriority.Medium;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated));
                UseageType=AbilityUseage.Anywhere;

                UnitsWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 2);
                ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 1);
                SingleUnitCondition=new UnitTargetConditions
                {
                     TrueConditionFlags=TargetProperties.IsSpecial,
                     Distance=30,

                };

                FcriteriaCombat=() =>
                {
                    bool isChanneling=(IsHobbling||LastUsedMilliseconds<150);
                    int channelingCost=Bot.Character.Class.HotBar.RuneIndexCache[Power]==3?8:10;

                    //If channeling, check if energy is greater then 10.. else only start when energy is at least -40-
                    return (isChanneling&&Bot.Character.Data.dCurrentEnergy>channelingCost)||(Bot.Character.Data.dCurrentEnergy>40)
                           &&(!Bot.Character.Class.bWaitingForSpecial||Bot.Character.Data.dCurrentEnergy>=Bot.Character.Class.iWaitingReservedAmount);
                };

                FCombatMovement=v =>
                {
                    bool isChanneling=(IsHobbling||LastUsedMilliseconds<150);
                    int channelingCost=Bot.Character.Class.HotBar.RuneIndexCache[Power]==3?8:10;

                    //If channeling, check if energy is greater then 10.. else only start when energy is at least -40-
                    if ((isChanneling&&Bot.Character.Data.dCurrentEnergy>channelingCost)||(Bot.Character.Data.dCurrentEnergy>15)&&!Bot.Character.Class.bWaitingForSpecial)
                    {
                        if (v.Distance(Bot.Character.Data.Position)>10f)
                            return MathEx.CalculatePointFrom(v, Bot.Character.Data.Position, 10f);
                        return v;
                    }

                    return Vector3.Zero;
                };

                FOutOfCombatMovement=v =>
                {
                    Vector3 vTargetAimPoint=MathEx.CalculatePointFrom(v, Bot.Character.Data.Position, 10f);
                    bool isChanneling=(IsHobbling||LastUsedMilliseconds<150);
                    int channelingCost=Bot.Character.Class.HotBar.RuneIndexCache[Power]==3?8:10;

                    //If channeling, check if energy is greater then 10.. else only start when energy is at least -40-
                    if ((isChanneling&&Bot.Character.Data.dCurrentEnergy>channelingCost)||Bot.Character.Data.dCurrentEnergyPct>0.50d)
                        return vTargetAimPoint;

                    return Vector3.Zero;
                };
        }
Esempio n. 2
0
        public override void Initialize()
        {
            Cooldown=5;
                ExecutionType=AbilityExecuteFlags.Target|AbilityExecuteFlags.ClusterTargetNearest;
                WaitVars=new WaitLoops(0, 1, true);
                Cost=RuneIndex==3?10:20;
                Range=50;
                IsRanged=true;
                IsProjectile=true;
                IsChanneling=true;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.Medium;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated));

                SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 45);
                ClusterConditions=new SkillClusterConditions(10d, 45f, 2, true);

                FcriteriaCombat=() =>
                {
                    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&&Bot.Character.Data.dCurrentEnergy>6)||(Bot.Character.Data.dCurrentEnergy>40)
                           &&(!Bot.Character.Class.bWaitingForSpecial||Bot.Character.Data.dCurrentEnergy>=Bot.Character.Class.iWaitingReservedAmount);
                };
        }
Esempio n. 3
0
        public override void Initialize()
        {
            Cooldown=1000;

                //Runeindex 2 == Sticky Trap!
                if (RuneIndex != 2)
                    ExecutionType = AbilityExecuteFlags.Location | AbilityExecuteFlags.ClusterTargetNearest;
                else
                    ExecutionType = AbilityExecuteFlags.Target | AbilityExecuteFlags.ClusterTarget;

                WaitVars=new WaitLoops(1, 1, true);
                Cost=30;
                Range=40;
                UseageType=AbilityUseage.Anywhere;
                Priority=AbilityPriority.Medium;

                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckEnergy));

                if (RuneIndex==2) //sticky trap on weak non-full HP units!
                    SingleUnitCondition=new UnitTargetConditions(TargetProperties.Weak, falseConditionalFlags: TargetProperties.FullHealth);
                else
                    SingleUnitCondition = new UnitTargetConditions(TargetProperties.RareElite);

                ClusterConditions=new SkillClusterConditions(6d, 45f, 2, true);

                FcriteriaCombat=() => Bot.Character.Data.PetData.DemonHunterSpikeTraps<
                                      (Bot.Character.Class.HotBar.PassivePowers.Contains(SNOPower.DemonHunter_Passive_CustomEngineering)?6:3);
        }
Esempio n. 4
0
        public override void Initialize()
        {
            Cooldown=1000;
                ExecutionType=AbilityExecuteFlags.Buff;
                UseageType=AbilityUseage.Combat;
                WaitVars=new WaitLoops(2, 2, true);
                Cost=50;
                Priority=AbilityPriority.High;

                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckEnergy|AbilityPreCastFlags.CheckCanCast|
                                          AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckPlayerIncapacitated));

                UnitsWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 7);
                //ElitesWithinRangeConditions = new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 3);
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.Fast|TargetProperties.IsSpecial, 23);
                ClusterConditions = new SkillClusterConditions(8d, 20f, 4, false, 0, ClusterProperties.Large, 10f, false);
                FcriteriaCombat = () =>
                {
                    if (LastConditionPassed == ConditionCriteraTypes.SingleTarget) return true; //special and fast..

                    //Use every 5.5s when 7+ units are within 25f.
                    if (LastConditionPassed == ConditionCriteraTypes.UnitsInRange && LastUsedMilliseconds > 5500 && !Bot.Character.Class.bWaitingForSpecial)
                        return true;

                    if (!Bot.Character.Class.HotBar.HotbarPowers.Contains(SNOPower.Monk_ExplodingPalm)) return true; //Non Exploding Palm Check

                    if ((Bot.Targeting.Cache.CurrentUnitTarget.HasDOTdps.HasValue && Bot.Targeting.Cache.CurrentUnitTarget.HasDOTdps.Value)
                        && Bot.Targeting.Cache.CurrentUnitTarget.CurrentHealthPct<0.10d)
                    {
                        return true;
                    }

                    return false;
                };
        }
Esempio n. 5
0
 public override void Initialize()
 {
     Cooldown=90000;
         ExecutionType=AbilityExecuteFlags.Self;
         WaitVars=new WaitLoops(1, 1, true);
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.Medium;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckCanCast));
         ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 1);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 16);
 }
Esempio n. 6
0
 public override void Initialize()
 {
     Cooldown=200;
         ExecutionType=AbilityExecuteFlags.Target|AbilityExecuteFlags.ClusterTargetNearest;
         WaitVars=new WaitLoops(1, 1, true);
         Range=15;
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.Low;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated));
         ClusterConditions=new SkillClusterConditions(6d, 10f, 2, true);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.None, 8);
 }
Esempio n. 7
0
 public override void Initialize()
 {
     Cooldown=5;
         ExecutionType=AbilityExecuteFlags.Target;
         WaitVars=new WaitLoops(0, 0, false);
         Range=48;
         IsRanged=true;
         IsChanneling=true;
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.Low;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated));
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.None);
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
 public override void Initialize()
 {
     Cooldown=200;
         ExecutionType=AbilityExecuteFlags.Self;
         WaitVars=new WaitLoops(4, 4, true);
         Cost=0;
         UseageType=AbilityUseage.Anywhere;
         Priority=AbilityPriority.Medium;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckCanCast|AbilityPreCastFlags.CheckPlayerIncapacitated));
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.None, 10,
             falseConditionalFlags: TargetProperties.Fast);
         ClusterConditions=new SkillClusterConditions(5d, 7, 2, false);
         FcriteriaCombat=() => true;
 }
Esempio n. 10
0
File: Hex.cs Progetto: BUFORD/Funky
 public override void Initialize()
 {
     Cooldown=15200;
         ExecutionType=AbilityExecuteFlags.Self;
         WaitVars=new WaitLoops(0, 0, true);
         Cost=49;
         UseageType=AbilityUseage.Anywhere;
         Priority=AbilityPriority.Medium;
         IsBuff=true;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckCanCast));
         UnitsWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_12, 1);
         ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_12, 1);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 18);
 }
Esempio n. 11
0
 public override void Initialize()
 {
     Cooldown=10000;
         ExecutionType=AbilityExecuteFlags.Target|AbilityExecuteFlags.ClusterTarget;
         WaitVars=new WaitLoops(1, 1, true);
         Cost=3;
         SecondaryEnergy=true;
         Range=40;
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.Medium;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckRecastTimer));
         ClusterConditions=new SkillClusterConditions(4d, 35f, 2, true);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.RareElite, 40);
 }
Esempio n. 12
0
        public override void Initialize()
        {
            Cooldown=1000;
                ExecutionType=AbilityExecuteFlags.Target;
                UseageType=AbilityUseage.Combat;
                WaitVars=new WaitLoops(0, 1, true);
                Cost=25;
                Range=30;
                Priority=AbilityPriority.Medium;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckEnergy|AbilityPreCastFlags.CheckCanCast|
                                          AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckPlayerIncapacitated));
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.Ranged, 20);

                FcriteriaCombat=() => (!Bot.Character.Class.bWaitingForSpecial||Bot.Character.Data.dCurrentEnergy>=Bot.Character.Class.iWaitingReservedAmount);
        }
Esempio n. 13
0
        public override void Initialize()
        {
            Cooldown=5;
                ExecutionType=AbilityExecuteFlags.Target|AbilityExecuteFlags.ClusterTarget;
                WaitVars=new WaitLoops(0, 1, true);
                Range=35;
                IsRanged=true;
                IsProjectile=true;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.Low;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated));

                ClusterConditions=new SkillClusterConditions(4d, 35, 2, true);
                SingleUnitCondition=new UnitTargetConditions();
        }
Esempio n. 14
0
 public override void Initialize()
 {
     Cooldown=120500;
         ExecutionType=AbilityExecuteFlags.Buff;
         WaitVars=new WaitLoops(4, 4, true);
         Cost=0;
         UseageType=AbilityUseage.Combat;
         IsSpecialAbility=true;
         Priority=AbilityPriority.High;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckExisitingBuff|AbilityPreCastFlags.CheckCanCast|
                                   AbilityPreCastFlags.CheckPlayerIncapacitated));
         ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_15, 1);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 13);
 }
Esempio n. 15
0
 public override void Initialize()
 {
     Cooldown=2000;
         ExecutionType=AbilityExecuteFlags.Buff;
         WaitVars=new WaitLoops(1, 2, true);
         Cost=25;
         Range = 25;
         UseageType=AbilityUseage.Anywhere;
         Priority=AbilityPriority.Medium;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckCanCast));
         ClusterConditions=new SkillClusterConditions(15d, 20f, 2, false, useRadiusDistance: true);
         SingleUnitCondition = new UnitTargetConditions(TargetProperties.CloseDistance | TargetProperties.Weak);
         FcriteriaCombat = () => !Bot.Character.Class.bWaitingForSpecial;
 }
Esempio n. 16
0
 public override void Initialize()
 {
     Cooldown=150;
         ExecutionType=AbilityExecuteFlags.ClusterTarget|AbilityExecuteFlags.Target;
         WaitVars=new WaitLoops(1, 2, true);
         Cost=20;
         Range=Bot.Character.Class.HotBar.RuneIndexCache[Power]==0?13:Bot.Character.Class.HotBar.RuneIndexCache[Power]==1?20:16;
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.Medium;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckCanCast|AbilityPreCastFlags.CheckPlayerIncapacitated));
         ClusterConditions=new SkillClusterConditions(6d, 20f, 2, true);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 20);
         FcriteriaCombat=() => !Bot.Character.Class.bWaitingForSpecial;
 }
Esempio n. 17
0
        public override void Initialize()
        {
            Cooldown=12000;
                ExecutionType=AbilityExecuteFlags.Target;
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.None, 24,
                    falseConditionalFlags: TargetProperties.DOTDPS);
                WaitVars=new WaitLoops(1, 1, true);
                Cost=98;
                Range=21;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.Medium;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckCanCast|
                                          AbilityPreCastFlags.CheckEnergy));

                PreCast.Criteria += (s) => !Bot.Character.Class.HotBar.HasDebuff(SNOPower.Succubus_BloodStar);
        }
Esempio n. 18
0
 public override void Initialize()
 {
     Cooldown=25200;
         ExecutionType=AbilityExecuteFlags.Location;
         WaitVars=new WaitLoops(1, 1, true);
         Cost=103;
         Range=25;
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.Medium;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckCanCast));
         UnitsWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_15, 3);
         ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_15, 1);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 25);
         FcriteriaCombat=() => !Bot.Character.Class.bWaitingForSpecial;
 }
Esempio n. 19
0
 public override void Initialize()
 {
     Cooldown=2500;
         ExecutionType=AbilityExecuteFlags.ClusterTarget|AbilityExecuteFlags.Target;
         WaitVars=new WaitLoops(1, 2, true);
         Cost=40;
         Range=50;
         IsRanged=true;
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.Medium;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckRecastTimer));
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial);
         ClusterConditions=new SkillClusterConditions(5d, 50f, 2, true);
         FcriteriaCombat=() => !Bot.Character.Class.bWaitingForSpecial;
 }
Esempio n. 20
0
        public override void Initialize()
        {
            Cooldown=5;
                ExecutionType=AbilityExecuteFlags.Target;
                WaitVars=new WaitLoops(0, 1, true);
                Cost=25;
                Range=12;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.Medium;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckCanCast));
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.None, 12);

                FcriteriaCombat=() =>
                {
                    return (Bot.Character.Data.dCurrentEnergy>=Bot.Character.Class.iWaitingReservedAmount);
                };
        }
Esempio n. 21
0
        public override void Initialize()
        {
            Cooldown=RuneIndex==3?17200:30200;
                ExecutionType=AbilityExecuteFlags.Location;
                WaitVars=new WaitLoops(2, 3, true);
                Cost=50;
                Range=16;
                Priority=AbilityPriority.Medium;
                UseageType=AbilityUseage.Combat;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckEnergy|AbilityPreCastFlags.CheckCanCast|AbilityPreCastFlags.CheckPlayerIncapacitated));

                UnitsWithinRangeConditions = new Tuple<RangeIntervals, int>(RangeIntervals.Range_20, 6);
                ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_20, 3);
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.None, 15, falseConditionalFlags: TargetProperties.Normal); //any non-normal unit!

                FcriteriaCombat=() => !Bot.Character.Class.bWaitingForSpecial||Bot.Character.Data.dCurrentEnergy>=Bot.Character.Class.iWaitingReservedAmount;
        }
Esempio n. 22
0
        public override void Initialize()
        {
            Cooldown=200;
                ExecutionType=AbilityExecuteFlags.ClusterLocation|AbilityExecuteFlags.Location;
                WaitVars=new WaitLoops(2, 2, true);
                Cost=Bot.Character.Class.HotBar.RuneIndexCache[SNOPower.Barbarian_SeismicSlam]==3?15:30;
                Range=40;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.Medium;

                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckEnergy|
                                          AbilityPreCastFlags.CheckCanCast|AbilityPreCastFlags.CheckPlayerIncapacitated));
                ClusterConditions=new SkillClusterConditions(Bot.Character.Class.HotBar.RuneIndexCache[Power]==4?4d:6d, 40f, 2, true);
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial,
                    falseConditionalFlags: TargetProperties.TreasureGoblin|TargetProperties.Fast);

                FcriteriaCombat=() => !Bot.Character.Class.bWaitingForSpecial;
        }
Esempio n. 23
0
        public override void Initialize()
        {
            Cooldown=8000;
                ExecutionType=AbilityExecuteFlags.ClusterLocation|AbilityExecuteFlags.Location;
                ClusterConditions=new SkillClusterConditions(5d, 20f, 1, true, 0.25d);
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.None, 21, 0.5d, TargetProperties.DOTDPS);
                WaitVars=new WaitLoops(1, 1, true);
                Cost=196;
                Range=21;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.High;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckCanCast|
                                          AbilityPreCastFlags.CheckEnergy|AbilityPreCastFlags.CheckRecastTimer));

                PreCast.Criteria += (s) => !Bot.Character.Class.HotBar.HasDebuff(SNOPower.Succubus_BloodStar);

                IsSpecialAbility=true;
        }
Esempio n. 24
0
 public override void Initialize()
 {
     Cooldown=1500;
         ExecutionType=AbilityExecuteFlags.ClusterLocation|AbilityExecuteFlags.Location;
         WaitVars=new WaitLoops(1, 2, true);
         Counter=1;
         Cost=15;
         Range=50;
         IsRanged=true;
         IsProjectile = true;
         UseageType=AbilityUseage.Combat;
         Priority=AbilityPriority.High;
         PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckEnergy|
                                   AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckPetCount));
         ClusterConditions=new SkillClusterConditions(7d, 50f, 2, true);
         SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial,
             falseConditionalFlags: TargetProperties.Fast);
 }
Esempio n. 25
0
        public override void Initialize()
        {
            Cooldown=250;
                ExecutionType=AbilityExecuteFlags.Target;
                WaitVars=new WaitLoops(1, 1, true);
                Cost=30;
                Range=10;
                Priority=AbilityPriority.Medium;
                UseageType=AbilityUseage.Combat;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckEnergy|AbilityPreCastFlags.CheckCanCast|
                                          AbilityPreCastFlags.CheckRecastTimer|AbilityPreCastFlags.CheckPlayerIncapacitated));
                ClusterConditions=new SkillClusterConditions(4d, 18f, 3, true);
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.IsSpecial, 10);

                FcriteriaCombat=() => (!Bot.Character.Class.HotBar.HotbarPowers.Contains(SNOPower.Monk_SweepingWind)||
                                       (Bot.Character.Class.HotBar.HotbarPowers.Contains(SNOPower.Monk_SweepingWind)&&Bot.Character.Class.HotBar.HasBuff(SNOPower.Monk_SweepingWind)))&&
                                      (!Bot.Character.Class.bWaitingForSpecial||Bot.Character.Data.dCurrentEnergy>=Bot.Character.Class.iWaitingReservedAmount);
        }
Esempio n. 26
0
        public override void Initialize()
        {
            Cooldown=300;
            ExecutionType = AbilityExecuteFlags.Target;
            WaitVars = new WaitLoops(2, 2, true);
            Range = 35;
            IsRanged = true;
            IsProjectile=true;
            UseageType=AbilityUseage.Combat;
            Priority = AbilityPriority.Medium;
            PreCast=new SkillPreCast((AbilityPreCastFlags.CheckRecastTimer | AbilityPreCastFlags.CheckCanCast |
                                      AbilityPreCastFlags.CheckPlayerIncapacitated));
            SingleUnitCondition = new UnitTargetConditions(TargetProperties.Ranged, 25, 0.50d);

                                //TestCustomCombatConditionAlways=true,
            FcriteriaCombat = () => Bot.Targeting.Cache.CurrentUnitTarget.IsRanged ||
                                    Bot.Character.Data.dCurrentEnergyPct < 0.5d;
        }
Esempio n. 27
0
        public override void Initialize()
        {
            Cooldown=5;
                ExecutionType=AbilityExecuteFlags.Target|AbilityExecuteFlags.ClusterTarget;
                WaitVars=new WaitLoops(0, 0, true);
                Range=(Bot.Character.Class.HotBar.RuneIndexCache[SNOPower.Wizard_Electrocute]==2?15:40);
                IsRanged=true;
                IsProjectile=true;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.Low;
                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated));

                //Aim for cluster with 2 units very close together.
                ClusterConditions=new SkillClusterConditions(3d, Bot.Character.Class.HotBar.RuneIndexCache[SNOPower.Wizard_Electrocute]==2?15:40, 2,
                    true);
                //No conditions for a single target.
                SingleUnitCondition=new UnitTargetConditions();
        }
Esempio n. 28
0
        //42 Channeling Base Cost
        //Level > 55 == 66
        //((Level - 5) / 2) + 42
        //
        //140 Base Cost
        //Level > 55 == 220
        //(((Level - 5) / 2) * 3.2)+140)
        public override void Initialize()
        {
            var range = Bot.Character.Class.HotBar.RuneIndexCache[Power] == 0 ? 40 : Bot.Character.Class.HotBar.RuneIndexCache[Power] == 4 ? 14 : 25;
            //Cost = CastingCost();
            Cooldown = 5;
            ExecutionType = AbilityExecuteFlags.ClusterLocation | AbilityExecuteFlags.Target;
            WaitVars = new WaitLoops(0, 0, true);
            Range = range;
            IsRanged = true;
            IsProjectile = true;
            IsChanneling = true;
            UseageType = AbilityUseage.Combat;
            Priority = AbilityPriority.High;
            PreCast = new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated));
            SingleUnitCondition = new UnitTargetConditions(TargetProperties.None, range);
            ClusterConditions = new SkillClusterConditions(5d, range, 2, true);

            FcriteriaCombat = () => (Bot.Character.Data.dCurrentEnergy >= CastingCost() || Bot.Character.Data.dCurrentEnergy >= ChannelingCost()&& IsCurrentlyChanneling());
        }
Esempio n. 29
0
        public override void Initialize()
        {
            Cooldown=5;
                ExecutionType=AbilityExecuteFlags.ClusterTarget|AbilityExecuteFlags.Target;

                WaitVars=new WaitLoops(0, 1, true);
                Cost=134;
                Range=15;
                UseageType=AbilityUseage.Combat;
                Priority=AbilityPriority.Medium;

                PreCast=new SkillPreCast((AbilityPreCastFlags.CheckPlayerIncapacitated|AbilityPreCastFlags.CheckEnergy|
                                          AbilityPreCastFlags.CheckCanCast));

                //FcriteriaPreCast=new Func<bool>(() => { return !Bot.Character_.Class.HotBar.HasDebuff(SNOPower.Succubus_BloodStar); });

                ClusterConditions=new SkillClusterConditions(5d, 20f, 2, true);
                SingleUnitCondition=new UnitTargetConditions(TargetProperties.None);
        }
Esempio n. 30
0
File: Leap.cs Progetto: BUFORD/Funky
        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;
                };
        }