private void RemoveBuff(int anIndex) { myBuffs[anIndex].GetBuff().EndBuff(ref myStats); if (myBuffs[anIndex].GetBuff().mySpellType == SpellType.Shield) { //Ugly hack to set shield to 0, which will remove it at myHealth.RemoveShield() (myBuffs[anIndex] as BuffShieldSpell).SoakDamage((myBuffs[anIndex] as BuffShieldSpell).GetRemainingShieldHealth()); myHealth.RemoveShield(); } if (myBuffs[anIndex].GetBuff().myAttackSpeed != 0.0f) { float attackspeed = myAutoAttackCooldownReset / myStats.myAttackSpeed; float currentAnimationSpeed = 1.0f; if (currentAnimationSpeed > attackspeed) { myAnimator.SetFloat("AutoAttackSpeed", myAnimator.GetFloat("AutoAttackSpeed") + attackspeed / currentAnimationSpeed); } else { myAnimator.SetFloat("AutoAttackSpeed", 1.0f); } } else if (myBuffs[anIndex].GetBuff().mySpeedMultiplier != 0.0f) { myAnimator.SetFloat("RunSpeed", myStats.mySpeedMultiplier); } myBuffs.RemoveAt(anIndex); myCharacterHUD.RemoveBuff(anIndex); }