//вызов событий, если игрок остановился на этом участке public void StepOnMe(int idPlayer) { NetworkDBwork dBwork = Camera.main.GetComponent <NetworkDBwork>(); if (idPlayer == 1 && dBwork.GetPlayerbyId(idPlayer).isInJail()) { return; } Event newEvent = GetRandomEvent(); dBwork.GetPlayerbyId(idPlayer).Money += newEvent.Price; if (idPlayer == 1) { if (_gameCanvas == null) { _gameCanvas = dBwork.GetNetworkGameCanvas(); } _gameCanvas.ShowInfoAboutEvent(newEvent.Name + "\n" + newEvent.Info + "\n" + "Стоимость: " + newEvent.Price); } }
//Корутина движения private IEnumerator Go() { if (alreadyCheat) { _gameCanvas.ShowInfoAboutEvent("Вы уже мухлевали на этом ходе :("); corutine = false; yield break; } bool tried = isCheating; yield return(new WaitUntil(() => isCheating == false)); if (tried && isGonnaBeCathced) { if (Random.Range(0, 2) != 1) { NetworkGameController.aboutPlayer += "Игрок " + NickName + " не попался \n"; alreadyCheat = true; isGonnaBeCathced = false; } else { NetworkGameController.aboutPlayer += "Игрок " + NickName + " попался \n"; corutine = false; _gameCanvas.gameObject.GetComponent <NetworkGameController>().cathedPlayer(); yield break; } } else if (tried) { corutine = false; yield break; } bool endFirstStep = false; int num = way.Count; NetworkStreetPath somewhere = null; for (int i = 0; i < num; i++) { if (i != 0) { somewhere = _dbWork.GetPathById(way.Dequeue()); } if (i == 0 && !endFirstStep) { somewhere = _dbWork.GetPathById(way.Dequeue()); if (currentStreetPath.isBridge && (currentStreetPath.start.Equals(somewhere.start) || currentStreetPath.start.Equals(somewhere.end))) { destination = currentStreetPath.start; angle = MapBuilder.Angle(transform.position, destination); yield return(new WaitUntil(() => transform.position == destination)); } else { destination = currentStreetPath.end; angle = MapBuilder.Angle(transform.position, destination); yield return(new WaitUntil(() => transform.position == destination)); } endFirstStep = true; i--; continue; } if (i == num - 1) { destination = MapBuilder.GetCenter(somewhere.start, somewhere.end); angle = MapBuilder.Angle(transform.position, destination); currentStreetPath = somewhere; yield return(new WaitUntil(() => transform.position == destination)); } else { if (somewhere.isBridge && transform.position.Equals(somewhere.end)) { destination = somewhere.start; angle = MapBuilder.Angle(transform.position, destination); yield return(new WaitUntil(() => transform.position == destination)); } else { destination = somewhere.end; angle = MapBuilder.Angle(transform.position, destination); yield return(new WaitUntil(() => transform.position == destination)); } } currentSteps++; } corutine = false; _gameCanvas.OnOffSavedButtons(); if (tried && isGonnaBeCathced) { _gameCanvas.GetComponent <NetworkGameController>().nextStep(); } }