Beispiel #1
0
        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;
        }
Beispiel #2
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;
        }
Beispiel #3
0
        public override void Initialize()
        {
            //ClusterConditions.Add(new SkillClusterConditions(5d, 20f, 1, true));
            SingleUnitCondition.Add(new UnitTargetConditions(TargetProperties.None, maxdistance: 45, falseConditionalFlags: TargetProperties.DOTDPS));

            Cost  = 100;
            Range = 45;

            Priority = SkillPriority.Medium;
            PreCast  = new SkillPreCast(SkillPrecastFlags.CheckPlayerIncapacitated | SkillPrecastFlags.CheckCanCast);

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

            FcriteriaCombat = (u) => !FunkyGame.Hero.Class.bWaitingForSpecial;
        }
Beispiel #4
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);
            };
        }