示例#1
0
    //вызов событий, если игрок остановился на этом участке
    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);
        }
    }
示例#2
0
    //Корутина движения
    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();
        }
    }