// MNetworkIncludeByName = m_flTimeScale
// MNetworkExcludeByName = m_angRotation
// MNetworkExcludeByName = m_cellX
// MNetworkExcludeByName = m_cellY
// MNetworkExcludeByName = m_cellZ
// MNetworkExcludeByUserGroup = m_flCycle
// MNetworkExcludeByName = m_flEncodedController
// MNetworkExcludeByName = m_flPoseParameter
// MNetworkExcludeByName = m_flSimulationTime
// MNetworkExcludeByName = m_flexWeight
// MNetworkExcludeByName = m_nForceBone
// MNetworkExcludeByName = m_nHitboxSet
// MNetworkExcludeByName = m_baseLayer.m_hSequence
// MNetworkExcludeByName = m_vecForce
// MNetworkExcludeByName = m_vecMaxs
// MNetworkExcludeByName = m_vecMins
// MNetworkExcludeByName = m_vecOrigin
// MNetworkExcludeByName = m_vecSpecifiedSurroundingMaxs
// MNetworkExcludeByName = m_vecSpecifiedSurroundingMins
// MNetworkExcludeByName = m_vLookTargetPosition
// MNetworkExcludeByName = m_MoveCollide
// MNetworkExcludeByName = m_MoveType
// MNetworkExcludeByName = m_Gender
// MNetworkExcludeByName = m_flElasticity
// MNetworkExcludeByName = m_nMinCPULevel
// MNetworkExcludeByName = m_nMinGPULevel
// MNetworkExcludeByName = m_nMaxCPULevel
// MNetworkExcludeByName = m_nMaxGPULevel
// MNetworkExcludeByName = m_flNavIgnoreUntilTime
// MNetworkExcludeByName = m_ubInterpolationFrame
// MNetworkExcludeByName = m_flScale
// MNetworkExcludeByUserGroup = overlay_vars
// MNetworkUserGroupProxy = CCitadelBaseAbility
// MNetworkUserGroupProxy = CCitadelBaseAbility
// MNetworkOverride = m_flTimeScale
// MNetworkVarNames = bool m_bChanneling
// MNetworkVarNames = bool m_bInCastDelay
// MNetworkVarNames = bool m_bShouldBeExecuted
// MNetworkVarNames = bool m_bCanBeUpgraded
// MNetworkVarNames = CitadelStolenAbilitySlot_t m_eStolenInSlot
// MNetworkVarNames = int m_nUpgradeBits
// MNetworkVarNames = EAbilityBucketType m_iBucketID
// MNetworkVarNames = bool m_bToggleState
// MNetworkVarNames = GameTime_t m_flCooldownStart
// MNetworkVarNames = GameTime_t m_flCooldownEnd
// MNetworkVarNames = GameTime_t m_flCastCompletedTime
// MNetworkVarNames = GameTime_t m_flChannelStartTime
// MNetworkVarNames = GameTime_t m_flCastDelayStartTime
// MNetworkVarNames = EAbilitySlots_t m_eAbilitySlot
// MNetworkVarNames = GameTime_t m_flPostCastDelayEndTime
// MNetworkVarNames = int m_iRemainingCharges
// MNetworkVarNames = GameTime_t m_flChargeRechargeStart
// MNetworkVarNames = GameTime_t m_flChargeRechargeEnd
// MNetworkVarNames = GameTime_t m_flMovementControlActiveTime
// MNetworkVarNames = GameTime_t m_flSelectedChangedTime
// MNetworkVarNames = GameTime_t m_flAltCastHoldStartTime
// MNetworkVarNames = GameTime_t m_flAltCastDoubleTapStartTime
// MNetworkVarNames = bool m_bCanBeImbued
// MNetworkVarNames = EntitySubclassID_t m_vecImbuedAbilities
// MNetworkVarNames = bool m_bSelectionModeIsAltMode
class CCitadelBaseAbility : public CBaseEntity
{
uint8 pad_04A0[216];
public:
CUtlVector<CModifierHandleTyped<CCitadelModifier>> m_vecIntrinsicModifiers;
CModifierHandleTyped<CCitadelModifier> m_pCastDelayAutoModifier;
CModifierHandleTyped<CCitadelModifier> m_pChannelAutoModifier;
CGlobalSymbol m_strUsedCastGraphParam;
int32 m_nCastParamNeedsResetTick;
private:
uint8 pad_05CC[4];
public:
bool m_bIsCoolingDownInternal;
GameTime_t m_flCancelMashProtectionEndTime;
GameTime_t m_flCancelLockoutEndTime;
private:
uint8 pad_05DC[28];
public:
// MNetworkEnable
// MNetworkChangeCallback = OnChannelingChanged
bool m_bChanneling;
// MNetworkEnable
// MNetworkChangeCallback = OnInCastDelayChanged
bool m_bInCastDelay;
// MNetworkEnable
bool m_bShouldBeExecuted;
// MNetworkEnable
bool m_bCanBeUpgraded;
// MNetworkEnable
CitadelStolenAbilitySlot_t m_eStolenInSlot;
// MNetworkEnable
// MNetworkChangeCallback = OnUpgradeBitsChanged
// MNetworkPriority = 32
int32 m_nUpgradeBits;
// MNetworkEnable
EAbilityBucketType m_iBucketID;
// MNetworkEnable
bool m_bToggleState;
// MNetworkEnable
// MNetworkPriority = 32
GameTime_t m_flCooldownStart;
// MNetworkEnable
// MNetworkPriority = 32
// MNetworkChangeCallback = OnAbilityCooldownEndChanged
GameTime_t m_flCooldownEnd;
// MNetworkEnable
GameTime_t m_flCastCompletedTime;
// MNetworkEnable
GameTime_t m_flChannelStartTime;
// MNetworkEnable
GameTime_t m_flCastDelayStartTime;
// MNetworkEnable
// MNetworkChangeCallback = OnAbilitySlotChanged
EAbilitySlots_t m_eAbilitySlot;
// MNetworkEnable
// MNetworkUserGroup = LocalPlayerOwnerAndObserversExclusive
GameTime_t m_flPostCastDelayEndTime;
// MNetworkEnable
// MNetworkPriority = 32
int32 m_iRemainingCharges;
// MNetworkEnable
// MNetworkPriority = 32
GameTime_t m_flChargeRechargeStart;
// MNetworkEnable
// MNetworkPriority = 32
GameTime_t m_flChargeRechargeEnd;
// MNetworkEnable
GameTime_t m_flMovementControlActiveTime;
// MNetworkEnable
// MNetworkUserGroup = LocalPlayerOwnerAndObserversExclusive
GameTime_t m_flSelectedChangedTime;
// MNetworkEnable
// MNetworkUserGroup = LocalPlayerOwnerAndObserversExclusive
GameTime_t m_flAltCastHoldStartTime;
// MNetworkEnable
// MNetworkUserGroup = LocalPlayerOwnerAndObserversExclusive
GameTime_t m_flAltCastDoubleTapStartTime;
// MNetworkEnable
bool m_bCanBeImbued;
// MNetworkEnable
// MNetworkChangeCallback = OnAbilityImbuedChanged
CNetworkUtlVectorBase<CUtlStringToken> m_vecImbuedAbilities;
// MNetworkEnable
// MNetworkUserGroup = LocalPlayerOwnerAndObserversExclusive
bool m_bSelectionModeIsAltMode;
CUtlVector<CHandle<CBaseEntity>> m_vecEnemyHeroesDamaged;
float32 m_flPreviousEffectiveCooldown;
private:
uint8 pad_0694[1784];
};