コード例 #1
0
        // Token: 0x06000214 RID: 532 RVA: 0x0000F174 File Offset: 0x0000D374
        public bool KickToAllyCombo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (base.Owner.HasModifier("modifier_tusk_snowball_movement"))
            {
                Hero9 hero = EntityManager9.Heroes.FirstOrDefault((Hero9 x) => !x.Equals(base.Owner) && x.IsAlly(base.Owner) && x.IsAlive && !x.IsInvulnerable && x.Distance(base.Owner) < 200f);
                if (hero != null && base.Owner.Attack(hero))
                {
                    base.ComboSleeper.Sleep(0.1f);
                    return(true);
                }
            }
            if (abilityHelper.UseAbility(this.punch, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbilityIfCondition(this.kick, new UsableAbility[0]))
            {
                return(true);
            }
            if (targetManager.Target.HasModifier("modifier_tusk_walrus_kick_slow") && abilityHelper.UseAbilityIfNone(this.snowball, new UsableAbility[0]))
            {
                return(true);
            }
            if (!base.Owner.IsInvulnerable)
            {
                if (abilityHelper.UseAbilityIfNone(this.shards, new UsableAbility[]
                {
                    this.snowball,
                    this.punch,
                    this.kick
                }))
                {
                    return(true);
                }
                if (abilityHelper.UseAbilityIfNone(this.tag, new UsableAbility[]
                {
                    this.snowball,
                    this.punch,
                    this.kick
                }))
                {
                    return(true);
                }
            }
            if (abilityHelper.CanBeCasted(this.blink, true, true, true, true) && abilityHelper.CanBeCasted(this.kick, false, true, true, true) && !abilityHelper.CanBeCasted(this.kick, true, true, true, true))
            {
                Vector3 vector = Vector3Extensions.Extend2D(targetManager.Target.Position, EntityManager9.EnemyFountain, 100f);
                if (base.Owner.Distance(vector) > this.blink.Ability.Range)
                {
                    return(false);
                }
                if (abilityHelper.UseAbility(this.blink, vector))
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #2
0
        // Token: 0x060004F7 RID: 1271 RVA: 0x00019ED4 File Offset: 0x000180D4
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (this.spring.CancelChanneling(targetManager))
            {
                base.ComboSleeper.Sleep(0.1f);
                return(true);
            }
            if (abilityHelper.UseAbility(this.abyssal, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.diffusal, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.spring, true))
            {
                return(true);
            }
            if (abilityHelper.CanBeCastedHidden(this.spring) && abilityHelper.UseAbility(this.treeDance, true))
            {
                return(true);
            }
            Unit9 target = targetManager.Target;

            return((!target.IsRooted && !target.IsStunned && !target.IsHexed && abilityHelper.UseAbility(this.treeDance, 500f, 0f)) || ((base.Owner.HasModifier("modifier_monkey_king_quadruple_tap_bonuses") || (target.Distance(base.Owner) > 600f && target.HealthPercentage < 30f)) && abilityHelper.UseAbility(this.strike, true)) || abilityHelper.UseAbility(this.command, true) || abilityHelper.UseAbility(this.phase, true));
        }
コード例 #3
0
        // 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));
        }
コード例 #4
0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

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

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

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

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

            return(false);
        }
コード例 #5
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);
        }
コード例 #6
0
        // Token: 0x060006A8 RID: 1704 RVA: 0x00020420 File Offset: 0x0001E620
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseAbility(this.blink, 600f, 450f) || abilityHelper.UseAbility(this.force, 600f, 450f) || abilityHelper.UseAbility(this.veil, true) || abilityHelper.UseAbility(this.hex, true) || abilityHelper.UseAbility(this.atos, true) || abilityHelper.UseAbility(this.orchid, true) || abilityHelper.UseAbility(this.bloodthorn, true) || abilityHelper.UseAbility(this.nullifier, true) || abilityHelper.UseAbility(this.crown, true) || abilityHelper.UseAbilityIfCondition(this.eul, new UsableAbility[]
            {
                this.crown
            }) || abilityHelper.UseAbility(this.realm, true) || abilityHelper.UseAbility(this.maze, true) || abilityHelper.UseAbility(this.bedlam, true) || abilityHelper.UseAbility(this.vessel, true) || abilityHelper.UseAbility(this.urn, true) || abilityHelper.UseAbility(this.terror, true));
        }
コード例 #7
0
        // Token: 0x06000962 RID: 2402 RVA: 0x000295DC File Offset: 0x000277DC
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseAbility(this.abyssal, true) || abilityHelper.UseAbility(this.cinder, true) || abilityHelper.UseAbility(this.clap, true) || abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[]
            {
                this.clap
            }) || abilityHelper.UseAbility(this.blink, 400f, 0f) || abilityHelper.UseAbility(this.split, true) || abilityHelper.UseAbility(this.brawler, 600f) || abilityHelper.UseAbility(this.phase, true));
        }
コード例 #8
0
        // 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)));
        }
コード例 #9
0
        // Token: 0x0600035F RID: 863 RVA: 0x000138C4 File Offset: 0x00011AC4
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseAbility(this.atos, true) || abilityHelper.UseAbility(this.hex, true) || abilityHelper.UseAbility(this.nullifier, true) || abilityHelper.UseAbility(this.seal, true) || abilityHelper.UseAbility(this.ethereal, true) || abilityHelper.UseAbility(this.dagon, true) || abilityHelper.UseAbility(this.concussive, true) || abilityHelper.UseAbility(this.veil, true) || abilityHelper.UseAbility(this.blink, 850f, 600f) || abilityHelper.UseAbility(this.force, 850f, 600f) || abilityHelper.UseAbilityIfNone(this.flare, new UsableAbility[]
            {
                this.atos
            }) || abilityHelper.UseAbility(this.bolt, true));
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        // Token: 0x06000486 RID: 1158 RVA: 0x000182C0 File Offset: 0x000164C0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (base.Owner.HasModifier("modifier_phantom_lancer_phantom_edge_boost"))
            {
                return(false);
            }
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseAbility(this.abyssal, true) || abilityHelper.UseAbility(this.bloodthorn, true) || abilityHelper.UseAbility(this.diffusal, true) || abilityHelper.UseAbility(this.lance, true) || abilityHelper.UseAbility(this.doppel, true) || abilityHelper.UseAbility(this.manta, base.Owner.GetAttackRange(null, 0f)));
        }
コード例 #12
0
ファイル: Gyrocopter.cs プロジェクト: vana41203/O9K
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

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

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

            if (abilityHelper.UseAbility(this.force, 500, 300))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.pike, 500, 300))
            {
                return(true);
            }

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

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

            if (abilityHelper.UseAbility(this.manta, this.Owner.GetAttackRange()))
            {
                return(true);
            }

            if (abilityHelper.UseAbility(this.mjollnir, 600))
            {
                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);
        }
コード例 #13
0
ファイル: Mirana.cs プロジェクト: ihatevim/Divine.Plugins
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

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

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

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

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

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

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

            if (abilityHelper.UseAbility(this.leap, this.Owner.GetAttackRange(targetManager.Target) + 100, 800))
            {
                return(true);
            }

            if (abilityHelper.UseForceStaffAway(this.leap, 200))
            {
                this.OrbwalkSleeper.Sleep(0.2f);
                this.ComboSleeper.Sleep(0.2f);
                this.leap.Sleeper.Sleep(2f);
                return(true);
            }

            if (abilityHelper.UseAbility(this.manta, this.Owner.GetAttackRange()))
            {
                return(true);
            }

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

            return(false);
        }
コード例 #14
0
        // Token: 0x0600078B RID: 1931 RVA: 0x00022F68 File Offset: 0x00021168
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseAbility(this.bkb, 500f) || ((!abilityHelper.CanBeCasted(this.timeWalk, false, true, true, true) || base.Owner.Distance(targetManager.Target) < 400f) && abilityHelper.UseAbility(this.chronosphere, true)) || abilityHelper.UseAbilityIfCondition(this.timeWalk, new UsableAbility[]
            {
                this.chronosphere
            }) || abilityHelper.UseAbility(this.diffusal, true) || abilityHelper.UseAbility(this.dilation, true) || abilityHelper.UseAbility(this.silver, true) || abilityHelper.UseAbility(this.mjollnir, 600f) || abilityHelper.UseAbility(this.manta, 300f) || (!abilityHelper.CanBeCasted(this.chronosphere, false, false, true, true) && abilityHelper.UseAbilityIfNone(this.mom, new UsableAbility[]
            {
                this.timeWalk
            })) || abilityHelper.UseAbility(this.phase, true));
        }
コード例 #15
0
        // Token: 0x06000349 RID: 841 RVA: 0x00013428 File Offset: 0x00011628
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseDoubleBlinkCombo(this.force, this.blink, 0f) || abilityHelper.UseAbility(this.bloodthorn, true) || abilityHelper.UseAbility(this.orchid, true) || abilityHelper.UseAbility(this.nullifier, true) || (abilityHelper.CanBeCastedIfCondition(this.blink, new UsableAbility[]
            {
                this.crush
            }) && abilityHelper.UseAbility(this.bkb, true)) || abilityHelper.UseAbility(this.crush, true) || abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[]
            {
                this.crush
            }) || abilityHelper.UseAbility(this.force, 500f, 0f) || abilityHelper.UseAbility(this.sprint, true) || abilityHelper.UseAbility(this.solar, true) || abilityHelper.UseAbility(this.halberd, true) || abilityHelper.UseAbility(this.medallion, true) || abilityHelper.UseAbility(this.bladeMail, 400f) || abilityHelper.UseAbility(this.armlet, 400f) || (!abilityHelper.CanBeCasted(this.crush, true, true, true, true) && abilityHelper.UseAbility(this.amplify, true)) || abilityHelper.UseAbility(this.phase, true));
        }
コード例 #16
0
        // Token: 0x06000661 RID: 1633 RVA: 0x0001EFF0 File Offset: 0x0001D1F0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (comboModeMenu != null)
            {
                EarthshakerComboModeMenu earthshakerComboModeMenu;
                if ((earthshakerComboModeMenu = (comboModeMenu as EarthshakerComboModeMenu)) != null && earthshakerComboModeMenu.PreferEnchantTotem)
                {
                    return(this.TotemCombo(targetManager, abilityHelper));
                }
                if (comboModeMenu is EarthshakerEchoSlamComboModeMenu)
                {
                    return(this.EchoSlamCombo(targetManager, abilityHelper));
                }
            }
            if (abilityHelper.UseAbility(this.echo, true))
            {
                return(true);
            }
            if (abilityHelper.UseDoubleBlinkCombo(this.force, this.blink, 0f))
            {
                return(true);
            }
            if (abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[]
            {
                this.echo
            }))
            {
                UpdateManager.BeginInvoke(delegate
                {
                    this.echo.ForceUseAbility(targetManager, this.ComboSleeper);
                    this.OrbwalkSleeper.ExtendSleep(0.1f);
                    this.ComboSleeper.ExtendSleep(0.1f);
                }, 111);
                return(true);
            }
            if (abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[]
            {
                this.totem
            }))
            {
                UpdateManager.BeginInvoke(delegate
                {
                    this.totem.ForceUseAbility(targetManager, this.ComboSleeper);
                    this.OrbwalkSleeper.ExtendSleep(0.2f);
                    this.ComboSleeper.ExtendSleep(0.2f);
                }, 111);
                return(true);
            }
            return(abilityHelper.UseAbility(this.force, 500f, 100f) || abilityHelper.UseAbility(this.fissure, true) || abilityHelper.UseAbility(this.totem, true));
        }
コード例 #17
0
        // Token: 0x060002C0 RID: 704 RVA: 0x000114A0 File Offset: 0x0000F6A0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (comboModeMenu.IsHarassCombo)
            {
                return(false);
            }
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.refraction, 1300f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.blink, 500f, 0f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.force, 500f, 0f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.pike, 500f, 0f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.hex, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.solar, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.medallion, true))
            {
                return(true);
            }
            if (abilityHelper.CanBeCasted(this.meld, false, true, true, true))
            {
                this.preventAttackSleeper.Sleep(0.05f);
                if (!base.AttackSleeper.IsSleeping && abilityHelper.UseAbility(this.meld, true))
                {
                    float num = base.Owner.GetAttackPoint(null) + 0.1f;
                    base.ComboSleeper.ExtendSleep(num);
                    base.MoveSleeper.Sleep(num);
                    base.AttackSleeper.Sleep(num);
                    return(true);
                }
            }
            return(abilityHelper.UseAbility(this.orchid, true) || abilityHelper.UseAbility(this.bloodthorn, true) || abilityHelper.UseAbility(this.nullifier, true) || ((!abilityHelper.CanBeCasted(this.blink, true, true, true, true) || base.Owner.Distance(targetManager.Target) < 1000f) && abilityHelper.UseAbility(this.trap, true)));
        }
コード例 #18
0
        // Token: 0x06000400 RID: 1024 RVA: 0x00016190 File Offset: 0x00014390
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper     abilityHelper     = new AbilityHelper(targetManager, comboModeMenu, this);
            TargetableAbility targetableAbility = this.drain;

            if (targetableAbility != null && targetableAbility.Ability.IsChanneling)
            {
                NukeAbility nukeAbility = this.dagon;
                if (nukeAbility != null && nukeAbility.Ability.CanBeCasted(false) && this.dagon.Ability.CanHit(targetManager.Target) && (float)this.dagon.Ability.GetDamage(targetManager.Target) > targetManager.Target.Health)
                {
                    base.Owner.Stop();
                    base.ComboSleeper.Sleep(0.1f);
                    return(true);
                }
            }
            if (abilityHelper.UseAbility(this.blink, 700f, 350f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.veil, true))
            {
                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.atos, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.decrepify, true))
            {
                base.ComboSleeper.ExtendSleep(0.1f);
                return(true);
            }
            return(abilityHelper.UseAbility(this.dagon, true) || abilityHelper.UseAbility(this.blast, true) || abilityHelper.UseAbility(this.dagon, true) || abilityHelper.UseAbility(this.ward, true) || abilityHelper.UseAbility(this.drain, true));
        }
コード例 #19
0
        // 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));
        }
コード例 #20
0
        // Token: 0x06000662 RID: 1634 RVA: 0x0001F130 File Offset: 0x0001D330
        public bool TotemCombo(TargetManager targetManager, AbilityHelper abilityHelper)
        {
            float num = base.Owner.Distance(targetManager.Target);

            if (num < 250f && base.Owner.HasModifier("modifier_earthshaker_enchant_totem"))
            {
                return(false);
            }
            if (abilityHelper.UseAbility(this.totem, true))
            {
                return(true);
            }
            if (abilityHelper.UseDoubleBlinkCombo(this.force, this.blink, 0f))
            {
                return(true);
            }
            if (abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[]
            {
                this.totem
            }))
            {
                if (!base.Owner.HasModifier("modifier_earthshaker_enchant_totem"))
                {
                    UpdateManager.BeginInvoke(delegate
                    {
                        this.totem.ForceUseAbility(targetManager, this.ComboSleeper);
                        this.OrbwalkSleeper.ExtendSleep(0.2f);
                        this.ComboSleeper.ExtendSleep(0.2f);
                    }, 111);
                }
                else if (base.Owner.BaseUnit.Attack(targetManager.Target.BaseUnit))
                {
                    base.OrbwalkSleeper.ExtendSleep(0.1f);
                    base.ComboSleeper.ExtendSleep(0.1f);
                    return(true);
                }
                return(true);
            }
            if (abilityHelper.UseAbility(this.force, 500f, 100f))
            {
                return(true);
            }
            if (!abilityHelper.CanBeCasted(this.totem, true, true, true, true) && (!abilityHelper.CanBeCasted(this.blink, true, true, true, true) || num < 300f) && abilityHelper.UseAbility(this.fissure, true))
            {
                base.OrbwalkSleeper.ExtendSleep(0.1f);
                return(true);
            }
            return(abilityHelper.UseAbility(this.echo, true));
        }
コード例 #21
0
ファイル: Warlock.cs プロジェクト: vana41203/O9K
        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.atos))
            {
                return(true);
            }

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

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

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

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

            if (abilityHelper.CanBeCasted(this.refresher) || abilityHelper.CanBeCasted(this.refresherShard))
            {
                if (abilityHelper.CanBeCasted(this.chaos, true, true, true, false) && !this.chaos.Ability.IsReady)
                {
                    var useRefresher = abilityHelper.CanBeCasted(this.refresherShard) ? this.refresherShard : this.refresher;

                    if (abilityHelper.HasMana(this.chaos, useRefresher))
                    {
                        if (abilityHelper.UseAbility(useRefresher))
                        {
                            this.ComboSleeper.ExtendSleep(0.2f);
                            this.upheaval?.Sleeper.Sleep(0.5f);
                            return(true);
                        }
                    }
                }
            }

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

            return(false);
        }
コード例 #22
0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (this.morphling.IsMorphed)
            {
                return(false);
            }

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

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

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

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

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

            if (targetManager.Target.IsChanneling)
            {
                if (abilityHelper.UseAbility(this.str))
                {
                    return(true);
                }
            }

            if (this.Owner.TotalAgility > this.Owner.TotalStrength)
            {
                if (abilityHelper.UseAbility(this.agi))
                {
                    return(true);
                }
            }
            else
            {
                if (abilityHelper.UseAbility(this.str))
                {
                    return(true);
                }
            }

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

            return(false);
        }
コード例 #23
0
        // Token: 0x06000213 RID: 531 RVA: 0x0000F070 File Offset: 0x0000D270
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (comboModeMenu.SimplifiedName == "kicktoallycombo")
            {
                return(this.KickToAllyCombo(targetManager, comboModeMenu));
            }
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.blink, true))
            {
                base.ComboSleeper.ExtendSleep(0.2f);
                return(true);
            }
            return(abilityHelper.UseAbility(this.solar, true) || abilityHelper.UseAbility(this.medallion, true) || abilityHelper.UseAbility(this.tag, true) || abilityHelper.UseAbility(this.punch, true) || abilityHelper.UseAbility(this.snowball, true) || abilityHelper.UseAbility(this.shards, true) || abilityHelper.UseAbility(this.vessel, true) || abilityHelper.UseAbility(this.urn, true) || abilityHelper.UseAbility(this.bladeMail, 400f) || abilityHelper.UseAbility(this.kick, true));
        }
コード例 #24
0
        // Token: 0x060003B9 RID: 953 RVA: 0x0001503C File Offset: 0x0001323C
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper    abilityHelper    = new AbilityHelper(targetManager, comboModeMenu, this);
            TricksOfTheTrade tricksOfTheTrade = this.tricks;

            if (tricksOfTheTrade != null && tricksOfTheTrade.CancelChanneling(targetManager))
            {
                base.ComboSleeper.Sleep(0.1f);
                return(true);
            }
            return(abilityHelper.UseAbility(this.blinkStrike, true) || abilityHelper.UseAbility(this.abyssal, true) || abilityHelper.UseAbility(this.nullifier, true) || abilityHelper.UseAbility(this.bloodthorn, true) || abilityHelper.UseAbility(this.orchid, true) || abilityHelper.UseAbility(this.diffusal, true) || abilityHelper.UseAbility(this.solar, true) || abilityHelper.UseAbility(this.medallion, true) || (!abilityHelper.CanBeCasted(this.blinkStrike, true, true, true, true) && abilityHelper.UseAbility(this.blink, 500f, 0f)) || abilityHelper.UseAbilityIfNone(this.smoke, new UsableAbility[]
            {
                this.blinkStrike
            }) || abilityHelper.UseAbility(this.tricks, true) || abilityHelper.UseAbility(this.phase, true));
        }
コード例 #25
0
        // Token: 0x06000183 RID: 387 RVA: 0x0000D7EC File Offset: 0x0000B9EC
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            if (base.Owner.IsCharging)
            {
                return(false);
            }
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            return(abilityHelper.UseAbility(this.nullifier, true) || abilityHelper.UseAbility(this.bloodthorn, true) || abilityHelper.UseAbility(this.orchid, true) || abilityHelper.UseAbility(this.halberd, true) || abilityHelper.UseAbility(this.charge, true) || abilityHelper.UseAbility(this.bulldoze, 500f) || abilityHelper.UseAbility(this.bladeMail, 400f) || abilityHelper.UseAbility(this.vessel, true) || abilityHelper.UseAbility(this.urn, true) || abilityHelper.UseAbility(this.strike, true) || abilityHelper.UseAbilityIfNone(this.mom, new UsableAbility[]
            {
                this.charge,
                this.bulldoze,
                this.strike
            }) || abilityHelper.UseAbility(this.phase, true));
        }
コード例 #26
0
        // Token: 0x060003E9 RID: 1001 RVA: 0x00015CFC File Offset: 0x00013EFC
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (abilityHelper.UseAbility(this.bkb, 600f))
            {
                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.veil, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.shiva, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.scream, true))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.mjollnir, 500f))
            {
                return(true);
            }
            if (abilityHelper.UseAbility(this.shadowStrike, true))
            {
                return(true);
            }
            Unit9 target = targetManager.Target;

            return(((abilityHelper.CanBeCasted(this.shadowStrike, true, true, true, true) || abilityHelper.CanBeCasted(this.scream, true, true, true, true) || abilityHelper.CanBeCasted(this.sonic, true, true, true, true) || base.Owner.Distance(target) > base.Owner.GetAttackRange(target, 0f)) && abilityHelper.UseAbility(this.blink, true)) || abilityHelper.UseAbility(this.sonic, true));
        }
コード例 #27
0
        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);
        }
コード例 #28
0
 // Token: 0x06000663 RID: 1635 RVA: 0x0001F2B4 File Offset: 0x0001D4B4
 private bool EchoSlamCombo(TargetManager targetManager, AbilityHelper abilityHelper)
 {
     if (abilityHelper.UseDoubleBlinkCombo(this.force, this.blink, 0f))
     {
         return(true);
     }
     if (abilityHelper.UseAbility(this.echo, true))
     {
         base.ComboSleeper.ExtendSleep(0.1f);
         base.OrbwalkSleeper.ExtendSleep(0.1f);
         return(true);
     }
     if (abilityHelper.UseAbilityIfCondition(this.blink, new UsableAbility[]
     {
         this.echo
     }))
     {
         UpdateManager.BeginInvoke(delegate
         {
             this.echo.ForceUseAbility(targetManager, this.ComboSleeper);
             this.ComboSleeper.ExtendSleep(0.2f);
             this.OrbwalkSleeper.ExtendSleep(0.2f);
         }, 111);
         return(true);
     }
     return(!abilityHelper.CanBeCasted(this.echo, false, false, true, true) && (abilityHelper.UseAbility(this.totem, true) || abilityHelper.UseAbility(this.fissure, true)));
 }
コード例 #29
0
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            var abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            foreach (var unit in targetManager.EnemyUnits)
            {
                if (this.Owner.Distance(unit) < 275)
                {
                    if (!this.damagedUnits.Contains(unit))
                    {
                        this.damagedUnits.Add(unit);
                    }

                    if (this.moveUnits.Contains(unit))
                    {
                        this.moveUnits.Remove(unit);
                    }
                }
                else if (!this.damagedUnits.Contains(unit))
                {
                    if (!this.moveUnits.Contains(unit))
                    {
                        this.moveUnits.Add(unit);
                    }
                }
            }

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

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

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

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

            return(false);
        }