using UnityEngine; namespace BumpCombat.Constants { [CreateAssetMenu(menuName = "BumpCombat/Constants/Passive Relics")] public sealed class PassiveRelicConstants : ScriptableObject { [Header("Twin Horn Talisman")] [Range(0f, 1f)] public float TwinHornDoubleDamageChance = 0.15f; [Header("Resonance Core")] [Range(0f, 1f)] public float ResonanceEchoChance = 0.08f; [Min(0f)] public float ResonanceEchoCooldownSeconds = 3f; [Range(0f, 1f)] public float ResonanceEchoDamageMultiplier = 0.5f; [Header("Rupture Seed")] [Range(0f, 1f)] public float RuptureSeedChance = 0.25f; [Range(0f, 1f)] public float RuptureExplosionMaxHealthFraction = 0.1f; [Min(0f)] public float RuptureExplosionPlayerBodyDiameters = 3f; [Header("Wave Nail")] [Range(0f, 1f)] public float WaveNailChance = 0.2f; [Range(0f, 1f)] public float WaveNailDamageFraction = 0.6f; [Min(0f)] public float WaveNailCooldownSeconds = 1.5f; [Header("Capacitor Ring")] [Range(0f, 1f)] public float CapacitorRingChance = 0.2f; [Range(0f, 1f)] public float CapacitorRingDamageFraction = 0.35f; [Min(0f)] public float CapacitorRingCooldownSeconds = 1.5f; [Min(0)] public int CapacitorRingMaxTargets = 3; [Header("Ember Wick")] [Range(0f, 1f)] public float EmberWickChance = 0.25f; [Header("Ember Carrier")] [Range(0f, 1f)] public float EmberCarrierChance = 0.3f; [Min(0f)] public float EmberCarrierCooldownSeconds = 0.5f; [Min(0)] public int EmberCarrierMaxTargets = 3; [Header("Rift Wedge")] [Min(1)] public int RiftWedgeRequiredHits = 3; [Min(0f)] public float RiftWedgeMaxHitGapSeconds = 4f; [Header("Executioner Sigil")] [Range(0f, 1f)] public float ExecutionerSigilChance = 0.25f; [Range(0f, 1f)] public float ExecutionerSigilHealthThreshold = 0.1f; [Header("Hunter Feather")] [Range(0f, 1f)] public float HunterFeatherChance = 0.2f; [Min(0f)] public float HunterFeatherDurationSeconds = 4f; [Range(0f, 1f)] public float HunterFeatherMoveSpeedIncrease = 0.2f; [Header("Blood Fang")] [Range(0f, 1f)] public float BloodFangChance = 0.2f; [Range(0f, 1f)] public float BloodFangHealMaxHealthFraction = 0.02f; [Min(0f)] public float BloodFangCooldownSeconds = 1f; [Header("Recovery Funnel")] [Range(0f, 1f)] public float RecoveryFunnelChance = 0.25f; [Range(0f, 1f)] public float RecoveryFunnelGaugeFraction = 0.05f; [Min(0f)] public float RecoveryFunnelCooldownSeconds = 1f; [Header("Trophy Mask")] [Min(0f)] public float TrophyMaskDurationSeconds = 8f; [Range(0f, 1f)] public float TrophyMaskBumpDamageIncrease = 0.2f; [Range(0f, 1f)] public float TrophyMaskMoveSpeedIncrease = 0.1f; [Header("Resonant Crystal")] [Range(0f, 1f)] public float ResonantCrystalChance = 0.2f; [Min(0f)] public float ResonantCrystalDelaySeconds = 0.5f; [Range(0f, 1f)] public float ResonantCrystalDamageFraction = 0.5f; [Min(0f)] public float ResonantCrystalCooldownSeconds = 6f; [Header("Backflow Heart")] [Range(0f, 1f)] public float BackflowHeartDamageThreshold = 0.25f; [Range(0f, 1f)] public float BackflowHeartShieldFraction = 0.15f; [Min(0f)] public float BackflowHeartShieldDurationSeconds = 4f; [Min(0f)] public float BackflowHeartCooldownSeconds = 12f; [Header("Counter Bell")] [Range(0f, 1f)] public float CounterBellChance = 0.2f; [Range(0f, 1f)] public float CounterBellSlowFraction = 0.3f; [Min(0f)] public float CounterBellSlowDurationSeconds = 2f; [Min(0f)] public float CounterBellCooldownSeconds = 4f; [Header("Sprint Wheel")] [Min(0f)] public float SprintWheelRequiredBodyDiameters = 8f; [Range(0f, 1f)] public float SprintWheelShockwaveDamageFraction = 0.8f; [Header("Battle Baton")] [Range(0f, 1f)] public float BattleBatonTowerDamageIncrease = 0.15f; [Min(0f)] public float BattleBatonDurationSeconds = 3f; [Min(0f)] public float BattleBatonCooldownSeconds = 6f; [Header("Bond Ledger")] [Min(0f)] public float BondLedgerBumpWindowSeconds = 3f; [Range(0f, 1f)] public float BondLedgerChance = 0.25f; [Min(0f)] public float BondLedgerCooldownSeconds = 1f; [Min(0)] public int BondLedgerCurrency = 1; [Header("Pilgrim Pouch")] [Range(0f, 1f)] public float PilgrimPouchChance = 0.05f; [Range(0f, 1f)] public float PilgrimPouchHealMaxHealthFraction = 0.1f; [Min(0f)] public float PilgrimPouchOrbLifetimeSeconds = 8f; [Min(0f)] public float PilgrimPouchCooldownSeconds = 15f; } }