Exemplo n.º 1
0
    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 popularTelaDeResultadoDoDesenvolvimento(Nacoes nacaoDesenvolvida)
 {
     nomeDaNacao.sprite               = BancoDeDados.instancia.nomesDeNacoes[(int)nacaoDesenvolvida.pais];
     simboloDaNacaoImage.sprite       = BancoDeDados.instancia.iconesDeNacoes[(int)nacaoDesenvolvida.pais];
     anoDoDesenvolvimento.sprite      = anosDeDesenvolvimento[nacaoDesenvolvida.nivel];
     descricaoDoNivelTecnologico.text = nacaoDesenvolvida.descricoesTecnologicas[nacaoDesenvolvida.nivel];
 }
Exemplo n.º 3
0
 public void mudarPaisAtual()
 {
     nacaoAtual = nacoesAtivas[nacao.value];
     nacao.Select();
     nacao.RefreshShownValue();
     PopularDesenvolvimentoHolder();
     mostrarCustos();
 }
Exemplo n.º 4
0
 public void mudarPaisAtual()
 {
     nacaoAtual = nacoesAtivas[nacao.value];
     nacao.Select();
     nacao.RefreshShownValue();
     mudancaDeInvestimento();
     popularNacaoEscolhida();
 }
Exemplo n.º 5
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);
 }
Exemplo n.º 6
0
    private void verificarPossibilidadeDeMordenizacao()
    {
        Pais   paisDoAlvo          = unidadeMordenizada.nacionalidade;
        Nacoes desenvolvimentoAlvo = GameController.instancia.nacoesDoJogador.Find(d => paisDoAlvo == d.pais);

        if (calcularCustoDeMordenizacao() && //Tem recursos o suficiente (Também atualiza a interface por isso vem primeiro)
            unidadeAtual.lvl > unidadeAtual.upgradeLvl && //Está no nivel minimo
            desenvolvimentoAlvo.nivel >= unidadeMordenizada.desenvolvimentoRequerido && //Tem tecnologia o suficiente
            !unidadeMordenizada.Equals(null))    // Não chegou ao utlimo estagio de mordenização, não há mais o que atualizar
        {
            recrutar.interactable = true;
        }
        else
        {
            recrutar.interactable = false;
        }
    }
Exemplo n.º 7
0
    public void ApresentarVisualDesenvolvimento()
    {
        nacao.options.Clear();
        nacoesAtivas = new List <Nacoes>();
        foreach (Nacoes n in GameController.instancia.nacoesDoJogador)
        {
            if (n.nivel != n.nivelLimite && !n.emDesenvolvimento)
            {
                nacao.options.Add(new Dropdown.OptionData {
                    image = BancoDeDados.instancia.nomesDeNacoes[(int)n.pais]
                });
                nacoesAtivas.Add(n);
            }
        }
        nacaoAtual  = nacoesAtivas[0];
        nacao.value = 0;

        PopularDesenvolvimentoHolder();

        mudarPaisAtual();
        checarRecursos();
    }
Exemplo n.º 8
0
    //Recrutamento a partir de uma linha de produção, unico jeito de conseguir unidades 5*
    public Unidade Recrutamento(int nivelDeInvestimento, Nacoes desenvolvimentoDoPais)
    {
        int numeroAleatorio = UnityEngine.Random.Range(0, 100);
        IEnumerable <Unidade> recrutamentosPossiveis = BancoDeDados.instancia.unidadesDoJogo.Where(x => (x.nacionalidade == desenvolvimentoDoPais.pais) && (x.desenvolvimentoRequerido <= desenvolvimentoDoPais.nivel));

        if (recrutamentosPossiveis.Count() == 0)
        {
            return(null);
        }

        switch (nivelDeInvestimento)
        {
        case 4:    //Investimento Muito Alto no recrutamento
            if (numeroAleatorio > 94)
            {
                IEnumerable <Unidade> recrutamento5stars = recrutamentosPossiveis.Where(x => x.raridade == 5);
                int qual = UnityEngine.Random.Range(0, recrutamento5stars.Count());
                if (recrutamento5stars.Count() != 0)
                {
                    return(recrutamento5stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 84)
            {
                IEnumerable <Unidade> recrutamento4stars = recrutamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, recrutamento4stars.Count());
                if (recrutamento4stars.Count() != 0)
                {
                    return(recrutamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 64)
            {
                IEnumerable <Unidade> recrutamento3stars = recrutamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, recrutamento3stars.Count());
                if (recrutamento3stars.Count() != 0)
                {
                    return(recrutamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 34)
            {
                IEnumerable <Unidade> recrutamento2stars = recrutamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, recrutamento2stars.Count());
                if (recrutamento2stars.Count() != 0)
                {
                    return(recrutamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 14)
            {
                IEnumerable <Unidade> recrutamento1star = recrutamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, recrutamento1star.Count());
                if (recrutamento1star.Count() != 0)
                {
                    return(recrutamento1star.ElementAt(qual));
                }
            }
            return(null);

        case 3:
            if (numeroAleatorio > 98)
            {
                IEnumerable <Unidade> recrutamento5stars = recrutamentosPossiveis.Where(x => x.raridade == 5);
                int qual = UnityEngine.Random.Range(0, recrutamento5stars.Count());
                if (recrutamento5stars.Count() != 0)
                {
                    return(recrutamento5stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 80)
            {
                IEnumerable <Unidade> recrutamento4stars = recrutamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, recrutamento4stars.Count());
                if (recrutamento4stars.Count() != 0)
                {
                    return(recrutamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 50)
            {
                IEnumerable <Unidade> recrutamento3stars = recrutamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, recrutamento3stars.Count());
                if (recrutamento3stars.Count() != 0)
                {
                    return(recrutamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 30)
            {
                IEnumerable <Unidade> recrutamento2stars = recrutamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, recrutamento2stars.Count());
                if (recrutamento2stars.Count() != 0)
                {
                    return(recrutamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 20)
            {
                IEnumerable <Unidade> recrutamento1star = recrutamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, recrutamento1star.Count());
                if (recrutamento1star.Count() != 0)
                {
                    return(recrutamento1star.ElementAt(qual));
                }
            }
            return(null);

        case 2:
            if (numeroAleatorio > 89)
            {
                IEnumerable <Unidade> recrutamento4stars = recrutamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, recrutamento4stars.Count());
                if (recrutamento4stars.Count() != 0)
                {
                    return(recrutamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 70)
            {
                IEnumerable <Unidade> recrutamento3stars = recrutamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, recrutamento3stars.Count());
                if (recrutamento3stars.Count() != 0)
                {
                    return(recrutamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 50)
            {
                IEnumerable <Unidade> recrutamento2stars = recrutamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, recrutamento2stars.Count());
                if (recrutamento2stars.Count() != 0)
                {
                    return(recrutamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 45)
            {
                IEnumerable <Unidade> recrutamento1star = recrutamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, recrutamento1star.Count());
                if (recrutamento1star.Count() != 0)
                {
                    return(recrutamento1star.ElementAt(qual));
                }
            }

            return(null);

        case 1:
            if (numeroAleatorio > 98)
            {
                IEnumerable <Unidade> recrutamento4stars = recrutamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, recrutamento4stars.Count());
                if (recrutamento4stars.Count() != 0)
                {
                    return(recrutamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 80)
            {
                IEnumerable <Unidade> recrutamento3stars = recrutamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, recrutamento3stars.Count());
                if (recrutamento3stars.Count() != 0)
                {
                    return(recrutamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 65)
            {
                IEnumerable <Unidade> recrutamento2stars = recrutamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, recrutamento2stars.Count());
                if (recrutamento2stars.Count() != 0)
                {
                    return(recrutamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 35)
            {
                IEnumerable <Unidade> recrutamento1star = recrutamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, recrutamento1star.Count());
                if (recrutamento1star.Count() != 0)
                {
                    return(recrutamento1star.ElementAt(qual));
                }
            }
            return(null);

        case 0:
            if (numeroAleatorio > 90)
            {
                IEnumerable <Unidade> recrutamento3stars = recrutamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, recrutamento3stars.Count());
                if (recrutamento3stars.Count() != 0)
                {
                    return(recrutamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 75)
            {
                IEnumerable <Unidade> recrutamento2stars = recrutamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, recrutamento2stars.Count());
                if (recrutamento2stars.Count() != 0)
                {
                    return(recrutamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 60)
            {
                IEnumerable <Unidade> recrutamento1star = recrutamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, recrutamento1star.Count());
                if (recrutamento1star.Count() != 0)
                {
                    return(recrutamento1star.ElementAt(qual));
                }
            }
            return(null);
        }
        return(null);
    }//Uniade que o jogador consegue recrutar dependendo do quanto ele investiu e o desenvolvimento do pais
Exemplo n.º 9
0
    //-------------------------------DESENVOLVIMETNO/CONSTRUÇÃO/DROPS------------------------
    //Construção a partir de uma linha de produção, unico jeito de conseguir equipamentos 5*
    public Equipamento Construcao(int nivelDeInvestimento, Nacoes desenvolvimentoDoPais)
    {
        int numeroAleatorio = UnityEngine.Random.Range(0, 100);
        IEnumerable <Equipamento> equipamentosPossiveis = BancoDeDados.instancia.equipamentosDoJogo.Where(x => (x.paisDeOrigem == desenvolvimentoDoPais.pais) && (x.desenvolvimentoNescessario <= desenvolvimentoDoPais.nivel));

        if (equipamentosPossiveis.Count() == 0)
        {
            return(null);
        }
        switch (nivelDeInvestimento)
        {
        case 4:    //Investimento de elite na construção de equipamento, 6% de chance de equipamento 5*
            if (numeroAleatorio > 94)
            {
                IEnumerable <Equipamento> equipamento5stars = equipamentosPossiveis.Where(x => x.raridade == 5);
                int qual = UnityEngine.Random.Range(0, equipamento5stars.Count());
                if (equipamento5stars.Count() != 0)
                {
                    return(equipamento5stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 84)
            {
                IEnumerable <Equipamento> equipamento4stars = equipamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, equipamento4stars.Count());
                if (equipamento4stars.Count() != 0)
                {
                    return(equipamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 64)
            {
                IEnumerable <Equipamento> equipamento3stars = equipamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, equipamento3stars.Count());
                if (equipamento3stars.Count() != 0)
                {
                    return(equipamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 34)
            {
                IEnumerable <Equipamento> equipamento2stars = equipamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, equipamento2stars.Count());
                if (equipamento2stars.Count() != 0)
                {
                    return(equipamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 14)
            {
                IEnumerable <Equipamento> equipamento1star = equipamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, equipamento1star.Count());
                if (equipamento1star.Count() != 0)
                {
                    return(equipamento1star.ElementAt(qual));
                }
            }
            return(null);

        case 3:    //Investimento avançado na construção de equipamento 2% de chance de equipamento 5*
            if (numeroAleatorio > 98)
            {
                IEnumerable <Equipamento> equipamento5stars = equipamentosPossiveis.Where(x => x.raridade == 5);
                int qual = UnityEngine.Random.Range(0, equipamento5stars.Count());
                if (equipamento5stars.Count() != 0)
                {
                    return(equipamento5stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 90)
            {
                IEnumerable <Equipamento> equipamento4stars = equipamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, equipamento4stars.Count());
                if (equipamento4stars.Count() != 0)
                {
                    return(equipamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 74)
            {
                IEnumerable <Equipamento> equipamento3stars = equipamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, equipamento3stars.Count());
                if (equipamento3stars.Count() != 0)
                {
                    return(equipamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 54)
            {
                IEnumerable <Equipamento> equipamento2stars = equipamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, equipamento2stars.Count());
                if (equipamento2stars.Count() != 0)
                {
                    return(equipamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 29)
            {
                IEnumerable <Equipamento> equipamento1star = equipamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, equipamento1star.Count());
                if (equipamento1star.Count() != 0)
                {
                    return(equipamento1star.ElementAt(qual));
                }
            }
            return(null);

        case 2:    //Investimento de elite na construção de equipamento, sem chance de equipamento 5*
            if (numeroAleatorio > 89)
            {
                IEnumerable <Equipamento> equipamento4stars = equipamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, equipamento4stars.Count());
                if (equipamento4stars.Count() != 0)
                {
                    return(equipamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 70)
            {
                IEnumerable <Equipamento> equipamento3stars = equipamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, equipamento3stars.Count());
                if (equipamento3stars.Count() != 0)
                {
                    return(equipamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 50)
            {
                IEnumerable <Equipamento> equipamento2stars = equipamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, equipamento2stars.Count());
                if (equipamento2stars.Count() != 0)
                {
                    return(equipamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 35)
            {
                IEnumerable <Equipamento> equipamento1star = equipamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, equipamento1star.Count());
                if (equipamento1star.Count() != 0)
                {
                    return(equipamento1star.ElementAt(qual));
                }
            }
            return(null);

        case 1:
            if (numeroAleatorio > 98)
            {
                IEnumerable <Equipamento> equipamento4stars = equipamentosPossiveis.Where(x => x.raridade == 4);
                int qual = UnityEngine.Random.Range(0, equipamento4stars.Count());
                if (equipamento4stars.Count() != 0)
                {
                    return(equipamento4stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 80)
            {
                IEnumerable <Equipamento> equipamento3stars = equipamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, equipamento3stars.Count());
                if (equipamento3stars.Count() != 0)
                {
                    return(equipamento3stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 65)
            {
                IEnumerable <Equipamento> equipamento2stars = equipamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, equipamento2stars.Count());
                if (equipamento2stars.Count() != 0)
                {
                    return(equipamento2stars.ElementAt(qual));
                }
            }
            if (numeroAleatorio > 45)
            {
                IEnumerable <Equipamento> equipamento1star = equipamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, equipamento1star.Count());
                if (equipamento1star.Count() != 0)
                {
                    return(equipamento1star.ElementAt(qual));
                }
            }
            return(null);

        case 0:
            if (numeroAleatorio > 90)
            {
                IEnumerable <Equipamento> equipamento3stars = equipamentosPossiveis.Where(x => x.raridade == 3);
                int qual = UnityEngine.Random.Range(0, equipamento3stars.Count());
                if (equipamento3stars.Count() != 0)
                {
                    return(equipamento3stars.ElementAt(qual));
                }
            }
            else if (numeroAleatorio > 75)
            {
                IEnumerable <Equipamento> equipamento2stars = equipamentosPossiveis.Where(x => x.raridade == 2);
                int qual = UnityEngine.Random.Range(0, equipamento2stars.Count());
                if (equipamento2stars.Count() != 0)
                {
                    return(equipamento2stars.ElementAt(qual));
                }
            }
            else if (numeroAleatorio > 60)
            {
                IEnumerable <Equipamento> equipamento1star = equipamentosPossiveis.Where(x => x.raridade == 1);
                int qual = UnityEngine.Random.Range(0, equipamento1star.Count());
                if (equipamento1star.Count() != 0)
                {
                    return(equipamento1star.ElementAt(qual));
                }
            }
            return(null);
        }
        return(null);
    }
Exemplo n.º 10
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);
                }
            }
        }
Exemplo n.º 11
0
    private bool calcularCustoDeMordenizacao()
    {
        switch (unidadeMordenizada.classe)
        {
        case Classe.Infantaria: custoCombustivel = 50; custoMunicao = 200; custoMetal = 200; custoMDO = 100; custoInspiracao = 1; break;

        case Classe.InfantariaNaval: custoCombustivel = 50; custoMunicao = 200; custoMetal = 200; custoMDO = 100; custoInspiracao = 5; break;

        case Classe.InfantariaAlpina: custoCombustivel = 50; custoMunicao = 200; custoMetal = 200; custoMDO = 100; custoInspiracao = 5; break;

        case Classe.Artilharia: custoCombustivel = 50; custoMunicao = 300; custoMetal = 300; custoMDO = 10; custoInspiracao = 1; break;

        case Classe.AntiTank: custoCombustivel = 50; custoMunicao = 300; custoMetal = 300; custoMDO = 10; custoInspiracao = 1; break;

        case Classe.RocketArtilharia: custoCombustivel = 50; custoMunicao = 300; custoMetal = 300; custoMDO = 10; custoInspiracao = 5; break;

        case Classe.Cavalaria: custoCombustivel = 100; custoMunicao = 200; custoMetal = 200; custoMDO = 150; custoInspiracao = 1; break;

        case Classe.FullMecanizada: custoCombustivel = 400; custoMunicao = 400; custoMetal = 400; custoMDO = 250; custoInspiracao = 10; break;

        case Classe.FullMotorizada: custoCombustivel = 300; custoMunicao = 300; custoMetal = 300; custoMDO = 150; custoInspiracao = 5; break;

        case Classe.SemiMecanizada: custoCombustivel = 350; custoMunicao = 350; custoMetal = 350; custoMDO = 200; custoInspiracao = 5; break;

        case Classe.SemiMotorizada: custoCombustivel = 250; custoMunicao = 250; custoMetal = 250; custoMDO = 100; custoInspiracao = 3; break;

        case Classe.TankDestroyer: custoCombustivel = 400; custoMunicao = 500; custoMetal = 500; custoMDO = 30; custoInspiracao = 10; break;

        case Classe.SPArtilharia: custoCombustivel = 300; custoMunicao = 400; custoMetal = 400; custoMDO = 20; custoInspiracao = 5; break;

        case Classe.SPRocketArtilharia: custoCombustivel = 400; custoMunicao = 500; custoMetal = 500; custoMDO = 30; custoInspiracao = 10; break;

        case Classe.TanqueLeve: custoCombustivel = 400; custoMunicao = 400; custoMetal = 400; custoMDO = 100; custoInspiracao = 1; break;

        case Classe.TanqueMedio: custoCombustivel = 500; custoMunicao = 600; custoMetal = 600; custoMDO = 150; custoInspiracao = 5; break;

        case Classe.TanquePesado: custoCombustivel = 700; custoMunicao = 800; custoMetal = 800; custoMDO = 200; custoInspiracao = 10; break;

        case Classe.TanqueUltraPesado: custoCombustivel = 400; custoMunicao = 1000; custoMetal = 1000; custoMDO = 50; custoInspiracao = 10; break;
        }
        Nacoes nacaoDaUnidadeMordenizada = GameController.instancia.nacoesDoJogador.Find(dens => dens.pais == unidadeMordenizada.nacionalidade);

        custoCombustivel = (int)(custoCombustivel * nacaoDaUnidadeMordenizada.modfCombustivel);
        custoMunicao     = (int)(custoMunicao * nacaoDaUnidadeMordenizada.modfMunicao);
        custoMetal       = (int)(custoMetal * nacaoDaUnidadeMordenizada.modfMetal);
        custoMDO         = (int)(custoMDO * nacaoDaUnidadeMordenizada.modfMaoDeObra);
        custoInspiracao  = (int)(custoInspiracao * nacaoDaUnidadeMordenizada.modfInspiracao);

        combustivel.text = custoCombustivel.ToString();
        municao.text     = custoMunicao.ToString();
        metal.text       = custoMetal.ToString();
        mdo.text         = custoMDO.ToString();
        inpsiracao.text  = custoInspiracao.ToString();

        if (custoCombustivel > GameController.instancia.Combustivel || custoMetal > GameController.instancia.Metal ||
            custoMunicao > GameController.instancia.Municao || custoMDO > GameController.instancia.MaoDeObra ||
            custoInspiracao > GameController.instancia.Inspiracao)  //Checar se o player tem recursos o suficiente
        {
            return(false);
        }
        return(true);
    }