class CCitadel_BreakablePropHealthPickupVData : public CCitadel_BreakablePropPickupVData
{
public:
    // MPropertyGroupName = Visuals
    // MPropertyFriendlyName = AOE Heal Particle
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_ParticleAOEHeal;
    // MPropertyFriendlyName = Instant max health heal percent
    // MPropertyDescription = Between 0 and 100, what percent of max health should a pickup heal instantly on pickup.
    TimeScalingValue_t m_flHealMaxHealthPercent;
    // MPropertyFriendlyName = Instant heal
    // MPropertyDescription = Fixed amount to heal instantly on pickup
    TimeScalingValue_t m_flHealFixed;
    // MPropertyFriendlyName = Instant Percent Missing Heal
    // MPropertyDescription = Between 0 and 100, what percent of missing health to heal instantly
    TimeScalingValue_t m_flMissingPctHeal;
    // MPropertyFriendlyName = Max health regen percent
    // MPropertyDescription = Between 0 and 100, what percent of max health should a pickup regen over time
    TimeScalingValue_t m_flRegenMaxHealthPercent;
    // MPropertyFriendlyName = Regen
    // MPropertyDescription = Amount of health to regen over time
    TimeScalingValue_t m_flRegenFixed;
    // MPropertyFriendlyName = Percent Missing Regen
    // MPropertyDescription = Between 0 and 100, what percent of missing health to regen
    TimeScalingValue_t m_flMissingPctRegen;
    // MPropertyStartGroup = Regen Modifier Settings
    bool m_bUseFixedDuration;
    // MPropertyDescription = How long to apply total regen (HPS dynamically calculated)
    float32 m_flRegenDuration;
    // MPropertyDescription = How long to apply total regen (HPS dynamically calculated) for troopers
    float32 m_flRegenDurationTroopers;
    // MPropertyDescription = Amount to increase regen for troopers
    float32 m_flRegenTrooperMulti;
    // MPropertyDescription = How much HPS to provide (duration dynamically calculated)
    float32 m_flRegenHPS;
    CEmbeddedSubclass<CCitadelModifier> m_RegenModifier;
    // MPropertyStartGroup
    // MPropertyFriendlyName = Heal AOE Radius
    // MPropertyDescription = When > 0, applies the heal to units within the radius
    float32 m_flAOERadius;
    // MPropertyStartGroup = AOE Heal Settings
    // MPropertySuppressExpr = m_flAOERadius == 0
    // MPropertyFriendlyName = Target Types
    CITADEL_UNIT_TARGET_TYPE m_AOETargetTypes;
    // MPropertySuppressExpr = m_flAOERadius == 0
    // MPropertyFriendlyName = Targeting Flags
    CITADEL_UNIT_TARGET_FLAGS m_AOETargetFlags;
    // MPropertySuppressExpr = m_flAOERadius == 0
    // MPropertyFriendlyName = LOS Method
    ELOSCheck m_AOELOSCheckType;
};

KV3 Class Defaults

{
    _class = "CCitadel_BreakablePropHealthPickupVData"
    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 ]
    m_ParticleAOEHeal = resource_name:""
    m_flHealMaxHealthPercent = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    m_flHealFixed = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    m_flMissingPctHeal = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    m_flRegenMaxHealthPercent = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    m_flRegenFixed = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    m_flMissingPctRegen = 
    {
        m_flBase = 0.0
        m_flPerMinuteAfterStart = 0.0
        m_flStartMinute = 0.0
        m_flMaxValue = 0.0
    }
    m_bUseFixedDuration = true
    m_flRegenDuration = 1.0
    m_flRegenDurationTroopers = 1.0
    m_flRegenTrooperMulti = 1.0
    m_flRegenHPS = 50.0
    m_RegenModifier = subclass:
    {
    }
    m_flAOERadius = 0.0
    m_AOETargetTypes = ""
    m_AOETargetFlags = ""
    m_AOELOSCheckType = "ELOSCheck_None"
}