// Token: 0x06000991 RID: 2449 RVA: 0x00029C60 File Offset: 0x00027E60
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.abyssal, true))
            {
                return(true);
            }
            if (!targetManager.Target.IsRuptured && abilityHelper.UseAbilityIfAny(this.euls, new UsableAbility[]
            {
                this.blood
            }))
            {
                return(true);
            }
            if (abilityHelper.UseAbilityIfCondition(this.blood, new UsableAbility[]
            {
                this.euls,
                this.rupture
            }))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.rupture, true))
            {
                this.rupture.Sleeper.ExtendSleep(1f);
                base.ComboSleeper.ExtendSleep(0.25f);
                return(true);
            }
            return(abilityHelper.UseAbility(this.rage, true) || abilityHelper.UseAbility(this.bladeMail, 600f) || abilityHelper.UseAbility(this.mjollnir, 600f) || abilityHelper.UseAbility(this.phase, true));
        }
示例#2
0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.force, 550, 400))
            {
                return(true);
            }

            if (abilityHelper.UseAbilityIfAny(this.euls, this.stomp, this.hammer))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.atos))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.gungir))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.spirit))
            {
                return(true);
            }

            if (abilityHelper.UseAbilityIfNone(this.stomp, this.euls))
            {
                return(true);
            }

            if (abilityHelper.CanBeCasted(this.hammer, false, false))
            {
                var target             = targetManager.Target;
                var immobilityDuration = target.GetImmobilityDuration();

                if (immobilityDuration > this.hammer.Ability.GetHitTime(target) - 0.5f)
                {
                    if (abilityHelper.UseAbility(this.hammer))
                    {
                        return(true);
                    }
                }
            }

            if (!abilityHelper.CanBeCasted(this.euls) && !abilityHelper.CanBeCasted(this.stomp, false, false))
            {
                if (abilityHelper.UseAbilityIfNone(this.splitter))
                {
                    return(true);
                }
            }

            return(false);
        }
示例#3
0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.abyssal))
            {
                return(true);
            }

            if (!targetManager.Target.IsRuptured)
            {
                if (abilityHelper.UseAbilityIfAny(this.euls, this.blood))
                {
                    return(true);
                }
            }

            if (abilityHelper.UseAbilityIfCondition(this.blood, this.euls, this.rupture))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.rupture))
            {
                this.rupture.Sleeper.ExtendSleep(1f);
                this.ComboSleeper.ExtendSleep(0.25f);
                return(true);
            }

            if (abilityHelper.UseAbility(this.rage))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.bladeMail, 600))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.mjollnir, 600))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.phase))
            {
                return(true);
            }

            return(false);
        }
        // Token: 0x06000656 RID: 1622 RVA: 0x0001ED0C File Offset: 0x0001CF0C
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.force, 550f, 400f))
            {
                return(true);
            }
            if (abilityHelper.UseAbilityIfAny(this.euls, new UsableAbility[]
            {
                this.stomp,
                this.hammer
            }))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.atos, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.spirit, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbilityIfNone(this.stomp, new UsableAbility[]
            {
                this.euls
            }))
            {
                return(true);
            }
            if (abilityHelper.CanBeCasted(this.hammer, false, false, true, true))
            {
                Unit9 target = targetManager.Target;
                if (target.GetImmobilityDuration() > this.hammer.Ability.GetHitTime(target) - 0.5f && abilityHelper.UseAbility(this.hammer, true))
                {
                    return(true);
                }
            }
            return(!abilityHelper.CanBeCasted(this.euls, true, true, true, true) && !abilityHelper.CanBeCasted(this.stomp, false, false, true, true) && abilityHelper.UseAbilityIfNone(this.splitter, new UsableAbility[0]));
        }
示例#5
0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (targetManager.TargetSleeper.IsSleeping)
            {
                return(false);
            }

            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.blink, 550, 400))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.force, 550, 400))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.pike, 550, 400))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.hex))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.atos))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.orchid))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.bloodthorn))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.veil))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.ethereal))
            {
                return(true);
            }

            if (abilityHelper.UseKillStealAbility(this.dragon, false))
            {
                return(true);
            }

            if (abilityHelper.UseKillStealAbility(this.laguna))
            {
                this.ComboSleeper.ExtendSleep(0.2f);
                return(true);
            }

            if (abilityHelper.UseAbilityIfAny(this.euls, this.array))
            {
                return(true);
            }

            if (abilityHelper.CanBeCasted(this.euls, false) && abilityHelper.CanBeCasted(this.array, false))
            {
                if (this.Owner.Speed > targetManager.Target.Speed + 50)
                {
                    this.preventAttackSleeper.Sleep(0.5f);
                    return(true);
                }
            }

            if (abilityHelper.UseAbility(this.array, false))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.laguna))
            {
                this.ComboSleeper.ExtendSleep(0.2f);
                return(true);
            }

            if (abilityHelper.UseAbility(this.dragon, false))
            {
                return(true);
            }

            if (abilityHelper.CanBeCasted(this.pike) && !this.MoveSleeper.IsSleeping)
            {
                if (this.pike.UseAbilityOnTarget(targetManager, this.ComboSleeper))
                {
                    return(true);
                }
            }

            if (abilityHelper.UseAbility(this.phase))
            {
                return(true);
            }

            return(false);
        }
示例#6
0
文件: Leshrac.cs 项目: vana41203/O9K
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.blink, 550, 350))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.veil))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.shiva))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.ethereal))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.hex))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.atos))
            {
                return(true);
            }

            if (abilityHelper.UseAbilityIfAny(this.euls, this.splitEarth))
            {
                return(true);
            }

            if (abilityHelper.CanBeCasted(this.nova, false, false))
            {
                if (this.nova.AutoToggle(targetManager))
                {
                    return(true);
                }
            }

            if (abilityHelper.UseAbilityIfCondition(this.diabolic, this.splitEarth))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.lightning))
            {
                this.euls?.Sleeper.Sleep(0.5f);
                return(true);
            }

            if (abilityHelper.UseAbilityIfNone(this.splitEarth, this.lightning, this.euls, this.atos))
            {
                return(true);
            }

            return(false);
        }
示例#7
0
        // Token: 0x060005EB RID: 1515 RVA: 0x0001D728 File Offset: 0x0001B928
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (comboModeMenu.IsHarassCombo)
            {
                return(false);
            }
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.CanBeCasted(this.blink, true, true, true, true) && !abilityHelper.CanBeCasted(this.xReturn, true, true, true, true))
            {
                float blinkToEnemyRange = 0f;
                if (!abilityHelper.CanBeCasted(this.xMark, true, true, true, true))
                {
                    if (abilityHelper.CanBeCasted(this.xMark, false, true, true, true))
                    {
                        blinkToEnemyRange = Math.Min(this.xMark.Ability.CastRange - 100f, Math.Max(base.Owner.Distance(targetManager.Target) - this.xMark.Ability.CastRange, 0f));
                    }
                    if (abilityHelper.UseAbility(this.blink, 500f, blinkToEnemyRange))
                    {
                        return(true);
                    }
                }
            }
            if (abilityHelper.UseAbilityIfAny(this.xMark, new UsableAbility[]
            {
                this.torrent,
                this.ship
            }))
            {
                base.ComboSleeper.ExtendSleep(0.1f);
                base.OrbwalkSleeper.ExtendSleep(0.1f);
                return(true);
            }
            if (abilityHelper.CanBeCasted(this.xReturn, true, true, true, true))
            {
                if (!this.xMark.Position.IsZero)
                {
                    if (abilityHelper.CanBeCasted(this.ship, false, true, true, true) && this.ship.UseAbility(this.xMark.Position, targetManager, base.ComboSleeper))
                    {
                        return(true);
                    }
                    if (abilityHelper.CanBeCasted(this.torrent, false, true, true, true) && this.torrent.UseAbility(this.xMark.Position, targetManager, base.ComboSleeper))
                    {
                        return(true);
                    }
                    if (!this.torrent.ShouldReturn(this.xReturn.Ability, this.xMark.Position))
                    {
                        Ghostship ghostship = this.ship;
                        if (ghostship == null || !ghostship.ShouldReturn(this.xReturn.Ability, this.xMark.Position))
                        {
                            goto IL_220;
                        }
                    }
                    if (abilityHelper.UseAbility(this.xReturn, true))
                    {
                        return(true);
                    }
                }
            }
            else
            {
                if (abilityHelper.UseAbility(this.torrent, true))
                {
                    return(true);
                }
                if (abilityHelper.UseAbility(this.ship, true))
                {
                    return(true);
                }
            }
IL_220:
            return(abilityHelper.UseAbility(this.armlet, 400f) || abilityHelper.UseAbility(this.phase, true));
        }
示例#8
0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (comboModeMenu.IsHarassCombo)
            {
                return(false);
            }

            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.CanBeCasted(this.blink) && !abilityHelper.CanBeCasted(this.xReturn))
            {
                var blinkEnemyRange = 0f;

                if (!abilityHelper.CanBeCasted(this.xMark))
                {
                    if (abilityHelper.CanBeCasted(this.xMark, false))
                    {
                        blinkEnemyRange = Math.Min(
                            this.xMark.Ability.CastRange - 100,
                            Math.Max(this.Owner.Distance(targetManager.Target) - this.xMark.Ability.CastRange, 0));
                    }

                    if (abilityHelper.UseAbility(this.blink, 500, blinkEnemyRange))
                    {
                        return(true);
                    }
                }
            }

            if (abilityHelper.UseAbilityIfAny(this.xMark, this.torrent, this.ship))
            {
                this.ComboSleeper.ExtendSleep(0.1f);
                this.OrbwalkSleeper.ExtendSleep(0.1f);
                return(true);
            }

            if (abilityHelper.CanBeCasted(this.xReturn))
            {
                if (!this.xMark.Position.IsZero)
                {
                    if (abilityHelper.CanBeCasted(this.ship, false))
                    {
                        if (this.ship.UseAbility(this.xMark.Position, targetManager, this.ComboSleeper))
                        {
                            return(true);
                        }
                    }

                    if (abilityHelper.CanBeCasted(this.torrent, false))
                    {
                        if (this.torrent.UseAbility(this.xMark.Position, targetManager, this.ComboSleeper))
                        {
                            return(true);
                        }
                    }

                    if (this.torrent.ShouldReturn(this.xReturn.Ability, this.xMark.Position) ||
                        this.ship?.ShouldReturn(this.xReturn.Ability, this.xMark.Position) == true)
                    {
                        if (abilityHelper.UseAbility(this.xReturn))
                        {
                            return(true);
                        }
                    }
                }
            }
            else
            {
                if (abilityHelper.UseAbility(this.torrent))
                {
                    return(true);
                }

                if (abilityHelper.UseAbility(this.ship))
                {
                    return(true);
                }
            }

            if (abilityHelper.UseAbility(this.armlet, 400))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.phase))
            {
                return(true);
            }

            return(false);
        }
示例#9
0
        // Token: 0x06000599 RID: 1433 RVA: 0x0001C4B0 File Offset: 0x0001A6B0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (targetManager.TargetSleeper.IsSleeping)
            {
                return(false);
            }
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.blink, 550f, 400f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.force, 550f, 400f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.pike, 550f, 400f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.hex, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.atos, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.orchid, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.bloodthorn, true))
            {
                return(true);
            }
            if (abilityHelper.UseKillStealAbility(this.dragon, false))
            {
                return(true);
            }
            if (abilityHelper.UseKillStealAbility(this.laguna, true))
            {
                base.ComboSleeper.ExtendSleep(0.2f);
                return(true);
            }
            if (abilityHelper.UseAbilityIfAny(this.euls, new UsableAbility[]
            {
                this.array
            }))
            {
                return(true);
            }
            if (abilityHelper.CanBeCasted(this.euls, false, true, true, true) && abilityHelper.CanBeCasted(this.array, false, true, true, true) && base.Owner.Speed > targetManager.Target.Speed + 50f)
            {
                this.preventAttackSleeper.Sleep(0.5f);
                return(true);
            }
            if (abilityHelper.UseAbility(this.array, false))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.laguna, true))
            {
                base.ComboSleeper.ExtendSleep(0.2f);
                return(true);
            }
            return(abilityHelper.UseAbility(this.dragon, false) || (abilityHelper.CanBeCasted(this.pike, true, true, true, true) && !base.MoveSleeper.IsSleeping && this.pike.UseAbilityOnTarget(targetManager, base.ComboSleeper)) || abilityHelper.UseAbility(this.phase, true));
        }
示例#10
0
        // Token: 0x060005AB RID: 1451 RVA: 0x0001C918 File Offset: 0x0001AB18
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseAbility(this.blink, 550f, 350f) || abilityHelper.UseAbility(this.veil, true) || abilityHelper.UseAbility(this.shiva, true) || abilityHelper.UseAbility(this.ethereal, true) || abilityHelper.UseAbility(this.hex, true) || abilityHelper.UseAbility(this.atos, true) || abilityHelper.UseAbilityIfAny(this.euls, new UsableAbility[]
            {
                this.splitEarth
            }) || (abilityHelper.CanBeCasted(this.nova, false, false, true, true) && this.nova.AutoToggle(targetManager)) || abilityHelper.UseAbilityIfCondition(this.diabolic, new UsableAbility[]
            {
                this.splitEarth
            }) || abilityHelper.UseAbility(this.lightning, true) || abilityHelper.UseAbilityIfNone(this.splitEarth, new UsableAbility[]
            {
                this.lightning,
                this.euls,
                this.atos
            }));
        }