public override void PotBall(PoolBall ball, PocketIndexes pocket) { base.PotBall(ball, pocket); if ((pocket & PocketTrigger.PunitivePocket) != 0) { //m_PunishmentCountThisRound++; m_Player.AddCues(ConstantData.PunitiveShots, PocketTrigger.GetPocketWithIndexes(pocket)); } if ((pocket & PocketTrigger.RewardPocket) != 0) { //m_RewardCountThisRound++; m_Player.AddCues(ConstantData.RewardShots, PocketTrigger.GetPocketWithIndexes(pocket)); } int score = 0; if (ball.ballType == BallType.WHITE) { m_Player.Combo = 0; m_Player.AddCues(ConstantData.MissionCueballPottedPunishment, PocketTrigger.GetPocketWithIndexes(pocket)); return; } else if (ball.ballType == BallType.BOMB) { score = ConstantData.MissionBombPottedPoint; } else if (ball.ballType == BallType.SINGULARITY) { score = ConstantData.MissionSingularityPottedPoint; } else if (ball.ballType == BallType.ABSORB) { score = ConstantData.MissionAbsorbPottedPoint; AbsorbBall b = (AbsorbBall)ball; for (int i = 0, count = b.AbsorbList.Count; i < count; i++) { PotBall(b.AbsorbList[i], pocket); Pools.StorageRack.Add(b.AbsorbList[i]); } b.AbsorbList.Clear(); } else if (ball.ballType == BallType.REDCUSTOM) { score = ConstantData.MissionRedBallPoint; } else if (ball.ballType == BallType.BLUECUSTOM) { score = ConstantData.MissionBlueBallPoint; } else if (ball.ballType == BallType.YELLOWCUSTOM) { score = ConstantData.MissionYellowBallPoint; } else if (ball.ballType == BallType.JIANGYOU) { score = ConstantData.MissionJiangYouBallPoint; } else if (ball.ballType == BallType.DEMON) { score = ConstantData.MissionDemonBallPoint; } if (score > 0) { m_Player.Combo++; m_Player.AddScore(score, PocketTrigger.GetPocketWithIndexes(pocket)); m_ScoreThisRound = score; } if (m_Player.Combo >= 5) { BaseUIController.GenerateTips("Great!"); } m_Player.Pot(); if (m_TargetBalls.Contains(ball.GetBallID())) { m_TargetBalls.Remove(ball.GetBallID()); } }