示例#1
0
        public void MoverJogador(int casa)
        {
            if (RPCDeJogadores.DeveUsarRPC())
            {
                RPCDeJogadores.UsarRPCArg("RPC_MoverJogador", casa);
                return;
            }
            Debug.LogFormat("MoverJogador({0})", casa);

            //if (!autoridade)
            //    return;

            _escolheRota.estadoUICarta(false);
            StartCoroutine(MovAtual.ProcuraCasa((TiposCasa)casa));
        }
示例#2
0
        public void EscolherRota(bool confirmacao)
        {
            if (RPCDeJogadores.DeveUsarRPC())
            {
                RPCDeJogadores.UsarRPCArg("RPC_EscolherRota", confirmacao);
                return;
            }

            jogador = GerenciadorPartida.MovAtual;

            if (confirmacao)
            {
                indice             = 0;
                jogador.paraFrente = paraFrente;

                jogador.SetCasaAtual(casaTemp);
                StartCoroutine(jogador.ProcuraCasa(jogador.proximaCor));

                estadoUIRota(false); //Esconde a escolha de rota
            }
            else
            {
                CasaBase _casaBase = jogador.casaAtual.GetComponent <CasaBase>();
                indice++;

                if (paraFrente && indice == _casaBase.casaSeguinte.Count)
                {
                    paraFrente = false;
                    indice     = 0;
                }
                else if (!paraFrente && indice == _casaBase.casaAnterior.Count)
                {
                    paraFrente = true;
                    indice     = 0;
                }

                if (paraFrente)
                {
                    casaTemp = _casaBase.casaSeguinte[indice];
                }
                else
                {
                    casaTemp = _casaBase.casaAnterior[indice];
                }

                setaObj.transform.position = casaTemp.position;
            }
        }
示例#3
0
        public void GerarCarta()
        {
            if (RPCDeJogadores.DeveUsarRPC())
            {
                RPCDeJogadores.UsarRPC("RPC_GerarCarta");
                return;
            }

            Debug.Log("GerarCarta()");

            float     rand = Random.value;
            TiposCasa carta;

            if (rand <= 0.1f) // 10%
            {
                carta = TiposCasa.BemMal;
                _painelCartas.MudaDescricao(carta, "Benção ou Maldição");
            }
            else if (rand <= 0.2f) // 10%
            {
                carta = TiposCasa.Garrafa;
            }
            else if (rand <= 0.35f) // 15%
            {
                carta = TiposCasa.Acontecimento;
                _painelCartas.MudaDescricao(carta, "Acontecimento Aleatório");
            }
            else if (rand <= 0.50f) // 15%
            {
                carta = TiposCasa.PowerUp;
                _painelCartas.MudaDescricao(carta, "Melhoramento Aleatório");
            }
            else if (rand <= 0.85f) // 35%
            {
                carta = TiposCasa.Moeda;
            }
            else // 15%
            {
                carta = TiposCasa.MiniJogo;
            }

            _escolheRota.estadoPowerUp = true;
            _escolheRota.AlteraEstadoPowerUps();

            PainelCartas.MostrarCarta(carta);

            _gerenPartida.MoverJogador((int)carta);
        }
示例#4
0
        public void AtivarEscolha(int i)
        {
            if (RPCDeJogadores.DeveUsarRPC())
            {
                RPCDeJogadores.UsarRPCArg("RPC_AtivarEscolha", i);
                return;
            }

            Inventario inv = GerenciadorPartida.InvAtual;

            if (i < inv.powerUps.Count)
            {
                jogadorEscolhido = -1;
                textoBtn.text    = "Escolher Jogador";
                powerUpEscolhido = inv.powerUps[i].tipo;
                pnlEscolherJogador.SetActive(true);
                Debug.Log(powerUpEscolhido);
            }
        }
示例#5
0
        public void escolheJogador()
        {
            if (RPCDeJogadores.DeveUsarRPC())
            {
                RPCDeJogadores.UsarRPC("RPC_escolheJogador");
                return;
            }

            int qtdJogadores = GerenciadorGeral.qtdJogadores;

            jogadorEscolhido++;
            jogadorEscolhido %= qtdJogadores;

            if (jogadorEscolhido == GerenciadorPartida.Turno)
            {
                jogadorEscolhido = ++jogadorEscolhido % qtdJogadores;
            }

            textoBtn.text = "Jogador " + (jogadorEscolhido + 1);
        }
示例#6
0
        public void AtivarPowerUp()
        {
            if (RPCDeJogadores.DeveUsarRPC())
            {
                RPCDeJogadores.UsarRPC("RPC_AtivarPowerUp");
                return;
            }

            if (jogadorEscolhido != -1)
            {
                pnlEscolherJogador.SetActive(false);
                _escolheRota.AlteraEstadoPowerUps();

                MethodInfo metodo = GetType().GetMethod(powerUpEscolhido.ToString());

                metodo.Invoke(this, null);

                GerenciadorPartida gp = FindObjectOfType <GerenciadorPartida>();
                gp.NovaRodada();
            }
        }
示例#7
0
        public void AlteraEstadoPowerUps(int i = -1)
        {
            if (RPCDeJogadores.DeveUsarRPC())
            {
                RPCDeJogadores.UsarRPCArg("RPC_AlteraEstadoPowerUps", i);
                return;
            }

            if (i < 0)
            {
                i = GerenciadorPartida.Turno;
            }
            estadoPowerUp = !estadoPowerUp;

            if (!GerenciadorGeral.modoOnline)
            {
                UIPowerUps.transform.GetChild(i).gameObject.SetActive(estadoPowerUp);
            }
            else
            {
                meuPV.RPC("RPC_EstadoPowerUpSetActive", RpcTarget.All, i, estadoPowerUp);
            }
        }