IEnumerator RessetBall (BallController ballController) { if(ballController.isMain) {//bong trang vao lo yield return new WaitForFixedUpdate (); if(ServerController.serverController) { if(ServerController.serverController.isMyQueue) { if(!(cueController.gameManager.blackBallInHolle || cueController.gameManager.otherBlackBallInHolle)) { cueController.gameManager.needToChangeQueue = true; cueController.gameManager.needToForceChangeQueue = true; cueController.gameManager.setMoveInTable = true; cueController.gameManager.gameInfoErrorText = "đánh bóng lỗi"; } cueController.gameManager.mainBallIsOut = true; } else { if(MenuControllerGenerator.controller.playWithAI) { if(!(cueController.gameManager.blackBallInHolle || cueController.gameManager.otherBlackBallInHolle)) { cueController.gameManager.needToChangeQueue = true; cueController.gameManager.needToForceChangeQueue = true; cueController.gameManager.setMoveInTable = true; cueController.gameManager.gameInfoErrorText = "đánh bóng lỗi"; } } cueController.gameManager.otherMainBallIsOut = true; } } ballController.ballReflaction.GetComponent<Renderer> ().enabled = false; IncreaseSplineLength (); cueController.OnBallIsOut (true); yield return new WaitForSeconds (2.0f); while(!cueController.othersSleeping) { yield return null; } ballController.RessetPosition (cueController.centerPoint.position, false); ballController.ballReflaction.GetComponent<Renderer> ().enabled = true; } else {//cac bong khac vao lo yield return new WaitForFixedUpdate (); ballController.OnCheckHolle (); if(ServerController.serverController) { /*Game solo*/ if(!ServerController.serverController.isModeCard) { if(ballController.isBlack) {//bong den so 8 cueController.gameManager.needToChangeQueue = false; cueController.gameManager.needToForceChangeQueue = false; if(cueController.gameManager.remainedBlackBall) { cueController.gameManager.myProfileNew.RemoveGuiBall (ballController.id); } if(cueController.gameManager.otherRemainedBlackBall) { cueController.gameManager.otherProfileNew.RemoveGuiBall (ballController.id); } if(ServerController.serverController.isMyQueue) { cueController.gameManager.blackBallInHolle = true; } else { cueController.gameManager.otherBlackBallInHolle = true; } } else { if(cueController.gameManager.isFirstShot) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } cueController.gameManager.firsBalls.Add (ballController); } else if(cueController.gameManager.tableIsOpened) { cueController.gameManager.tableIsOpened = false; if(ServerController.serverController.isMyQueue) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } cueController.gameManager.SetBallType (ballController.ballType); cueController.gameManager.myProfileNew.RemoveGuiBall (ballController.id); if(ballController.ballType == 1) { cueController.gameManager.ShowGameInfo ("Bạn đánh bi", 1); } else { cueController.gameManager.ShowGameInfo ("Bạn đánh bi", 9); } } else { if(MenuControllerGenerator.controller.playWithAI) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } } cueController.gameManager.SetBallType (-ballController.ballType); cueController.gameManager.otherProfileNew.RemoveGuiBall (ballController.id); if(ballController.ballType == -1) { cueController.gameManager.ShowGameInfo ("Bạn đánh bi", 1); } else { cueController.gameManager.ShowGameInfo ("Bạn đánh bi", 9); } } foreach(BallController item in cueController.gameManager.firsBalls) { if(item.ballType == cueController.gameManager.ballType) { cueController.gameManager.myProfileNew.RemoveGuiBall (item.id); } else { cueController.gameManager.otherProfileNew.RemoveGuiBall (item.id); } } cueController.gameManager.firsBalls = null; } else { if(cueController.gameManager.ballType == ballController.ballType) { if(!MenuControllerGenerator.controller.playWithAI || ServerController.serverController.isMyQueue) { if(!cueController.gameManager.firstHitBall || cueController.gameManager.firstHitBall.ballType == cueController.gameManager.ballType) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } } } cueController.gameManager.myProfileNew.RemoveGuiBall (ballController.id); } else { if(MenuControllerGenerator.controller.playWithAI && !ServerController.serverController.isMyQueue) { if(!cueController.gameManager.firstHitBall || cueController.gameManager.firstHitBall.ballType == -cueController.gameManager.ballType) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } } } cueController.gameManager.otherProfileNew.RemoveGuiBall (ballController.id); } } } /*End Game solo*/ } else {/*Game card*/ if(cueController.gameManager.isFirstShot) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } cueController.gameManager.firsBalls.Add (ballController); } else { if(cueController.gameManager.tableIsOpened) { cueController.gameManager.tableIsOpened = false; foreach(BallController item in cueController.gameManager.firsBalls) { cueController.gameManager.myProfileNew.RemoveGuiCard (item.id); cueController.gameManager.otherProfileNew.RemoveGuiCard (item.id); } cueController.gameManager.firsBalls = null; } else { if(!MenuControllerGenerator.controller.playWithAI || ServerController.serverController.isMyQueue) { if(cueController.gameManager.myProfileNew.checkBallCard (ballController.id)) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } } } if(MenuControllerGenerator.controller.playWithAI && !ServerController.serverController.isMyQueue) { if(!cueController.gameManager.firstHitBall || cueController.gameManager.otherProfileNew.checkBallCard (ballController.id)) { if(!cueController.gameManager.needToForceChangeQueue) { cueController.gameManager.needToChangeQueue = false; } } } cueController.gameManager.myProfileNew.RemoveGuiCard (ballController.id); cueController.gameManager.otherProfileNew.RemoveGuiCard (ballController.id); } } } /*End Game card*/ } } }