public Magnus(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu) { this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> > { { AbilityId.magnataur_shockwave, x => this.shockwave = new Shockwave(x) }, { AbilityId.magnataur_skewer, x => { this.skewer = new Skewer(x); this.polarity?.AddSkewer(this.skewer); return(this.skewer); } }, { AbilityId.magnataur_reverse_polarity, x => { this.polarity = new ReversePolarity(x); if (this.skewer != null) { this.polarity.AddSkewer(this.skewer); } return(this.polarity); } }, { AbilityId.item_blink, x => this.blink = new BlinkDaggerMagnus(x) }, { AbilityId.item_swift_blink, x => this.blink = new BlinkDaggerMagnus(x) }, { AbilityId.item_arcane_blink, x => this.blink = new BlinkDaggerMagnus(x) }, { AbilityId.item_overwhelming_blink, x => this.blink = new BlinkDaggerMagnus(x) }, { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) }, { AbilityId.item_shivas_guard, x => this.shiva = new ShivasGuard(x) }, { AbilityId.item_refresher, x => this.refresher = new UntargetableAbility(x) }, { AbilityId.item_refresher_shard, x => this.refresherShard = new UntargetableAbility(x) }, }; this.MoveComboAbilities.Add(AbilityId.magnataur_skewer, x => this.moveSkewer = new BlinkAbility(x)); }
// Token: 0x06000549 RID: 1353 RVA: 0x0001B2B4 File Offset: 0x000194B4 public void BlinkSkewerCombo(TargetManager targetManager, BlinkSkewerModeMenu menu) { if (base.ComboSleeper.IsSleeping) { return; } BlinkDaggerMagnus blinkDaggerMagnus = this.blink; if (blinkDaggerMagnus != null && blinkDaggerMagnus.Ability.CanBeCasted(true)) { Skewer skewer = this.skewer; if (skewer != null && skewer.Ability.CanBeCasted(true)) { Vector3 predictedPosition = targetManager.Target.GetPredictedPosition(this.skewer.Ability.CastPoint); Vector3 blinkPosition = Vector3Extensions.Extend2D(base.Owner.Position, predictedPosition, base.Owner.Distance(predictedPosition) + 100f); float num = base.Owner.Distance(blinkPosition); if (this.blink.Ability.CastRange < num) { return; } Unit9 unit = (from x in targetManager.AllyHeroes where !x.Equals(this.Owner) && menu.IsAllyEnabled(x.Name) && x.Distance(blinkPosition) < this.skewer.Ability.CastRange + 800f orderby x.Distance(blinkPosition) select x).FirstOrDefault <Unit9>(); if (unit == null) { return; } base.OrbwalkSleeper.Sleep(this.skewer.Ability.CastPoint + 0.3f); this.blink.Ability.UseAbility(blinkPosition, false, false); this.skewer.Ability.UseAbility(unit.Position, false, false); base.ComboSleeper.Sleep(0.3f); return; } } }