示例#1
0
 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;
 }
示例#2
0
        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));
        }