//показать информацию об объекте private void onButtonInfoClick(int id, int type) { //type = 1 - streetspaths; 2 - players; 3 - builds string info = ""; switch (type) { case 1: PathForBuy pathForBuy = getDbWork().GetPathForBuy(id); if (pathForBuy != null) { info = "Название: " + pathForBuy.namePath + "\n" + "Владелец: " + getDbWork().GetPlayerbyId(pathForBuy.IdPlayer).NickName + "\n" + "Рента: " + pathForBuy.GetRenta() + "\n" + "Здания: " + pathForBuy.GetBuildsName() + "\n\n Информация об улице: " + getDbWork().getStreetById(pathForBuy.GetIdStreetParent()).AboutStreet; } else { StreetPath path = getDbWork().GetPathById(id); info = "Название: " + path.namePath + "\n" + "Гос. учереждение \n\n Информация об улице: " + getDbWork().getStreetById(path.GetIdStreetParent()).AboutStreet; } break; case 2: info = getDbWork().GetPlayerbyId(id).NickName + " " + getDbWork().GetPlayerbyId(id).Money; break; case 3: info = getDbWork().GetBuild(id).NameBuild + "\n" + getDbWork().GetBuild(id).AboutBuild; break; } ButtonWithInfo.GetComponentInChildren <Text>().text = info + "\n\n" + "(нажмите, чтобы закрыть)"; ButtonWithInfo.SetActive(true); }
//предложение о торговле от компьютерного игрока private void TryToTrade() { //монополии (не обязательно полные) бота List <int> monopolies = GetMyMonopolies(_dbWork.GetMyPathes(idPlayer)); //поиск pathforbuy которого не хватает до полной монополии int count = 0; PathForBuy trade = null; foreach (int monopoly in monopolies) { foreach (StreetPath path in _dbWork.GetPathsOfStreet(monopoly)) { if (trade == null) { PathForBuy pathForBuy = _dbWork.GetPathForBuy(path.GetIdStreetPath()); if (path.canBuy && pathForBuy.IdPlayer != 0 && pathForBuy.IdPlayer != idPlayer) { trade = pathForBuy; count = 1; break; } } } if (trade != null) { break; } } //если нет таких, то выходим if (trade == null) { return; } //поиск, какому игроку принадлежит улица Player player = _dbWork.GetPlayerbyId(trade.IdPlayer); Trade.CreateListThings(player, this); Trade.AddItemToList(player, this, trade); //проверяем, есть ли у этого игрока ещё улицы из этой монополии foreach (StreetPath streetPath in _dbWork.GetPathsOfStreet(trade.GetIdStreetParent())) { PathForBuy path = _dbWork.GetPathForBuy(streetPath.GetIdStreetPath()); if (streetPath.CanBuy && path.GetIdStreetPath() != trade.GetIdStreetPath() && path.IdPlayer == trade.IdPlayer) { Trade.AddItemToList(player, this, path); count++; } } //если достаточно денег, то записываем деньги в сделку и открываем игроку канву с предложением о сделке if (count * price <= money) { Trade.AddMoneyToList(player, this, count * price); if (!player.IsBot()) { _gameCanvas.OpenTradeFromBotToPlayer(this, player, count * price); } else { player.ThinkAboutTrade(this); } } else { //прописать отмену сделки } }