Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }