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(); }
}//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); }
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); }
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); }
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); }
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); } } }
public void despausarProducao(LinhaDeProducao linha) { linha.ativa = true; linha.emEspera = false; StartCoroutine(linha.produzir()); }