public FirebaseElemento(ElementoDoExercito peca) { this.Id = peca.Id; this.ExercitoId = peca.ExercitoId; this.TabuleiroId = peca.TabuleiroId; this.Saude = peca.Saude; this.AlcanceMovimento = peca.AlcanceMovimento; this.AlcanceAtaque = peca.AlcanceAtaque; this.Ataque = peca.Ataque; this.UriImagem = peca.UriImagem; this.PosicaoAltura = peca.Posicao.Altura; this.PosicaoLargura = peca.Posicao.Largura; }
public void IniciarJogo(Exercito exercito1, Exercito exercito2) { /*Casas = new ElementoDoExercito[Largura][]; * for(int i = 0; i < this.Largura; i++){ * this.Casas[i] = new ElementoDoExercito[Altura]; * }*/ for (int i = 0; i < this.Largura; i++) { for (int j = 0; j < this.Altura; j++) { //Ultima ou primeira fileira? Exercito exercito = (j == 0 || j == 1) ? exercito1 : exercito2; ElementoDoExercito elemento = null; AbstractFactoryExercito factory = AbstractFactoryExercito.CriarFactoryExercito(exercito.Nacao); if (j == 0 || j == this.Altura - 1) { //Cria arqueiro nas posições pares e Cavaleiros nas posições impáres. elemento = (i % 2 == 0)? (ElementoDoExercito)factory.CriarArqueiro(): (ElementoDoExercito)factory.CriarCavalaria(); } else if (j == 1 || j == this.Altura - 2) { //Cria guerreiros elemento = (ElementoDoExercito)factory.CriarGuerreiro(); } //Se o elemento tiver sido instanciado criará o elemento no tabuleiro. if (elemento != null) { exercito.Elementos.Add(elemento); elemento.posicao = new Posicao(i, j); elemento.Tabuleiro = this; // this.Casas.Add(elemento.posicao, elemento); } } } }
internal bool VerificarElementoVivo(ElementoDoExercito vitima) { bool vitimaMorreu = vitima.Saude <= 0; if (vitimaMorreu) { vitima.Saude = 0; } this.ElementosDoExercito.ToList().ForEach(x => { if (x.Id == vitima.Id) { x.Saude = vitima.Saude; } }); return(vitimaMorreu); }
/// <summary> /// Procura por uma posicao no tabuleiro atraves de um elemento de um exercito /// </summary> /// <param name="elemento">O elemento de um exercito</param> /// <returns>A posicao dele nesse tabuleiro</returns> public Posicao ObterPosicao(ElementoDoExercito elemento) { return(elemento.Posicao); }
/// <summary> /// Move um elemento do tabuleiro para uma nova posicao /// </summary> /// <param name="movimento"></param> internal bool AtacarElemento(ElementoDoExercito agressor, ElementoDoExercito vitima) { vitima.Saude -= agressor.Ataque; return(VerificarElementoVivo(vitima)); }