void OnAutoAttack(IAttackableUnit target, bool isCrit) { if (_silverBoltsLearned == false) { if (_owningSpell.Level >= 1) { _silverBoltsLearned = true; } else { return; } } IObjAiBase silverTarget = target as IObjAiBase; if (silverTarget != null) { _lastAttackedValidTarget = _currentTime; if (_silverBoltsBuff != null) { RemoveBuffHudVisual(_silverBoltsBuff); _silverBoltsBuff = null; } if (silverTarget != _lastTarget) { if (_silverBoltsParticle != null) { RemoveParticle(_silverBoltsParticle); _silverBoltsParticle = null; } if (_lastTarget != null) { _silverBoltsStacks = 0; } _lastTarget = silverTarget; } _silverBoltsStacks += 1; if (_silverBoltsStacks < 3) { _silverBoltsBuff = AddBuffHudVisual("VayneSilveredDebuff", 3.5f, _silverBoltsStacks, BuffType.SHRED, silverTarget, -1); } if (_silverBoltsParticle != null) { RemoveParticle(_silverBoltsParticle); } if (_silverBoltsStacks == 1) { _silverBoltsParticle = AddParticleTarget(_owningChampion, "vayne_W_ring1.troy", silverTarget); } else if (_silverBoltsStacks == 2) { _silverBoltsParticle = AddParticleTarget(_owningChampion, "vayne_W_ring2.troy", silverTarget); } else { _silverBoltsStacks = 0; // We're at 3 stacks. Apply damage and reset to zero. float healthRatio = (new float[] { 0.04f, 0.05f, 0.06f, 0.07f, 0.08f }[_owningSpell.Level - 1]) * silverTarget.Stats.HealthPoints.Total; float damage = new float[] { 20, 30, 40, 50, 60 }[_owningSpell.Level - 1] +healthRatio; silverTarget.TakeDamage(_owningChampion, damage, DamageType.DAMAGE_TYPE_TRUE, DamageSource.DAMAGE_SOURCE_PASSIVE, false); AddParticleTarget(_owningChampion, "vayne_W_tar.troy", silverTarget); _lastTarget = null; } } }