private void BonusChance(BallShotData scoreData) { if (!m_ScoreBonusIsActive && m_ChanceOfBonus >= Random.Range(0f, 1f)) { m_ScoreBonusIsActive = true; if (Random.Range(0f, 1f) <= 0.8f) { m_CurrentScoreBonus = Constant.ShotScores.NORMAL_BONUS; m_CurrentBonusSprite = m_X2ScoreBonusSprite; } else { m_CurrentScoreBonus = Constant.ShotScores.EXTRA_BONUS; m_CurrentBonusSprite = m_X2_5ScoreBonusSprite; } StartCoroutine(OnBonusActiveUpdate = BonusActiveUpdate()); return; } if (scoreData.status == (ShotStatus.BONUS | ShotStatus.NORMAL)) { StopCoroutine(OnBonusActiveUpdate); Color boardColor = m_BonusMultiplierSprite.color; boardColor.a = 0; m_BonusMultiplierSprite.color = boardColor; m_CurrentBonusSprite.color = boardColor; m_ScoreBonusIsActive = false; } }
private void OnBallScore(BallShotData scoreInformation) { int nShotScore = GetScoreFromStatus(scoreInformation.status); if (scoreInformation.isOnFire) { nShotScore *= Constant.ON_FIRE_SCORE_MULTIPLIER; } BallThrower thrower = scoreInformation.thrower; int nThrowerTotalScore = 0; if (thrower.GetType() == typeof(UserBallThrower)) { m_Score.playerScore += nShotScore; nThrowerTotalScore = m_Score.playerScore; } else { m_Score.AIScore += nShotScore; nThrowerTotalScore = m_Score.AIScore; } CallEvent(OnScoreDataSet, new ScoreData(thrower, nShotScore, nThrowerTotalScore)); }