private static void Combo() { var enemyTarget = TargetSelectorHelper.GetTarget(TargetingMode.NearLocalPlayer, 9f); var enemyProjectiles = GetEnemyProjectiles(10f); if (enemyTarget == null) { return; } var enemyDistance = player.Distance(enemyTarget.WorldPosition); var intersectingWithProjectile = Helper.IsProjectileColliding(player, enemyProjectiles); Vector2 intersectPoint = Geometry.GetClosestPointOnLineSegment(enemyProjectiles.StartPosition, enemyProjectiles.CalculatedEndPosition, player.WorldPosition, out enemyDistance); if (useQ && LocalPlayer.GetAbilityHudData(AbilitySlot.Ability4).CooldownTime < 0.1f && intersectingWithProjectile) { //if (player.Distance(enemyProjectiles.WorldPosition) <= player.MapCollisionRadius*2.4) // LocalPlayer.CastAbility(AbilitySlot.Ability4); } var hasBuff = Helper.HasBuff(enemyTarget, "RecastBuff"); eSkill = new SkillBase(AbilitySlot.Ability5, SkillType.Circle, 10f, 4.4f, 2f); var lmbSkill = new SkillBase(AbilitySlot.Ability1, SkillType.Line, 8f, 8f, 0.6f); var predictLMB = player.GetPrediction(enemyTarget, lmbSkill.Speed, lmbSkill.Range, lmbSkill.SpellCollisionRadius, lmbSkill.SkillType); if (!enemyTarget.IsDead && !enemyTarget.HasConsumeBuff && !enemyTarget.IsCountering && !enemyTarget.IsImmaterial && !Helper.HasBuff(enemyTarget, "GustBuff") && !Helper.HasBuff(enemyTarget, "BulwarkBuff") && !Helper.HasBuff(enemyTarget, "Incapacitate") && !Helper.HasBuff(enemyTarget, "PetrifyStone") && !Helper.IsColliding(player, enemyTarget)) { if (LocalPlayer.GetAbilityHudData(eSkill.Slot).CooldownTime < 0.1f) // TODO incorporate RecastBuff with E { LocalPlayer.UpdateCursorPosition(intersectPoint, true); // TODO needs more work LocalPlayer.CastAbility(eSkill.Slot); } if (predictLMB.HitChancePercent >= 35f) { LocalPlayer.UpdateCursorPosition(predictLMB.MoveMousePosition); LocalPlayer.CastAbility(AbilitySlot.Ability1); } } }
//TODO Maybe try to merge Heal Combo and Combo together private static void HealCombo() { var allyTarget = TargetSelectorHelper.GetAlly(TargetingMode.LowestHealth, 11f); if (allyTarget == null) { return; } var RmbSkill = new SkillBase(AbilitySlot.Ability2, SkillType.Circle, 9.2f, 5.6f, 1.15f, 300f); var predictRMB = player.GetPrediction(allyTarget, RmbSkill.Speed, RmbSkill.Range, RmbSkill.SpellCollisionRadius, RmbSkill.SkillType); if (RmbSkill.Data.Charges > 0 && !allyTarget.IsImmaterial && allyTarget.Health != allyTarget.MaxRecoveryHealth && predictRMB.HitChancePercent >= 75f) { LocalPlayer.UpdateCursorPosition(predictRMB.MoveMousePosition); LocalPlayer.CastAbility(RmbSkill.Slot); } }