// MVDataRoot
// MVDataSingleton
class CitadelGenericData_t
{
public:
    CUtlOrderedMap<EDamageFlashType, DamageFlashSettings_t> m_mapDamageFlash;
    CUtlOrderedMap<EDamageFlashType, DamageFlashSettings_t> m_mapDamageFlashLowViolence;
    GlitchSettings_t m_GlitchSettings;
    // MPropertyStartGroup = Sounds
    CUtlOrderedMap<ECurrencyType, CurrencySound_t> m_CurrencyTypeSounds;
    DamageReceivedSounds_t m_DamageReceivedSounds;
    HealingReceivedSounds_t m_HealingReceivedSounds;
    DamageIndicatorSounds_t m_DamageIndicatorSounds;
    CSoundEventName m_strExitCombatSound;
    // MPropertyStartGroup = Particles and Visuals
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_ShoppingEffect;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_MinimapZiplinesParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_KillStreakFireParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_MidbossIndicatorRespawningParticle;
    CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>> m_MidbossIndicatorSpawnedParticle;
    // MPropertyStartGroup = MiniMap
    Color m_MinimapTeamRebelsColor;
    Color m_MinimapTeamCombineColor;
    CUtlVector<MinimapOffsetDesc_t> m_MiniMapOffsets;
    // MPropertyStartGroup = Outline Colors
    // MPropertyColorPlusAlpha
    Color m_OutlineColorFriend;
    // MPropertyColorPlusAlpha
    Color m_OutlineColorEnemy;
    // MPropertyColorPlusAlpha
    Color m_OutlineColorEnemyHero;
    // MPropertyColorPlusAlpha
    Color m_OutlineColorTeam1;
    // MPropertyColorPlusAlpha
    Color m_OutlineColorTeam2;
    // MPropertyColorPlusAlpha
    Color m_OutlineColorNeutral;
    // MPropertyStartGroup
    LaneDesc_t m_LaneInfo[7];
    LaneDesc_t m_NoLaneZip;
    Color m_enemyZiplineColor;
    Color m_enemyObjectivesColor;
    NewPlayerMetrics_t m_NewPlayerMetrics[4];
    int32 m_nItemPricePerTier[6];
    float32 m_flTrooperKillGoldShareFrac[6];
    float32 m_flHeroKillGoldShareFrac[6];
    CUtlVector<CSubclassName<4>> m_HeroTestingTargetDummyUpgrades;
private:
    uint8 pad_0898[80];
public:
    DOFDesc_t m_DefaultDOF;
    RejuvinatorParams_t m_RejuvParams;
    IdolParams_t m_IdolParams;
    TeleporterParams_t m_TeleporterParams;
    ObjectivesParams_t m_ObjectiveParams;
    CUtlOrderedMap<EStatsType, CUtlString> m_mapStatTypeImages;
    // MPropertyDescription = Remap camera angle delta to aim spring strength
    CRemapFloat m_AimSpringStrength;
    // MPropertyDescription = Remap camera angle delta to ability targeting spring strength
    CRemapFloat m_TargetingSpringStrength;
    CUtlOrderedMap<EAbilityResourceType, HeroAbilityResourceDef_t> m_mapResourceTypes;
    // MPropertyStartGroup = New Shop Groups
    CUtlVector<ShopGroups_t> m_vecWeaponGroups;
    CUtlVector<ShopGroups_t> m_vecArmorGroups;
    CUtlVector<ShopGroups_t> m_vecSpiritGroups;
    // MPropertyStartGroup = Street Brawl
    GameModeStreetBrawl_t m_StreetBrawl;
};

KV3 Class Defaults

{
    m_mapDamageFlash = 
    {
    }
    m_mapDamageFlashLowViolence = 
    {
    }
    m_GlitchSettings = 
    {
        m_flStrength = 0.0
        m_nQuantizeType = 0
        m_flQuantizeScale = 0.0
        m_flQuantizeStrength = 0.0
        m_flFrameRate = 0.0
        m_flSpeed = 0.0
        m_flJumpStrength = 0.0
        m_flDistortStrength = 0.0
        m_flWhiteNoiseStrength = 0.0
        m_flScanlineStrength = 0.0
        m_flBreakupStrength = 0.0
    }
    m_CurrencyTypeSounds = 
    {
    }
    m_DamageReceivedSounds = 
    {
        m_strDamageReceiveDefault = soundevent:""
        m_strDamageReceiveNPC = soundevent:""
        m_strDamageReceiveDOT = soundevent:""
        m_strDamageReceiveMeleeNPC = soundevent:""
        m_strDamageReceiveMelee = soundevent:""
        m_strDamageReceiveShield = soundevent:""
    }
    m_HealingReceivedSounds = 
    {
        m_strDirectHealingSmall = soundevent:""
        m_strDirectHealingMedium = soundevent:""
        m_HOTLoopSounds = 
        {
        }
        m_nPriority = 1
        m_strHOTToppedOff = soundevent:""
    }
    m_DamageIndicatorSounds = 
    {
        m_strDamageDefault = soundevent:""
        m_strDamageCrit = soundevent:""
        m_strDamageLethal = soundevent:""
        m_strDamageInvulnerable = soundevent:""
        m_strDamageDOT = soundevent:""
        m_strDamageHealthTransfer = soundevent:""
    }
    m_strExitCombatSound = soundevent:""
    m_ShoppingEffect = resource_name:""
    m_MinimapZiplinesParticle = resource_name:""
    m_KillStreakFireParticle = resource_name:""
    m_MidbossIndicatorRespawningParticle = resource_name:""
    m_MidbossIndicatorSpawnedParticle = resource_name:""
    m_MinimapTeamRebelsColor = [ 0, 0, 0, 0 ]
    m_MinimapTeamCombineColor = [ 0, 0, 0, 0 ]
    m_MiniMapOffsets = [  ]
    m_OutlineColorFriend = [ 0, 0, 0, 0 ]
    m_OutlineColorEnemy = [ 0, 0, 0, 0 ]
    m_OutlineColorEnemyHero = [ 0, 0, 0, 0 ]
    m_OutlineColorTeam1 = [ 0, 0, 0, 0 ]
    m_OutlineColorTeam2 = [ 0, 0, 0, 0 ]
    m_OutlineColorNeutral = [ 0, 0, 0, 0 ]
    m_LaneInfo = 
    [
        {
            m_strLaneName = ""
            m_strCSSClass = ""
            m_Color = [ 0, 0, 0, 0 ]
            m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
            m_ObjectiveColor = [ 0, 0, 0, 0 ]
        },
        {
            m_strLaneName = ""
            m_strCSSClass = ""
            m_Color = [ 0, 0, 0, 0 ]
            m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
            m_ObjectiveColor = [ 0, 0, 0, 0 ]
        },
        {
            m_strLaneName = ""
            m_strCSSClass = ""
            m_Color = [ 0, 0, 0, 0 ]
            m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
            m_ObjectiveColor = [ 0, 0, 0, 0 ]
        },
        {
            m_strLaneName = ""
            m_strCSSClass = ""
            m_Color = [ 0, 0, 0, 0 ]
            m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
            m_ObjectiveColor = [ 0, 0, 0, 0 ]
        },
        {
            m_strLaneName = ""
            m_strCSSClass = ""
            m_Color = [ 0, 0, 0, 0 ]
            m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
            m_ObjectiveColor = [ 0, 0, 0, 0 ]
        },
        {
            m_strLaneName = ""
            m_strCSSClass = ""
            m_Color = [ 0, 0, 0, 0 ]
            m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
            m_ObjectiveColor = [ 0, 0, 0, 0 ]
        },
        {
            m_strLaneName = ""
            m_strCSSClass = ""
            m_Color = [ 0, 0, 0, 0 ]
            m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
            m_ObjectiveColor = [ 0, 0, 0, 0 ]
        },
    ]
    m_NoLaneZip = 
    {
        m_strLaneName = ""
        m_strCSSClass = ""
        m_Color = [ 0, 0, 0, 0 ]
        m_MinimapZiplineColorOverride = [ 0, 0, 0, 0 ]
        m_ObjectiveColor = [ 0, 0, 0, 0 ]
    }
    m_enemyZiplineColor = [ 0, 0, 0, 0 ]
    m_enemyObjectivesColor = [ 0, 0, 0, 0 ]
    m_NewPlayerMetrics = 
    [
        {
            m_strSkillTierName = ""
            m_NetWorth = 0
            m_DamageTaken = 0
            m_BossDamage = 0
            m_PlayerDamage = 0
            m_LastHits = 0
            m_OrbsSecured = 0
            m_OrbsDenied = 0
            m_AbilitiesUpgraded = 0
            m_ModsPurchased = 0
        },
        {
            m_strSkillTierName = ""
            m_NetWorth = 0
            m_DamageTaken = 0
            m_BossDamage = 0
            m_PlayerDamage = 0
            m_LastHits = 0
            m_OrbsSecured = 0
            m_OrbsDenied = 0
            m_AbilitiesUpgraded = 0
            m_ModsPurchased = 0
        },
        {
            m_strSkillTierName = ""
            m_NetWorth = 0
            m_DamageTaken = 0
            m_BossDamage = 0
            m_PlayerDamage = 0
            m_LastHits = 0
            m_OrbsSecured = 0
            m_OrbsDenied = 0
            m_AbilitiesUpgraded = 0
            m_ModsPurchased = 0
        },
        {
            m_strSkillTierName = ""
            m_NetWorth = 0
            m_DamageTaken = 0
            m_BossDamage = 0
            m_PlayerDamage = 0
            m_LastHits = 0
            m_OrbsSecured = 0
            m_OrbsDenied = 0
            m_AbilitiesUpgraded = 0
            m_ModsPurchased = 0
        },
    ]
    m_nItemPricePerTier = 
    [
        0, 0, 0, 0,
        0, 0,
    ]
    m_flTrooperKillGoldShareFrac = 
    [
        0.0, 0.0, 0.0, 0.0,
        0.0, 0.0,
    ]
    m_flHeroKillGoldShareFrac = 
    [
        0.0, 0.0, 0.0, 0.0,
        0.0, 0.0,
    ]
    m_HeroTestingTargetDummyUpgrades = [  ]
    m_DefaultDOF = 
    {
        m_flDofNearBlurry = 0.0
        m_flDofNearCrisp = 0.0
        m_flDofFarCrisp = 0.0
        m_flDofFarBlurry = 0.0
    }
    m_RejuvParams = 
    {
        m_flRejuvinatorExpirationWarningTiming = 30.0
        m_flRejuvinatorBuffDuration = 240.0
        m_flRejuvinatorDropHeight = 500.0
        m_flRejuvinatorDropDuration = 7.0
        m_flRejuvinatorRebirthDuration = [ 0.0, 0.0, 0.0 ]
        m_TrooperHealthMult = [  ]
        m_PlayerRespawnMult = [  ]
        m_strRejuvPickupSound = soundevent:""
    }
    m_IdolParams = 
    {
        m_IdolModel = resource_name:""
        m_ParachuteModel = resource_name:""
        m_CrateModel = resource_name:""
        m_strLoopingSequenceName = ""
        m_IdolReturnLocationParticle = resource_name:""
        m_flIdolReturnLocationParticleScale = 1.0
        m_IdolSpawnLocationParticle = resource_name:""
        m_IdolDroppingParticle = resource_name:""
        m_flIdolDropHeight = 1800.0
        m_flIdolDropDuration = 25.0
    }
    m_TeleporterParams = 
    {
        m_StartEffect = resource_name:""
        m_EndEffect = resource_name:""
        m_strEnterSound = soundevent:""
        m_strStartSound = soundevent:""
        m_strTeleportedSound = soundevent:""
    }
    m_ObjectiveParams = 
    {
        m_GoldPerOrb = 0
        m_NearPlayerSplitPct = 60.0
        m_nTier1GoldKill = 1650
        m_nTier1GoldOrbs = 0
        m_nTier2GoldKill = 4500
        m_nTier2GoldOrbs = 0
        m_nBaseGuardiansGoldKill = 750
        m_nBaseGuardiansGoldOrbs = 0
        m_nShrinesGoldKill = 0
        m_nShrinesGoldOrbs = 0
        m_nPatronPhase1GoldKill = 0
        m_nPatronPhase1GoldOrbs = 0
    }
    m_mapStatTypeImages = 
    {
    }
    m_AimSpringStrength = 0.0
    m_TargetingSpringStrength = 0.0
    m_mapResourceTypes = 
    {
    }
    m_vecWeaponGroups = [  ]
    m_vecArmorGroups = [  ]
    m_vecSpiritGroups = [  ]
    m_StreetBrawl = 
    {
        m_vecRespawnTimes = [  ]
        m_flOvertimeRespawnTimeIncrease = [  ]
        m_flOvertimeRespawnTimeIncreaseUrgent = [  ]
        m_flOvertimeTrooperHealthScale = [  ]
        m_flOvertimeTrooperDamageScale = [  ]
        m_vecPreBuyTime = [  ]
        m_vecBuyTime = [  ]
        m_vecGoldPerRound = [  ]
        m_vecAPPerRound = [  ]
        m_vecObjectiveMaxHealth = [  ]
        m_vecItemDraftRerollsPerRound = [  ]
        m_vecRoundLengthMinutes = [  ]
        m_vecRoundLengthMinutesUrgent = [  ]
        m_flTrooperSpawnTimer = [  ]
        m_vecItemDraftRoundsPerGameRound = [  ]
        m_nMatchLengthMinutes = 18.0
        m_nTier2BonusHealth = 4000
        m_nComebackBonusHealth = 1000
        m_nComebackBonusHealthCritical = 4000
        m_flTrooperNonOvertimeResist = 20.0
        m_flTrooperOvertimeResist = 20.0
        m_flRareWeightExponentialBias = 2.0
        m_flActivesReductionWeightScale = 0.5
        m_flLegendaryOwnerSkipChancePct = 95.0
        m_flEnhancedOwnerSkipChancePct = 75.0
        m_flComebackWeightExponentialBias = 4.0
        m_strAmberTrooperPickupToDrop = ""
        m_strSapphireTrooperPickupToDrop = ""
        m_strTrooperModifier = ""
        m_flScoringTime = 5.0
        m_flPreScoringTime = 1.0
        m_iScoreToWin = 3
        m_iLaneNumber = 4
        m_flTrooperSpawnBeforeRoundStartTimer = 5.0
        m_flZipBoostCooldownOnStart = 20.0
        m_flBuyTimeGracePeriod = 15.0
        m_iUltimateUnlockRound = 0
        m_flTier1MaxResistTime = 4.0
        m_flTier2MaxResistTime = 4.0
    }
}