public void ApplyBonus(ActiveBonus bonus) { switch (bonus.BonusType) { case BonusType.BaloonSizeDown: Baloon.transform.localScale *= 0.4F; break; case BonusType.BaloonSizeUp: Baloon.transform.localScale *= 1.5F; break; case BonusType.Armour: Baloon.ArmourUp(); break; case BonusType.Bomb: foreach (Enemy enemy in FindObjectsOfType <Enemy>()) { enemy.Die(false); } Camera.main.GetComponent <CameraController>().Shake(0.6F); break; default: throw new ArgumentOutOfRangeException(); } }
public void AddBonus(ActiveBonus bonus) { ActiveBonus oldBonus; if ((oldBonus = Bonuses.FirstOrDefault(b => b.BonusType == bonus.BonusType)) != null) { oldBonus.Duration = oldBonus.MaxDuration; return; } Bonuses.Add(bonus); ApplyBonus(bonus); }
public void RemoveBonus(ActiveBonus bonus) { switch (bonus.BonusType) { case BonusType.BaloonSizeDown: Baloon.transform.localScale /= 0.4F; break; case BonusType.BaloonSizeUp: Baloon.transform.localScale /= 1.5F; break; case BonusType.Armour: Baloon.ToNormal(); break; case BonusType.Bomb: break; default: throw new ArgumentOutOfRangeException(); } }