public void NovoJogo()
    {
        GameController.instancia.setarCampanhaAtiva(0);
        GameController.instancia.ativarCampanhas();
        //DEBUG
        GameController.instancia.AdicionarUnidadeAoJogador(BancoDeDados.instancia.retornarUnidade(2));
        GameController.instancia.AdicionarUnidadeAoJogador(BancoDeDados.instancia.retornarUnidade(3));

        LinhaDeProducao linhaTeste = new LinhaDeProducao();

        GameController.instancia.linhasDeProducao.Add(linhaTeste);
        LinhaDeProducao linhaTeste2 = new LinhaDeProducao();

        GameController.instancia.linhasDeProducao.Add(linhaTeste2);

        Nacoes Alemanha = BancoDeDados.instancia.retornarNacao(Pais.Alemanha);

        GameController.instancia.nacoesDoJogador.Add(Alemanha);

        //GameController.instancia.primeiroBatalhao[0].expUp(40000);

        GameController.instancia.organizarEquipamentoPorTipo();
        GameController.instancia.organizarUnidadesPorTipo();

        GameController.instancia.Combustivel += 50000;
        GameController.instancia.Metal       += 50000;
        GameController.instancia.Municao     += 100000;
        GameController.instancia.MaoDeObra   += 10000;
        GameController.instancia.Inspiracao  += 1000;
        //DEBUG
        SceneManager.LoadScene("HQ");
    }
    public void atualizarVisual(LinhaDeProducao linhaAAtualizar)
    {
        LinhaDeProducaoCarta linhaAModificar = linhasAtivas.First(x => x.linhaAssociada.Equals(linhaAAtualizar));

        popularCarta(linhaAModificar);
        atualizarInterfaceDoFeedback();
    }
示例#3
0
    }//Quando uma batalha acaba, as unidades que participaram dela recebem experiencia

    public void iniciarProducaoDeRecursos(LinhaDeProducao linha)
    {
        linha.proguesso = 100;
        linha.ppm       = 0;
        linha.terminada = false;
        linha.emEspera  = false;
        linha.ativa     = true;
        StartCoroutine(linha.produzir());
        LinhasDeProducaoController.instancia.atualizarVisual(linha);
    }
示例#4
0
 public void iniciarDesenvolvimento(Nacoes nacaoADesenvolver, LinhaDeProducao linha)
 {
     linha.proguesso = 0;
     linha.ppm       = (100f / 120f * (nacaoADesenvolver.nivel + 1f));
     linha.terminada = false;
     linha.emEspera  = false;
     linha.ativa     = true;
     linha.nacaoSendoDesenvolvida = nacaoADesenvolver;
     StartCoroutine(linha.produzir());
     LinhasDeProducaoController.instancia.atualizarVisual(linha);
 }
示例#5
0
 public void iniciarRecrutamento(Unidade unidadeRecrutada, LinhaDeProducao linha)
 {
     linha.proguesso             = 0;
     linha.ppm                   = 100 / calculoDeTempoDeProducaoDeUnidade(unidadeRecrutada);
     linha.terminada             = false;
     linha.emEspera              = false;
     linha.ativa                 = true;
     linha.unidadeSendoProduzida = unidadeRecrutada;
     StartCoroutine(linha.produzir());
     LinhasDeProducaoController.instancia.atualizarVisual(linha);
 }
示例#6
0
 public void iniciarConstrucao(Equipamento equipamentoConstruido, LinhaDeProducao linha)
 {
     linha.proguesso = 0;
     linha.ppm       = 100 / calculoDeTempoDeConstrucaoDeEquipamento(equipamentoConstruido);
     linha.terminada = false;
     linha.emEspera  = false;
     linha.ativa     = true;
     linha.equipamentoSendoConstruido = equipamentoConstruido;
     StartCoroutine(linha.produzir());
     LinhasDeProducaoController.instancia.atualizarVisual(linha);
 }
 public void trocarProducao(int slotClicado)
 {
     linhaSelecionada = linhasAtivas[slotClicado].linhaAssociada;
     if (linhaSelecionada.terminada)
     {
         return;
     }
     else if (linhasAtivas[slotClicado].linhaAssociada.ativa)
     {
         apresentarPrompt();
     }
     else
     {
         mostrarOpcoesDeProducao();
     }
     mascaraDeOpcoes.SetActive(true);
 }
示例#8
0
        public void recuperarInformacoes()
        {
            //Começando pelas unidades do jogador...
            foreach (UnidadeData uniData in unidadesDoJogador)
            {
                Unidade novaUnidade = BancoDeDados.instancia.retornarUnidade(uniData.idBD);
                //Reestabelecendo dados básicos
                novaUnidade.lvl              = uniData.lvl;
                novaUnidade.idDaUnidade      = uniData.id;
                novaUnidade.experienciaAtual = uniData.exp;
                //Recuperando equipamentos equipados na unidades
                foreach (int idDoEquipamento in uniData.equipamentosID)
                {
                    if (idDoEquipamento != -1)
                    {
                        Equipamento equipamentoEquipado = BancoDeDados.instancia.retornarEquipamento(idDoEquipamento);
                        novaUnidade.equipamento.Add(equipamentoEquipado);
                    }
                }
                //Deployando unidade no batalhão que estava anteriormente
                switch (uniData.batalhao)
                {
                case 1: GameController.instancia.primeiroBatalhao.Add(novaUnidade); break;

                case 2: GameController.instancia.segundoBatalhao.Add(novaUnidade); break;

                case 3: GameController.instancia.terceiroBatalhao.Add(novaUnidade); break;

                case 4: GameController.instancia.reservas.Add(novaUnidade); break;
                }
            }
            //Agora os equipamentos...
            //Bem simples, recupear o equipamento pelo ID então coloca-lo no pool de equipamentos do jogador
            foreach (EquipamentoData equipData in equipamentosDoJogador)
            {
                Equipamento equipamentoIdle = BancoDeDados.instancia.retornarEquipamento(equipData.id);
                GameController.instancia.equipamentos.Add(equipamentoIdle);
            }
            //Agora as informações gerais do jogo, como recursos, campanha ativa e etc.
            GameController.instancia.Metal       = informacoesDoJogo.metal;
            GameController.instancia.Combustivel = informacoesDoJogo.combustivel;
            GameController.instancia.MaoDeObra   = informacoesDoJogo.maoDeObra;
            GameController.instancia.Municao     = informacoesDoJogo.municao;
            GameController.instancia.Inspiracao  = informacoesDoJogo.inspiracao;
            GameController.instancia.idCont      = informacoesDoJogo.idCont;
            GameController.instancia.setarCampanhaAtiva(informacoesDoJogo.campanhaAtiva);
            GameController.instancia.ativarCampanhas();

            //Agora as informações dos desenvolvimentos das nações
            foreach (NationsData natData in informacoesDasNacoes)
            {
                Nacoes novaNacao = BancoDeDados.instancia.retornarNacao((Pais)natData.Pais);
                novaNacao.nivel = natData.nivelAtual;
                GameController.instancia.nacoesDoJogador.Add(novaNacao);
            }

            //Agora as informações de linhas de desenvolvimento
            //Parece complicado mas é nescessariamente : Ativa > Continuar producção, Inativa > Do nothing
            foreach (LinhaDeProducaoData lData in linhasDeProducao)
            {
                LinhaDeProducao linhaNova = new LinhaDeProducao();
                linhaNova.ppm            = lData.ppm;
                linhaNova.proguesso      = lData.proguessoAtual;
                linhaNova.tipoDeProducao = (ProducaoTipo)lData.tipoDeProducao;
                linhaNova.ativa          = lData.ativa;
                switch (linhaNova.tipoDeProducao)
                {
                case ProducaoTipo.Inativa:
                    break;

                case ProducaoTipo.Desenvolvimento:
                    linhaNova.nacaoSendoDesenvolvida = instancia.nacoesDoJogador.First(nation => nation.pais == (Pais)lData.idDaUnidadeOuDesenvolvimentoOuEquipamento);
                    instancia.despausarProducao(linhaNova);
                    break;

                case ProducaoTipo.Construcao:
                    linhaNova.equipamentoSendoConstruido = BancoDeDados.instancia.retornarEquipamento(lData.idDaUnidadeOuDesenvolvimentoOuEquipamento);
                    instancia.despausarProducao(linhaNova);
                    break;

                case ProducaoTipo.Recrutamento:
                    linhaNova.unidadeSendoProduzida = BancoDeDados.instancia.retornarUnidade(lData.idDaUnidadeOuDesenvolvimentoOuEquipamento);
                    instancia.despausarProducao(linhaNova);
                    break;

                case ProducaoTipo.Combustivel:
                case ProducaoTipo.Metais:
                case ProducaoTipo.Municao:
                case ProducaoTipo.BensDeConsumo:
                    instancia.iniciarProducaoDeRecursos(linhaNova);
                    break;
                }
                instancia.linhasDeProducao.Add(linhaNova);
                if (linhaNova.tipoDeProducao != ProducaoTipo.Inativa)
                {
                    GameController.instancia.despausarProducao(linhaNova);
                }
            }
        }
示例#9
0
 public void despausarProducao(LinhaDeProducao linha)
 {
     linha.ativa    = true;
     linha.emEspera = false;
     StartCoroutine(linha.produzir());
 }