Esempio n. 1
0
        public Grimstroke(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.grimstroke_dark_artistry, x => this.stroke = new DebuffAbility(x) },
                { AbilityId.grimstroke_ink_creature, x => this.embrace = new DisableAbility(x) },
                { AbilityId.grimstroke_spirit_walk, x => this.ink = new InkSwell(x) },
                { AbilityId.grimstroke_soul_chain, x => this.bind = new Soulbind(x) },
                { (AbilityId)7852, x => this.portrait = new TargetableAbility(x) },

                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_swift_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_arcane_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_overwhelming_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_ethereal_blade, x => this.ethereal = new EtherealBlade(x) },
                { AbilityId.item_sheepstick, x => this.hex = new DisableAbility(x) },
                { AbilityId.item_shivas_guard, x => this.shiva = new DebuffAbility(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
                { AbilityId.item_nullifier, x => this.nullifier = new Nullifier(x) },
                { AbilityId.item_rod_of_atos, x => this.atos = new DisableAbility(x) },
                { AbilityId.item_gungir, x => this.gungir = new DisableAbility(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_heavens_halberd, x => this.halberd = new DisableAbility(x) },
                { AbilityId.item_dagon_5, x => this.dagon = new GrimstrokeDagon(x) },
            };
        }
Esempio n. 2
0
        public Kunkka(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.playerHandle = owner.BaseOwner.Handle;

            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.kunkka_torrent, x => this.torrent = new Torrent(x) },
                { AbilityId.kunkka_tidebringer, x => this.tidebringer = new TargetableAbility(x) },
                { AbilityId.kunkka_x_marks_the_spot, x => this.xMark = new XMark(x) },
                { AbilityId.kunkka_return, x => this.xReturn = new UntargetableAbility(x) },
                { AbilityId.kunkka_ghostship, x => this.ship = new Ghostship(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_armlet, x => this.armlet = new BuffAbility(x) },
                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_swift_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_arcane_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_overwhelming_blink, x => this.blink = new BlinkAbility(x) },
            };

            this.ancientCamps = Context9.JungleManager.JungleCamps.Where(x => x.IsAncient).Select(x => x.CreepsPosition).ToArray();

            ParticleManager.ParticleAdded += OnParticleAdded;
            ModifierManager.ModifierAdded += OnModifierAdded;
            OrderManager.OrderAdding      += OnOrderAdding;
        }
Esempio n. 3
0
        public Spectre(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.spectre_spectral_dagger, x => this.dagger = new NukeAbility(x) },
                { AbilityId.spectre_reality, x => this.reality = new Reality(x) },
                { AbilityId.spectre_haunt, x => this.haunt = new Haunt(x) },
                { (AbilityId)7851, x => this.shadowStep = new TargetableAbility(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_diffusal_blade, x => this.diffusal = new DebuffAbility(x) },
                { AbilityId.item_abyssal_blade, x => this.abyssal = new DisableAbility(x) },
                { AbilityId.item_manta, x => this.manta = new BuffAbility(x) },
                { AbilityId.item_spirit_vessel, x => this.vessel = new DebuffAbility(x) },
                { AbilityId.item_urn_of_shadows, x => this.urn = new DebuffAbility(x) },
                { AbilityId.item_black_king_bar, x => this.bkb = new ShieldAbility(x) },
                { AbilityId.item_sheepstick, x => this.hex = new DisableAbility(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
                { AbilityId.item_nullifier, x => this.nullifier = new Nullifier(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.spectre_spectral_dagger, x => this.daggerMove = new DaggerMove(x));
        }
    private void UpdateEnemyHealthData(TargetableAbility obj)
    {
        var healthData = obj.GetComponent <HealthData>();

        if (healthData != null)
        {
            EnemyHealthRenderer.Data = healthData;
            EnemyArmorRenderer.Data  = healthData;
        }
    }
    public void Attack(TargetableAbility target)
    {
        _taskSystem.StopAll(this);
        var walkTask   = new WalkToTargetTask(WalkAbility, target, this.gameObject);
        var attackTask = new ActivateAbilityTask(ActiveAttack.Attack, this.gameObject);

        _taskSystem.EnqueueTask(walkTask);
        _taskSystem.EnqueueTask(attackTask);
        attackTask.Finished += Disable;
    }
Esempio n. 6
0
    public TargetableAbility CheckForTarget(Vector2 mousePosition)
    {
        TargetableAbility target = null;
        RaycastHit        hit;
        var ray = MainCamera.ScreenPointToRay(mousePosition);

        if (Physics.Raycast(ray, out hit, float.PositiveInfinity, TargetLayer))
        {
            target = hit.collider.GetComponent <TargetableAbility>();
        }
        return(target);
    }
Esempio n. 7
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));
        }
Esempio n. 8
0
        // Token: 0x0600058C RID: 1420 RVA: 0x0001C16C File Offset: 0x0001A36C
        public override bool Combo(TargetManager targetManager, ComboModeMenu comboModeMenu)
        {
            AbilityHelper abilityHelper = new AbilityHelper(targetManager, comboModeMenu, this);

            if (!comboModeMenu.IsHarassCombo)
            {
                TargetableAbility targetableAbility = this.drain;
                if (targetableAbility != null && targetableAbility.Ability.IsChanneling && (abilityHelper.CanBeCasted(this.hex, true, true, false, true) || abilityHelper.CanBeCasted(this.impale, true, true, false, true)))
                {
                    base.Owner.BaseUnit.Stop();
                    base.ComboSleeper.Sleep(0.05f);
                    return(true);
                }
            }
            return(abilityHelper.UseKillStealAbility(this.finger, true) || abilityHelper.UseAbility(this.hex, true) || abilityHelper.UseAbility(this.ethereal, true) || abilityHelper.UseAbility(this.impale, true) || abilityHelper.UseDoubleBlinkCombo(this.force, this.blink, 0f) || abilityHelper.UseAbility(this.blink, 550f, 350f) || abilityHelper.UseAbility(this.force, 550f, 350f) || abilityHelper.UseAbility(this.finger, true) || abilityHelper.UseAbility(this.drain, true));
        }
Esempio n. 9
0
        public Bloodseeker(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.bloodseeker_bloodrage, x => this.rage = new BuffAbility(x) },
                { AbilityId.bloodseeker_blood_bath, x => this.blood = new BloodRite(x) },
                { AbilityId.bloodseeker_rupture, x => this.rupture = new TargetableAbility(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_blade_mail, x => this.bladeMail = new ShieldAbility(x) },
                { AbilityId.item_abyssal_blade, x => this.abyssal = new DisableAbility(x) },
                { AbilityId.item_cyclone, x => this.euls = new EulsScepterOfDivinity(x) },
                { AbilityId.item_mjollnir, x => this.mjollnir = new ShieldAbility(x) },
            };
        }
Esempio n. 10
0
        public AncientApparition(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.ancient_apparition_cold_feet, x => this.coldFeet = new DebuffAbility(x) },
                { AbilityId.ancient_apparition_ice_vortex, x => this.vortex = new IceVortex(x) },
                { AbilityId.ancient_apparition_chilling_touch, x => this.touch = new ChillingTouch(x) },
                { AbilityId.ancient_apparition_ice_blast, x => this.blast = new IceBlast(x) },

                { AbilityId.item_cyclone, x => this.eul = new DisableAbility(x) },
                { AbilityId.item_sheepstick, x => this.hex = new DisableAbility(x) },
                { AbilityId.item_rod_of_atos, x => this.atos = new DisableAbility(x) },
                { AbilityId.item_spirit_vessel, x => this.vessel = new DebuffAbility(x) },
                { AbilityId.item_urn_of_shadows, x => this.urn = new DebuffAbility(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
            };
        }
Esempio n. 11
0
        public Disruptor(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.disruptor_thunder_strike, x => this.thunder = new NukeAbility(x) },
                { AbilityId.disruptor_glimpse, x => this.glimpse = new TargetableAbility(x) },
                { AbilityId.disruptor_kinetic_field, x => this.field = new KineticField(x) },
                { AbilityId.disruptor_static_storm, x => this.storm = new StaticStorm(x) },

                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.disruptor_kinetic_field, _ => this.field);

            Entity.OnParticleEffectAdded += this.OnParticleEffectAdded;
        }
Esempio n. 12
0
        public VengefulSpirit(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.vengefulspirit_magic_missile, x => this.missile = new DisableAbility(x) },
                { AbilityId.vengefulspirit_wave_of_terror, x => this.wave = new DebuffAbility(x) },
                { AbilityId.vengefulspirit_nether_swap, x => this.swap = new TargetableAbility(x) },

                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
                { AbilityId.item_hurricane_pike, x => this.pike = new HurricanePike(x) },
                { AbilityId.item_solar_crest, x => this.solar = new DebuffAbility(x) },
                { AbilityId.item_medallion_of_courage, x => this.medallion = new DebuffAbility(x) },
                { AbilityId.item_spirit_vessel, x => this.vessel = new DebuffAbility(x) },
                { AbilityId.item_urn_of_shadows, x => this.urn = new DebuffAbility(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.lion_impale, _ => this.missile);
        }
Esempio n. 13
0
        public ChaosKnight(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.chaos_knight_chaos_bolt, x => this.bolt = new DisableAbility(x) },
                { AbilityId.chaos_knight_reality_rift, x => this.rift = new TargetableAbility(x) },
                { AbilityId.chaos_knight_phantasm, x => this.phantasm = new UntargetableAbility(x) },

                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_black_king_bar, x => this.bkb = new ShieldAbility(x) },
                { AbilityId.item_manta, x => this.manta = new BuffAbility(x) },
                { AbilityId.item_armlet, x => this.armlet = new BuffAbility(x) },
                { AbilityId.item_heavens_halberd, x => this.halberd = new DisableAbility(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.slardar_sprint, _ => this.bolt);
        }
Esempio n. 14
0
        public Pugna(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.pugna_nether_blast, x => this.blast = new NukeAbility(x) },
                { AbilityId.pugna_decrepify, x => this.decrepify = new DebuffAbility(x) },
                { AbilityId.pugna_nether_ward, x => this.ward = new AoeAbility(x) },
                { AbilityId.pugna_life_drain, x => this.drain = new TargetableAbility(x) },

                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_dagon_5, x => this.dagon = new NukeAbility(x) },
                { AbilityId.item_sheepstick, x => this.hex = new DisableAbility(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
                { AbilityId.item_nullifier, x => this.nullifier = new Nullifier(x) },
                { AbilityId.item_rod_of_atos, x => this.atos = new DisableAbility(x) },
            };
        }
Esempio n. 15
0
        public Lion(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.lion_impale, x => this.impale = new DisableAbility(x) },
                { AbilityId.lion_mana_drain, x => this.drain = new ManaDrain(x) },
                { AbilityId.lion_voodoo, x => this.hex = new DisableAbility(x) },
                { AbilityId.lion_finger_of_death, x => this.finger = new NukeAbility(x) },

                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_dagon_5, x => this.dagon = new NukeAbility(x) },
                { AbilityId.item_ethereal_blade, x => this.ethereal = new EtherealBlade(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.lion_impale, _ => this.impale);
            this.MoveComboAbilities.Add(AbilityId.lion_voodoo, _ => this.hex);
        }
Esempio n. 16
0
        public Tusk(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.tusk_ice_shards, x => this.shards = new IceShards(x) },
                { AbilityId.tusk_snowball, x => this.snowball = new Snowball(x) },
                { AbilityId.tusk_tag_team, x => this.tag = new DebuffAbility(x) },
                { AbilityId.tusk_walrus_punch, x => this.punch = new NukeAbility(x) },
                { AbilityId.tusk_walrus_kick, x => this.kick = new Kick(x) },

                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_spirit_vessel, x => this.vessel = new DebuffAbility(x) },
                { AbilityId.item_urn_of_shadows, x => this.urn = new DebuffAbility(x) },
                { AbilityId.item_solar_crest, x => this.solar = new DebuffAbility(x) },
                { AbilityId.item_medallion_of_courage, x => this.medallion = new DebuffAbility(x) },
                { AbilityId.item_blade_mail, x => this.bladeMail = new ShieldAbility(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
            };
        }
Esempio n. 17
0
 public WalkToTargetTask(WalkTowardsGoalAbility source, TargetableAbility target, object owner) : base(owner)
 {
     _target = target;
     _source = source;
 }