// calls after a ball has completely been played. For cueball and most of 9 ball, we reset it back up. For object balls, we screw it! // there should be more complicated logics that does this. So modify this later public void OnBallPocketedHouseKeeping(BallController ballController) { // cue ball should always be spotted if (ballController.isMain) { // set flags to indicate ball is pocketed cueController.pocketedTheCueBall = true; cueController.OnCueBallIsPocketed(true); } else if (ballController.id == 9) { // set flags to indicate ball is pocketed ballController.ballIsPocketed = true; cueController.pocketedNineBall = true; cueController.pocketedAnyObjectBall = true; // remove it from currentBallControllers cueController.currentBallControllers.Remove(ballController); // don't change this. Because nearest object ball depends on this. Talk with DJ before proceed. cueController.currentBallControllers.TrimExcess(); } else { // set flags to indicate ball is pocketed ballController.ballIsPocketed = true; cueController.pocketedAnyObjectBall = true; // remove it from currentBallControllers cueController.currentBallControllers.Remove(ballController); // don't change this. Because nearest object ball depends on this. Talk with DJ before proceed. cueController.currentBallControllers.TrimExcess(); } GameManager_script.IncrementBallPocketed(cueController.TrackingShotAsPlayerOne, cueController.TrackingShotAsPlayerTwo); cueController.pocketedBallControllers.Add(ballController); }