class CCitadel_BreakablePropPickupVData : public CEntitySubclassVDataBase
{
public:
    // MPropertyStartGroup = Visuals
    // MPropertyFriendlyName = Spawn Particle
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_friendlyParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_enemyParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_friendlyModelParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_enemyModelParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_friendlyInteractiveParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_enemyInteractiveParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_gainedParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_vacuumStartParticle;
    // MPropertyFriendlyName = Spawn Particle Color
    // MPropertyDescription = Spawn Particle Color
    Color m_Color;
    // MPropertyDescription = Model
    // MPropertyProvidesEditContextString = ToolEditContext_ID_VMDL
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>> m_hModel;
    // MPropertyFriendlyName = Material group
    // MPropertyDescription = Which material group of the model should be used?
    CModelMaterialGroupName m_sDefaultMaterialGroupName;
    // MPropertyStartGroup
    // MPropertyFriendlyName = Pickup Name Loc String
    CUtlString m_sNameLocString;
    int32 m_nNameOffset;
    // MPropertyFriendlyName = Show On Minimap
    bool m_bShowOnMinimap;
    bool m_bIsPermanentPickup;
    int32 m_iTempParticleSheetIndex;
    CUtlString m_sMiniMapCssClass;
    float32 m_flParticleRadius;
    // MPropertyStartGroup = Audio
    // MPropertyFriendlyName = Pickup Sound
    CSoundEventName m_sPickupSound;
    // MPropertyFriendlyName = Spawn Sound
    CSoundEventName m_sSpawnSound;
    // MPropertyFriendlyName = Vacuum Start Sound
    // MPropertyDescription = Sound that plays when vacuuming starts and only for the vacuuming player
    CSoundEventName m_strVacuumStartSound;
    // MPropertyFriendlyName = Ambient Sound
    CSoundEventName m_sAmbientSound;
    // MPropertyStartGroup
    // MPropertyFriendlyName = Pickup Radius
    TimeScalingValue_t m_flPickupRadius;
    // MPropertyFriendlyName = Pickup Expiration Duration
    TimeScalingValue_t m_flPickupExpirationDuration;
    // MPropertyDescription = When true, don't allow pickup until we've fallen to the ground
    bool bPhysicallyDropToTheGroundOnSpawn;
    // MPropertyStartGroup = Fall To Ground Settings
    // MPropertyDescription = Radius when solid and falling to the ground
    // MPropertySuppressExpr = bPhysicallyDropToTheGroundOnSpawn == false
    float32 m_flSolidRadius;
    // MPropertySuppressExpr = bPhysicallyDropToTheGroundOnSpawn == false
    CRangeFloat m_fInitialSpawnXYSpeed;
    // MPropertySuppressExpr = bPhysicallyDropToTheGroundOnSpawn == false
    CRangeFloat m_fInitialSpawnZSpeed;
    // MPropertySuppressExpr = bPhysicallyDropToTheGroundOnSpawn == false
    float32 m_flFallGravity;
    // MPropertyDescription = Optionally how far to hover off the ground
    // MPropertySuppressExpr = bPhysicallyDropToTheGroundOnSpawn == false
    float32 m_flHoverOffset;
    // MPropertyStartGroup
    // MPropertyDescription = When true, the pickup will vacuum to the first player that gets within the pickup radius
    bool m_bPicupIsVacuum;
    // MPropertyStartGroup = Vacuum Settings
    // MPropertySuppressExpr = m_bPicupIsVacuum == false
    CRangeFloat m_flInitialVacuumSideSpeed;
    // MPropertySuppressExpr = m_bPicupIsVacuum == false
    CRangeFloat m_flInitialVacuumUpSpeed;
    // MPropertySuppressExpr = m_bPicupIsVacuum == false
    CPiecewiseCurve m_VacuumToPlayerSpeedCurve;
    // MPropertySuppressExpr = m_bPicupIsVacuum == false
    CPiecewiseCurve m_VacuumInitialVelSpeedCurve;
    // MPropertySuppressExpr = m_bPicupIsVacuum == false
    float32 m_flVacuumCloseEnoughToPickup;
    // MPropertySuppressExpr = m_bPicupIsVacuum == false
    CRemapFloat m_EffectDistanceToRadiusRemap;
    // MPropertyStartGroup
    // MPropertyDescription = When set, only exists for the team the pickup is on
    bool m_bSameTeamOnly;
    // MPropertyStartGroup = Outline
    float32 m_flOutlineRange;
    // MPropertyColorPlusAlpha
    Color m_OutlineColor;
};

KV3 Class Defaults

{
    _class = "CCitadel_BreakablePropPickupVData"
    m_friendlyParticle = resource_name:""
    m_enemyParticle = resource_name:""
    m_friendlyModelParticle = resource_name:""
    m_enemyModelParticle = resource_name:""
    m_friendlyInteractiveParticle = resource_name:""
    m_enemyInteractiveParticle = resource_name:""
    m_gainedParticle = resource_name:""
    m_vacuumStartParticle = resource_name:""
    m_Color = [ 0, 0, 0, 0 ]
    m_hModel = resource_name:""
    m_sDefaultMaterialGroupName = ""
    m_sNameLocString = ""
    m_nNameOffset = 60
    m_bShowOnMinimap = false
    m_bIsPermanentPickup = false
    m_iTempParticleSheetIndex = -1
    m_sMiniMapCssClass = ""
    m_flParticleRadius = 80.0
    m_sPickupSound = soundevent:""
    m_sSpawnSound = soundevent:""
    m_strVacuumStartSound = soundevent:""
    m_sAmbientSound = soundevent:""
    m_flPickupRadius = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    m_flPickupExpirationDuration = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    bPhysicallyDropToTheGroundOnSpawn = false
    m_flSolidRadius = 5.0
    m_fInitialSpawnXYSpeed = 0.0
    m_fInitialSpawnZSpeed = [ 100.0, 200.0 ]
    m_flFallGravity = 1.0
    m_flHoverOffset = 0.0
    m_bPicupIsVacuum = false
    m_flInitialVacuumSideSpeed = [ 50.0, 100.0 ]
    m_flInitialVacuumUpSpeed = [ 10.0, 100.0 ]
    m_VacuumToPlayerSpeedCurve = 
    {
        m_spline = [  ]
        m_tangents = [  ]
        m_vDomainMins = [ 0.0, 0.0 ]
        m_vDomainMaxs = [ 0.0, 0.0 ]
    }
    m_VacuumInitialVelSpeedCurve = 
    {
        m_spline = [  ]
        m_tangents = [  ]
        m_vDomainMins = [ 0.0, 0.0 ]
        m_vDomainMaxs = [ 0.0, 0.0 ]
    }
    m_flVacuumCloseEnoughToPickup = 5.0
    m_EffectDistanceToRadiusRemap = [ 300.0, 0.0, 1.0, 0.2 ]
    m_bSameTeamOnly = false
    m_flOutlineRange = -1.0
    m_OutlineColor = [ 0, 0, 0, 0 ]
}