예제 #1
0
        public LegionCommander(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper,
                               ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.legion_commander_overwhelming_odds, x => this.odds = new OverwhelmingOdds(x) },
                { AbilityId.legion_commander_press_the_attack, x => this.attack = new BuffAbility(x) },
                { AbilityId.legion_commander_duel, x => this.duel = new Duel(x) },

                { AbilityId.item_blink, x => this.blink = new LegionBlink(x) },
                { AbilityId.item_swift_blink, x => this.blink = new LegionBlink(x) },
                { AbilityId.item_arcane_blink, x => this.blink = new LegionBlink(x) },
                { AbilityId.item_overwhelming_blink, x => this.blink = new LegionBlink(x) },
                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_blade_mail, x => this.bladeMail = new ShieldAbility(x) },
                { AbilityId.item_black_king_bar, x => this.bkb = new ShieldAbility(x) },
                { AbilityId.item_solar_crest, x => this.solar = new DebuffAbility(x) },
                { AbilityId.item_medallion_of_courage, x => this.medallion = new DebuffAbility(x) },
                { AbilityId.item_heavens_halberd, x => this.halberd = new DisableAbility(x) },
                { AbilityId.item_mjollnir, x => this.mjollnir = new ShieldAbility(x) },
                { AbilityId.item_armlet, x => this.armlet = new BuffAbility(x) },
                { AbilityId.item_abyssal_blade, x => this.abyssal = 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) },
            };
        }
예제 #2
0
        protected ControllableUnitMenu GetUnitMenu(Unit9 unit)
        {
            if (!this.unitMenus.TryGetValue(unit.DefaultName + unit.IsIllusion, out var menu))
            {
                menu = new ControllableUnitMenu(unit, this.Menu);
                this.unitMenus[unit.DefaultName + unit.IsIllusion] = menu;
            }

            return(menu);
        }
예제 #3
0
 // Token: 0x060009A2 RID: 2466 RVA: 0x00029F6C File Offset: 0x0002816C
 public Axe(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.axe_berserkers_call,
             (ActiveAbility x) => this.call = new DisableAbility(x)
         },
         {
             AbilityId.axe_battle_hunger,
             (ActiveAbility x) => this.hunger = new DebuffAbility(x)
         },
         {
             AbilityId.axe_culling_blade,
             (ActiveAbility x) => this.blade = new CullingBlade(x)
         },
         {
             AbilityId.item_blink,
             (ActiveAbility x) => this.blink = new BlinkDaggerAOE(x)
         },
         {
             AbilityId.item_force_staff,
             (ActiveAbility x) => this.force = new ForceStaff(x)
         },
         {
             AbilityId.item_blade_mail,
             (ActiveAbility x) => this.bladeMail = new ShieldAbility(x)
         },
         {
             AbilityId.item_black_king_bar,
             (ActiveAbility x) => this.bkb = new ShieldAbility(x)
         },
         {
             AbilityId.item_shivas_guard,
             (ActiveAbility x) => this.shiva = new DebuffAbility(x)
         },
         {
             AbilityId.item_mjollnir,
             (ActiveAbility x) => this.mjollnir = new ShieldAbility(x)
         },
         {
             AbilityId.item_meteor_hammer,
             (ActiveAbility x) => this.meteor = new MeteorHammerAxe(x)
         },
         {
             AbilityId.item_dagon_5,
             (ActiveAbility x) => this.dagon = new NukeAbility(x)
         }
     };
     base.MoveComboAbilities.Add(AbilityId.axe_berserkers_call, (ActiveAbility _) => this.call);
 }
예제 #4
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_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_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) },
                { AbilityId.item_gungir, x => this.gungir = new DisableAbility(x) },
            };
        }
예제 #5
0
 // Token: 0x06000633 RID: 1587 RVA: 0x0001E4E0 File Offset: 0x0001C6E0
 public Enigma(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.enigma_malefice,
             (ActiveAbility x) => this.malefice = new DisableAbility(x)
         },
         {
             AbilityId.enigma_midnight_pulse,
             (ActiveAbility x) => this.pulse = new AoeAbility(x)
         },
         {
             AbilityId.enigma_black_hole,
             (ActiveAbility x) => this.blackHole = new BlackHole(x)
         },
         {
             AbilityId.item_black_king_bar,
             (ActiveAbility x) => this.bkb = new ShieldAbility(x)
         },
         {
             AbilityId.item_ghost,
             (ActiveAbility x) => this.ghost = new ShieldAbility(x)
         },
         {
             AbilityId.item_blink,
             (ActiveAbility x) => this.blink = new BlinkDaggerEnigma(x)
         },
         {
             AbilityId.item_refresher,
             (ActiveAbility x) => this.refresher = new UntargetableAbility(x)
         },
         {
             AbilityId.item_refresher_shard,
             (ActiveAbility x) => this.refresherShard = new UntargetableAbility(x)
         },
         {
             AbilityId.item_shivas_guard,
             (ActiveAbility x) => this.shiva = new DebuffAbility(x)
         }
     };
 }
예제 #6
0
파일: Dazzle.cs 프로젝트: vana41203/O9K
        public Dazzle(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.dazzle_poison_touch, x => this.touch = new DebuffAbility(x) },
                { AbilityId.dazzle_shadow_wave, x => this.wave = new ShadowWave(x) },

                { AbilityId.item_solar_crest, x => this.solar = new DebuffAbility(x) },
                { AbilityId.item_medallion_of_courage, x => this.medallion = new DebuffAbility(x) },
                { AbilityId.item_urn_of_shadows, x => this.urn = new DebuffAbility(x) },
                { AbilityId.item_spirit_vessel, x => this.vessel = new DebuffAbility(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_sheepstick, x => this.hex = new DisableAbility(x) },
            };
        }
예제 #7
0
        public Pudge(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.pudge_meat_hook, x => this.hook = new MeatHook(x) },
                { AbilityId.pudge_rot, x => this.rot = new Rot(x) },
                { AbilityId.pudge_dismember, x => this.dismember = new Dismember(x) },

                { AbilityId.item_blink, x => this.blink = new BlinkDaggerPudge(x) },
                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
                { AbilityId.item_blade_mail, x => this.bladeMail = new ShieldAbility(x) },
                { AbilityId.item_spirit_vessel, x => this.vessel = new DebuffAbility(x) },
                { AbilityId.item_urn_of_shadows, x => this.urn = new DebuffAbility(x) },
                { AbilityId.item_rod_of_atos, x => this.atos = new DisableAbility(x) },
                { AbilityId.item_shivas_guard, x => this.shiva = new DebuffAbility(x) },
                { AbilityId.item_ethereal_blade, x => this.ethereal = new DebuffAbility(x) },
                { AbilityId.item_dagon_5, x => this.dagon = new NukeAbility(x) },
                { AbilityId.item_nullifier, x => this.nullifier = new Nullifier(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
                { AbilityId.item_black_king_bar, x => this.bkb = new ShieldAbility(x) },
                { AbilityId.item_lotus_orb, x => this.lotus = new ShieldAbility(x) },
            };
        }
예제 #8
0
 // Token: 0x06000147 RID: 327 RVA: 0x0000C2D8 File Offset: 0x0000A4D8
 public Windranger(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     this.windranger     = (owner as Windranger);
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.windrunner_shackleshot,
             delegate(ActiveAbility x)
             {
                 this.shackleshot = new Shackleshot(x);
                 if (this.powershot != null)
                 {
                     this.powershot.Shackleshot = this.shackleshot;
                 }
                 return(this.shackleshot);
             }
         },
         {
             AbilityId.windrunner_powershot,
             delegate(ActiveAbility x)
             {
                 this.powershot = new Powershot(x);
                 if (this.shackleshot != null)
                 {
                     this.powershot.Shackleshot = this.shackleshot;
                 }
                 return(this.powershot);
             }
         },
         {
             AbilityId.windrunner_windrun,
             (ActiveAbility x) => this.windrun = new Windrun(x)
         },
         {
             AbilityId.windrunner_focusfire,
             (ActiveAbility x) => this.focusFire = new FocusFire(x)
         },
         {
             AbilityId.item_phase_boots,
             (ActiveAbility x) => this.phase = new SpeedBuffAbility(x)
         },
         {
             AbilityId.item_blink,
             (ActiveAbility x) => this.blink = new BlinkDaggerWindranger(x)
         },
         {
             AbilityId.item_orchid,
             (ActiveAbility x) => this.orchid = new DisableAbility(x)
         },
         {
             AbilityId.item_bloodthorn,
             (ActiveAbility x) => this.bloodthorn = new Bloodthorn(x)
         },
         {
             AbilityId.item_nullifier,
             (ActiveAbility x) => this.nullifier = new Nullifier(x)
         },
         {
             AbilityId.item_sheepstick,
             (ActiveAbility x) => this.hex = new DisableAbility(x)
         }
     };
     base.MoveComboAbilities.Add(AbilityId.windrunner_shackleshot, (ActiveAbility _) => this.shackleshot);
     base.MoveComboAbilities.Add(AbilityId.windrunner_windrun, (ActiveAbility x) => this.windrunMove = new MoveBuffAbility(x));
 }
예제 #9
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_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_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);

            ParticleManager.ParticleAdded += OnParticleAdded;
        }
예제 #10
0
 // Token: 0x06000913 RID: 2323 RVA: 0x000288CC File Offset: 0x00026ACC
 public DarkSeer(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.dark_seer_vacuum,
             delegate(ActiveAbility x)
             {
                 this.vacuum = new Vacuum(x);
                 if (this.wall != null)
                 {
                     this.wall.Vacuum = this.vacuum;
                 }
                 return(this.vacuum);
             }
         },
         {
             AbilityId.dark_seer_ion_shell,
             (ActiveAbility x) => this.shell = new IonShell(x)
         },
         {
             AbilityId.dark_seer_surge,
             (ActiveAbility x) => this.surge = new BuffAbility(x)
         },
         {
             AbilityId.dark_seer_wall_of_replica,
             delegate(ActiveAbility x)
             {
                 this.wall = new WallOfReplica(x);
                 if (this.vacuum != null)
                 {
                     this.wall.Vacuum = this.vacuum;
                 }
                 return(this.wall);
             }
         },
         {
             AbilityId.item_blink,
             (ActiveAbility x) => this.blink = new BlinkAbility(x)
         },
         {
             AbilityId.item_shivas_guard,
             (ActiveAbility x) => this.shiva = new DebuffAbility(x)
         },
         {
             AbilityId.item_blade_mail,
             (ActiveAbility x) => this.bladeMail = new ShieldAbility(x)
         },
         {
             AbilityId.item_force_staff,
             (ActiveAbility x) => this.force = new ForceStaff(x)
         }
     };
     base.MoveComboAbilities.Add(AbilityId.dark_seer_surge, (ActiveAbility _) => this.surge);
 }
예제 #11
0
 // Token: 0x0600076A RID: 1898 RVA: 0x00022894 File Offset: 0x00020A94
 public Grimstroke(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.grimstroke_dark_artistry,
             (ActiveAbility x) => this.stroke = new DebuffAbility(x)
         },
         {
             AbilityId.grimstroke_ink_creature,
             (ActiveAbility x) => this.embrace = new DisableAbility(x)
         },
         {
             AbilityId.grimstroke_spirit_walk,
             (ActiveAbility x) => this.ink = new InkSwell(x)
         },
         {
             AbilityId.grimstroke_soul_chain,
             (ActiveAbility x) => this.bind = new Soulbind(x)
         },
         {
             AbilityId.item_blink,
             (ActiveAbility x) => this.blink = new BlinkAbility(x)
         },
         {
             AbilityId.item_ethereal_blade,
             (ActiveAbility x) => this.ethereal = new EtherealBlade(x)
         },
         {
             AbilityId.item_sheepstick,
             (ActiveAbility x) => this.hex = new DisableAbility(x)
         },
         {
             AbilityId.item_shivas_guard,
             (ActiveAbility x) => this.shiva = new DebuffAbility(x)
         },
         {
             AbilityId.item_orchid,
             (ActiveAbility x) => this.orchid = new DisableAbility(x)
         },
         {
             AbilityId.item_bloodthorn,
             (ActiveAbility x) => this.bloodthorn = new Bloodthorn(x)
         },
         {
             AbilityId.item_nullifier,
             (ActiveAbility x) => this.nullifier = new Nullifier(x)
         },
         {
             AbilityId.item_rod_of_atos,
             (ActiveAbility x) => this.atos = new DisableAbility(x)
         },
         {
             AbilityId.item_veil_of_discord,
             (ActiveAbility x) => this.veil = new DebuffAbility(x)
         },
         {
             AbilityId.item_heavens_halberd,
             (ActiveAbility x) => this.halberd = new DisableAbility(x)
         },
         {
             AbilityId.item_dagon_5,
             (ActiveAbility x) => this.dagon = new GrimstrokeDagon(x)
         }
     };
 }
예제 #12
0
 public PsionicTrap(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
     : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         { AbilityId.templar_assassin_self_trap, x => this.trapExplode = new TrapExplode(x) },
     };
 }
예제 #13
0
        public Alchemist(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.alchemist_acid_spray, x => this.acid = new DebuffAbility(x) },
                { AbilityId.alchemist_unstable_concoction_throw, x => this.concoction = new UnstableConcoction(x) },
                { AbilityId.alchemist_chemical_rage, x => this.rage = new BuffAbility(x) },

                { AbilityId.item_manta, x => this.manta = new BuffAbility(x) },
                { AbilityId.item_armlet, x => this.armlet = new BuffAbility(x) },
                { AbilityId.item_abyssal_blade, x => this.abyssal = new DisableAbility(x) },
                { AbilityId.item_mjollnir, x => this.mjollnir = new ShieldAbility(x) },
            };
        }
예제 #14
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_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_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) },
            };
        }
예제 #15
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);
        }
예제 #16
0
        public Riki(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.riki_smoke_screen, x => this.smoke = new SmokeScreen(x) },
                { AbilityId.riki_blink_strike, x => this.blinkStrike = new NukeAbility(x) },
                { AbilityId.riki_tricks_of_the_trade, x => this.tricks = new TricksOfTheTrade(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_abyssal_blade, x => this.abyssal = new DisableAbility(x) },
                { AbilityId.item_diffusal_blade, x => this.diffusal = new DebuffAbility(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_nullifier, x => this.nullifier = new Nullifier(x) },
                { AbilityId.item_solar_crest, x => this.solar = new DebuffAbility(x) },
                { AbilityId.item_medallion_of_courage, x => this.medallion = new DebuffAbility(x) },
                { AbilityId.item_rod_of_atos, x => this.atos = new DisableAbility(x) },
                { AbilityId.item_gungir, x => this.gungir = new DisableAbility(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
            };
        }
예제 #17
0
 // Token: 0x06000740 RID: 1856 RVA: 0x00022084 File Offset: 0x00020284
 public Juggernaut(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.juggernaut_blade_fury,
             (ActiveAbility x) => this.bladeFury = new NukeAbility(x)
         },
         {
             AbilityId.juggernaut_healing_ward,
             (ActiveAbility x) => this.ward = new HealingWard(x)
         },
         {
             AbilityId.juggernaut_omni_slash,
             (ActiveAbility x) => this.omni = new Omnislash(x)
         },
         {
             AbilityId.item_phase_boots,
             (ActiveAbility x) => this.phase = new SpeedBuffAbility(x)
         },
         {
             AbilityId.item_orchid,
             (ActiveAbility x) => this.orchid = new DisableAbility(x)
         },
         {
             AbilityId.item_bloodthorn,
             (ActiveAbility x) => this.bloodthorn = new Bloodthorn(x)
         },
         {
             AbilityId.item_nullifier,
             (ActiveAbility x) => this.nullifier = new Nullifier(x)
         },
         {
             AbilityId.item_diffusal_blade,
             (ActiveAbility x) => this.diffusal = new DebuffAbility(x)
         },
         {
             AbilityId.item_abyssal_blade,
             (ActiveAbility x) => this.abyssal = new DisableAbility(x)
         },
         {
             AbilityId.item_manta,
             (ActiveAbility x) => this.manta = new BuffAbility(x)
         },
         {
             AbilityId.item_blink,
             (ActiveAbility x) => this.blink = new BlinkAbility(x)
         },
         {
             AbilityId.item_mjollnir,
             (ActiveAbility x) => this.mjollnir = new ShieldAbility(x)
         }
     };
     base.MoveComboAbilities.Add(AbilityId.juggernaut_blade_fury, (ActiveAbility x) => this.bladeFuryShield = new ShieldAbility(x));
 }
예제 #18
0
        public Venomancer(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.venomancer_venomous_gale, x => this.gale = new DebuffAbility(x) },
                { AbilityId.venomancer_plague_ward, x => this.ward = new PlagueWardAbility(x) },
                { AbilityId.venomancer_poison_nova, x => this.nova = new PoisonNova(x) },

                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_blink, x => this.blink = new BlinkDaggerAOE(x) },
                { AbilityId.item_swift_blink, x => this.blink = new BlinkDaggerAOE(x) },
                { AbilityId.item_arcane_blink, x => this.blink = new BlinkDaggerAOE(x) },
                { AbilityId.item_overwhelming_blink, x => this.blink = new BlinkDaggerAOE(x) },
                { AbilityId.item_shivas_guard, x => this.shiva = new DebuffAbility(x) },
                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.venomancer_venomous_gale, _ => this.gale);
        }
예제 #19
0
        public PhantomLancer(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.phantom_lancer_spirit_lance, x => this.lance = new NukeAbility(x) },
                { AbilityId.phantom_lancer_doppelwalk, x => this.doppel = new Doppelganger(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_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_nullifier, x => this.nullifier = new Nullifier(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.phantom_lancer_doppelwalk, x => this.doppelBlink = new BlinkAbility(x));
        }
예제 #20
0
        public EmberSpirit(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.ember_spirit_searing_chains, x => this.chains = new SearingChains(x) },
                { AbilityId.ember_spirit_sleight_of_fist, x => this.fist = new SleightOfFist(x) },
                { AbilityId.ember_spirit_flame_guard, x => this.shield = new ShieldAbility(x) },
                { AbilityId.ember_spirit_fire_remnant, x => this.remnant = new FireRemnant(x) },
                { AbilityId.ember_spirit_activate_fire_remnant, x => this.remnantActivate = new ActivateFireRemnant(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_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_shivas_guard, x => this.shiva = new DebuffAbility(x) },
                { AbilityId.item_blade_mail, x => this.bladeMail = new ShieldAbility(x) },
                { AbilityId.item_mjollnir, x => this.mjollnir = 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.ember_spirit_fire_remnant, x => this.remnantBlink = new FireRemnantBlink(x));
            this.MoveComboAbilities.Add(
                AbilityId.ember_spirit_activate_fire_remnant,
                x => this.remnantActivateBlink = new ActivateFireRemnantBlink(x));
        }
예제 #21
0
 // Token: 0x06000452 RID: 1106 RVA: 0x000175BC File Offset: 0x000157BC
 public Phoenix(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.phoenix_icarus_dive,
             (ActiveAbility x) => this.dive = new IcarusDive(x)
         },
         {
             AbilityId.phoenix_launch_fire_spirit,
             (ActiveAbility x) => this.spirits = new FireSpirits(x)
         },
         {
             AbilityId.phoenix_sun_ray,
             (ActiveAbility x) => this.ray = new SunRay(x)
         },
         {
             AbilityId.phoenix_supernova,
             (ActiveAbility x) => this.nova = new Supernova(x)
         },
         {
             AbilityId.item_veil_of_discord,
             (ActiveAbility x) => this.veil = new DebuffAbility(x)
         },
         {
             AbilityId.item_shivas_guard,
             (ActiveAbility x) => this.shiva = new ShivasGuard(x)
         },
         {
             AbilityId.item_rod_of_atos,
             (ActiveAbility x) => this.atos = new DisableAbility(x)
         },
         {
             AbilityId.item_spirit_vessel,
             (ActiveAbility x) => this.vessel = new DebuffAbility(x)
         },
         {
             AbilityId.item_urn_of_shadows,
             (ActiveAbility x) => this.urn = new DebuffAbility(x)
         },
         {
             AbilityId.item_sheepstick,
             (ActiveAbility x) => this.hex = new DisableAbility(x)
         },
         {
             AbilityId.item_heavens_halberd,
             (ActiveAbility x) => this.halberd = new DisableAbility(x)
         }
     };
     base.MoveComboAbilities.Add(AbilityId.phoenix_icarus_dive, (ActiveAbility _) => this.dive);
 }
 // Token: 0x060001F0 RID: 496 RVA: 0x0000E89C File Offset: 0x0000CA9C
 public VengefulSpirit(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.vengefulspirit_magic_missile,
             (ActiveAbility x) => this.missile = new DisableAbility(x)
         },
         {
             AbilityId.vengefulspirit_wave_of_terror,
             (ActiveAbility x) => this.wave = new DebuffAbility(x)
         },
         {
             AbilityId.vengefulspirit_nether_swap,
             (ActiveAbility x) => this.swap = new TargetableAbility(x)
         },
         {
             AbilityId.item_force_staff,
             (ActiveAbility x) => this.force = new ForceStaff(x)
         },
         {
             AbilityId.item_hurricane_pike,
             (ActiveAbility x) => this.pike = new HurricanePike(x)
         },
         {
             AbilityId.item_solar_crest,
             (ActiveAbility x) => this.solar = new DebuffAbility(x)
         },
         {
             AbilityId.item_medallion_of_courage,
             (ActiveAbility x) => this.medallion = new DebuffAbility(x)
         },
         {
             AbilityId.item_spirit_vessel,
             (ActiveAbility x) => this.vessel = new DebuffAbility(x)
         },
         {
             AbilityId.item_urn_of_shadows,
             (ActiveAbility x) => this.urn = new DebuffAbility(x)
         }
     };
     base.MoveComboAbilities.Add(AbilityId.lion_impale, (ActiveAbility _) => this.missile);
 }
예제 #23
0
        public Slardar(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.slardar_sprint, x => this.sprint = new BuffAbility(x) },
                { AbilityId.slardar_slithereen_crush, x => this.crush = new DisableAbility(x) },
                { AbilityId.slardar_amplify_damage, x => this.amplify = new DebuffAbility(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_blink, x => this.blink = new BlinkDaggerAOE(x) },
                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
                { AbilityId.item_blade_mail, x => this.bladeMail = new ShieldAbility(x) },
                { AbilityId.item_black_king_bar, x => this.bkb = new ShieldAbility(x) },
                { AbilityId.item_armlet, x => this.armlet = new BuffAbility(x) },
                { AbilityId.item_solar_crest, x => this.solar = new DebuffAbility(x) },
                { AbilityId.item_medallion_of_courage, x => this.medallion = new DebuffAbility(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) },
                { AbilityId.item_nullifier, x => this.nullifier = new Nullifier(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.slardar_slithereen_crush, _ => this.crush);
            this.MoveComboAbilities.Add(AbilityId.slardar_sprint, _ => this.sprint);
        }
예제 #24
0
        public VoidSpirit(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.void_spirit_aether_remnant, x => this.remnant = new AetherRemnant(x) },
                { AbilityId.void_spirit_dissimilate, x => this.dissimilate = new Dissimilate(x) },
                { AbilityId.void_spirit_resonant_pulse, x => this.pulse = new NukeAbility(x) },
                { AbilityId.void_spirit_astral_step, x => this.step = new NukeAbility(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_black_king_bar, x => this.bkb = new ShieldAbility(x) },
                { AbilityId.item_mjollnir, x => this.mjollnir = new ShieldAbility(x) },
                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
                { AbilityId.item_shivas_guard, x => this.shiva = new DebuffAbility(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_cyclone, x => this.eul = new DisableAbility(x) },
                { AbilityId.item_dagon_5, x => this.dagon = new NukeAbility(x) },
                { AbilityId.item_spirit_vessel, x => this.vessel = new DebuffAbility(x) },
                { AbilityId.item_urn_of_shadows, x => this.urn = new DebuffAbility(x) },
                { AbilityId.item_nullifier, x => this.nullifier = new Nullifier(x) },
                { AbilityId.item_sheepstick, x => this.hex = new DisableAbility(x) },
            };
        }
예제 #25
0
 // Token: 0x060002E5 RID: 741 RVA: 0x00011D0C File Offset: 0x0000FF0C
 public StormSpirit(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.storm_spirit_static_remnant,
             (ActiveAbility x) => this.remnant = new NukeAbility(x)
         },
         {
             AbilityId.storm_spirit_electric_vortex,
             (ActiveAbility x) => this.vortex = new DisableAbility(x)
         },
         {
             AbilityId.storm_spirit_ball_lightning,
             (ActiveAbility x) => this.ball = new BallLightning(x)
         },
         {
             AbilityId.item_orchid,
             (ActiveAbility x) => this.orchid = new DisableAbility(x)
         },
         {
             AbilityId.item_sheepstick,
             (ActiveAbility x) => this.hex = new DisableAbility(x)
         },
         {
             AbilityId.item_bloodthorn,
             (ActiveAbility x) => this.bloodthorn = new Bloodthorn(x)
         },
         {
             AbilityId.item_shivas_guard,
             (ActiveAbility x) => this.shiva = new DebuffAbility(x)
         },
         {
             AbilityId.item_nullifier,
             (ActiveAbility x) => this.nullifier = new Nullifier(x)
         },
         {
             AbilityId.item_dagon_5,
             (ActiveAbility x) => this.dagon = new NukeAbility(x)
         }
     };
     base.MoveComboAbilities.Add(AbilityId.storm_spirit_ball_lightning, (ActiveAbility _) => this.ball);
 }
예제 #26
0
 // Token: 0x06000528 RID: 1320 RVA: 0x0001A92C File Offset: 0x00018B2C
 public Mars(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu)
 {
     base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
     {
         {
             AbilityId.mars_spear,
             (ActiveAbility x) => this.spear = new SpearOfMars(x)
         },
         {
             AbilityId.mars_gods_rebuke,
             (ActiveAbility x) => this.rebuke = new NukeAbility(x)
         },
         {
             AbilityId.mars_arena_of_blood,
             (ActiveAbility x) => this.arena = new ArenaOfBlood(x)
         },
         {
             AbilityId.item_blink,
             (ActiveAbility x) => this.blink = new BlinkAbility(x)
         },
         {
             AbilityId.item_orchid,
             (ActiveAbility x) => this.orchid = new DisableAbility(x)
         },
         {
             AbilityId.item_nullifier,
             (ActiveAbility x) => this.nullifier = new Nullifier(x)
         },
         {
             AbilityId.item_bloodthorn,
             (ActiveAbility x) => this.bloodthorn = new Bloodthorn(x)
         },
         {
             AbilityId.item_blade_mail,
             (ActiveAbility x) => this.bladeMail = new ShieldAbility(x)
         },
         {
             AbilityId.item_black_king_bar,
             (ActiveAbility x) => this.bkb = new ShieldAbility(x)
         },
         {
             AbilityId.item_heavens_halberd,
             (ActiveAbility x) => this.halberd = new DisableAbility(x)
         },
         {
             AbilityId.item_armlet,
             (ActiveAbility x) => this.armlet = new BuffAbility(x)
         },
         {
             AbilityId.item_abyssal_blade,
             (ActiveAbility x) => this.abyssal = new DisableAbility(x)
         }
     };
 }
예제 #27
0
        public Slark(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.slark_dark_pact, x => this.pact = new NukeAbility(x) },
                { AbilityId.slark_pounce, x => this.pounce = new Pounce(x) },
                { AbilityId.slark_shadow_dance, x => this.dance = new ShadowDance(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_abyssal_blade, x => this.abyssal = new DisableAbility(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) },
                { 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_solar_crest, x => this.solar = new DebuffAbility(x) },
                { AbilityId.item_medallion_of_courage, x => this.medallion = new DebuffAbility(x) },
                { AbilityId.item_diffusal_blade, x => this.diffusal = new DebuffAbility(x) },
                { AbilityId.item_silver_edge, x => this.silver = new BuffAbility(x) },
                { AbilityId.item_invis_sword, x => this.shadow = new BuffAbility(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.slark_pounce, x => this.pounceBlink = new ForceStaff(x));
        }
예제 #28
0
        public Morphling(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.morphling = (BaseMorphling)owner;

            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.morphling_waveform, x => this.wave = new Wave(x) },
                { AbilityId.morphling_adaptive_strike_str, x => this.str = new DisableAbility(x) },
                { AbilityId.morphling_adaptive_strike_agi, x => this.agi = new NukeAbility(x) },

                //{ AbilityId.morphling_replicate, x => this.replicate = new Replicate(x) },
                //{ AbilityId.morphling_morph_replicate, x => this.morph = new Morph(x) },

                { AbilityId.item_orchid, x => this.orchid = new DisableAbility(x) },
                { AbilityId.item_bloodthorn, x => this.bloodthorn = new Bloodthorn(x) },
                { AbilityId.item_ethereal_blade, x => this.ethereal = new NukeAbility(x) },
                { AbilityId.item_manta, x => this.manta = new MantaStyle(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.morphling_waveform, x => this.waveBlink = new BlinkAbility(x));

            OrderManager.OrderAdding += this.OnOrderAdding;
        }
예제 #29
0
        public Lina(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.lina_dragon_slave, x => this.dragon = new NukeAbility(x) },
                { AbilityId.lina_light_strike_array, x => this.array = new DisableAbility(x) },
                { AbilityId.lina_laguna_blade, x => this.laguna = new NukeAbility(x) },

                { AbilityId.item_phase_boots, x => this.phase = new SpeedBuffAbility(x) },
                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
                { AbilityId.item_hurricane_pike, x => this.pike = new HurricanePike(x) },
                { AbilityId.item_ethereal_blade, x => this.ethereal = new EtherealBlade(x) },
                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_cyclone, x => this.euls = new EulsScepterOfDivinity(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_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_rod_of_atos, x => this.atos = new DisableAbility(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.lina_light_strike_array, _ => this.array);
        }
예제 #30
0
파일: Leshrac.cs 프로젝트: vana41203/O9K
        public Leshrac(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                {
                    AbilityId.leshrac_split_earth, x =>
                    {
                        this.splitEarth = new SplitEarth(x);
                        if (this.lightning != null)
                        {
                            this.splitEarth.Storm = this.lightning;
                        }

                        this.splitEarth.FailSafe = this.FailSafe;
                        return(this.splitEarth);
                    }
                },
                { AbilityId.leshrac_diabolic_edict, x => this.diabolic = new DiabolicEdict(x) },
                {
                    AbilityId.leshrac_lightning_storm, x =>
                    {
                        this.lightning = new NukeAbility(x);
                        if (this.splitEarth != null)
                        {
                            this.splitEarth.Storm = this.lightning;
                        }

                        return(this.lightning);
                    }
                },
                { AbilityId.leshrac_pulse_nova, x => this.nova = new PulseNova(x) },

                { AbilityId.item_ethereal_blade, x => this.ethereal = new EtherealBlade(x) },
                { AbilityId.item_veil_of_discord, x => this.veil = new DebuffAbility(x) },
                { AbilityId.item_blink, x => this.blink = new BlinkAbility(x) },
                { AbilityId.item_cyclone, x => this.euls = new EulsScepterOfDivinity(x) },
                { AbilityId.item_sheepstick, x => this.hex = new DisableAbility(x) },
                { AbilityId.item_shivas_guard, x => this.shiva = new DebuffAbility(x) },
                { AbilityId.item_rod_of_atos, x => this.atos = new DisableAbility(x) },
            };

            this.MoveComboAbilities.Add(AbilityId.leshrac_split_earth, _ => this.splitEarth);
        }