Describes Pre and Post Wait Loops for an Ability.
Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            };
        }
Пример #3
0
        public override void Initialize()
        {
            WaitVars = new WaitLoops(0, 1, true);
            Cost = Hotbar.PassivePowers.Contains(SNOPower.Monk_Passive_ChantOfResonance) ? 25 : 50;

            Priority = SkillPriority.High;

            SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, 30, -1, 0.99d));

            if (Equipment.CheckLegendaryItemCount(LegendaryItemTypes.MonkeyKingsGarb, 4))
            {
                PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast));
                FcriteriaBuff = () => FunkyBaseExtension.Settings.Monk.bMonkSpamMantra && FunkyGame.Targeting.Cache.Environment.SurroundingUnits > 0;
                FcriteriaCombat = (u) =>
                    !FunkyGame.Hero.Class.bWaitingForSpecial &&
                    FunkyBaseExtension.Settings.Monk.bMonkSpamMantra &&
                    FunkyGame.Targeting.Cache.Environment.SurroundingUnits > 0;
            }
            else
            {
                PreCast = new SkillPreCast((SkillPrecastFlags.CheckEnergy | SkillPrecastFlags.CheckRecastTimer));
                FcriteriaBuff = () => FunkyBaseExtension.Settings.Monk.bMonkSpamMantra && FunkyGame.Targeting.Cache.Environment.SurroundingUnits > 0 && LastUsedMilliseconds > 3000;
                FcriteriaCombat = (u) => FunkyBaseExtension.Settings.Monk.bMonkSpamMantra && LastUsedMilliseconds > 3000;
            }
        }
Пример #4
0
        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();
        }
Пример #5
0
        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;
        }
Пример #6
0
        public override void Initialize()
        {
            Range = 25;
            Priority = SkillPriority.None;

            WaitVars = new WaitLoops(0, 0, true);
            PreCast = new SkillPreCast(SkillPrecastFlags.None);
        }
Пример #7
0
        public override void Initialize()
        {
            WaitVars = new WaitLoops(1, 2, true);
            Cost = 25;

            Priority = SkillPriority.High;
            PreCast = new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy |
                                      SkillPrecastFlags.CheckRecastTimer));
        }
Пример #8
0
        public override void Initialize()
        {
            Cooldown=150;

                WaitVars=new WaitLoops(0, 0, true);
                Cost=15;
                IsChanneling=true;

                Range=23;
                Priority=SkillPriority.Medium;
                PreCast=new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated));

                //UnitsWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 2);
                //ElitesWithinRangeConditions=new Tuple<RangeIntervals, int>(RangeIntervals.Range_25, 1);

                ClusterConditions.Add(new SkillClusterConditions(5d, Range, 2, true));
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, Range, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal));

                FcriteriaCombat=(u) =>
                {
                    bool isChanneling=(IsHobbling||LastUsedMilliseconds<150);
                    int channelingCost = RuneIndex == 3 ? 8 : 10;

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

                FCombatMovement=v =>
                {
                    bool isChanneling=(IsHobbling||LastUsedMilliseconds<150);
                    int channelingCost = RuneIndex == 3 ? 8 : 10;

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

                    return Vector3.Zero;
                };

                FOutOfCombatMovement=v =>
                {
                    Vector3 vTargetAimPoint=MathEx.CalculatePointFrom(v, FunkyGame.Hero.Position, 10f);
                    bool isChanneling=(IsHobbling||LastUsedMilliseconds<150);
                    int channelingCost = RuneIndex == 3 ? 8 : 10;

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

                    return Vector3.Zero;
                };
        }
Пример #9
0
        public override void Initialize()
        {
            WaitVars = new WaitLoops(0, 0, true);
            Cost = 18;
            Range = 35;

            Priority = SkillPriority.Medium;
            PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckEnergy | SkillPrecastFlags.CheckCanCast);
            FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial;
        }
Пример #10
0
        public override void Initialize()
        {
            WaitVars = new WaitLoops(3, 3, true);
            Priority = SkillPriority.None;
            UseageType = SkillUseage.OutOfCombat;
            PreCast = new SkillPreCast(SkillPrecastFlags.None);

            //Important!! We have to override the default return of true.. we dont want this to fire as a combat Ability.
            FcriteriaCombat = (u) => false;
        }
Пример #11
0
        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));
        }
Пример #12
0
        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);
        }
Пример #13
0
        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));
        }
Пример #14
0
        public override void Initialize()
        {
            WaitVars = new WaitLoops(1, 2, true);
            Cost = 40;
            Range = 50;

            Priority = SkillPriority.Medium;
            PreCast = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast);
            SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal));
            ClusterConditions.Add(new SkillClusterConditions(5d, 50f, 2, true));
            FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial;
        }
Пример #15
0
        public override void Initialize()
        {
            TallManFinger = Equipment.CheckLegendaryItemCount(LegendaryItemTypes.TheTallMansFinger);

            WaitVars = new WaitLoops(0, 0, true);

            Priority = SkillPriority.High;
            PreCast = new SkillPreCast(SkillPrecastFlags.CheckCanCast);

            FcriteriaBuff = () => FunkyGame.Targeting.Cache.Environment.HeroPets.ZombieDogs < GetTotalZombieDogsSummonable();
            FcriteriaCombat = (u) => FunkyGame.Targeting.Cache.Environment.HeroPets.ZombieDogs < GetTotalZombieDogsSummonable();
        }
Пример #16
0
        public override void Initialize()
        {
            if (RuneIndex == 2)
                recastTime = 15;
            if (Equipment.CheckLegendaryItemCount(LegendaryItemTypes.Quetzalcoatl))
                recastTime = recastTime/2;

            bool hotbarContainsDOT = Hotbar.HasPower(SNOPower.Witchdoctor_Haunt) || (Hotbar.HasPower(SNOPower.Witchdoctor_Piranhas));

            Range = 14;
            Cost = 196;

            var precastflags = SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast;
            if (!hotbarContainsDOT)
            {
                ClusterConditions.Add(new SkillClusterConditions(5d, 35, 4, true, 0.25d));
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 20, MinimumHealthPercent: 0.99d, falseConditionalFlags: TargetProperties.DOTDPS));

                //Any non-normal unit (Any Range!)
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: -1, MinimumHealthPercent: 0.99d, falseConditionalFlags: TargetProperties.Normal|TargetProperties.DOTDPS));
            }
            else
            {
                ClusterConditions.Add(new SkillClusterConditions(5d, 35, 4, true));
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 20, MinimumHealthPercent: 0.99d, falseConditionalFlags: TargetProperties.Weak));

                //Any non-normal unit (Any Range!)
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: -1, MinimumHealthPercent: 0.99d, falseConditionalFlags: TargetProperties.Normal));
                precastflags |= SkillPrecastFlags.CheckRecastTimer;
            }

            WaitVars = new WaitLoops(1, 1, true);

            Priority = SkillPriority.High;
            PreCast = new SkillPreCast(precastflags);
            ShouldTrack = true;

            PreCast.Criteria += (s) => !Hotbar.HasDebuff(SNOPower.Succubus_BloodStar);

            FcriteriaCombat = (u) =>
            {
                if (u.SkillsUsedOnObject.ContainsKey(Power))
                {
                    //If we have Creeping Death, then we ignore any units that we already cast upon.
                    if (Hotbar.PassivePowers.Contains(SNOPower.Witchdoctor_Passive_CreepingDeath)) return false;

                    //Runeindex 2 has duration of 16s instead of 7s
                    return DateTime.Now.Subtract(u.SkillsUsedOnObject[Power]).TotalSeconds > (RuneIndex==2?15:7);
                }

                return true;
            };
        }
Пример #17
0
        public override void Initialize()
        {
            Range = RuneIndex == 4 ? 35 : 45;

            WaitVars = new WaitLoops(0, 0, false);
            Cost = 0;

            Priority = SkillPriority.Low;

            PreCast = new SkillPreCast((SkillPrecastFlags.CheckCanCast));
            SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None));
        }
Пример #18
0
        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; };
        }
Пример #19
0
        public override void Initialize()
        {
            Cooldown=115000;

                WaitVars=new WaitLoops(1, 2, true);
                Cost=25;
                Counter=1;

                Priority=SkillPriority.High;
                PreCast=new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated|SkillPrecastFlags.CheckEnergy|
                                          SkillPrecastFlags.CheckExisitingBuff));
        }
Пример #20
0
        public override void Initialize()
        {
            if (Equipment.CheckLegendaryItemCount(LegendaryItemTypes.Quetzalcoatl))
                recastTime = 5;

            bool hotbarContainsLoctusSwarm = Hotbar.HasPower(SNOPower.Witchdoctor_Locust_Swarm);

            //since we can only track one DOTDPS, we track locus swarm and cast this
            if (hotbarContainsLoctusSwarm)
            {
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45));
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: -1, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal));
            }
            else
            {
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45, falseConditionalFlags: TargetProperties.DOTDPS));
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: -1, MinimumHealthPercent: 0.95d, falseConditionalFlags: TargetProperties.Normal | TargetProperties.DOTDPS));
            }

            WaitVars = new WaitLoops(0, 0, false);
            Cost = 50;
            Range = 45;

            Priority = SkillPriority.High;
            ShouldTrack = true;

            if (!FunkyGame.Hero.Class.ContainsAnyPrimarySkill)
            {
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None));
                IsPrimarySkill = true;
                Priority = SkillPriority.Low;
            }

            var precastflags = SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast;
            if (hotbarContainsLoctusSwarm) precastflags |= SkillPrecastFlags.CheckRecastTimer;

            PreCast = new SkillPreCast(precastflags);

            //PreCast.Criteria += (s) => !Hotbar.HasDebuff(SNOPower.Succubus_BloodStar);

            FcriteriaCombat = (u) =>
            {
                if (u.SkillsUsedOnObject.ContainsKey(Power))
                {
                    //If we have Creeping Death, then we ignore any units that we already cast upon.
                    if (Hotbar.PassivePowers.Contains(SNOPower.Witchdoctor_Passive_CreepingDeath)) return false;

                    return DateTime.Now.Subtract(u.SkillsUsedOnObject[Power]).TotalSeconds > recastTime;
                }

                return true;
            };
        }
Пример #21
0
        public override void Initialize()
        {
            Cooldown=15000;

                WaitVars=new WaitLoops(0, 1, true);

                Priority=SkillPriority.High;
                PreCast=new SkillPreCast((SkillPrecastFlags.CheckCanCast));

                FcriteriaBuff = () => FunkyGame.Hero.dCurrentHealthPct <= 0.45d && FunkyGame.Targeting.Cache.Environment.iAnythingWithinRange[(int)RangeIntervals.Range_40] > 0;
                FcriteriaCombat=(u) => FunkyGame.Hero.dCurrentHealthPct<=0.45d && FunkyGame.Targeting.Cache.Environment.iAnythingWithinRange[(int)RangeIntervals.Range_40]>0;
        }
Пример #22
0
        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
                };
        }
Пример #23
0
        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));
        }
Пример #24
0
        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));
        }
Пример #25
0
        public override void Initialize()
        {
            Cooldown=20200;

                WaitVars=new WaitLoops(1, 1, true);

                Priority=SkillPriority.High;
                PreCast=new SkillPreCast((SkillPrecastFlags.CheckRecastTimer));

                //TODO:: Give better conditions
                FcriteriaCombat = (u) => FunkyGame.Hero.dCurrentHealthPct <= 0.45d
                                      &&FunkyGame.Targeting.Cache.Environment.iAnythingWithinRange[(int)RangeIntervals.Range_20]>0;
        }
Пример #26
0
        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));
        }
Пример #27
0
        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));
        }
Пример #28
0
        public override void Initialize()
        {
            Cooldown=5000;

                WaitVars=new WaitLoops(1, 1, true);

                Priority=SkillPriority.High;
                PreCast=new SkillPreCast(SkillPrecastFlags.CheckCanCast);
                Cost = RuneIndex == 0 ? 25 : 0;
                                        //Rune: Punishment (Restores all Hatered for 25 disc)
                FcriteriaCombat = (u) => (RuneIndex == 0 && FunkyGame.Hero.dCurrentEnergyPct < 0.20d)
                                            || (FunkyGame.Hero.dDisciplinePct < 0.25d);
        }
Пример #29
0
        public override void Initialize()
        {
            Cooldown=20200;

                WaitVars=new WaitLoops(1, 1, true);
                Cost=30;

                Priority=SkillPriority.High;
                PreCast=new SkillPreCast((SkillPrecastFlags.CheckEnergy|SkillPrecastFlags.CheckCanCast|
                                          SkillPrecastFlags.CheckRecastTimer));

                FcriteriaCombat=(u) => FunkyGame.Hero.dCurrentHealthPct<=0.45;
        }
Пример #30
0
        public override void Initialize()
        {
            Cooldown=5;

                WaitVars=new WaitLoops(0, 1, true);
                Cost=25;
                Range=12;

                Priority=SkillPriority.Medium;
                PreCast=new SkillPreCast((SkillPrecastFlags.CheckPlayerIncapacitated|SkillPrecastFlags.CheckCanCast));
                SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 12));

                FcriteriaCombat=(u) => (!FunkyGame.Hero.Class.bWaitingForSpecial && FunkyGame.Hero.dCurrentEnergy >= FunkyGame.Hero.Class.iWaitingReservedAmount);
        }