[Header("Stats")] public float damageReduction = 0.7f; public float absorptionRatio = 0.5f; public float maxShieldCharge = 200f; public float cooldownDuration = 25f; private float currentShieldCharge = 0f; private bool isActive = false; private bool onCooldown = false; private HealthComponent playerHealth;
if (!isActive) return; isActive = false; switch(mode) case ReleaseMode.Retribution: AoEDamage(currentShieldCharge); break; case ReleaseMode.Recharge: playerHealth.Heal(currentShieldCharge * 0.5f); ReduceAbilityCooldowns(currentShieldCharge); break; case ReleaseMode.Overclock: ApplyBuff(moveSpeedBonus, critBonus, duration: 8f); break; currentShieldCharge = 0f; StartCoroutine(CooldownRoutine()); agentes shield
IEnumerator CooldownRoutine()