//применение результата торговли к игровым объектам public static void TradeApply(NetworkPlayer playerFrom, NetworkPlayer playerFor, NetworkGameCanvas GC, int moneyFromFirstPlayer, int moneyFromSecondPlayer) { //доавление денег, которые игроки зотят передать друг другу AddMoneyToList(playerFrom, playerFor, moneyFromFirstPlayer); AddMoneyToList(playerFor, playerFrom, moneyFromSecondPlayer); //очистка канвы торговли GC.ClearTradeMenu(); if (playerFrom.IdPlayer < playerFor.IdPlayer) { foreach (NetworkThingForTrade thingForTrade in things[playerFrom.IdPlayer, playerFor.IdPlayer]) { if (thingForTrade.PathforTrade != null) { thingForTrade.PathforTrade.IdPlayer = thingForTrade.ForWhichPlayer.IdPlayer; } else { thingForTrade.ForWhichPlayer.Money += thingForTrade.Price; thingForTrade.FromWhichPlayer.Money -= thingForTrade.Price; } } } else if (playerFrom.IdPlayer > playerFor.IdPlayer) { foreach (NetworkThingForTrade thingForTrade in things[playerFor.IdPlayer, playerFrom.IdPlayer]) { if (thingForTrade.PathforTrade != null) { thingForTrade.PathforTrade.IdPlayer = thingForTrade.ForWhichPlayer.IdPlayer; } else { thingForTrade.ForWhichPlayer.Money += thingForTrade.Price; thingForTrade.FromWhichPlayer.Money -= thingForTrade.Price; } } } //если игрок закладывает else { //для каждой улице в списке foreach (NetworkThingForTrade thingForTrade in things[playerFor.IdPlayer, playerFrom.IdPlayer]) { if (thingForTrade.PathforTrade != null) { BlockStreetPath(thingForTrade.PathforTrade, playerFor); } } } TradeClear(playerFor, playerFrom); }
//создаем ссылку на канву игры, объявляет ход игрока void Start() { if (_dbWork.GetNetworkGameCanvas() != null) { _gameCanvas = _dbWork.GetNetworkGameCanvas(); } if ((_gameCanvas == null && idPlayer == 1) || (_gameCanvas != null && _gameCanvas.GetComponent <NetworkGameController>().CurrentPlayer != null && _gameCanvas.GetComponent <NetworkGameController>().CurrentPlayer.IdPlayer == idPlayer)) { CurrentStep = true; } }
//сброс истории, обновление ссылки на дбворк, бросок кубиков первого игрока void Start() { aboutPlayer = ""; _dBwork = Camera.main.GetComponent <NetworkDBwork>(); _gameCanvas = gameObject.GetComponent <NetworkGameCanvas>(); posFirstDice = firstDice.transform.position; posSecondDice = secondDice.transform.position; CurrentPlayer = _dBwork.GetPlayer(); if (PhotonNetwork.isMasterClient && CurrentPlayer != null) { CurrentPlayer.NextStep(); } else { StartCoroutine(WaitForChanges()); } }
//вызов событий, если игрок остановился на этом участке 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); } }
public void SetGameCanvas(NetworkGameCanvas gameCanvas) { _gameCanvas = gameCanvas; }