/** * Apply random bonus to player */ public void Apply(PlayerRobot p, int bonusType) { if (isActive) { return; } _player = p; this.EnableBonus(); switch (bonusType) { case LIFE_BONUS: applicator = new LifeBonus(); applicator.Apply(_player); Level.DisplayAnnounce("Life!"); Invoke("DisableBonus", applicator.duration); break; case SHIELD_BONUS: applicator = new ShieldBonus(); applicator.Apply(_player); Level.DisplayAnnounce("Shield!"); Invoke("DisableBonus", applicator.duration); break; case INVINCIBILITY_BONUS: applicator = new InvincibilityBonus(); applicator.Apply(_player); Level.DisplayAnnounce("Invincibility!"); Invoke("DisableBonus", applicator.duration); break; } }