Ejemplo n.º 1
0
        /// <inheritdoc/>
        public void OnBallHit(IPlayerBallController ballController)
        {
            if (IsDead())
            {
                return;
            }

            var currentLiveHint      = _brickParameters.Lives[_currentLiveId].hitScore;
            var brickHintEventParams = new BrickWasHitEventParams(currentLiveHint);

            _messageDispatcher.Rise(this, brickHintEventParams);

            _currentLiveId++;
            if (IsDead())
            {
                var deathScore             = _brickParameters.BrickLiveScore;
                var brickPosition          = _brickParameters.BrickTransform.position;
                var brickDeathsEventParams = new BrickWasDestroyedEventParams(deathScore, brickPosition);

                var effectPosition = _brickParameters.BrickTransform.position;
                var effectRotation = _brickParameters.BrickTransform.rotation;
                _effectPool.AddEffectRequest(_brickParameters.DeathEffect, effectPosition, effectRotation);

                _messageDispatcher.Rise(this, brickDeathsEventParams);
                Object.Destroy(_brickParameters.BrickTransform.gameObject);
            }
            else
            {
                var currentLive = _brickParameters.Lives[_currentLiveId];
                _brickParameters.BrickSpriteHolder.sprite = currentLive.LiveSprite;
            }
        }
Ejemplo n.º 2
0
 private void OnBrickHit(object source, BrickWasHitEventParams brickHitEventParams)
 {
     _currentScore += brickHitEventParams.HitScore;
     _scoreToText.SetScore(_currentScore);
 }