예제 #1
0
        public bool NovaOnda(double velocidadeAtaquePersonagem, out int quantidadeMonstros)
        {
            quantidadeMonstros = 0;
            if (Monstros.Count == 0)
            {
                if (OndaAtual < OndaTotal)
                {
                    Turno    = 0;
                    Monstros = new List <RPMonstro>();
                    OndaAtual++;

                    quantidadeMonstros = Calculo.SortearValor(1, 2);
                    for (int i = 0; i < quantidadeMonstros; i++)
                    {
                        // Sorteia os monstros
                        var       listaNomes   = RPMetadata.MonstrosNomes[Nivel];
                        var       nomeSorteado = listaNomes.Nomes[Calculo.SortearValor(0, listaNomes.Nomes.Count - 1)];
                        RPMonstro m            = new RPMonstro(nomeSorteado, Nivel);
                        Monstros.Add(m);
                    }

                    //Calcula pontos de ação total.
                    foreach (var item in Monstros)
                    {
                        PontosAcaoTotal += item.VelocidadeAtaque;
                    }
                    PontosAcaoTotal += velocidadeAtaquePersonagem;
                    return(true);
                }
            }
            return(false);
        }
예제 #2
0
        public int TrocarZona(double velocidadeAtaquePersonagem, int nivel)
        {
            Monstros    = new List <RPMonstro>();
            ItensNoChao = new List <RPBaseItem>();
            Turno       = 0;
            Nivel       = nivel;
            OndaAtual   = 1;
            OndaTotal   = Convert.ToInt64(Math.Pow(Nivel, 2) * 2);
            int quantidadeInimigo = Math.Clamp(Convert.ToInt32(Math.Pow(1, nivel)), 0, 1);

            for (int i = 0; i < quantidadeInimigo; i++)
            {
                var       f       = RPMetadata.MonstrosNomes[Nivel];
                var       sorteio = Calculo.SortearValor(0, f.Nomes.Count - 1);
                var       g       = f.Nomes[sorteio];
                RPMonstro m       = new RPMonstro(g, nivel);
                Monstros.Add(m);
            }

            foreach (var item in Monstros)
            {
                PontosAcaoTotal += item.VelocidadeAtaque;
            }
            PontosAcaoTotal += velocidadeAtaquePersonagem;
            return(quantidadeInimigo);
        }
예제 #3
0
 public void SortearItem(RPMonstro monstro, double chancePersonagem)
 {
     Monstros.Remove(monstro);
     if (monstro.SortearItens(monstro.Nivel, chancePersonagem, out List <RPBaseItem> itens))
     {
         foreach (var item in itens)
         {
             ItensNoChao.Add(item);
         }
     }
 }