protected override bool MoveComboUseDisables(AbilityHelper abilityHelper) { if (abilityHelper.CanBeCasted(this.smash)) { if (abilityHelper.UseAbility(this.smash)) { return(true); } if (abilityHelper.CanBeCasted(this.stone, false)) { if (this.stone.UseAbility(abilityHelper.TargetManager, this.ComboSleeper, this.smash)) { return(true); } } else { if (abilityHelper.ForceUseAbility(this.smash, true)) { return(true); } } } return(false); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var damagingChakrams = this.chakrams.Count(x => comboModeMenu.IsAbilityEnabled(x.Ability) && x.IsDamaging(targetManager)); var returnChakram = this.chakrams.Find( x => comboModeMenu.IsAbilityEnabled(x.Ability) && x.ShouldReturnChakram(targetManager, damagingChakrams)); if (returnChakram?.Return() == true) { return(true); } var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.whirlingDeath)) { return(true); } if (abilityHelper.UseAbility(this.hex)) { return(true); } if (abilityHelper.UseAbilityIfCondition(this.blink, this.timberChain, this.whirlingDeath)) { if (abilityHelper.CanBeCasted(this.whirlingDeath, false, false)) { abilityHelper.ForceUseAbility(this.whirlingDeath, true); } return(true); } if (abilityHelper.UseAbility(this.shiva)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail, 400)) { return(true); } if (abilityHelper.UseAbilityIfCondition(this.timberChain, this.blink)) { return(true); } var chakram = this.chakrams.Find(x => x.Ability.CanBeCasted()); if (abilityHelper.UseAbility(chakram)) { return(true); } return(false); }
// Token: 0x06000915 RID: 2325 RVA: 0x0000691B File Offset: 0x00004B1B protected override bool MoveComboUseBuffs(AbilityHelper abilityHelper) { if (base.MoveComboUseBuffs(abilityHelper)) { return(true); } if (abilityHelper.CanBeCasted(this.surge, false, false, true, true)) { abilityHelper.ForceUseAbility(this.surge, false, true); return(true); } return(false); }
// Token: 0x06000274 RID: 628 RVA: 0x000104E4 File Offset: 0x0000E6E4 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { int damagingChakrams = this.chakrams.Count((Chakram x) => comboModeMenu.IsAbilityEnabled(x.Ability) && x.IsDamaging(targetManager)); Chakram chakram = this.chakrams.Find((Chakram x) => comboModeMenu.IsAbilityEnabled(x.Ability) && x.ShouldReturnChakram(targetManager, damagingChakrams)); if (chakram != null && chakram.Return()) { return(true); } AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.whirlingDeath, true)) { return(true); } if (abilityHelper.UseAbility(this.hex, true)) { return(true); } if (abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[] { this.timberChain, this.whirlingDeath })) { if (abilityHelper.CanBeCasted(this.whirlingDeath, false, false, true, true)) { abilityHelper.ForceUseAbility(this.whirlingDeath, true, true); } return(true); } if (abilityHelper.UseAbility(this.shiva, true)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail, 400f)) { return(true); } if (abilityHelper.UseAbilityIfCondition(this.timberChain, new UsableAbility[] { this.blink })) { return(true); } Chakram ability = this.chakrams.Find((Chakram x) => x.Ability.CanBeCasted(true)); return(abilityHelper.UseAbility(ability, true)); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.shiva)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail, 400)) { return(true); } if (abilityHelper.UseAbility(this.vacuum)) { return(true); } if (abilityHelper.UseAbilityIfNone(this.wall, this.vacuum)) { return(true); } if (abilityHelper.UseAbility(this.blink, 600, 400)) { return(true); } if (abilityHelper.UseAbility(this.force, 600, 400)) { return(true); } if (abilityHelper.UseAbility(this.shell)) { return(true); } if (abilityHelper.CanBeCasted(this.surge, false, false)) { if (abilityHelper.ForceUseAbility(this.surge)) { return(true); } } return(false); }
// Token: 0x06000939 RID: 2361 RVA: 0x00028E7C File Offset: 0x0002707C public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.CanBeCasted(this.field, true, true, true, true)) { if (abilityHelper.CanBeCasted(this.bkb, false, false, true, true) && abilityHelper.ForceUseAbility(this.bkb, false, true)) { return(true); } if (abilityHelper.HasMana(new UsableAbility[] { this.field, this.glimmer }) && abilityHelper.CanBeCasted(this.glimmer, false, false, true, true) && abilityHelper.ForceUseAbility(this.glimmer, false, true)) { return(true); } if (abilityHelper.HasMana(new UsableAbility[] { this.field, this.atos }) && abilityHelper.UseAbility(this.atos, true)) { return(true); } if (abilityHelper.HasMana(new UsableAbility[] { this.field, this.frostbite }) && abilityHelper.UseAbility(this.frostbite, true)) { return(true); } if (abilityHelper.UseAbility(this.field, true)) { return(true); } } return(abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[] { this.field }) || abilityHelper.UseAbility(this.force, 600f, 400f) || abilityHelper.UseAbility(this.atos, true) || abilityHelper.UseAbility(this.frostbite, true) || abilityHelper.UseAbility(this.nova, true)); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (this.powershot.CancelChanneling(targetManager)) { this.ComboSleeper.Sleep(0.1f); return(true); } if (abilityHelper.UseAbilityIfCondition(this.blink, this.shackleshot)) { abilityHelper.ForceUseAbility(this.shackleshot); this.OrbwalkSleeper.Sleep(0.5f); return(true); } if (!abilityHelper.CanBeCasted(this.shackleshot, false, false)) { if (abilityHelper.UseAbility(this.blink, this.Owner.GetAttackRange(targetManager.Target) + 100, 400)) { return(true); } } if (abilityHelper.UseAbility(this.hex)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn)) { return(true); } if (abilityHelper.UseAbility(this.orchid)) { return(true); } if (abilityHelper.UseAbility(this.nullifier)) { return(true); } if (abilityHelper.UseAbility(this.shackleshot)) { return(true); } if (abilityHelper.CanBeCasted(this.shackleshot, false)) { var castWindrun = abilityHelper.CanBeCasted(this.windrun, false, false); var movePosition = this.shackleshot.GetMovePosition(targetManager, comboModeMenu, castWindrun); //if ((movePosition.IsZero || Owner.Distance(movePosition) > 300 || targetManager.Target.IsMoving) && abilityHelper.CanBeCasted(this.force, false, false)) //{ // var forcePosition = this.shackleshot.GetForceStaffPosition(targetManager, this.force); // if (!forcePosition.IsZero) // { // if (Owner.GetAngle(forcePosition) > 0.1) // { // this.Move(forcePosition); // OrbwalkSleeper.Sleep(0.1f); // this.ComboSleeper.Sleep(0.1f); // return true; // } // abilityHelper.ForceUseAbility(this.force, true); // return true; // } //} if (!movePosition.IsZero && this.Move(movePosition)) { if ((this.Owner.Distance(movePosition) > 100 || targetManager.Target.IsMoving) && castWindrun) { abilityHelper.ForceUseAbility(this.windrun); } this.OrbwalkSleeper.Sleep(0.1f); this.ComboSleeper.Sleep(0.1f); return(true); } } if (abilityHelper.UseAbilityIfCondition(this.powershot, this.shackleshot, this.blink)) { this.ComboSleeper.ExtendSleep(0.2f); this.OrbwalkSleeper.ExtendSleep(0.2f); return(true); } if (abilityHelper.UseAbilityIfCondition(this.focusFire, this.powershot)) { return(true); } if (abilityHelper.UseAbility(this.windrun)) { return(true); } if (abilityHelper.UseAbility(this.phase)) { return(true); } return(false); }
// Token: 0x060005CE RID: 1486 RVA: 0x0001CF8C File Offset: 0x0001B18C public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); float num = base.Owner.Distance(targetManager.Target); if (abilityHelper.CanBeCasted(this.duel, false, false, true, true) && ((num <= 1400f && abilityHelper.CanBeCasted(this.blink, true, true, true, true)) || num < 500f)) { if (abilityHelper.CanBeCasted(this.attack, false, true, true, true) && abilityHelper.ForceUseAbility(this.attack, false, true)) { return(true); } if (abilityHelper.CanBeCasted(this.bladeMail, false, true, true, true) && abilityHelper.ForceUseAbility(this.bladeMail, false, true)) { return(true); } if (abilityHelper.CanBeCasted(this.bkb, false, true, true, true) && abilityHelper.ForceUseAbility(this.bkb, false, true)) { return(true); } if (abilityHelper.CanBeCasted(this.mjollnir, false, true, true, true) && abilityHelper.ForceUseAbility(this.mjollnir, false, true)) { return(true); } if (abilityHelper.CanBeCasted(this.armlet, false, true, true, true) && abilityHelper.ForceUseAbility(this.armlet, false, true)) { return(true); } if (!abilityHelper.CanBeCasted(this.duel, true, true, true, true) && abilityHelper.CanBeCasted(this.blink, false, true, true, true) && abilityHelper.ForceUseAbility(this.blink, false, true)) { return(true); } } if (abilityHelper.UseAbility(this.abyssal, true)) { return(true); } if (abilityHelper.UseAbility(this.orchid, true)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn, true)) { return(true); } if (abilityHelper.UseAbility(this.nullifier, true)) { return(true); } if (abilityHelper.UseAbility(this.halberd, true)) { return(true); } if (abilityHelper.UseAbility(this.bkb, 500f)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail, 500f)) { return(true); } if (abilityHelper.UseAbility(this.mjollnir, 400f)) { return(true); } if (abilityHelper.UseAbility(this.attack, 400f)) { return(true); } if (abilityHelper.UseAbility(this.armlet, 300f)) { return(true); } if (abilityHelper.UseAbility(this.duel, true)) { return(true); } if (abilityHelper.UseAbility(this.blink, 300f, 0f)) { return(true); } if (abilityHelper.CanBeCasted(this.odds, true, true, true, true) && !abilityHelper.CanBeCasted(this.duel, true, true, true, true) && !abilityHelper.CanBeCasted(this.blink, true, true, true, true)) { BlinkAbility blinkAbility = this.blink; if ((blinkAbility == null || !blinkAbility.Sleeper.IsSleeping) && abilityHelper.UseAbility(this.odds, true)) { return(true); } } return(abilityHelper.UseAbility(this.phase, true)); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.CanBeCasted(this.blackHole)) { if (abilityHelper.CanBeCasted(this.bkb, false, false)) { if (abilityHelper.ForceUseAbility(this.bkb)) { return(true); } } if (abilityHelper.HasMana(this.pulse, this.blackHole) && abilityHelper.UseAbility(this.pulse)) { return(true); } if (abilityHelper.HasMana(this.shiva, this.blackHole) && abilityHelper.UseAbility(this.shiva)) { return(true); } if (abilityHelper.UseAbility(this.blackHole)) { return(true); } } if (abilityHelper.CanBeCastedIfCondition(this.blink, this.blackHole)) { if (abilityHelper.CanBeCasted(this.bkb, false, false)) { if (abilityHelper.ForceUseAbility(this.bkb)) { return(true); } } if (abilityHelper.CanBeCasted(this.ghost, false, false)) { if (abilityHelper.ForceUseAbility(this.ghost)) { return(true); } } } if (abilityHelper.UseAbilityIfCondition(this.blink, this.blackHole)) { return(true); } if (abilityHelper.CanBeCasted(this.refresher) || abilityHelper.CanBeCasted(this.refresherShard)) { if (abilityHelper.CanBeCasted(this.blackHole, true, true, true, false) && !this.blackHole.Ability.IsReady) { var useRefresher = abilityHelper.CanBeCasted(this.refresherShard) ? this.refresherShard : this.refresher; if (abilityHelper.HasMana(this.blackHole, useRefresher)) { if (abilityHelper.UseAbility(useRefresher)) { return(true); } } } } if (abilityHelper.UseAbility(this.malefice)) { return(true); } return(false); }
private bool UltCombo(TargetManager targetManager, AbilityHelper abilityHelper) { if (!abilityHelper.CanBeCasted(this.requiem, false, false)) { return(false); } var target = targetManager.Target; var position = target.Position; var distance = this.Owner.Distance(position); var requiredTime = this.requiem.Ability.CastPoint + (Game.Ping / 2000); const float AdditionalTime = 0.3f; if (target.IsInvulnerable) { var time = target.GetInvulnerabilityDuration(); if (time <= 0) { return(true); } var eulsModifier = target.GetModifier("modifier_eul_cyclone"); if (eulsModifier != null) { var particle = eulsModifier.ParticleEffects.FirstOrDefault(); if (particle != null) { position = particle.GetControlPoint(0); distance = this.Owner.Distance(position); } } var remainingTime = time - requiredTime; if (remainingTime <= -AdditionalTime) { return(false); } if (distance < 100) { if (abilityHelper.UseAbility(this.bkb)) { return(true); } if (remainingTime <= 0 && abilityHelper.ForceUseAbility(this.requiem)) { return(true); } if (!this.OrbwalkSleeper.IsSleeping) { this.OrbwalkSleeper.Sleep(0.1f); this.Owner.BaseUnit.Move(position); } return(true); } if (distance / this.Owner.Speed < remainingTime + AdditionalTime) { if (abilityHelper.UseAbility(this.bkb)) { return(true); } this.OrbwalkSleeper.Sleep(0.1f); this.ComboSleeper.Sleep(0.1f); return(this.Owner.BaseUnit.Move(position)); } if (abilityHelper.CanBeCasted(this.blink)) { var blinkRange = this.blink.Ability.CastRange + (this.Owner.Speed * remainingTime); if (blinkRange > distance) { if (abilityHelper.UseAbility(this.blink, position)) { this.OrbwalkSleeper.Sleep(0.1f); return(true); } } } } if (!abilityHelper.CanBeCasted(this.euls, false, false) || !this.euls.ShouldForceCast(targetManager) || target.IsMagicImmune) { return(false); } var eulsTime = this.euls.Ability.Duration - requiredTime; if (abilityHelper.CanBeCasted(this.blink)) { var blinkRange = this.blink.Ability.CastRange + (this.Owner.Speed * eulsTime); if (blinkRange > distance) { if (abilityHelper.UseAbility(this.blink, position)) { this.OrbwalkSleeper.Sleep(0.1f); this.ComboSleeper.ExtendSleep(0.1f); return(true); } } } if (distance / this.Owner.Speed < eulsTime) { if (abilityHelper.UseAbility(this.hex)) { this.ComboSleeper.ExtendSleep(0.1f); this.OrbwalkSleeper.ExtendSleep(0.1f); return(true); } if (abilityHelper.UseAbility(this.veil)) { return(true); } if (abilityHelper.UseAbility(this.ethereal)) { this.OrbwalkSleeper.Sleep(0.5f); return(true); } if (abilityHelper.ForceUseAbility(this.euls)) { return(true); } } return(false); }
// Token: 0x06000412 RID: 1042 RVA: 0x0001662C File Offset: 0x0001482C public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.bloodthorn, true)) { return(true); } if (abilityHelper.UseAbility(this.nullifier, true)) { return(true); } if (abilityHelper.UseAbility(this.ethereal, true)) { return(true); } if (abilityHelper.UseAbility(this.dagon, true)) { return(true); } if (abilityHelper.UseAbility(this.shiva, true)) { return(true); } if (targetManager.Target.HasModifier("modifier_pudge_meat_hook")) { if (abilityHelper.CanBeCasted(this.bloodthorn, true, false, true, true)) { abilityHelper.ForceUseAbility(this.bloodthorn, false, true); return(true); } if (abilityHelper.CanBeCasted(this.nullifier, true, false, true, true)) { if (!targetManager.Target.Abilities.Any((Ability9 x) => x.Id == AbilityId.item_aeon_disk && x.IsReady)) { abilityHelper.ForceUseAbility(this.nullifier, false, true); return(true); } } if (abilityHelper.CanBeCasted(this.ethereal, true, false, true, true)) { abilityHelper.ForceUseAbility(this.ethereal, false, true); return(true); } if (abilityHelper.UseAbility(this.dagon, true)) { return(true); } if (abilityHelper.UseAbility(this.vessel, true)) { return(true); } if (abilityHelper.UseAbility(this.urn, true)) { return(true); } } if (!abilityHelper.CanBeCasted(this.dismember, true, true, true, true)) { return(abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[] { this.dismember }) || abilityHelper.UseAbility(this.blink, 800f, 25f) || abilityHelper.UseAbility(this.atos, true) || (abilityHelper.CanBeCasted(this.force, true, true, true, true) && this.force.UseAbilityOnTarget(targetManager, base.ComboSleeper)) || abilityHelper.UseAbility(this.force, 400f, 800f) || abilityHelper.UseAbility(this.hook, true) || (abilityHelper.CanBeCasted(this.rot, false, false, true, true) && this.rot.AutoToggle(targetManager))); } if (abilityHelper.CanBeCasted(this.bloodthorn, true, false, true, true)) { abilityHelper.ForceUseAbility(this.bloodthorn, false, true); return(true); } if (abilityHelper.CanBeCasted(this.nullifier, true, false, true, true)) { if (!targetManager.Target.Abilities.Any((Ability9 x) => x.Id == AbilityId.item_aeon_disk && x.IsReady)) { abilityHelper.ForceUseAbility(this.nullifier, false, true); return(true); } } if (abilityHelper.CanBeCasted(this.ethereal, true, false, true, true)) { abilityHelper.ForceUseAbility(this.ethereal, false, true); return(true); } if (abilityHelper.UseAbility(this.dagon, true)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail, true)) { return(true); } if (abilityHelper.UseAbility(this.vessel, true)) { return(true); } if (abilityHelper.UseAbility(this.urn, true)) { return(true); } abilityHelper.ForceUseAbility(this.dismember, false, true); return(true); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); var distance = this.Owner.Distance(targetManager.Target); if (abilityHelper.CanBeCasted(this.duel, false, false) && ((distance <= 1400 && abilityHelper.CanBeCasted(this.blink)) || distance < 500)) { if (abilityHelper.CanBeCasted(this.attack, false)) { if (abilityHelper.ForceUseAbility(this.attack)) { return(true); } } if (abilityHelper.CanBeCasted(this.bladeMail, false)) { if (abilityHelper.ForceUseAbility(this.bladeMail)) { return(true); } } if (abilityHelper.CanBeCasted(this.bkb, false)) { if (abilityHelper.ForceUseAbility(this.bkb)) { return(true); } } if (abilityHelper.CanBeCasted(this.mjollnir, false)) { if (abilityHelper.ForceUseAbility(this.mjollnir)) { return(true); } } if (abilityHelper.CanBeCasted(this.armlet, false)) { if (abilityHelper.ForceUseAbility(this.armlet)) { return(true); } } if (!abilityHelper.CanBeCasted(this.duel) && abilityHelper.CanBeCasted(this.blink, false)) { if (abilityHelper.ForceUseAbility(this.blink)) { return(true); } } } if (abilityHelper.UseAbility(this.abyssal)) { return(true); } if (abilityHelper.UseAbility(this.orchid)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn)) { return(true); } if (abilityHelper.UseAbility(this.nullifier)) { return(true); } if (abilityHelper.UseAbility(this.halberd)) { return(true); } if (abilityHelper.UseAbility(this.bkb, 500)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail, 500)) { return(true); } if (abilityHelper.UseAbility(this.mjollnir, 400)) { return(true); } if (abilityHelper.UseAbility(this.medallion)) { return(true); } if (abilityHelper.UseAbility(this.solar)) { return(true); } if (abilityHelper.UseAbility(this.attack, 400)) { return(true); } if (abilityHelper.UseAbility(this.armlet, 300)) { return(true); } if (abilityHelper.UseAbility(this.duel)) { return(true); } if (abilityHelper.UseAbility(this.blink, 300, 0)) { return(true); } if (abilityHelper.CanBeCasted(this.odds) && !abilityHelper.CanBeCasted(this.duel) && !abilityHelper.CanBeCasted(this.blink) && this.blink?.Sleeper.IsSleeping != true) { if (abilityHelper.UseAbility(this.odds)) { return(true); } } if (abilityHelper.UseAbility(this.phase)) { return(true); } return(false); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (this.Owner.HasModifier("modifier_void_spirit_dissimilate_phase")) { this.ComboSleeper.Sleep(0.1f); this.OrbwalkSleeper.Sleep(0.1f); return(this.Owner.Move(targetManager.Target.Position)); } if (abilityHelper.UseAbility(this.hex)) { return(true); } if (abilityHelper.UseAbility(this.nullifier)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn)) { return(true); } if (abilityHelper.UseAbility(this.orchid)) { return(true); } if (abilityHelper.UseAbility(this.veil)) { return(true); } if (abilityHelper.UseAbility(this.dagon)) { return(true); } if (abilityHelper.UseAbility(this.bkb, 500)) { return(true); } if (abilityHelper.UseAbility(this.mjollnir, 500)) { return(true); } if (abilityHelper.UseAbility(this.vessel)) { return(true); } if (abilityHelper.UseAbility(this.urn)) { return(true); } if (abilityHelper.CanBeCasted(this.remnant) && targetManager.Target.GetImmobilityDuration() <= 0) { if (abilityHelper.CanBeCasted(this.eul, false, false)) { if (abilityHelper.UseAbility(this.eul) || (this.forceEul && abilityHelper.ForceUseAbility(this.eul))) { this.forceRemnant.Sleep(0.5f); this.forceEul.Reset(); return(true); } } } if (this.forceRemnant && abilityHelper.CanBeCasted(this.remnant, true, false) && abilityHelper.ForceUseAbility(this.remnant, true)) { this.forceRemnant.Reset(); return(true); } if (this.Owner.Distance(targetManager.Target) > 300) { if (abilityHelper.UseAbility(this.step)) { this.forceEul.Sleep(0.5f); return(true); } } if (!abilityHelper.CanBeCasted(this.step, false) || this.Owner.Distance(targetManager.Target) < 500 || !targetManager.Target.CanMove()) { if (abilityHelper.UseAbility(this.remnant)) { return(true); } } if (abilityHelper.UseAbility(this.dissimilate)) { return(true); } if (abilityHelper.UseAbilityIfNone(this.shiva, this.dissimilate)) { return(true); } if (!this.Owner.HasAghanimsScepter || !targetManager.Target.IsSilenced) { if (abilityHelper.UseAbility(this.pulse)) { this.pulse.Sleeper.ExtendSleep(0.2f); return(true); } } if (abilityHelper.UseAbility(this.phase)) { return(true); } return(false); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.hex)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn)) { return(true); } if (abilityHelper.UseAbility(this.orchid)) { return(true); } if (abilityHelper.UseAbility(this.nullifier)) { return(true); } if (abilityHelper.UseAbility(this.veil)) { return(true); } if (abilityHelper.UseAbility(this.ethereal)) { return(true); } if (abilityHelper.UseAbility(this.dagon)) { return(true); } if (abilityHelper.UseAbility(this.end)) { return(true); } if (this.end.Ability.IsChanneling) { if (targetManager.Target.HasModifier("modifier_oracle_purifying_flames")) { if (this.Owner.BaseUnit.Stop()) { this.ComboSleeper.Sleep(0.1f); return(true); } } } if (abilityHelper.CanBeCasted(this.flames, true, true, false)) { if (this.end.Ability.IsChanneling && !this.end.FullChannelTime(comboModeMenu)) { if (abilityHelper.ForceUseAbility(this.flames)) { return(true); } } } if (abilityHelper.UseAbility(this.flames)) { return(true); } if (abilityHelper.UseAbility(this.urn)) { return(true); } if (abilityHelper.UseAbility(this.vessel)) { return(true); } return(false); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.blink, 400, 200)) { this.rolling?.Sleeper.Sleep(0.8f); this.ComboSleeper.ExtendSleep(0.1f); return(true); } if (abilityHelper.UseAbility(this.force, 400, 200)) { this.rolling?.Sleeper.Sleep(0.8f); this.ComboSleeper.ExtendSleep(0.1f); return(true); } if (abilityHelper.UseAbility(this.veil)) { return(true); } if (abilityHelper.CanBeCasted(this.rolling)) { if (abilityHelper.UseAbility(this.rolling)) { return(true); } if (abilityHelper.CanBeCasted(this.stone, false)) { if (abilityHelper.ForceUseAbility(this.stone, true)) { this.smash?.Sleeper.Sleep(1f); return(true); } } else { if (abilityHelper.ForceUseAbility(this.rolling, true)) { return(true); } } } if (abilityHelper.CanBeCasted(this.smash)) { if (abilityHelper.UseAbility(this.smash)) { return(true); } if (abilityHelper.CanBeCasted(this.stone, false)) { if (this.stone.UseAbility(targetManager, this.ComboSleeper, this.smash)) { return(true); } } else { if (abilityHelper.ForceUseAbility(this.smash, true)) { return(true); } } } if (abilityHelper.CanBeCasted(this.grip)) { if (abilityHelper.UseAbility(this.grip)) { return(true); } if (abilityHelper.CanBeCasted(this.stone, false)) { if (this.stone.UseAbility(targetManager, this.ComboSleeper, this.grip)) { return(true); } } else { if (abilityHelper.ForceUseAbility(this.grip, true)) { return(true); } } } if (abilityHelper.UseAbility(this.halberd)) { return(true); } if (abilityHelper.UseAbility(this.mag)) { return(true); } if (abilityHelper.UseAbility(this.vessel)) { return(true); } if (abilityHelper.UseAbility(this.urn)) { return(true); } if (abilityHelper.UseAbility(this.shiva)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail)) { return(true); } if (abilityHelper.UseAbility(this.stone)) { return(true); } return(false); }
// Token: 0x060007F8 RID: 2040 RVA: 0x000246B4 File Offset: 0x000228B4 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.blink, 400f, 200f)) { RollingBoulder rollingBoulder = this.rolling; if (rollingBoulder != null) { rollingBoulder.Sleeper.Sleep(0.8f); } base.ComboSleeper.ExtendSleep(0.1f); return(true); } if (abilityHelper.UseAbility(this.force, 400f, 200f)) { RollingBoulder rollingBoulder2 = this.rolling; if (rollingBoulder2 != null) { rollingBoulder2.Sleeper.Sleep(0.8f); } base.ComboSleeper.ExtendSleep(0.1f); return(true); } if (abilityHelper.UseAbility(this.veil, true)) { return(true); } if (abilityHelper.CanBeCasted(this.rolling, true, true, true, true)) { if (abilityHelper.UseAbility(this.rolling, true)) { return(true); } if (abilityHelper.CanBeCasted(this.stone, false, true, true, true)) { if (abilityHelper.ForceUseAbility(this.stone, true, true)) { BoulderSmash boulderSmash = this.smash; if (boulderSmash != null) { boulderSmash.Sleeper.Sleep(1f); } return(true); } } else if (abilityHelper.ForceUseAbility(this.rolling, true, true)) { return(true); } } if (abilityHelper.CanBeCasted(this.smash, true, true, true, true)) { if (abilityHelper.UseAbility(this.smash, true)) { return(true); } if (abilityHelper.CanBeCasted(this.stone, false, true, true, true)) { if (this.stone.UseAbility(targetManager, base.ComboSleeper, this.smash)) { return(true); } } else if (abilityHelper.ForceUseAbility(this.smash, true, true)) { return(true); } } if (abilityHelper.CanBeCasted(this.grip, true, true, true, true)) { if (abilityHelper.UseAbility(this.grip, true)) { return(true); } if (abilityHelper.CanBeCasted(this.stone, false, true, true, true)) { if (this.stone.UseAbility(targetManager, base.ComboSleeper, this.grip)) { return(true); } } else if (abilityHelper.ForceUseAbility(this.grip, true, true)) { return(true); } } return(abilityHelper.UseAbility(this.halberd, true) || abilityHelper.UseAbility(this.mag, true) || abilityHelper.UseAbility(this.vessel, true) || abilityHelper.UseAbility(this.urn, true) || abilityHelper.UseAbility(this.shiva, true) || abilityHelper.UseAbility(this.bladeMail, true) || abilityHelper.UseAbility(this.stone, true)); }
public void RollSmashCombo(TargetManager targetManager, RollSmashModeMenu menu) { if (this.ComboSleeper.IsSleeping) { return; } var target = targetManager.Target; var distance = this.Owner.Distance(target.Position); var abilityHelper = new AbilityHelper(targetManager, null, this); if (this.Owner.HasModifier("modifier_earth_spirit_rolling_boulder_caster")) { if (abilityHelper.ForceUseAbility(this.stone, true)) { this.ComboSleeper.Sleep(3f); return; } } var ally = targetManager.AllyHeroes .Where(x => !x.Equals(this.Owner) && menu.IsAllyEnabled(x.Name) && x.Distance(target) > 300 && x.Distance(target) < 1500) .OrderBy(x => x.Distance(target)) .FirstOrDefault(); if (ally == null) { return; } if (target.HasModifier("modifier_earth_spirit_boulder_smash")) { if (abilityHelper.CanBeCasted(this.rolling, false, false) && this.rolling.SimpleUseAbility(target.Position)) { this.ComboSleeper.Sleep(0.5f); return; } return; } if (this.smash?.Ability.CanBeCasted() != true) { return; } if (distance < this.smash.Ability.CastRange + 100) { if (this.Owner.Position.AngleBetween(target.Position, ally.Position) < 30) { this.smash.Ability.UseAbility(target); this.ComboSleeper.Sleep(0.3f); return; } if (target.GetImmobilityDuration() > 0.5f) { this.Owner.BaseUnit.Move(target.Position.Extend2D(ally.Position, -100)); this.OrbwalkSleeper.Sleep(0.1f); this.ComboSleeper.Sleep(0.1f); return; } } if (abilityHelper.CanBeCasted(this.blink)) { var predicted = target.GetPredictedPosition(this.Owner.GetTurnTime(target.Position) + (GameManager.Ping / 2000f) + 0.2f); var position = predicted.Extend2D(ally.Position, -125); if (abilityHelper.UseAbility(this.blink, position)) { this.ComboSleeper.ExtendSleep(0.1f); return; } return; } if (abilityHelper.CanBeCasted(this.rolling)) { if (abilityHelper.UseAbility(this.rolling)) { return; } if (abilityHelper.CanBeCasted(this.stone, false)) { if (abilityHelper.ForceUseAbility(this.stone, true)) { return; } } else { if (abilityHelper.ForceUseAbility(this.rolling, true)) { return; } } } }
// Token: 0x0600038E RID: 910 RVA: 0x00014510 File Offset: 0x00012710 private bool UltCombo(TargetManager targetManager, AbilityHelper abilityHelper) { if (!abilityHelper.CanBeCasted(this.requiem, false, false, true, true)) { return(false); } Unit9 target = targetManager.Target; Vector3 vector = target.Position; float num = base.Owner.Distance(vector); float num2 = this.requiem.Ability.CastPoint + Game.Ping / 2000f; if (target.IsInvulnerable) { float invulnerabilityDuration = target.GetInvulnerabilityDuration(); if (invulnerabilityDuration <= 0f) { return(true); } Modifier modifier = target.GetModifier("modifier_eul_cyclone"); if (modifier != null) { ParticleEffect particleEffect = modifier.ParticleEffects.FirstOrDefault <ParticleEffect>(); if (particleEffect != null) { vector = particleEffect.GetControlPoint(0u); num = base.Owner.Distance(vector); } } float num3 = invulnerabilityDuration - num2; if (num3 <= -0.3f) { return(false); } if (num < 70f) { if (abilityHelper.UseAbility(this.bkb, true)) { return(true); } if (num3 <= 0f && abilityHelper.ForceUseAbility(this.requiem, false, true)) { return(true); } if (!base.OrbwalkSleeper.IsSleeping) { base.OrbwalkSleeper.Sleep(0.1f); base.Owner.BaseUnit.Move(vector); } return(true); } else if (num / base.Owner.Speed < num3 + 0.3f) { if (abilityHelper.UseAbility(this.bkb, true)) { return(true); } base.OrbwalkSleeper.Sleep(0.1f); base.ComboSleeper.Sleep(0.1f); return(base.Owner.BaseUnit.Move(vector)); } else if (abilityHelper.CanBeCasted(this.blink, true, true, true, true) && this.blink.Ability.CastRange + base.Owner.Speed * num3 > num && abilityHelper.UseAbility(this.blink, vector)) { base.OrbwalkSleeper.Sleep(0.1f); return(true); } } if (!abilityHelper.CanBeCasted(this.euls, false, false, true, true) || !this.euls.ShouldForceCast(targetManager) || target.IsMagicImmune) { return(false); } float num4 = this.euls.Ability.Duration - num2; if (abilityHelper.CanBeCasted(this.blink, true, true, true, true) && this.blink.Ability.CastRange + base.Owner.Speed * num4 > num && abilityHelper.UseAbility(this.blink, vector)) { base.OrbwalkSleeper.Sleep(0.1f); base.ComboSleeper.ExtendSleep(0.1f); return(true); } if (num / base.Owner.Speed < num4) { if (abilityHelper.CanBeCasted(this.hex, true, true, true, true)) { bool flag = false; foreach (ActiveAbility activeAbility in target.Abilities.OfType <ActiveAbility>()) { if (activeAbility.IsValid && activeAbility.CastPoint <= 0f && activeAbility.CanBeCasted(false)) { if (!base.Owner.IsMagicImmune || !abilityHelper.CanBeCasted(this.bkb, true, true, true, true)) { if (activeAbility.Id == AbilityId.item_blade_mail) { flag = true; break; } IDisable disable; if ((disable = (activeAbility as IDisable)) != null && (disable.AppliesUnitState & (UnitState.Silenced | UnitState.Stunned | UnitState.Hexed)) != (UnitState)0UL) { flag = true; break; } } IShield shield; if ((shield = (activeAbility as IShield)) != null && (shield.AppliesUnitState & (UnitState.Invulnerable | UnitState.MagicImmune)) != (UnitState)0UL) { flag = true; break; } IBlink blink; if ((blink = (activeAbility as IBlink)) != null && blink.Id != AbilityId.item_blink) { flag = true; break; } } } if (flag && abilityHelper.ForceUseAbility(this.hex, false, true)) { base.ComboSleeper.ExtendSleep(0.1f); base.OrbwalkSleeper.ExtendSleep(0.1f); return(true); } } if (abilityHelper.UseAbility(this.veil, true)) { return(true); } if (abilityHelper.UseAbility(this.ethereal, true)) { base.OrbwalkSleeper.Sleep(0.5f); return(true); } if (abilityHelper.ForceUseAbility(this.euls, false, true)) { return(true); } } return(false); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); var target = targetManager.Target; if (abilityHelper.UseAbility(this.hex)) { return(true); } if (abilityHelper.CanBeCasted(this.vortex) && (target.CanBecomeMagicImmune || target.CanBecomeInvisible)) { if (abilityHelper.UseAbility(this.vortex)) { return(true); } } if (abilityHelper.UseAbility(this.bloodthorn)) { return(true); } if (abilityHelper.UseAbility(this.orchid)) { return(true); } if (abilityHelper.UseAbility(this.nullifier)) { return(true); } if (abilityHelper.UseAbility(this.dagon)) { return(true); } if (abilityHelper.UseAbility(this.shiva)) { return(true); } var overloaded = this.Owner.CanAttack(target, 25) && this.Owner.HasModifier("modifier_storm_spirit_overload"); var projectile = ObjectManager.TrackingProjectiles.FirstOrDefault( x => x.Source?.Handle == this.Handle && x.Target?.Handle == target.Handle && x.IsAutoAttackProjectile()); if (overloaded) { if (projectile == null) { return(false); } var distance = target.IsMoving && target.GetAngle(projectile.Position) > 1.5f ? 250 : 350; if (projectile.Position.Distance2D(projectile.TargetPosition) > distance) { return(false); } } else { if (projectile != null) { var overload = this.Owner.Abilities.FirstOrDefault(x => x.Id == AbilityId.storm_spirit_overload); if (overload != null) { var attackDamage = this.Owner.GetAttackDamage(target); var overloadDamage = overload.GetDamage(target); var health = target.Health; if (attackDamage < health && attackDamage + overloadDamage > health) { if (abilityHelper.CanBeCasted(this.remnant, false, false) && abilityHelper.ForceUseAbility(this.remnant, true)) { return(true); } if (abilityHelper.CanBeCasted(this.ball, false, false)) { var distance = projectile.Position.Distance2D(projectile.TargetPosition); var time = distance / projectile.Speed; if (time > this.ball.Ability.CastPoint && abilityHelper.ForceUseAbility(this.ball, true)) { return(true); } } } } } } if (abilityHelper.UseAbility(this.vortex)) { this.ComboSleeper.ExtendSleep(0.1f); this.remnant?.Sleeper.Sleep(1f); this.ball?.Sleeper.Sleep(1f); return(true); } if (abilityHelper.UseAbility(this.remnant)) { this.ComboSleeper.ExtendSleep(0.1f); this.ball?.Sleeper.Sleep(1f); return(true); } if (abilityHelper.UseAbilityIfCondition(this.ball, this.remnant, this.vortex)) { this.ComboSleeper.ExtendSleep(0.3f); return(true); } return(false); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.hex)) { return(true); } if (abilityHelper.UseAbility(this.orchid)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn)) { return(true); } if (abilityHelper.UseAbility(this.nullifier)) { return(true); } if (abilityHelper.UseAbility(this.veil)) { return(true); } if (abilityHelper.UseAbility(this.chains)) { return(true); } if (abilityHelper.CanBeCasted(this.blink, false) && abilityHelper.CanBeCasted(this.chains, false) && abilityHelper.CanBeCasted(this.fist, false)) { var fistRange = this.fist.Ability.Range; var range = this.blink.Ability.Range + fistRange; var target = targetManager.Target; var distance = this.Owner.Distance(target); if (range > distance && distance > fistRange) { if (abilityHelper.UseAbility(this.blink, target.Position)) { return(true); } } } if (!this.Owner.IsInvulnerable && abilityHelper.UseAbility(this.blink, 700, 0)) { return(true); } if (abilityHelper.UseAbility(this.fist)) { return(true); } if (abilityHelper.CanBeCasted(this.remnantActivate, false)) { if (!this.remnant.Sleeper.IsSleeping) { if (abilityHelper.ForceUseAbility(this.remnantActivate, true)) { return(true); } } //if (abilityHelper.UseAbility(this.remnantActivate)) //{ // return true; //} } if (abilityHelper.CanBeCasted(this.remnant) && abilityHelper.HasMana(this.remnantActivate) && !this.Owner.IsInvulnerable) { var target = targetManager.Target; var distance = target.Distance(this.Owner); if (target.GetImmobilityDuration() > 0.8 || distance < 400) { var damage = this.remnant.GetDamage(targetManager); if (damage + 100 > target.Health) { for (var i = 0; i < this.remnant.GetRequiredRemnants(targetManager); i++) { abilityHelper.ForceUseAbility(this.remnant); } this.ComboSleeper.Sleep((this.Owner.Distance(target) / this.remnant.Ability.Speed) * 0.6f); return(true); } } if (distance > 350 && abilityHelper.UseAbility(this.remnant)) { return(true); } } if (abilityHelper.UseAbility(this.shiva)) { return(true); } if (abilityHelper.UseAbility(this.shield, 400)) { return(true); } if (abilityHelper.UseAbility(this.mjollnir, 600)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail, 500)) { return(true); } return(false); }
// Token: 0x060007F9 RID: 2041 RVA: 0x00024918 File Offset: 0x00022B18 public void RollSmashCombo(TargetManager targetManager, RollSmashModeMenu menu) { if (base.ComboSleeper.IsSleeping) { return; } Unit9 target = targetManager.Target; float num = base.Owner.Distance(target.Position); AbilityHelper abilityHelper = new AbilityHelper(targetManager, null, this); if (base.Owner.HasModifier("modifier_earth_spirit_rolling_boulder_caster") && abilityHelper.ForceUseAbility(this.stone, true, true)) { base.ComboSleeper.Sleep(3f); return; } Unit9 unit = (from x in targetManager.AllyHeroes where !x.Equals(this.Owner) && menu.IsAllyEnabled(x.Name) && x.Distance(target) > 300f && x.Distance(target) < 1500f orderby x.Distance(target) select x).FirstOrDefault <Unit9>(); if (unit == null) { return; } if (target.HasModifier("modifier_earth_spirit_boulder_smash")) { if (abilityHelper.CanBeCasted(this.rolling, false, false, true, true) && this.rolling.SimpleUseAbility(target.Position)) { base.ComboSleeper.Sleep(0.5f); return; } return; } else { BoulderSmash boulderSmash = this.smash; if (boulderSmash == null || !boulderSmash.Ability.CanBeCasted(true)) { return; } if (num < this.smash.Ability.CastRange + 100f) { if (Vector3Extensions.AngleBetween(base.Owner.Position, target.Position, unit.Position) < 30f) { this.smash.Ability.UseAbility(target, false, false); base.ComboSleeper.Sleep(0.3f); return; } if (target.GetImmobilityDuration() > 0.5f) { base.Owner.BaseUnit.Move(Vector3Extensions.Extend2D(target.Position, unit.Position, -100f)); base.OrbwalkSleeper.Sleep(0.1f); base.ComboSleeper.Sleep(0.1f); return; } } if (abilityHelper.CanBeCasted(this.blink, true, true, true, true)) { Vector3 position = Vector3Extensions.Extend2D(target.GetPredictedPosition(base.Owner.GetTurnTime(target.Position) + Game.Ping / 2000f + 0.2f), unit.Position, -125f); if (abilityHelper.UseAbility(this.blink, position)) { base.ComboSleeper.ExtendSleep(0.1f); return; } return; } else { if (!abilityHelper.CanBeCasted(this.rolling, true, true, true, true)) { return; } if (abilityHelper.UseAbility(this.rolling, true)) { return; } if (abilityHelper.CanBeCasted(this.stone, false, true, true, true)) { abilityHelper.ForceUseAbility(this.stone, true, true); return; } abilityHelper.ForceUseAbility(this.rolling, true, true); return; } } }
// Token: 0x06000634 RID: 1588 RVA: 0x0001E5C4 File Offset: 0x0001C7C4 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.CanBeCasted(this.blackHole, true, true, true, true)) { if (abilityHelper.CanBeCasted(this.bkb, false, false, true, true) && abilityHelper.ForceUseAbility(this.bkb, false, true)) { return(true); } if (abilityHelper.HasMana(new UsableAbility[] { this.pulse, this.blackHole }) && abilityHelper.UseAbility(this.pulse, true)) { return(true); } if (abilityHelper.HasMana(new UsableAbility[] { this.shiva, this.blackHole }) && abilityHelper.UseAbility(this.shiva, true)) { return(true); } if (abilityHelper.UseAbility(this.blackHole, true)) { return(true); } } if (abilityHelper.CanBeCastedIfCondition(this.blink, new UsableAbility[] { this.blackHole })) { if (abilityHelper.CanBeCasted(this.bkb, false, false, true, true) && abilityHelper.ForceUseAbility(this.bkb, false, true)) { return(true); } if (abilityHelper.CanBeCasted(this.ghost, false, false, true, true) && abilityHelper.ForceUseAbility(this.ghost, false, true)) { return(true); } } if (abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[] { this.blackHole })) { return(true); } if ((abilityHelper.CanBeCasted(this.refresher, true, true, true, true) || abilityHelper.CanBeCasted(this.refresherShard, true, true, true, true)) && abilityHelper.CanBeCasted(this.blackHole, true, true, true, false) && !this.blackHole.Ability.IsReady) { UntargetableAbility untargetableAbility = abilityHelper.CanBeCasted(this.refresherShard, true, true, true, true) ? this.refresherShard : this.refresher; if (abilityHelper.HasMana(new UsableAbility[] { this.blackHole, untargetableAbility }) && abilityHelper.UseAbility(untargetableAbility, true)) { return(true); } } return(abilityHelper.UseAbility(this.malefice, true)); }
// Token: 0x060002E6 RID: 742 RVA: 0x00011E14 File Offset: 0x00010014 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); Unit9 target = targetManager.Target; if (abilityHelper.UseAbility(this.hex, true)) { return(true); } if (abilityHelper.CanBeCasted(this.vortex, true, true, true, true) && (target.CanBecomeMagicImmune || target.CanBecomeInvisible) && abilityHelper.UseAbility(this.vortex, true)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn, true)) { return(true); } if (abilityHelper.UseAbility(this.orchid, true)) { return(true); } if (abilityHelper.UseAbility(this.nullifier, true)) { return(true); } if (abilityHelper.UseAbility(this.dagon, true)) { return(true); } if (abilityHelper.UseAbility(this.shiva, true)) { return(true); } bool flag = base.Owner.CanAttack(target, 25f) && base.Owner.HasModifier("modifier_storm_spirit_overload"); TrackingProjectile trackingProjectile = ObjectManager.TrackingProjectiles.FirstOrDefault(delegate(TrackingProjectile x) { Entity source = x.Source; EntityHandle?entityHandle = (source != null) ? new EntityHandle?(source.Handle) : null; if (((entityHandle != null) ? new uint?(entityHandle.GetValueOrDefault()) : null) == this.Handle) { Entity target = x.Target; entityHandle = ((target != null) ? new EntityHandle?(target.Handle) : null); if (((entityHandle != null) ? new uint?(entityHandle.GetValueOrDefault()) : null) == target.Handle) { return(ProjectileExtensions.IsAutoAttackProjectile(x)); } } return(false); }); if (flag) { if (trackingProjectile == null) { return(false); } int num = (target.IsMoving && target.GetAngle(trackingProjectile.Position, false) > 1.5f) ? 250 : 450; if (trackingProjectile.Position.Distance2D(trackingProjectile.TargetPosition, false) > (float)num) { return(false); } } else { if (trackingProjectile != null) { Ability9 ability = base.Owner.Abilities.FirstOrDefault((Ability9 x) => x.Id == AbilityId.storm_spirit_overload); if (ability != null) { int attackDamage = base.Owner.GetAttackDamage(target, 0, 0f); int damage = ability.GetDamage(target); float health = target.Health; if ((float)attackDamage < health && (float)(attackDamage + damage) > health) { if (abilityHelper.CanBeCasted(this.remnant, false, false, true, true) && abilityHelper.ForceUseAbility(this.remnant, true, true)) { return(true); } if (abilityHelper.CanBeCasted(this.ball, false, false, true, true) && trackingProjectile.Position.Distance2D(trackingProjectile.TargetPosition, false) / (float)trackingProjectile.Speed > this.ball.Ability.CastPoint && abilityHelper.ForceUseAbility(this.ball, true, true)) { return(true); } } } } if (abilityHelper.UseAbility(this.vortex, true)) { base.ComboSleeper.ExtendSleep(0.1f); BallLightning ballLightning = this.ball; if (ballLightning != null) { ballLightning.Sleeper.Sleep(1f); } return(true); } if (abilityHelper.UseAbility(this.remnant, true)) { base.ComboSleeper.ExtendSleep(0.1f); BallLightning ballLightning2 = this.ball; if (ballLightning2 != null) { ballLightning2.Sleeper.Sleep(1f); } return(true); } } return(abilityHelper.UseAbility(this.ball, true)); }
// Token: 0x06000914 RID: 2324 RVA: 0x000289B8 File Offset: 0x00026BB8 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); return(abilityHelper.UseAbility(this.shiva, true) || abilityHelper.UseAbility(this.bladeMail, 400f) || abilityHelper.UseAbility(this.vacuum, true) || abilityHelper.UseAbilityIfNone(this.wall, new UsableAbility[] { this.vacuum }) || abilityHelper.UseAbility(this.blink, 600f, 400f) || abilityHelper.UseAbility(this.force, 600f, 400f) || abilityHelper.UseAbility(this.shell, true) || (abilityHelper.CanBeCasted(this.surge, false, false, true, true) && abilityHelper.ForceUseAbility(this.surge, false, true))); }
// Token: 0x060007BF RID: 1983 RVA: 0x000238D8 File Offset: 0x00021AD8 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.hex, true)) { return(true); } if (abilityHelper.UseAbility(this.orchid, true)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn, true)) { return(true); } if (abilityHelper.UseAbility(this.nullifier, true)) { return(true); } if (abilityHelper.UseAbility(this.veil, true)) { return(true); } if (abilityHelper.UseAbility(this.chains, true)) { return(true); } if (abilityHelper.CanBeCasted(this.blink, false, true, true, true) && abilityHelper.CanBeCasted(this.chains, false, true, true, true) && abilityHelper.CanBeCasted(this.fist, false, true, true, true)) { float range = this.fist.Ability.Range; float num = this.blink.Ability.Range + range; Unit9 target = targetManager.Target; float num2 = base.Owner.Distance(target); if (num > num2 && num2 > range && abilityHelper.UseAbility(this.blink, target.Position)) { return(true); } } if (!base.Owner.IsInvulnerable && abilityHelper.UseAbility(this.blink, 700f, 0f)) { return(true); } if (abilityHelper.UseAbility(this.fist, true)) { return(true); } if (abilityHelper.CanBeCasted(this.remnantActivate, false, true, true, true) && !this.remnant.Sleeper.IsSleeping && abilityHelper.ForceUseAbility(this.remnantActivate, true, true)) { return(true); } if (abilityHelper.CanBeCasted(this.remnant, true, true, true, true) && abilityHelper.HasMana(new UsableAbility[] { this.remnantActivate }) && !base.Owner.IsInvulnerable) { Unit9 target2 = targetManager.Target; float num3 = target2.Distance(base.Owner); if (((double)target2.GetImmobilityDuration() > 0.8 || num3 < 400f) && this.remnant.GetDamage(targetManager) + 100f > target2.Health) { int num4 = 0; while ((float)num4 < this.remnant.GetRequiredRemnants(targetManager)) { abilityHelper.ForceUseAbility(this.remnant, false, true); num4++; } base.ComboSleeper.Sleep(base.Owner.Distance(target2) / this.remnant.Ability.Speed * 0.6f); return(true); } if (num3 > 350f && abilityHelper.UseAbility(this.remnant, true)) { return(true); } } return(abilityHelper.UseAbility(this.shiva, true) || abilityHelper.UseAbility(this.shield, 400f) || abilityHelper.UseAbility(this.mjollnir, 600f) || abilityHelper.UseAbility(this.bladeMail, 500f)); }
// Token: 0x06000148 RID: 328 RVA: 0x0000C418 File Offset: 0x0000A618 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (this.powershot.CancelChanneling(targetManager)) { base.ComboSleeper.Sleep(0.1f); return(true); } if (abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[] { this.shackleshot })) { abilityHelper.ForceUseAbility(this.shackleshot, false, true); base.OrbwalkSleeper.Sleep(0.5f); return(true); } if (!abilityHelper.CanBeCasted(this.shackleshot, false, false, true, true) && abilityHelper.UseAbility(this.blink, base.Owner.GetAttackRange(targetManager.Target, 0f) + 100f, 400f)) { return(true); } if (abilityHelper.UseAbility(this.hex, true)) { return(true); } if (abilityHelper.UseAbility(this.bloodthorn, true)) { return(true); } if (abilityHelper.UseAbility(this.orchid, true)) { return(true); } if (abilityHelper.UseAbility(this.nullifier, true)) { return(true); } if (abilityHelper.UseAbility(this.shackleshot, true)) { return(true); } if (abilityHelper.CanBeCasted(this.shackleshot, false, true, true, true)) { bool flag = abilityHelper.CanBeCasted(this.windrun, false, false, true, true); Vector3 movePosition = this.shackleshot.GetMovePosition(targetManager, comboModeMenu, flag); if (!movePosition.IsZero && base.Move(movePosition)) { if ((base.Owner.Distance(movePosition) > 100f || targetManager.Target.IsMoving) && flag) { abilityHelper.ForceUseAbility(this.windrun, false, true); } base.OrbwalkSleeper.Sleep(0.1f); base.ComboSleeper.Sleep(0.1f); return(true); } } if (abilityHelper.UseAbilityIfCondition(this.powershot, new UsableAbility[] { this.shackleshot, this.blink })) { base.ComboSleeper.ExtendSleep(0.2f); base.OrbwalkSleeper.ExtendSleep(0.2f); return(true); } return(abilityHelper.UseAbilityIfCondition(this.focusFire, new UsableAbility[] { this.powershot }) || abilityHelper.UseAbility(this.windrun, true) || abilityHelper.UseAbility(this.phase, true)); }
// Token: 0x060001A1 RID: 417 RVA: 0x0000DB78 File Offset: 0x0000BD78 public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.dagon, true)) { return(true); } if (abilityHelper.UseAbility(this.end, true)) { return(true); } if (this.end.Ability.IsChanneling && targetManager.Target.HasModifier("modifier_oracle_purifying_flames") && base.Owner.BaseUnit.Stop()) { base.ComboSleeper.Sleep(0.1f); return(true); } return((abilityHelper.CanBeCasted(this.flames, true, true, false, true) && this.end.Ability.IsChanneling && !this.end.FullChannelTime(comboModeMenu) && abilityHelper.ForceUseAbility(this.flames, false, true)) || abilityHelper.UseAbility(this.flames, true) || abilityHelper.UseAbility(this.urn, true) || abilityHelper.UseAbility(this.vessel, true)); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.UseAbility(this.bloodthorn)) { return(true); } if (abilityHelper.UseAbility(this.nullifier)) { return(true); } if (abilityHelper.UseAbility(this.ethereal)) { return(true); } if (abilityHelper.UseAbility(this.dagon)) { return(true); } if (abilityHelper.UseAbility(this.shiva)) { return(true); } if (targetManager.Target.HasModifier("modifier_pudge_meat_hook")) { if (abilityHelper.CanBeCasted(this.bloodthorn, true, false)) { abilityHelper.ForceUseAbility(this.bloodthorn); return(true); } if (abilityHelper.CanBeCasted(this.nullifier, true, false) && !targetManager.Target.Abilities.Any(x => x.Id == AbilityId.item_aeon_disk && x.IsReady)) { abilityHelper.ForceUseAbility(this.nullifier); return(true); } if (abilityHelper.CanBeCasted(this.ethereal, true, false)) { abilityHelper.ForceUseAbility(this.ethereal); return(true); } if (abilityHelper.UseAbility(this.bkb)) { return(true); } if (abilityHelper.UseAbility(this.lotus)) { return(true); } if (abilityHelper.UseAbility(this.dagon)) { return(true); } if (abilityHelper.UseAbility(this.vessel)) { return(true); } if (abilityHelper.UseAbility(this.urn)) { return(true); } } if (abilityHelper.CanBeCasted(this.dismember)) { if (abilityHelper.CanBeCasted(this.bloodthorn, true, false)) { abilityHelper.ForceUseAbility(this.bloodthorn); return(true); } if (abilityHelper.CanBeCasted(this.nullifier, true, false) && !targetManager.Target.Abilities.Any(x => x.Id == AbilityId.item_aeon_disk && x.IsReady)) { abilityHelper.ForceUseAbility(this.nullifier); return(true); } if (abilityHelper.UseAbility(this.bkb)) { return(true); } if (abilityHelper.UseAbility(this.lotus)) { return(true); } if (abilityHelper.CanBeCasted(this.ethereal, true, false)) { abilityHelper.ForceUseAbility(this.ethereal); return(true); } if (abilityHelper.UseAbility(this.dagon)) { return(true); } if (abilityHelper.UseAbility(this.bladeMail)) { return(true); } if (abilityHelper.UseAbility(this.vessel)) { return(true); } if (abilityHelper.UseAbility(this.urn)) { return(true); } abilityHelper.ForceUseAbility(this.dismember); return(true); } if (abilityHelper.UseAbilityIfCondition(this.blink, this.dismember)) { return(true); } if (abilityHelper.UseAbility(this.blink, 800, 25)) { return(true); } if (abilityHelper.UseAbility(this.atos)) { return(true); } if (abilityHelper.CanBeCasted(this.force)) { if (this.force.UseAbilityOnTarget(targetManager, this.ComboSleeper)) { return(true); } } if (abilityHelper.UseAbility(this.force, 400, 800)) { return(true); } if (abilityHelper.UseAbility(this.hook)) { return(true); } if (abilityHelper.CanBeCasted(this.rot, false, false)) { if (this.rot.AutoToggle(targetManager)) { return(true); } } return(false); }
public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu) { var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this); if (abilityHelper.CanBeCasted(this.field)) { if (abilityHelper.CanBeCasted(this.bkb, false, false)) { if (abilityHelper.ForceUseAbility(this.bkb)) { return(true); } } if (abilityHelper.HasMana(this.field, this.glimmer) && abilityHelper.CanBeCasted(this.glimmer, false, false)) { if (abilityHelper.ForceUseAbility(this.glimmer)) { return(true); } } if (abilityHelper.HasMana(this.field, this.atos) && abilityHelper.UseAbility(this.atos)) { return(true); } if (abilityHelper.HasMana(this.field, this.frostbite) && abilityHelper.UseAbility(this.frostbite)) { return(true); } if (abilityHelper.UseAbility(this.field)) { return(true); } } if (abilityHelper.UseAbilityIfCondition(this.blink, this.field)) { return(true); } if (abilityHelper.UseAbility(this.force, 600, 400)) { return(true); } if (abilityHelper.UseAbility(this.atos)) { return(true); } if (abilityHelper.UseAbility(this.frostbite)) { return(true); } if (abilityHelper.UseAbility(this.nova)) { return(true); } return(false); }