public void CheckForBankrupt(NetworkPlayer player)
    {
        bool       haveNotBlockedStreets = false;
        List <int> paths = _dBwork.GetMyPathes(player.IdPlayer);

        foreach (int path in paths)
        {
            if (!_dBwork.GetPathForBuy(path).IsBlocked)
            {
                haveNotBlockedStreets = true;
                break;
            }
        }

        if (haveNotBlockedStreets)
        {
            StartCoroutine(Bankrupting());
        }

//        else
//        {
//            player.IsBankrupt = true;
//        }
    }
Esempio n. 2
0
    //открыть окно торговли с этим игроком
    public void onButtonClickTrade(int idPlayerSecond)
    {
        //открываем меню торговли
        ChangeMenu(4);
        //обновляем ссылку на дбворк
        _dBwork = getDbWork();
        //создаем список товаров на продажу
        NetworkTrade.CreateListThings(getCurrentPlayer(), _dBwork.GetPlayerbyId(idPlayerSecond));
        //вешаем скрипт на кнопку подтверждения предложения
        ApplyTrade.onClick.AddListener(() =>
                                       NetworkTrade.TradeApply(getCurrentPlayer(), _dBwork.GetPlayerbyId(idPlayerSecond), this, moneyFirstPlayer,
                                                               moneySecondPlayer));
        //назначаем имя первого игрока
        firstPlayer.GetComponentInChildren <Text>().text = getCurrentPlayer().NickName;
        //узнаем улицы первого игрока
        List <int> pathsFirstPlayer = _dBwork.GetMyPathes(getCurrentPlayer().IdPlayer);

        //если торгуем с другим игроком
        if (idPlayerSecond != getCurrentPlayer().IdPlayer)
        {
            //назначаем имя второго игрока
            secondPlayer.GetComponentInChildren <Text>().text = _dBwork.GetPlayerbyId(idPlayerSecond).NickName;

            //собираем список улиц первого игрока в первом скроле
            foreach (var path in pathsFirstPlayer)
            {
                //если улица заложена, то она не отображается доступной к продаже
                if (_dBwork.GetPathForBuy(path).IsBlocked)
                {
                    continue;
                }

                GameObject prefButton = Instantiate(prefButStreetForTrade);
                prefButton.GetComponentInChildren <Text>().text = _dBwork.GetPathById(path).namePath;
                prefButton.GetComponent <RectTransform>().SetParent(scrollFirstPlayerStreets.content, false);
                prefButton.GetComponent <Button>().onClick
                .AddListener(() =>
                             onButtonAddOrDeleteOfferStreet(prefButton, getCurrentPlayer(),
                                                            _dBwork.GetPlayerbyId(idPlayerSecond), path));
            }

            //создаем список улиц второго игрока
            List <int> pathsSecondPlayer = _dBwork.GetMyPathes(idPlayerSecond);

            //собираем список улиц второго игрока во втором скроле
            foreach (var path in pathsSecondPlayer)
            {
                //если улица заложена, то она не отображается доступной к продаже
                if (_dBwork.GetPathForBuy(path).IsBlocked)
                {
                    continue;
                }

                GameObject prefButton = Instantiate(prefButStreetForTrade);
                prefButton.GetComponentInChildren <Text>().text = _dBwork.GetPathById(path).namePath;
                prefButton.GetComponent <RectTransform>().SetParent(scrollSecondPlayerStreets.content, false);
                prefButton.GetComponent <Button>().onClick
                .AddListener(() =>
                             onButtonAddOrDeleteOfferStreet(prefButton, getCurrentPlayer(),
                                                            _dBwork.GetPlayerbyId(idPlayerSecond), path));
            }

            //отражаем максимальное количество денег первого игрока
            sliderMoneyFirst.maxValue = getCurrentPlayer().Money;
            //включаем слайдер первого игрока
            sliderMoneyFirst.gameObject.SetActive(true);
            //отражаем максимальное количество денег второго игрока
            sliderMoneySecond.maxValue = _dBwork.GetPlayerbyId(idPlayerSecond).Money;
            //включаем слайдер второго игрока
            sliderMoneySecond.gameObject.SetActive(true);

            //разрешаем заполнение игроком полей денег
            InputFieldMoneyFirst.gameObject.GetComponent <CanvasGroup>().interactable  = true;
            InputFieldMoneySecond.gameObject.GetComponent <CanvasGroup>().interactable = true;
        }
        //если открыли меню закладывания улиц
        else
        {
            //назначаем город вторым участником обмена
            secondPlayer.GetComponentInChildren <Text>().text = "Город";
            //Выключаем слайдеры
            sliderMoneyFirst.gameObject.SetActive(false);
            sliderMoneySecond.gameObject.SetActive(false);
            //запрещаем заполнение игроком полей денег
            InputFieldMoneyFirst.gameObject.GetComponent <CanvasGroup>().interactable  = false;
            InputFieldMoneySecond.gameObject.GetComponent <CanvasGroup>().interactable = false;

            //раскидываем улицы по скролам в зависимости от того заложены они или нет
            foreach (var path in pathsFirstPlayer)
            {
                GameObject prefButton = Instantiate(prefButStreetForTrade);
                prefButton.GetComponentInChildren <Text>().text = _dBwork.GetPathById(path).namePath;

                if (_dBwork.GetPathForBuy(path).IsBlocked)
                {
                    prefButton.GetComponent <RectTransform>().SetParent(scrollSecondPlayerStreets.content, false);
                }
                else
                {
                    prefButton.GetComponent <RectTransform>().SetParent(scrollFirstPlayerStreets.content, false);
                }

                prefButton.GetComponent <Button>().onClick
                .AddListener(() =>
                             onButtonAddOrDeleteOfferStreet(prefButton, getCurrentPlayer(),
                                                            getCurrentPlayer(), path));
            }
        }
    }