private void OnBallDestroyed(BallDestroyByGiantLaserEventArgs obj) { _ballGrid.Remove(obj.BallController.GridPosition); if (_ballGrid.ActiveBalls == 0) { GameManager.Instance.EventBus.Broadcast(new GameOverEventArgs(GameOverCondition.Win)); } else { _ballGrid.HandleOrphanedBalls(); } }
private void OnBallDestroyed(BallDestroyByGiantLaserEventArgs obj) { var ball = obj.BallController; var ballPosition = ball.Position; var newExplosion = _simpleObjectPool.GetObjectFromPool(); newExplosion.transform.SetParent(transform); newExplosion.transform.position = ballPosition; var planetSprite = ball.CurrentBallSprite; var magnitudeScale = ball.Magnitude.GetScale(); var ballDestroyEffect = newExplosion.GetComponent <BallDestroyedByLaserEffect>(); ballDestroyEffect.RePlayEffect(planetSprite, magnitudeScale); _floatingScoreEffectGenerator.ShowScore(GameConstants.ScorePerBall, ballPosition, 0); }
private void OnBallDestroyed(BallDestroyByGiantLaserEventArgs obj) { _scoreKeeper.ScoreDestroyedBall(); }