예제 #1
0
        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();
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
            }
        }