// Token: 0x06000548 RID: 1352 RVA: 0x0001B1C8 File Offset: 0x000193C8 public Magnus(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu) : base(owner, abilitySleeper, orbwalkSleeper, menu) { base.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> > { { AbilityId.magnataur_shockwave, (ActiveAbility x) => this.shockwave = new Shockwave(x) }, { AbilityId.magnataur_skewer, delegate(ActiveAbility x) { this.skewer = new Skewer(x); ReversePolarity reversePolarity = this.polarity; if (reversePolarity != null) { reversePolarity.AddSkewer(this.skewer); } return(this.skewer); } }, { AbilityId.magnataur_reverse_polarity, delegate(ActiveAbility x) { this.polarity = new ReversePolarity(x); if (this.skewer != null) { this.polarity.AddSkewer(this.skewer); } return(this.polarity); } }, { AbilityId.item_blink, (ActiveAbility x) => this.blink = new BlinkDaggerMagnus(x) }, { AbilityId.item_force_staff, (ActiveAbility x) => this.force = new ForceStaff(x) }, { AbilityId.item_shivas_guard, (ActiveAbility x) => this.shiva = new ShivasGuard(x) }, { AbilityId.item_refresher, (ActiveAbility x) => this.refresher = new UntargetableAbility(x) }, { AbilityId.item_refresher_shard, (ActiveAbility x) => this.refresherShard = new UntargetableAbility(x) } }; base.MoveComboAbilities.Add(AbilityId.magnataur_skewer, (ActiveAbility x) => this.moveSkewer = new BlinkAbility(x)); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is UnitMovementAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(DriveType, () => wrapper.DriveType); if (Dynamics != null) { using (loader.logger.BeginScope($"Dynamics:")) { var w = new UnitDynamicsAttributesWrapper(wrapper.Dynamics); Dynamics.Apply(loader, w, null); wrapper.Dynamics = w; } } if (RandomDynamicsVariance != null) { using (loader.logger.BeginScope($"RandomDynamicsVariance:")) { var w2 = new UnitDynamicsRandomizationParametersWrapper(wrapper.RandomDynamicsVariance); RandomDynamicsVariance.Apply(loader, w2, null); wrapper.RandomDynamicsVariance = w2; } } if (Maneuvers != null) { using (loader.logger.BeginScope($"Maneuvers:")) { var w2 = new UnitManeuverAttributesWrapper(wrapper.Maneuvers); Maneuvers.Apply(loader, w2, null); wrapper.Maneuvers = w2; } } if (Hover != null) { using (loader.logger.BeginScope($"Hover:")) { var w2 = new HoverDynamicsAttributesWrapper(wrapper.Hover); Hover.Apply(loader, w2, null); wrapper.Hover = w2; } } if (Combat != null) { using (loader.logger.BeginScope($"Combat:")) { var w2 = new UnitCombatBehaviorAttributesWrapper(wrapper.Combat); Combat.Apply(loader, w2, null); wrapper.Combat = w2; } } if (Avoidance != null) { using (loader.logger.BeginScope($"Avoidance:")) { var w2 = new UnitAvoidanceAttributesWrapper(wrapper.Avoidance); Avoidance.Apply(loader, w2, null); wrapper.Avoidance = w2; } } if (ReversePolarity != null) { using (loader.logger.BeginScope($"ReversePolarity:")) { var w2 = new ReversePolarityAttributesWrapper(wrapper.ReversePolarity); ReversePolarity.Apply(loader, w2, null); wrapper.ReversePolarity = w2; } } }