예제 #1
0
        public void NovaRodada()
        {
            //if (!autoridade)
            //    return;

            TabuleiroHUD.FundoJogador(TabuleiroHUD.corOff);

            //Aumenta turno
            Turno = ++Turno % OrdemJogadores.Count;

            //Altera jogador atual
            MovAtual = OrdemJogadores[Turno].GetComponent <Movimentacao>();
            InvAtual = OrdemJogadores[Turno].GetComponent <Inventario>();

            TabuleiroHUD.FundoJogador(TabuleiroHUD.corOn);

            //Jogador atual joga caso não esteja preso
            if (InvAtual.rodadasPreso > 0)
            {
                Debug.Log("StartCoroutine(diminuiRodadasPreso(1f, 3f))");
                StartCoroutine(diminuiRodadasPreso(1f, 3f));
            }
            else
            {
                Debug.Log("estadoUICarta(true)");
                _escolheRota.estadoUICarta(true);
            }

            if (InvAtual.rodadasSemObj > 0)
            {
                InvAtual.rodadasSemObj--;
            }

            if (GerenciadorGeral.modoOnline)
            {
                if (PhotonNetwork.IsMasterClient)
                {
                    meuPV.RPC("RPC_DefAlvo", RpcTarget.All, Turno);
                }
            }
            else
            {
                DefAlvo(Turno);
            }
        }
예제 #2
0
        private void Start()
        {
            meuPV = GetComponent <PhotonView>();
            GameObject tronco_gbj = FindObjectOfType <TabuleiroRaiz>().tronco_gbj;

            jaInicializado = OrdemJogadores.Count != 0;

            bool autoridade = GerenciadorGeral.modoOnline
                                ? PhotonNetwork.IsMasterClient
                                : true;

            if (!autoridade)
            {
                return;
            }

            if (!jaInicializado)
            {
                meuPV.RPC("RPC_DefQtd", RpcTarget.Others, GerenciadorGeral.qtdJogadores);

                for (int i = 0; i < GerenciadorGeral.qtdJogadores; i++)
                {
                    Transform jogador;

                    if (!GerenciadorGeral.modoOnline)
                    {
                        jogador = Instantiate(
                            jogadorPrefabs[i],
                            Vector3.zero,
                            Quaternion.identity,
                            tronco_gbj.transform
                            ).transform;
                    }
                    else
                    {
                        jogador = PhotonNetwork.InstantiateSceneObject(
                            jogadorPrefabs[i].name,
                            Vector3.zero,
                            Quaternion.identity
                            ).transform;
                        //jogador.SetParent(tronco_gbj.transform);

                        //if (i > 0)
                        //{
                        //var jogador_pv = jogador.GetComponent<PhotonView>();
                        //DsvUtils.InspetorPhoton.ImprimirDicio(PhotonNetwork.CurrentRoom.Players);
                        //var player = PhotonNetwork.CurrentRoom.Players[i+1];
                        //jogador_pv.TransferOwnership(player);
                        //}

                        var jogador_pv = jogador.GetComponent <PhotonView>();
                        var player     = PhotonNetwork.CurrentRoom.Players[i + 1];
                        jogador_pv.RPC("RPC_DarPosse", RpcTarget.All, i);
                    }

                    OrdemJogadores.Add(jogador.transform);
                }

                MovAtual = OrdemJogadores[0].GetComponent <Movimentacao>();
                InvAtual = OrdemJogadores[0].GetComponent <Inventario>();

                _escolheRota.estadoUIRota(false);
                _escolheRota.estadoUICarta(true);

                TabuleiroHUD.FundoJogador(TabuleiroHUD.corOn);

                if (GerenciadorGeral.modoOnline)
                {
                    meuPV.RPC("RPC_DefAlvo", RpcTarget.All, ObterJogadorAtivo());
                }
                else
                {
                    DefAlvo(ObterJogadorAtivo());
                }
            }
        }