Пример #1
0
    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());
        }
    }