Ejemplo n.º 1
0
    //показать информацию об объекте
    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);
    }
Ejemplo n.º 2
0
    //предложение о торговле от компьютерного игрока
    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
        {
            //прописать отмену сделки
        }
    }