protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is HarvesterAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(SalvageDistance, () => w.SalvageDistance, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(SalvageDistanceMult, () => w.SalvageDistance); loader.ApplyPPatch(MaxDropOffRange, () => w.MaxDropOffRange, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(MaxDropOffRangeMult, () => w.MaxDropOffRange); loader.ApplyPPatch(ClosestResourceControllerHysteresisDistance, () => w.ClosestResourceControllerHysteresisDistance, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(ClosestResourceControllerHysteresisDistanceMult, () => w.ClosestResourceControllerHysteresisDistance); loader.ApplyPPatch(AutoReturnToDepositOnArtifactPickup, () => w.AutoReturnToDepositOnArtifactPickup); if (SalvageCycles != null) { var l = w.SalvageCycles?.Select(x => new SalvageCycleWrapper(x)).ToList() ?? new List <SalvageCycleWrapper>(); loader.ApplyLPatch(SalvageCycles, l, () => new SalvageCycleWrapper(), nameof(SalvageCycle)); w.SalvageCycles = l.ToArray(); } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is PowerSystemAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(StartingPowerLevelIndex, () => wrapper.StartingPowerLevelIndex); loader.ApplyPMultPatch(StartingPowerLevelIndexMult, () => wrapper.StartingPowerLevelIndex); loader.ApplyPPatch(StartingMaxPowerLevelIndex, () => wrapper.StartingMaxPowerLevelIndex); loader.ApplyPMultPatch(StartingMaxPowerLevelIndexMult, () => wrapper.StartingMaxPowerLevelIndex); loader.ApplyPPatch(PowerSystemType, () => wrapper.PowerSystemType); { var l = wrapper.PowerLevels?.Select(x => new PowerLevelAttributesWrapper(x)).ToList() ?? new List <PowerLevelAttributesWrapper>(); loader.ApplyLPatch(PowerLevels, l, () => new PowerLevelAttributesWrapper(), "PowerLevels"); wrapper.PowerLevels = l.ToArray(); } if (View != null) { PowerSystemViewAttributesWrapper powerSystemViewAttributesWrapper = new PowerSystemViewAttributesWrapper(wrapper.View); View.Apply(loader, powerSystemViewAttributesWrapper, null); wrapper.View = powerSystemViewAttributesWrapper; } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is PeelOutAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(InitialForwardAccelerationPercentage, () => w.InitialForwardAccelerationPercentage, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(InitialForwardAccelerationPercentage, () => w.InitialForwardAccelerationPercentage); loader.ApplyPPatch(RadiusProportionalGrowthConstant, () => w.RadiusProportionalGrowthConstant, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(RadiusProportionalGrowthConstant, () => w.RadiusProportionalGrowthConstant); loader.ApplyPPatch(InitialTurnRadiusAsMaxTurnRadiusPercentage, () => w.InitialTurnRadiusAsMaxTurnRadiusPercentage, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(InitialTurnRadiusAsMaxTurnRadiusPercentage, () => w.InitialTurnRadiusAsMaxTurnRadiusPercentage); loader.ApplyPPatch(MaxTurnRatePercentage, () => w.MaxTurnRatePercentage, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(MaxTurnRatePercentage, () => w.MaxTurnRatePercentage); loader.ApplyPPatch(UsePeelOut, () => w.UsePeelOut); loader.ApplyPPatch(DoOppositeTurn, () => w.DoOppositeTurn); if (PeelOutRegion != null) { using (loader.logger.BeginScope($"PeelOutRegion:")) { var w2 = new ManeuverRegionAttributesWrapper(w.PeelOutRegion); PeelOutRegion.Apply(loader, w2, null); w.PeelOutRegion = w2; } } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ResearchItemAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(Resource1Cost, () => wrapper.Resource1Cost); loader.ApplyPMultPatch(Resource1CostMult, () => wrapper.Resource1Cost); loader.ApplyPPatch(Resource2Cost, () => wrapper.Resource2Cost); loader.ApplyPMultPatch(Resource2CostMult, () => wrapper.Resource2Cost); loader.ApplyPPatch(ResearchTime, () => wrapper.ResearchTime, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(ResearchTimeMult, () => wrapper.ResearchTime); loader.ApplyPPatch(TypeOfResearch, () => wrapper.TypeOfResearch); loader.ApplyPPatch(IconSpriteName, () => wrapper.IconSpriteName); loader.ApplyPPatch(LocalizedResearchTitleStringID, () => wrapper.LocalizedResearchTitleStringID); loader.ApplyPPatch(LocalizedShortDescriptionStringID, () => wrapper.LocalizedShortDescriptionStringID); loader.ApplyPPatch(LocalizedLongDescriptionStringID, () => wrapper.LocalizedLongDescriptionStringID); loader.ApplyPPatch(Dependencies, () => wrapper.Dependencies); loader.ApplyPPatch(ResearchVOCode, () => wrapper.ResearchVOCode); if (UnitTypeBuffs != null) { var l = wrapper.UnitTypeBuffs?.Select(x => new UnitTypeBuffWrapper(x)).ToList() ?? new List <UnitTypeBuffWrapper>(); loader.ApplyLPatch(UnitTypeBuffs, l, () => new UnitTypeBuffWrapper(), nameof(UnitTypeBuff)); wrapper.UnitTypeBuffs = l.Where(x => x != null).ToArray(); } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is FactionAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(FactionName, () => w.FactionName); loader.ApplyPPatch(ID, () => w.ID); loader.ApplyPPatch(VOName, () => w.VOName); loader.ApplyPPatch(VOAssetBundle, () => w.VOAssetBundle); loader.ApplyPPatch(MusicTrigger, () => w.MusicTrigger); loader.ApplyPPatch(ScaleWithDynamicDifficulty, () => w.ScaleWithDynamicDifficulty); if (TechTree != null) { using (loader.logger.BeginScope($"TechTree:")) { var w2 = new TechTreeAttributesWrapper(w.TechTree); TechTree.Apply(loader, w2, null); w.TechTree = w2; } } if (GlobalBuffs != null) { var l = w.GlobalBuffs?.Select(x => new UnitTypeBuffWrapper(x)).ToList() ?? new List <UnitTypeBuffWrapper>(); loader.ApplyLPatch(GlobalBuffs, l, () => new UnitTypeBuffWrapper(), nameof(UnitTypeBuff)); w.GlobalBuffs = l.Where(x => x != null).ToArray(); } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is PowerLevelAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(PowerUnitsRequired, () => wrapper.PowerUnitsRequired); loader.ApplyPMultPatch(PowerUnitsRequiredMult, () => wrapper.PowerUnitsRequired); loader.ApplyPPatch(HeatPointsProvided, () => wrapper.HeatPointsProvided); loader.ApplyPMultPatch(HeatPointsProvidedMult, () => wrapper.HeatPointsProvided); var statusEffects = wrapper.StatusEffectsToApply?.Select(x => new StatusEffectAttributesWrapper(x)).ToList() ?? new List <StatusEffectAttributesWrapper>(); loader.ApplyNamedLPatch(StatusEffectsToApply, statusEffects, (x) => new StatusEffectAttributesWrapper(x), "StatusEffectsToApply"); wrapper.StatusEffectsToApply = statusEffects.ToArray(); if (LocalizedShortDescriptionStringID != null) { PowerLevelViewAttributesWrapper powerLevelViewAttributesWrapper = new PowerLevelViewAttributesWrapper(wrapper.View); loader.ApplyPPatch(LocalizedShortDescriptionStringID, () => powerLevelViewAttributesWrapper.LocalizedShortDescriptionStringID); wrapper.View = powerLevelViewAttributesWrapper; } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is UnitHangarAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(AlignmentTime, () => w.AlignmentTime, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(AlignmentTimeMult, () => w.AlignmentTime); loader.ApplyPPatch(ApproachTime, () => w.ApproachTime, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(ApproachTimeMult, () => w.ApproachTime); for (var i = 0; i < w.HangarBays.Length; i++) { var hangarBay = w.HangarBays[i]; if (HangarBays.TryGetValue(hangarBay.Name, out HangarBayPatch hangarBayPatch)) { using (loader.logger.BeginScope($"HangarBay: {hangarBay.Name}")) { var hangarBayWrapper = new HangarBayWrapper(hangarBay); hangarBayPatch.Apply(loader, hangarBayWrapper, null); w.HangarBays[i] = hangarBayWrapper; } } } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is TargetPriorizationAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(WeaponEffectivenessWeight, () => wrapper.WeaponEffectivenessWeight, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(WeaponEffectivenessWeightMult, () => wrapper.WeaponEffectivenessWeight); loader.ApplyPPatch(TargetThreatWeight, () => wrapper.TargetThreatWeight, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(TargetThreatWeightMult, () => wrapper.TargetThreatWeight); loader.ApplyPPatch(DistanceWeight, () => wrapper.DistanceWeight, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(DistanceWeightMult, () => wrapper.DistanceWeight); loader.ApplyPPatch(AngleWeight, () => wrapper.AngleWeight, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(AngleWeightMult, () => wrapper.AngleWeight); loader.ApplyPPatch(TargetPriorityWeight, () => wrapper.TargetPriorityWeight, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(TargetPriorityWeightMult, () => wrapper.TargetPriorityWeight); loader.ApplyPPatch(AutoTargetStickyBias, () => wrapper.AutoTargetStickyBias, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(AutoTargetStickyBiasMult, () => wrapper.AutoTargetStickyBias); loader.ApplyPPatch(ManualTargetStickyBias, () => wrapper.ManualTargetStickyBias, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(ManualTargetStickyBiasMult, () => wrapper.ManualTargetStickyBias); loader.ApplyPPatch(TargetSameCommanderBias, () => wrapper.TargetSameCommanderBias, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(TargetSameCommanderBiasMult, () => wrapper.TargetSameCommanderBias); loader.ApplyPPatch(TargetWithinFOVBias, () => wrapper.TargetWithinFOVBias, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(TargetWithinFOVBiasMult, () => wrapper.TargetWithinFOVBias); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is AbilityViewAttributes w)) { throw new System.InvalidCastException(); } loader.ApplyPRefPatch(LocalizedTitleStringID, ref w.LocalizedTitleStringID, "LocalizedTitleStringID"); loader.ApplyPRefPatch(LocalizedShortDescriptionStringID, ref w.LocalizedShortDescriptionStringID, "LocalizedShortDescriptionStringID"); loader.ApplyPRefPatch(LocalizedLongDescriptionStringID, ref w.LocalizedLongDescriptionStringID, "LocalizedLongDescriptionStringID"); loader.ApplyPRefPatch(LocalizedToggledTitleStringID, ref w.LocalizedToggledTitleStringID, "LocalizedToggledTitleStringID"); loader.ApplyPRefPatch(LocalizedToggledShortDescriptionStringID, ref w.LocalizedToggledShortDescriptionStringID, "LocalizedToggledShortDescriptionStringID"); loader.ApplyPRefPatch(LocalizedToggledLongDescriptionStringID, ref w.LocalizedToggledLongDescriptionStringID, "LocalizedToggledLongDescriptionStringID"); loader.ApplyPRefPatch(IconName, ref w.IconName, "IconName"); loader.ApplyPRefPatch(ToggledIconName, ref w.ToggledIconName, "ToggledIconName"); loader.ApplyPRefPatch(Hotkey, ref w.Hotkey, "Hotkey"); loader.ApplyPRefPatch(ToggledHotkey, ref w.ToggledHotkey, "ToggledHotkey"); loader.ApplyPRefPatch(BindingIsExclusive, ref w.BindingIsExclusive, "BindingIsExclusive"); loader.ApplyPRefPatch(AutocastHotkeyModifier, ref w.AutocastHotkeyModifier, "AutocastHotkeyModifier"); loader.ApplyPRefPatch(DrawPreviewRouteLine, ref w.DrawPreviewRouteLine, "DrawPreviewRouteLine"); loader.ApplyPRefPatch(ForceHideAutocastSprite, ref w.ForceHideAutocastSprite, "ForceHideAutocastSprite"); loader.ApplyPRefPatch(ForcePassiveVisuals, ref w.ForcePassiveVisuals, "ForcePassiveVisuals"); loader.ApplyPRefPatch(WillToggleDialIndicator, ref w.WillToggleDialIndicator, "WillToggleDialIndicator"); loader.ApplyPRefPatch(InventoryID, ref w.InventoryID, "InventoryID"); loader.ApplyPRefPatch(InvertFillCooldown, ref w.InvertFillCooldown, "InvertFillCooldown"); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ProjectileAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(DetonationDelay, () => wrapper.DetonationDelay, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(DetonationDelayMult, () => wrapper.DetonationDelay); loader.ApplyPPatch(MissStageIndex, () => wrapper.MissStageIndex); loader.ApplyPMultPatch(MissStageIndexMult, () => wrapper.MissStageIndex); loader.ApplyPPatch(MinimumMissDistance, () => wrapper.MinimumMissDistance, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(MinimumMissDistanceMult, () => wrapper.MinimumMissDistance); loader.ApplyPPatch(MaximumMissDistance, () => wrapper.MaximumMissDistance, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(MaximumMissDistanceMult, () => wrapper.MaximumMissDistance); loader.ApplyPPatch(ProjectileType, () => wrapper.ProjectileType); if (Stages.Count > 0) { var l = wrapper.Stages?.Select(x => new ProjectileMotionStageWrapper(x)).ToList() ?? new List <ProjectileMotionStageWrapper>(); loader.ApplyLPatch(Stages, l, () => new ProjectileMotionStageWrapper(), nameof(ProjectileMotionStage)); wrapper.Stages = l.ToArray(); } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is PowerShuntAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(PowerLevelChargeTimeSeconds, () => wrapper.PowerLevelChargeTimeSeconds, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(PowerLevelChargeTimeSecondsMult, () => wrapper.PowerLevelChargeTimeSeconds); loader.ApplyPPatch(PowerLevelDrainTimeSeconds, () => wrapper.PowerLevelDrainTimeSeconds, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(PowerLevelDrainTimeSecondsMult, () => wrapper.PowerLevelDrainTimeSeconds); loader.ApplyPPatch(HeatThreshold, () => wrapper.HeatThreshold); loader.ApplyPMultPatch(HeatThresholdMult, () => wrapper.HeatThreshold); loader.ApplyPPatch(CooldownRate, () => wrapper.CooldownRate); loader.ApplyPMultPatch(CooldownRateMult, () => wrapper.CooldownRate); loader.ApplyPPatch(OverheatDamage, () => wrapper.OverheatDamage); loader.ApplyPMultPatch(OverheatDamageMult, () => wrapper.OverheatDamage); loader.ApplyPPatch(NearOverheatWarningMargin, () => wrapper.NearOverheatWarningMargin); loader.ApplyPMultPatch(NearOverheatWarningMarginMult, () => wrapper.NearOverheatWarningMargin); loader.ApplyPPatch(OverheatReminderPeriod, () => wrapper.OverheatReminderPeriod); loader.ApplyPMultPatch(OverheatReminderPeriodMult, () => wrapper.OverheatReminderPeriod); { var l = wrapper.PowerSystems?.Select(x => new PowerSystemAttributesWrapper(x)).ToList() ?? new List <PowerSystemAttributesWrapper>(); loader.ApplyLPatch(PowerSystems, l, () => new PowerSystemAttributesWrapper(), "PowerSystems"); wrapper.PowerSystems = l.ToArray(); } if (ReservePowerPool != null) { InventoryAttributesWrapper inventoryAttributesWrapper = new InventoryAttributesWrapper(wrapper.ReservePowerPool); ReservePowerPool.Apply(loader, inventoryAttributesWrapper, null); wrapper.ReservePowerPool = inventoryAttributesWrapper; } if (OverheatingPool != null) { InventoryAttributesWrapper inventoryAttributesWrapper = new InventoryAttributesWrapper(wrapper.OverheatingPool); OverheatingPool.Apply(loader, inventoryAttributesWrapper, null); wrapper.OverheatingPool = inventoryAttributesWrapper; } if (HeatSystem != null) { InventoryAttributesWrapper inventoryAttributesWrapper = new InventoryAttributesWrapper(wrapper.HeatSystem); HeatSystem.Apply(loader, inventoryAttributesWrapper, null); wrapper.HeatSystem = inventoryAttributesWrapper; } if (View != null) { PowerShuntViewAttributesWrapper powerShuntViewAttributesWrapper = new PowerShuntViewAttributesWrapper(wrapper.View); View.Apply(loader, powerShuntViewAttributesWrapper, null); wrapper.View = powerShuntViewAttributesWrapper; } }
public void Attribute_loader_adds_id_attribute() { var attributes = new Dictionary<string, object>(); var loader = new AttributeLoader<ElementTestInstance>(new ElementTestInstance(), attributes); var result = loader.Id("some-id"); Assert.Equal("some-id", attributes["id"]); Assert.IsType<ElementTestInstance>(result); }
public void Attribute_loader_adds_disabled_attribute() { var attributes = new Dictionary<string, object>(); var loader = new AttributeLoader<ElementTestInstance>(new ElementTestInstance(), attributes); var result = loader.Disabled(true); Assert.Equal("", attributes["disabled"]); Assert.IsType<ElementTestInstance>(result); }
public void Attribute_loader_adds_data_attribute_with_lowercase_name() { var attributes = new Dictionary<string, object>(); var loader = new AttributeLoader<ElementTestInstance>(new ElementTestInstance(), attributes); var result = loader.Data("sOMe-NAmE", "some-value"); Assert.Equal("some-value", attributes["data-some-name"]); Assert.IsType<ElementTestInstance>(result); }
public void Attribute_loader_adds_cols_attribute() { var attributes = new Dictionary<string, object>(); var loader = new AttributeLoader<ElementTestInstance>(new ElementTestInstance(), attributes); var result = loader.Cols(7); Assert.Equal(7, attributes["cols"]); Assert.IsType<ElementTestInstance>(result); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is StatusEffectsSetAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyArrayPropertyPatch(StatusEffects, wrapper, "StatusEffects"); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is AutoToggleOffConditionsAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(ManeuveringConditions, () => w.ManeuveringConditions); loader.ApplyPPatch(TakeDamage, () => w.TakeDamage); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ProduceUnitAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(UnitTypeToProduce, () => w.UnitTypeToProduce); loader.ApplyPPatch(BypassQueue, () => w.BypassQueue); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is UseWeaponAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(WeaponID, () => w.WeaponID); loader.ApplyPPatch(ClearGoalsOnUse, () => w.ClearGoalsOnUse); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is TargetHighlightingAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(HighlightWrecks, () => w.HighlightWrecks); loader.ApplyPPatch(HighlightArtifacts, () => w.HighlightArtifacts); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is TechTreeTierWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(ResearchItems, () => w.ResearchItems); loader.ApplyPPatch(TierName, () => w.TierName); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is AutocastAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(IsAutocastable, () => w.IsAutocastable); loader.ApplyPPatch(AutocastEnabledOnSpawn, () => w.AutocastEnabledOnSpawn); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ActivationDependenciesAttributesWrapper w)) throw new System.InvalidCastException(); loader.ApplyPPatch(TakeNoDamageForMS, () => w.TakeNoDamageForMS); loader.ApplyPMultPatch(TakeNoDamageForMSMult, () => w.TakeNoDamageForMS); loader.ApplyPPatch(ManeuveringDependencies, () => w.ManeuveringDependencies); loader.ApplyPPatch(CommanderHasUnitWithTargetables, () => w.CommanderHasUnitWithTargetables); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ChargeAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(ChargesPerUse, () => w.ChargesPerUse); loader.ApplyPMultPatch(ChargesPerUseMult, () => w.ChargesPerUse); loader.ApplyPPatch(InventoryID, () => w.InventoryID); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is EntityTypeToSpawnAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(SpawnRotationOffsetDegrees, () => wrapper.SpawnRotationOffsetDegrees, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(SpawnRotationOffsetDegreesMult, () => wrapper.SpawnRotationOffsetDegrees); loader.ApplyPPatch(EntityTypeToSpawn, () => wrapper.EntityTypeToSpawn); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ModifyInventoryAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(Delta, () => w.Delta); loader.ApplyPMultPatch(DeltaMult, () => w.Delta); loader.ApplyPPatch(InventoryID, () => w.InventoryID); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is UnitAvoidanceAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(AvoidanceDistance, () => w.AvoidanceDistance, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(AvoidanceDistanceMult, () => w.AvoidanceDistance); loader.ApplyPPatch(AvoidsCarriers, () => w.AvoidsCarriers); loader.ApplyPPatch(AvoidsWrecks, () => w.AvoidsWrecks); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ExperienceAttributesWrapper w)) { throw new System.InvalidCastException(); } { var l = w.Levels?.Select(x => new ExperienceLevelAttributesWrapper(x)).ToList() ?? new List <ExperienceLevelAttributesWrapper>(); loader.ApplyLPatch(Levels, l, () => new ExperienceLevelAttributesWrapper(), nameof(ExperienceLevelAttributes)); w.Levels = l.ToArray(); } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is PowerShuntViewAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(ReservePowerPoolLocalizedTitleStringID, () => wrapper.ReservePowerPoolLocalizedTitleStringID); loader.ApplyPPatch(ReservePowerPoolLocalizedShortDescriptionStringID, () => wrapper.ReservePowerPoolLocalizedShortDescriptionStringID); loader.ApplyPPatch(ReservePowerPoolLocalizedLongDescriptionStringID, () => wrapper.ReservePowerPoolLocalizedLongDescriptionStringID); loader.ApplyPPatch(TemperatureGaugeLocalizedTitleStringID, () => wrapper.TemperatureGaugeLocalizedTitleStringID); loader.ApplyPPatch(TemperatureGaugeLocalizedShortDescriptionStringID, () => wrapper.TemperatureGaugeLocalizedShortDescriptionStringID); loader.ApplyPPatch(TemperatureGaugeLocalizedLongDescriptionStringID, () => wrapper.TemperatureGaugeLocalizedLongDescriptionStringID); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is SelfDestructAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(DurationSeconds, () => w.DurationSeconds, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(DurationSecondsMult, () => w.DurationSeconds); loader.ApplyPPatch(WeaponID, () => w.WeaponID); loader.ApplyPPatch(Lifetime, () => w.Lifetime); loader.ApplyPPatch(TimeoutType, () => w.TimeoutType); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is PowerSystemViewAttributesWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(EnabledIconName, () => wrapper.EnabledIconName); loader.ApplyPPatch(DisabledIconName, () => wrapper.DisabledIconName); loader.ApplyPPatch(LocalizedTitleStringID, () => wrapper.LocalizedTitleStringID); loader.ApplyPPatch(LocalizedShortDescriptionStringID, () => wrapper.LocalizedShortDescriptionStringID); loader.ApplyPPatch(LocalizedLongDescriptionStringID, () => wrapper.LocalizedLongDescriptionStringID); loader.ApplyPPatch(LocalizedSystemDisabledStringID, () => wrapper.LocalizedSystemDisabledStringID); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is ChainCastingAttributesWrapper w)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(QueuedAbilityDelay, () => w.QueuedAbilityDelay, Fixed64.UnsafeFromDouble); loader.ApplyPMultPatch(QueuedAbilityDelayMult, () => w.QueuedAbilityDelay); loader.ApplyPPatch(QueuedAbility, () => w.QueuedAbility); loader.ApplyPPatch(RetryQueueIfAbilityFails, () => w.RetryQueueIfAbilityFails); loader.ApplyPPatch(AbilityOnToggledOff, () => w.AbilityOnToggledOff); }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is TechTreeAttributesWrapper w)) { throw new System.InvalidCastException(); } if (TechTrees != null) { var l = w.TechTrees?.Select(x => new TechTreeWrapper(x)).ToList() ?? new List <TechTreeWrapper>(); loader.ApplyLPatch(TechTrees, l, () => new TechTreeWrapper(), nameof(TechTree)); w.TechTrees = l.ToArray(); } }
protected override void Apply(AttributeLoader loader, object wrapperObj) { if (!(wrapperObj is WeaponModifierInfoWrapper wrapper)) { throw new System.InvalidCastException(); } loader.ApplyPPatch(Amount, () => wrapper.Amount); loader.ApplyPMultPatch(AmountMult, () => wrapper.Amount); loader.ApplyPPatch(TargetClass, () => wrapper.TargetClass); loader.ApplyPPatch(ClassOperator, () => wrapper.ClassOperator); loader.ApplyPPatch(Modifier, () => wrapper.Modifier); }
public void Attribute_loader_does_not_add_data_attribute_with_empty_name() { var attributes = new Dictionary<string, object>(); var loader = new AttributeLoader<ElementTestInstance>(new ElementTestInstance(), attributes); var result = loader.Data(string.Empty, "some-value"); Assert.False(attributes.ContainsKey("data-")); Assert.IsType<ElementTestInstance>(result); }
public void Attribute_loader_adds_size_attribute() { var attributes = new Dictionary<string, object>(); var loader = new AttributeLoader<ElementTestInstance>(new ElementTestInstance(), attributes); var result = loader.Size(5); Assert.Equal(5, attributes["size"]); Assert.IsType<ElementTestInstance>(result); }
public void Attribute_loader_adds_target_attribute() { var attributes = new Dictionary<string, object>(); var loader = new AttributeLoader<ElementTestInstance>(new ElementTestInstance(), attributes); var result = loader.Target(Enums.ActionTarget.Blank); Assert.Equal("_blank", attributes["target"]); Assert.IsType<ElementTestInstance>(result); }