// MVDataOverlayType = 2class CitadelAbilityVData : publicCEntitySubclassVDataBase{public: // MPropertyStartGroup = MetaEAbilityType_t m_eAbilityType; // MPropertyStartGroup = MetaEItemSlotTypes_t m_eItemSlotType; bool m_bDisabled; bool m_bDisabledOnExperimental; bool m_bInDevelopment; bool m_bStartTrained; int32 m_iMaxLevel; int32 m_nAbilityPointsCost; int32 m_nAbillityUnlocksCost; uint64 m_iUpdateTime;private: uint8 pad_0048[4];public: // MPropertyStartGroup = Behavior CBitVecEnum<EAbilityBehavior_t> m_AbilityBehaviorsBits; // MPropertyDescription = The location for our ability's targeting to use, used in GetCastPosition and such. Also determines preview visuals.EAbilityTargetingLocation_t m_eAbilityTargetingLocation; // MPropertyDescription = The general shape that our ability will target. Unless you choose cone targeting, it ONLY determines preview visuals - you still have to do the targeting separately in code.EAbilityTargetingShape_t m_eAbilityTargetingShape; // MPropertySuppressExpr = m_eAbilityTargetingShape != CITADEL_ABILITY_TARGETING_SHAPE_CONE float32 m_flTargetingConeAngle; // MPropertySuppressExpr = m_eAbilityTargetingShape != CITADEL_ABILITY_TARGETING_SHAPE_CONE float32 m_flTargetingConeHalfWidth; // MPropertyDescription = When true, we will do an extra trace with the same cone shape, but with the cone laying flat in XY // MPropertySuppressExpr = m_eAbilityTargetingShape != CITADEL_ABILITY_TARGETING_SHAPE_CONE bool m_bIncludeExtra2DCone; // MPropertySuppressExpr = m_eAbilityTargetingShape != CITADEL_ABILITY_TARGETING_SHAPE_CONE // MPropertyDescription = When true, the cone is cast from the center of the screen, rather than from the center of the character. bool m_bUseCameraOffsetsForCone; // MPropertySuppressExpr = m_eAbilityTargetingShape != CITADEL_ABILITY_TARGETING_SHAPE_CONE // MPropertyDescription = When true, the cone collects nearby targets as well, helpful for melee attacks. bool m_bCollectNearbyTargetsWithCone; // MPropertySuppressExpr = m_bCollectNearbyTargetsWithCone == false float32 m_flNearbySweepOffset; // MPropertySuppressExpr = m_bCollectNearbyTargetsWithCone == false float32 m_flNearbySweepRadius;EAbilityActivation_t m_eAbilityActivation; // MPropertyDescription = If set, this button must be down in addition to our trigger button (be default the slot button) in order to activate this ability.InputBitMask_t m_TriggerButtonPreReqButton; // MPropertyDescription = If set, this is the button requierd to be pressed to activate this ability.InputBitMask_t m_TriggerButtonOverride;EAbilitySpectatePriority m_eAbilitySpectatePriority; CBitVecEnum<EModifierState> m_bitsInterruptingStates;IncompatibleFilter_t m_IncompatibleFilter;CITADEL_UNIT_TARGET_TYPE m_nAbilityTargetTypes;CITADEL_UNIT_TARGET_FLAGS m_nAbilityTargetFlags;ELOSCheck m_eTargettingLOSCheck; // MPropertyDescription = During pre-cast, what modifier states are set. CBitVecEnum<EModifierState> m_bitsPreCastEnabledStateMask; // MPropertyDescription = During channel, what modifier states are set. CBitVecEnum<EModifierState> m_bitsChannelEnabledStateMask; // MPropertyDescription = During post-cast, what modifier states are set. CBitVecEnum<EModifierState> m_bitsPostCastEnabledStateMask; // MPropertyDescription = This ability provides these types of ability target effects.ECitadelTargetAbilityEffects m_TargetAbilityEffectsToApply; // MPropertyDescription = Scale Damage to Objectives by this amount float32 m_flBossDamageScale; bool m_bShowTargetingPreviewWhileChanneling; bool m_bShowTargetingPreviewWhileCasting; // MPropertyStartGroup // MPropertyFriendlyName = Weapon InfoCCitadelWeaponInfo m_WeaponInfo; // MPropertyFriendlyName = Projectile InfoProjectileInfo_t m_projectileInfo; // MPropertyFriendlyName = Deployment InfoDeploymentInfo_t m_deploymentInfo; // MPropertyStartGroup CUtlOrderedMap<CUtlString, CitadelAbilityProperty_t> m_mapAbilityProperties; // MPropertyMapKeyLeafChoiceProviderFn = !!UNKNOWN!! CUtlOrderedMap<CSubclassName<4>, AbilityDependencyDescription_t> m_mapDependentAbilities; CUtlVector<AbilityUpgrade_t> m_vecAbilityUpgrades; // MPropertyStartGroup = AnimGraph1 CGlobalSymbol m_strCastAnimGraphParam; // MPropertyDescription = If set, this will be the value passed to the animgraph when this ability is selected instead of the ability name. CUtlString m_strSelectionNameOverride; CUtlString m_strCastAnimSequenceName; // MPropertyStartGroup = AnimGraph2 // MPropertyDescription = When true, suppress the out of combat anim state for 2s on cast. bool m_bSuppressOutOfCombatOnCast; // MPropertyDescription = When true, suppress the out of combat anim state while channeling and for 2s after. bool m_bSuppressOutOfCombatWhileChanneling; // MPropertyFriendlyName = hero_action_source value when doing an action // MPropertyDescription = By default uses the ability name. Set this to use a custom name. CGlobalSymbol m_strAG2SourceName; // MPropertyFriendlyName = Casting "hero_action" value // MPropertyDescription = Value to set "hero_action" to set when casting. "hero_action_source" will be set to this ability's name CGlobalSymbol m_strAG2CastingAction; // MPropertyFriendlyName = Channeling "hero_action" value // MPropertyDescription = Value to set "hero_action" to set when channeling. "hero_action_source" will be set to this ability's name CGlobalSymbol m_strAG2ChannelingAction; // MPropertyFriendlyName = Cast Completed "hero_action" value // MPropertyDescription = Value to set "hero_action" to when casting completes. "hero_action_source" will be set to this ability's name CGlobalSymbol m_strAG2CastCompletedAction; // MPropertyStartGroup = UI // MPropertySuppressExpr = m_bIsSignatureAbility == falseAbilityTooltipDetails_t m_AbilityTooltipDetails; CUtlString m_strCSSClass; CPanoramaImageName m_strAbilityImage; CUtlString m_strMoviePreviewPath;CitadelAbilityHUDPanel_t m_HUDPanel; bool m_bShowInPassiveItemsArea; bool m_bForceHideHUDPanel; bool m_bForceShowHUDPanel; bool m_bUsesFlightControls; CUtlString m_strFlyUpLocString; CUtlString m_strFlyDownLocString; // MPropertyDescription = Subcast UI will have this class set CUtlString m_strSubCastUICSSClass; // MPropertyFriendlyName = Additional AbilitiesAdditionalAbilities_t m_additionalAbilities; CUtlString m_strSecondaryStatName; // MPropertyDescription = Used by button hints as labels for 'casting' (ex. cast, throw, deploy). CUtlString m_strCastButtonLocToken; // MPropertyDescription = Used by button hints as labels for 'alt-casting' (ex. cast on self, bring allies, heal teammate). CUtlString m_strAltCastButtonLocToken; // MPropertyStartGroup = Camera // MPropertyDescription = Camera sequence that plays when casting starts and stops when casting completes, unless the bool below is un-checkedCitadelCameraOperationsSequence_t m_cameraSequenceCastStart; // MPropertyDescription = By default, we stop the sequence from 'Sequence Cast Start' once the cast completes successfully. Un-check this to allow it to continue past the cast. bool m_bEndCastStartSequenceOnCastComplete; // MPropertyDescription = Camera sequence that plays when casting completes.CitadelCameraOperationsSequence_t m_cameraSequenceCastComplete; // MPropertyDescription = Camera sequence that plays when channeling starts and is stopped when channeling ends, unless the bool below is un-checked.CitadelCameraOperationsSequence_t m_cameraSequenceChannelStart; // MPropertyDescription = By default, we stop the sequence from 'Sequence Channel Start' once the channel completes successfully. Un-check this to allow it to continue past the channel duration. bool m_bEndChannelStartSequenceOnChannelComplete; float32 m_flCameraPreviewOffset; float32 m_flCameraPreviewDistance; float32 m_flCameraPreviewSpeed; // MPropertyStartGroup = Visuals // MPropertyDescription = Preview particle attaching to the caster before cast CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_previewParticle; // MPropertyDescription = Name of particle control point config to use for preview particle effect (empty means use 'preview' config) CUtlString m_strPreviewParticleEffectConfig; // MPropertyDescription = Preview path particle shows ability's custom path CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_PreviewPathParticle; // MPropertyDescription = Particle attaching to the caster on cast event CUtlOrderedMap<AbilityCastEvent_t, CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>> m_mapCastEventParticles; // MPropertyDescription = Trace particle when hit an enemy with targeted ability CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_skillshotHitParticle; // MPropertyDescription = Trace particle when missed an enemy with targeted ability CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_skillshotMissParticle; // MPropertyDescription = Preview particle on attaching to targets of this ability CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_TargetingPreviewParticle; // MPropertyDescription = CSS stylesheet included in the HUD elements created by this ability CResourceNameTyped<CWeakHandle<InfoForResourceTypeCPanoramaStyle>> m_HudSharedStyle; // MPropertyStartGroup = Sounds CSoundEventName m_strSelectedSound; CSoundEventName m_strUnselectedSound; CSoundEventName m_strSelectedLoopSound; CSoundEventName m_strCastSound; CSoundEventName m_strChannelSound; CSoundEventName m_strChannelLoopSound; CSoundEventName m_strCastDelaySound; CSoundEventName m_strCastDelayLoopSound; // MPropertyDescription = plays for local player attacker dealing damage with this ability CSoundEventName m_strHitConfirmationSound; // MPropertyDescription = plays for local player victim taking damage from this ability CSoundEventName m_strDamageTakenSound; CSoundEventName m_strAbilityOffCooldownSound; CSoundEventName m_strAbilityChargeReadySound; bool m_bPlayMeepMop; // MPropertyStartGroup = Modifiers CEmbeddedSubclass<CBaseModifier> m_AutoChannelModifier; CEmbeddedSubclass<CBaseModifier> m_AutoCastDelayModifier; CUtlVector<CEmbeddedSubclass<CBaseModifier>> m_AutoIntrinsicModifiers; // MPropertySuppressExpr = m_eAbilityType != EAbilityType_CosmeticAbilityCosmeticInfo_t m_cosmeticInfo;};