Ejemplo n.º 1
0
        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,
                });
            }
        }
Ejemplo n.º 2
0
        public override void Initialize()
        {
            WaitVars = new WaitLoops(0, 0, true);
            Cost     = 35;
            Range    = 28;

            IsDestructiblePower = true;

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

            FcriteriaCombat = (u) => (!HasSignatureAbility() || Hotbar.GetBuffStacks(SNOPower.Wizard_EnergyTwister) < 1) &&
                              (FunkyGame.Targeting.Cache.Environment.iElitesWithinRange[(int)RangeIntervals.Range_30] >= 1 ||
                               FunkyGame.Targeting.Cache.Environment.iAnythingWithinRange[(int)RangeIntervals.Range_25] >= 1 ||
                               u.TargetInfo.RadiusDistance <= 12f) &&
                              (!Hotbar.HasPower(SNOPower.Wizard_Electrocute) ||
                               !u.IsFast) &&
                              (FunkyGame.Hero.dCurrentEnergy >= 35);
        }