示例#1
0
    //применение результата торговли к игровым объектам
    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);
    }
示例#2
0
 //создаем ссылку на канву игры, объявляет ход игрока
 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());
        }
    }
示例#4
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);
        }
    }
示例#5
0
 public void SetGameCanvas(NetworkGameCanvas gameCanvas)
 {
     _gameCanvas = gameCanvas;
 }