Agentes Shield -

if (!isActive) return incomingDamage; float reducedDamage = incomingDamage * (1 - damageReduction); float absorbedEnergy = incomingDamage * damageReduction * absorptionRatio; currentShieldCharge = Mathf.Min(currentShieldCharge + absorbedEnergy, maxShieldCharge); // Shield break if overloaded beyond capacity + 10% if (currentShieldCharge >= maxShieldCharge * 1.1f) DeactivateAndRelease(ReleaseMode.Retribution); // emergency release return reducedDamage;

public void DeactivateAndRelease(ReleaseMode mode) agentes shield

[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 incomingDamage

The Agentes Shield is not a simple damage blocker. It is an energy-absorbing barrier that stores absorbed kinetic/energy damage and then releases it as a short burst of enhanced speed, counter-attack power, or team healing. // emergency release return reducedDamage

public void Activate()

IEnumerator CooldownRoutine()

if (onCooldown) return; isActive = true; currentShieldCharge = 0f; // Play shield-on VFX/SFX