예제 #1
0
파일: Cell.cs 프로젝트: Lemon113/ThreeRow
        override public void Destroy()
        {
            if (_bonus != null)
            {
                IBonus t = _bonus;
                _bonus = null;
                t.Activate();
            }
            if (leaveBonus != BonusTypes.NONE)
            {
                Field.Score.AddScore(SCORE_VALUE);
                switch (leaveBonus)
                {
                case BonusTypes.LHOR: SetBonus(new LineBonus(LineBonus.LineType.HORIZONTAL)); break;

                case BonusTypes.LVERT: SetBonus(new LineBonus(LineBonus.LineType.VERTICAL)); break;

                case BonusTypes.BOMB: SetBonus(new BombBonus(Field, this)); break;
                }
                leaveBonus = BonusTypes.NONE;
            }
            else
            {
                Field.Score.AddScore(SCORE_VALUE);
                Field.DestroyCell(this);
                base.Destroy();
            }
        }
예제 #2
0
 public void ActivateBonus(IBonus bonus)
 {
     bonus.SetPosition(_floor.GetCurrentMousePosition());
     bonus.Activate();
     _currentBonusTimer.Activate(bonus);
     _activeBonuses.Add(bonus);
 }
예제 #3
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.CompareTag(GameObjectsTags.BONUS_tag))
     {
         activatorObject = collision.gameObject;
         bonusComponent  = activatorObject.GetComponent <IBonus>();
         bonusComponent.Activate();
         IsActive = true;
         StartCoroutine(DestroyBonus(activatorObject));
     }
 }
예제 #4
0
 public void ActivateBonus(IBonus bonus)
 {
     bonus.SetPosition(_floor.GetCurrentMousePosition());
     bonus.Activate();
     _currentBonusTimer.Activate(bonus);
     _activeBonuses.Add(bonus);
 }