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, }); } }
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); }