/// <summary> /// Adds the effect of a picked up bonus. /// </summary> /// <param name="bonus">Instance of the bonus</param> private void NewBonusEffect(Bonus bonus) { LastActivatedBonus = bonus.Effect; bool requiresTimer = false; switch (bonus.Effect) { case "Extra Ammo": Ammo += 10; break; case "Rapid Fire": shootingSpeed = 1; requiresTimer = true; break; case "Shotgun": requiresTimer = true; break; case "Heal": Hp += 1; break; case "Slow Motion": VelocityModifier = 0.6F; requiresTimer = true; break; default: break; } if (requiresTimer) { if (ActiveBonuses.Contains(LastActivatedBonus)) { ActiveBonusesExpireTime[ActiveBonuses.IndexOf(LastActivatedBonus)] = BonusDuration; } else { ActiveBonuses.Insert(0, bonus.Effect); ActiveBonusesExpireTime.Insert(0, BonusDuration); } } }
/// <summary> /// Cancles the effect of an expired bonus. /// </summary> private void BonusEffectExpire(string effect) { switch (effect) { case "Rapid Fire": shootingSpeed = 0.35F; break; case "Slow Motion": VelocityModifier = 1; break; default: break; } int i = ActiveBonuses.IndexOf(effect); ActiveBonuses.RemoveAt(i); ActiveBonusesExpireTime.RemoveAt(i); }