/// <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; } }
private void OnBrickHit(object source, BrickWasHitEventParams brickHitEventParams) { _currentScore += brickHitEventParams.HitScore; _scoreToText.SetScore(_currentScore); }