Example #1
0
 // 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));
 }
Example #2
0
        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;
                }
            }
        }