protected virtual bool ShouldExplodingPalm(out TrinityActor target) { target = null; if (!Skills.Monk.ExplodingPalm.CanCast()) { return(false); } if (Player.PrimaryResource < PrimaryEnergyReserve) { return(false); } var isBigCluster = TargetUtil.ClusterExists(WaveOfLightRange, 3); var isEliteInRange = TargetUtil.AnyElitesInRange(WaveOfLightRange); var isFarTooMuchResource = Player.PrimaryResourcePct > 0.8f; if (isBigCluster || isEliteInRange || isFarTooMuchResource) { target = TargetUtil.BestExplodingPalmTarget(MeleeAttackRange); return(target != null); } return(false); }