public override void DeserializeAsset(AssetFile assetFile, StreamReader stream) { m_abilityScopeId = stream.ReadInt32(); m_name = stream.ReadString32(); m_availableInGame = stream.ReadBoolean(); stream.AlignTo(); m_gameTypeReq = (AbilityModGameTypeReq)stream.ReadInt32(); m_equipCost = stream.ReadInt32(); m_defaultEquip = stream.ReadBoolean(); stream.AlignTo(); m_tooltip = stream.ReadString32(); m_flavorText = stream.ReadString32(); m_debugUnlocalizedTooltip = stream.ReadString32(); m_savedStatusTypesForTooltips = new SerializedVector <StatusType>(assetFile, stream); m_iconSprite = new SerializedComponent(assetFile, stream); m_useRunPriorityOverride = stream.ReadBoolean(); stream.AlignTo(); m_runPriorityOverride = (AbilityPriority)stream.ReadInt32(); m_techPointCostMod = new AbilityModPropertyInt(assetFile, stream); m_maxCooldownMod = new AbilityModPropertyInt(assetFile, stream); m_maxStocksMod = new AbilityModPropertyInt(assetFile, stream); m_stockRefreshDurationMod = new AbilityModPropertyInt(assetFile, stream); m_refillAllStockOnRefreshMod = new AbilityModPropertyBool(assetFile, stream); m_isFreeActionMod = new AbilityModPropertyBool(assetFile, stream); m_autoQueueIfValidMod = new AbilityModPropertyBool(assetFile, stream); m_targetDataMaxRangeMod = new AbilityModPropertyFloat(assetFile, stream); m_targetDataMinRangeMod = new AbilityModPropertyFloat(assetFile, stream); m_targetDataCheckLosMod = new AbilityModPropertyBool(assetFile, stream); m_useTargetDataOverrides = stream.ReadBoolean(); stream.AlignTo(); m_targetDataOverrides = new SerializedArray <TargetData>(assetFile, stream); m_techPointInteractionMods = new SerializedArray <TechPointInteractionMod>(assetFile, stream); m_useActionAnimTypeOverride = stream.ReadBoolean(); stream.AlignTo(); m_actionAnimTypeOverride = (ActorModelData.ActionAnimationType)stream.ReadInt32(); m_useMovementAdjustmentOverride = stream.ReadBoolean(); stream.AlignTo(); m_movementAdjustmentOverride = (Ability.MovementAdjustment)stream.ReadInt32(); m_effectToSelfOnCast = new StandardEffectInfo(assetFile, stream); m_effectToTargetEnemyOnHit = new StandardEffectInfo(assetFile, stream); m_effectToTargetAllyOnHit = new StandardEffectInfo(assetFile, stream); m_useAllyEffectForTargetedCaster = stream.ReadBoolean(); stream.AlignTo(); m_effectTriggerChance = stream.ReadSingle(); m_effectTriggerChanceMultipliedPerHit = stream.ReadBoolean(); stream.AlignTo(); m_cooldownReductionsOnSelf = new AbilityModCooldownReduction(assetFile, stream); m_selfHitTimingSequencePrefab = new SerializedComponent(assetFile, stream); m_chainAbilityModInfo = new SerializedVector <ChainAbilityAdditionalModInfo>(assetFile, stream); m_useChainAbilityOverrides = stream.ReadBoolean(); stream.AlignTo(); m_chainAbilityOverrides = new SerializedVector <SerializedMonoBehaviour>(assetFile, stream).ToChildArray <Ability>(); m_tagsModType = (TagOverrideType)stream.ReadInt32(); m_abilityTagsInMod = new SerializedVector <AbilityTags>(assetFile, stream); m_statModsWhileEquipped = new SerializedArray <AbilityStatMod>(assetFile, stream); m_useStatusWhenRequestedOverride = stream.ReadBoolean(); stream.AlignTo(); m_statusWhenRequestedOverride = new SerializedVector <StatusType>(assetFile, stream); beginningOfModSpecificData = stream.ReadBoolean(); stream.AlignTo(); }
public override void DeserializeAsset(AssetFile assetFile, StreamReader stream) { m_diagonalMovement = (GameplayData.DiagonalMovement)stream.ReadInt32(); m_movementMaximumType = (GameplayData.MovementMaximumType)stream.ReadInt32(); m_abilityRangeType = (GameplayData.AbilityRangeType)stream.ReadInt32(); m_showTextForPowerUps = stream.ReadBoolean(); stream.AlignTo(); m_coverProtectionAngle = stream.ReadSingle(); m_coverProtectionDmgMultiplier = stream.ReadSingle(); m_coverMinDistance = stream.ReadSingle(); m_coverShader = new SerializedComponent(assetFile, stream); m_recentlySpawnedBonusMovement = stream.ReadInt32(); m_recentlyRespawnedBonusMovement = stream.ReadInt32(); m_recentlySpawnedDuration = stream.ReadInt32(); m_recentlyRespawnedDuration = stream.ReadInt32(); m_gravity = stream.ReadSingle(); m_itemSlots = stream.ReadInt32(); m_creditsPerTurn = stream.ReadInt32(); m_startingCredits = stream.ReadInt32(); m_creditsPerPlayerKill = stream.ReadInt32(); m_creditBonusFractionPerExtraPlayer = stream.ReadSingle(); m_playerBountyCountsParticipation = stream.ReadBoolean(); stream.AlignTo(); m_creditsPerMinionKill = stream.ReadInt32(); m_minionBountyCountsParticipation = stream.ReadBoolean(); stream.AlignTo(); m_participationlessBountiesGoToTeam = stream.ReadBoolean(); stream.AlignTo(); m_capturePointsPerTurn = stream.ReadInt32(); m_distanceCanSeeIntoBrush = stream.ReadSingle(); m_brushDisruptionTurns = stream.ReadInt32(); m_unsuppressInvisibilityOnEndOfPhase = stream.ReadBoolean(); stream.AlignTo(); m_proximityBasedInvisibilityMinDistance = stream.ReadSingle(); m_blindEnemyBreaksProximityBasedInvisibility = stream.ReadBoolean(); stream.AlignTo(); m_recallAllowed = stream.ReadBoolean(); stream.AlignTo(); m_recallOnlyWhenOutOfCombat = stream.ReadBoolean(); stream.AlignTo(); m_recallIncomingDamageMultiplier = stream.ReadSingle(); m_turnsAbilitiesUnlock = new SerializedArray <int>(assetFile, stream); m_turnCatalystsUnlock = stream.ReadInt32(); m_disableAbilitiesOnRespawn = stream.ReadBoolean(); stream.AlignTo(); m_movementAllowedOnRespawn = (Ability.MovementAdjustment)stream.ReadInt32(); m_resolveDamageBetweenAbilityPhases = stream.ReadBoolean(); stream.AlignTo(); m_resolveDamageAfterEvasion = stream.ReadBoolean(); stream.AlignTo(); m_resolveDamageImmediatelyDuringMovement = stream.ReadBoolean(); stream.AlignTo(); m_keepTechPointsOnRespawn = stream.ReadBoolean(); stream.AlignTo(); m_enableItemGUI = stream.ReadBoolean(); stream.AlignTo(); m_npcsShowTargeters = stream.ReadBoolean(); stream.AlignTo(); m_showActorAbilityCooldowns = stream.ReadBoolean(); stream.AlignTo(); m_maximumPositionX = stream.ReadSingle(); m_minimumPositionX = stream.ReadSingle(); m_maximumPositionZ = stream.ReadSingle(); m_minimumPositionZ = stream.ReadSingle(); }