Esempio n. 1
0
        public Habilidade Gerar(Random rnd)
        {
            //TODO: Pegar aleatoriamente do banco de dados de habilidades
            //TODO: Pegar Pericia Associada do banco de dados de pericias
            //TODO: Criar efeitos secundários. Ex: dano + buff, cura +  piora, etc

            //TODO: Restringir o tipo da Habilidade por uma lista do banco de dados
            GeradorInteiro          rng                 = new GeradorInteiro();
            GeradorString           genString           = new GeradorString();
            GeradorPericia          genPericia          = new GeradorPericia();
            GeradorEnergia          genEnergia          = new GeradorEnergia();
            GeradorValorMag         genValorMag         = new GeradorValorMag();
            GeradorAreaCientifica   genAreaCientifica   = new GeradorAreaCientifica();
            GeradorTipoDeAlvo       genTipoDeAlvo       = new GeradorTipoDeAlvo();
            GeradorEfeito           genEfeito           = new GeradorEfeito();
            GeradorTipoDeHabilidade genTipoDeHabilidade = new GeradorTipoDeHabilidade();

            Habilidade habilidade = new Habilidade()
            {
                Id               = rng.GerarEntre(1, 1000, rnd),
                Magnitude        = rng.GerarEntre(1, 10, rnd),
                Nome             = genString.GerarTamanhoEspecifico(2, 8, rnd),
                PericiaAssociada = genPericia.Gerar(rnd),
                Energia          = genEnergia.Gerar(rnd),
                AreaCientifica   = genAreaCientifica.Gerar(rnd),
                Efeitos          = genEfeito.GerarLista(rng.GerarEntre(1, 3, rnd), rnd),
                Tipo             = genTipoDeHabilidade.Gerar(rnd)
            };

            habilidade.Caracteristicas = "Habilidade gerada automaticamente.";

            return(habilidade);
        }
Esempio n. 2
0
        public Classe Gerar(Random rnd)
        {
            string[]       atributosEspirituais = new string[] { "Idéia", "Existência" };
            string[]       atributosFisicos     = new string[] { "Força", "Destreza", "Matéria" };
            string[]       atributosMentais     = new string[] { "Intelecto", "Criatividade" };
            string[]       estilos    = new string[] { "Melee", "Ranged", "Caster", "Comando", "Ofício" };
            string[]       funcoes    = new string[] { "Dano", "Cura", "Suporte", "Controle", "Crafting" };
            GeradorInteiro rng        = new GeradorInteiro();
            GeradorString  genString  = new GeradorString();
            GeradorCiencia genCiencia = new GeradorCiencia();
            GeradorPericia genPericia = new GeradorPericia();
            Classe         classe     = new Classe()
            {
                AtributoEspiritual = atributosEspirituais[rng.GerarEntre(0, atributosEspirituais.Length - 1, rnd)],
                AtributoFisico     = atributosFisicos[rng.GerarEntre(0, atributosFisicos.Length - 1, rnd)],
                AtributoMental     = atributosMentais[rng.GerarEntre(0, atributosMentais.Length - 1, rnd)],
                Estilo             = estilos[rng.GerarEntre(0, estilos.Length - 1, rnd)],
                Funcao             = funcoes[rng.GerarEntre(0, funcoes.Length - 1, rnd)],
                Nome        = genString.GerarTamanhoEspecifico(4, 8, rnd),
                OrigemPoder = genString.GerarTamanhoEspecifico(4, 8, rnd),
                Ciencia     = genCiencia.Gerar(rnd),
                Pericias    = genPericia.GerarLista(rng.GerarEntre(1, 5, rnd), rnd)
            };

            classe.Descricao = "Classe de estilo " + classe.Estilo + ", utilizando " + classe.AtributoFisico + ", " + classe.AtributoEspiritual + " e " + classe.AtributoMental + ", com a função principal de " + classe.Funcao + " gerada aleatoriamente.";

            return(classe);
        }
Esempio n. 3
0
        public Modificador GerarComOrigem(string origem, int id, Random rnd, char tipo = 'R')
        {
            GeradorInteiro    rng           = new GeradorInteiro();
            GeradorValorMag   rvmg          = new GeradorValorMag();
            GeradorPericia    genPericia    = new GeradorPericia();
            GeradorHabilidade genHabilidade = new GeradorHabilidade();
            int tipoModificador             = rng.GerarEntre(1, 10, rnd);

            PropertyInfo[] propriedades = typeof(Ser).GetTypeInfo().DeclaredProperties.Where(p => p.PropertyType == typeof(int)).ToArray <PropertyInfo>();
            string         alvo         = propriedades[rng.GerarEntre(0, propriedades.Count() - 1, rnd)].Name;

            switch (tipoModificador)
            {
            case 1:
                ModSomaValorMag modSomaValorMag = new ModSomaValorMag()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rvmg.GerarEntre(new ValorMag(10, 1), new ValorMag(99, 10), rnd)
                };
                return(modSomaValorMag);

            case 2:
                ModSubtraiValorMag modSubtraiValorMag = new ModSubtraiValorMag()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rvmg.GerarEntre(new ValorMag(10, 1), new ValorMag(99, 10), rnd)
                };
                return(modSubtraiValorMag);

            case 3:
                ModSomaNumero modSomaNumero = new ModSomaNumero()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rng.GerarEntre(1, 10000, rnd)
                };
                return(modSomaNumero);

            case 4:
                ModSubtraiNumero modSubtraiNumero = new ModSubtraiNumero()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rng.GerarEntre(1, 10000, rnd)
                };
                return(modSubtraiNumero);

            case 5:
                ModMultiplicaNumero modMultiplicaNumero = new ModMultiplicaNumero()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rng.GerarEntre(1, 10000, rnd)
                };
                return(modMultiplicaNumero);

            case 6:
                ModMultiplicaValorMag modMultiplicaValorMag = new ModMultiplicaValorMag()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rvmg.GerarEntre(new ValorMag(10, 1), new ValorMag(99, 10), rnd)
                };
                return(modMultiplicaValorMag);

            case 7:
                ModDivideNumero modDivideNumero = new ModDivideNumero()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rng.GerarEntre(1, 100, rnd)
                };
                return(modDivideNumero);

            case 8:
                ModDivideValorMag modDivideValorMag = new ModDivideValorMag()
                {
                    Alvo   = alvo,
                    Origem = origem,
                    Valor  = rvmg.GerarEntre(new ValorMag(10, 1), new ValorMag(99, 5), rnd)
                };
                return(modDivideValorMag);

            case 9:
                ModAdicionaHabilidade modAdicionaHabilidade = new ModAdicionaHabilidade()
                {
                    Alvo   = genHabilidade.Gerar(rnd),
                    Origem = origem
                };
                return(modAdicionaHabilidade);

            case 10:
                ModAdicionaPericia modAdicionaPericia = new ModAdicionaPericia()
                {
                    Alvo   = genPericia.Gerar(rnd),
                    Origem = origem
                };
                return(modAdicionaPericia);

            default:
                return(null);
            }
        }
Esempio n. 4
0
        public Especie Gerar(Random rnd)
        {
            GeradorOrigem       genOrigem       = new GeradorOrigem();
            GeradorCriatividade genCriatividade = new GeradorCriatividade();
            GeradorDestreza     genDestreza     = new GeradorDestreza();
            GeradorExistencia   genExistencia   = new GeradorExistencia();
            GeradorForca        genForca        = new GeradorForca();
            GeradorIdeia        genIdeia        = new GeradorIdeia();
            GeradorIntelecto    genIntelecto    = new GeradorIntelecto();
            GeradorMateria      genMateria      = new GeradorMateria();
            GeradorModificador  genModificador  = new GeradorModificador();
            GeradorValorMag     genValorMag     = new GeradorValorMag();
            GeradorEnergia      genEnergia      = new GeradorEnergia();
            GeradorPericia      genPericia      = new GeradorPericia();
            GeradorHabilidade   genHabilidade   = new GeradorHabilidade();
            GeradorNatureza     genNatureza     = new GeradorNatureza();
            GeradorResposta     genResposta     = new GeradorResposta();
            GeradorBoolean      genBool         = new GeradorBoolean();
            CalculadorSer       calculadorSer   = new CalculadorSer();
            CalculadorNumero    calculadorNum   = new CalculadorNumero();


            Especie especie = new Especie()
            {
                ReinoTaxo          = rsg.GerarTamanhoEspecifico(2, 8, rnd),
                FiloTaxo           = rsg.GerarTamanhoEspecifico(2, 9, rnd),
                ClasseTaxo         = rsg.GerarTamanhoEspecifico(2, 8, rnd),
                OrdemTaxo          = rsg.GerarTamanhoEspecifico(2, 8, rnd),
                FamiliaTaxo        = rsg.GerarTamanhoEspecifico(2, 8, rnd),
                GeneroTaxo         = rsg.GerarTamanhoEspecifico(2, 8, rnd),
                NomeCientifico     = rsg.GerarTamanhoEspecifico(2, 8, rnd),
                NomePopular        = rsg.GerarTamanhoEspecifico(2, 8, rnd),
                OrigemEspecie      = genOrigem.Gerar(rnd),
                MagnitudeMin       = rng.GerarEntre(0, 5, rnd),
                MagnitudeMax       = rng.GerarEntre(0, 5, rnd),
                ReiMin             = rng.GerarEntre(0, 3, rnd),
                ReiMax             = rng.GerarEntre(1, 10, rnd),
                KiMin              = rng.GerarEntre(0, 50, rnd),
                KiMax              = rng.GerarEntre(1, 1000, rnd),
                NivelMin           = rng.GerarEntre(0, 10000, rnd),
                NivelMax           = rng.GerarEntre(1, 100000, rnd),
                TempoMax           = rng.GerarEntre(1, 10000, rnd),
                Energias           = genEnergia.GerarLista(rng.GerarEntre(1, 5, rnd), rnd),
                ForcaMin           = genForca.Gerar(rnd),
                ForcaMax           = genForca.Gerar(rnd),
                MateriaMin         = genMateria.Gerar(rnd),
                MateriaMax         = genMateria.Gerar(rnd),
                DestrezaMin        = genDestreza.Gerar(rnd),
                DestrezaMax        = genDestreza.Gerar(rnd),
                IntelectoMin       = genIntelecto.Gerar(rnd),
                IntelectoMax       = genIntelecto.Gerar(rnd),
                CriatividadeMin    = genCriatividade.Gerar(rnd),
                CriatividadeMax    = genCriatividade.Gerar(rnd),
                ExistenciaMin      = genExistencia.Gerar(rnd),
                ExistenciaMax      = genExistencia.Gerar(rnd),
                IdeiaMin           = genIdeia.Gerar(rnd),
                IdeiaMax           = genIdeia.Gerar(rnd),
                PericiasEspecie    = genPericia.GerarLista(rng.GerarEntre(1, 10, rnd), rnd),
                HabilidadesEspecie = genHabilidade.GerarLista(rng.GerarEntre(1, 3, rnd), rnd),
                OrigemPoder        = rsg.GerarTamanhoEspecifico(4, 10, rnd),
                VirtudesEspecie    = genModificador.GerarListaComOrigem("Virtudes", 0, rng.GerarEntre(1, 10, rnd), rnd, '+'),
                DefeitosEspecie    = genModificador.GerarListaComOrigem("Defeitos", 0, rng.GerarEntre(1, 10, rnd), rnd, '-'),
                ForcaVontadeMin    = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd),
                ForcaVontadeMax    = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd),
                IraMin             = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd),
                IraMax             = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd),
                PoderMaximoMin     = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd),
                PoderMaximoMax     = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd),
                FatorProgressao    = rng.GerarEntre(1, 10, rnd),
                CansacoMax         = rng.GerarEntre(0, 1000, rnd),
                FeMin              = rng.GerarEntre(0, 1000, rnd),
                FeMax              = rng.GerarEntre(0, 1000, rnd),
                KarmaMin           = rng.GerarEntre(0, 1000, rnd),
                KarmaMax           = rng.GerarEntre(0, 1000, rnd),
                MaxItensEquipados  = rng.GerarEntre(1, 10, rnd),
                AcaoMin            = rng.GerarEntre(1, 1000, rnd),
                AcaoMax            = rng.GerarEntre(0, 1000, rnd),
                AlturaMin          = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 5), rnd),
                AlturaMax          = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 5), rnd),
                Id = rng.GerarEntre(1, 1000, rnd),
                MaxArmasEquipadas = rng.GerarEntre(1, 10, rnd),
                //TODO: Subclassificacoes = GeraSubclassificacoes(),
                TurnoMin      = rng.GerarEntre(1, 1000, rnd),
                TurnoMax      = rng.GerarEntre(1, 1000, rnd),
                MaturidadeMin = 0,
                MaturidadeMax = 0,
                DestriaMax    = rng.GerarEntre(1, 10, rnd),
                DestriaMin    = 1,
                Porcentagem   = 0,
                TrabalhoMin   = rng.GerarEntre(0, 1000, rnd),
                Densidade     = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd),
                LarguraMin    = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 5), rnd),
                LarguraMax    = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 5), rnd),
                Especial      = rng.GerarEntre(1, 70, rnd),
                Natureza      = genNatureza.Gerar(rnd),
                RespostaMin   = genResposta.Gerar(rnd),
            };

            especie.MagnitudeMax    = especie.MagnitudeMin + especie.MagnitudeMax;
            especie.ReiMax          = especie.ReiMin + especie.ReiMax;
            especie.KiMax           = especie.KiMin + especie.KiMax;
            especie.ForcaVontadeMax = calculadorNum.SomaValorMag(especie.ForcaVontadeMin, especie.ForcaVontadeMax);
            especie.IraMax          = calculadorNum.SomaValorMag(especie.IraMin, especie.IraMax);
            especie.PoderMaximoMax  = calculadorNum.SomaValorMag(especie.PoderMaximoMin, especie.PoderMaximoMax);
            especie.FeMax           = especie.FeMin + especie.FeMax;
            especie.KarmaMax        = especie.KarmaMin + especie.KarmaMax;
            especie.AcaoMax         = especie.AcaoMin + especie.AcaoMax;
            especie.AlturaMax       = calculadorNum.SomaValorMag(especie.AlturaMin, especie.AlturaMax);
            especie.TurnoMax        = especie.TurnoMin + especie.TurnoMax;
            especie.MaturidadeMin   = (int)calculadorNum.CalculaPorcentagem(rng.GerarEntre(1, 30, rnd), especie.TempoMax);
            especie.MaturidadeMax   = especie.MaturidadeMin + (int)calculadorNum.CalculaPorcentagem(rng.GerarEntre(60, 99, rnd), especie.TempoMax);
            especie.TrabalhoMax     = especie.TrabalhoMin + rng.GerarEntre(0, 1000, rnd);
            especie.LarguraMax      = calculadorNum.SomaValorMag(especie.LarguraMin, especie.LarguraMax);

            especie.DeslocamentosMedios = new List <Deslocamento>()
            {
            };

            if (genBool.GeraComChance(90, rnd))
            {
                especie.DeslocamentosMedios.Add(new Deslocamento()
                {
                    Tipo  = "Solo",
                    Valor = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd)
                });
            }

            if (genBool.GeraComChance(70, rnd))
            {
                especie.DeslocamentosMedios.Add(new Deslocamento()
                {
                    Tipo  = "Mar",
                    Valor = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd)
                });
            }

            if (genBool.GeraComChance(40, rnd))
            {
                especie.DeslocamentosMedios.Add(new Deslocamento()
                {
                    Tipo  = "Ar",
                    Valor = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd)
                });
            }

            if (genBool.GeraComChance(10, rnd))
            {
                Deslocamento desMar = new Deslocamento()
                {
                    Tipo  = "Espaço",
                    Valor = genValorMag.GerarEntre(new ValorMag(1, 0), new ValorMag(99, 15), rnd)
                };
            }

            especie.RespostaMax = new Resposta()
            {
                Bravura     = especie.RespostaMin.Bravura + rng.GerarEntre(1, 1000, rnd),
                Coragem     = especie.RespostaMin.Coragem + rng.GerarEntre(1, 1000, rnd),
                Desespero   = especie.RespostaMin.Desespero + rng.GerarEntre(1, 1000, rnd),
                Heroismo    = especie.RespostaMin.Heroismo + rng.GerarEntre(1, 1000, rnd),
                Indiferenca = especie.RespostaMin.Indiferenca + rng.GerarEntre(1, 1000, rnd),
                Medo        = especie.RespostaMin.Medo + rng.GerarEntre(1, 1000, rnd),
                Panico      = especie.RespostaMin.Panico + rng.GerarEntre(1, 1000, rnd)
            };
            return(especie);
        }
Esempio n. 5
0
        public Ser Gerar(Random rnd)
        {
            //TODO: Pegar valores aleatórios do banco de dados ao invés de gera-los aleatoriamente
            //TODO: Restringir o tempo baseado nas restrições de tempo da espécie selecionada
            GeradorString       genString       = new GeradorString();
            GeradorValorMag     genValorMag     = new GeradorValorMag();
            GeradorInteiro      rng             = new GeradorInteiro();
            GeradorCriatividade genCriatividade = new GeradorCriatividade();
            GeradorDestreza     genDestreza     = new GeradorDestreza();
            GeradorExistencia   genExistencia   = new GeradorExistencia();
            GeradorForca        genForca        = new GeradorForca();
            GeradorIdeia        genIdeia        = new GeradorIdeia();
            GeradorIntelecto    genIntelecto    = new GeradorIntelecto();
            GeradorMateria      genMateria      = new GeradorMateria();
            GeradorOrigem       genOrigem       = new GeradorOrigem();
            GeradorEspecie      genEspecie      = new GeradorEspecie();
            GeradorClasse       genClasse       = new GeradorClasse();
            GeradorIndole       genIndole       = new GeradorIndole();
            GeradorRei          genRei          = new GeradorRei();
            GeradorPericia      genPericia      = new GeradorPericia();
            GeradorItem         genItem         = new GeradorItem();
            GeradorModificador  genModificador  = new GeradorModificador();
            GeradorResistencia  genResistencia  = new GeradorResistencia();
            GeradorEquipamento  genEquipamento  = new GeradorEquipamento();
            GeradorHabilidade   genHabilidade   = new GeradorHabilidade();
            GeradorEvolucao     genEvolucao     = new GeradorEvolucao();
            GeradorEnergia      genEnergia      = new GeradorEnergia();
            CalculadorSer       calculador      = new CalculadorSer();

            string primeiroNome = genString.GerarTamanhoEspecifico(2, 6, rnd);
            string segundoNome  = genString.GerarTamanhoEspecifico(0, 9, rnd);

            Ser ser = new Ser()
            {
                Origem = genOrigem.Gerar(rnd),
                Tempo  = rng.GerarEntre(1, 1000, rnd),
                //Reverter alteração para gerar mais de uma espécie quando a interface de espécies estiver criada
                Especies = genEspecie.GerarLista(rng.GerarEntre(1, 1, rnd), rnd),
                Classes  = genClasse.GerarLista(rng.GerarEntre(1, 3, rnd), rnd),
                Indole   = genIndole.Gerar(rnd),
                Reis     = genRei.GerarLista(rng.GerarEntre(0, 5, rnd), rnd),
                Ki       = rng.GerarEntre(0, 1000, rnd),
                Nivel    = rng.GerarEntre(0, 1000, rnd),
                //Atributos
                Forca        = genForca.Gerar(rnd),
                Materia      = genMateria.Gerar(rnd),
                Destreza     = genDestreza.Gerar(rnd),
                Intelecto    = genIntelecto.Gerar(rnd),
                Criatividade = genCriatividade.Gerar(rnd),
                Existencia   = genExistencia.Gerar(rnd),
                Ideia        = genIdeia.Gerar(rnd),
                //Evolução
                EvolucaoCriatividade = genEvolucao.Gerar(rnd),
                EvolucaoDestreza     = genEvolucao.Gerar(rnd),
                EvolucaoExistencia   = genEvolucao.Gerar(rnd),
                EvolucaoForca        = genEvolucao.Gerar(rnd),
                EvolucaoIdeia        = genEvolucao.Gerar(rnd),
                EvolucaoIntelecto    = genEvolucao.Gerar(rnd),
                EvolucaoMateria      = genEvolucao.Gerar(rnd),
                //Perícias
                Pericias = genPericia.GerarLista(rng.GerarEntre(1, 20, rnd), rnd),
                //Itens e Equips
                Posses = genItem.GerarLista(rng.GerarEntre(1, 20, rnd), rnd),
                //Virtudes
                Dons = genModificador.GerarListaComOrigem("Virtudes", 3, rng.GerarEntre(1, 5, rnd), rnd, '+'),
                //Defeitos
                Defeitos = genModificador.GerarListaComOrigem("Defeitos", 6, rng.GerarEntre(1, 5, rnd), rnd, '-'),
                //Resistências
                Resistencias = genResistencia.GerarLista(rng.GerarEntre(0, 10, rnd), rnd),
                //Gênese
                Genese = rng.GerarEntre(1, 5, rnd),
                //Geração
                Geracao = rng.GerarEntre(1, 10, rnd),
                //Trajetória
                Trajetoria = "Trajetória Gerada Aleatóriamente",
                //Elo Divino
                EloDivino = "Elo Divino Gerado Aleatóriamente",
                //Idumentária
                Idumentaria = "Idumentária gerada aleatoriamente",
                //Subatributo Subatributos Extra
                SubatributoExtraNome1  = genString.GerarTamanhoEspecifico(3, 10, rnd),
                SubatributoExtraValor1 = genValorMag.Gerar(rnd),
                SubatributoExtraNome2  = genString.GerarTamanhoEspecifico(3, 10, rnd),
                SubatributoExtraValor2 = genValorMag.Gerar(rnd),
                //Habilidades
                Habilidades = genHabilidade.GerarLista(rng.GerarEntre(2, 10, rnd), rnd),
                //Alma
                Alma = genString.GerarLista(5, rnd)
            };

            //Itens Equipados
            ser.Equipamentos = genEquipamento.GerarLista(ser.Especies[0].MaxItensEquipados, rnd);

            //Geradores
            //Identidade
            if (segundoNome.Length == 0)
            {
                ser.Nome = primeiroNome;
            }
            else
            {
                ser.Nome = primeiroNome + " " + segundoNome;
            }

            //Calcula outros valores
            ser = calculador.CalculaSer(ser);

            return(ser);
        }