public Evolucao Gerar(Random rnd) { GeradorInteiro rng = new GeradorInteiro(); GeradorBoolean rbg = new GeradorBoolean(); return(new Evolucao(rng.GerarEntre(1, 17, rnd), 16, rbg.GeraComChance(10, rnd))); }
public ArmaBranca Gerar(Random rnd) { int tipoDanoBranca = rng.GerarEntre(1, 4, rnd); ArmaBranca armaBranca = new ArmaBranca() { Comprimento = geradorValorMag.Gerar(rnd), Energia = rng.GerarEntre(1, 10000, rnd), Essencia = rng.GerarEntre(1, 10000, rnd), Largura = geradorValorMag.Gerar(rnd), Magnitude = rng.GerarEntre(1, 100, rnd), Massa = geradorValorMag.Gerar(rnd), Nivel = rng.GerarEntre(1, 10000, rnd), Peso = geradorValorMag.Gerar(rnd), Tipo = 0, //TODO: inserir codigo de "ArmaBranca" Nome = geradorString.GerarTamanhoEspecifico(3, 10, rnd), Raridade = rng.GerarEntre(1, 10000, rnd), Id = rng.GerarEntre(1, 100, rnd), AtributoBonus = tiposAtributo[rng.GerarEntre(0, tiposAtributo.Length - 1, rnd)], Caracteristicas = "Arma Branca gerada aleatoriamente", MaterialBase = geradorMaterial.Gerar(rnd), MultiplicadorCritico = rng.GerarEntre(1, 10, rnd), Slot = rng.GerarEntre(1, 10, rnd) }; armaBranca.Modificadores = geradorModificador.GerarListaComOrigem("Arma", armaBranca.Id, rng.GerarEntre(1, 5, rnd), rnd); armaBranca.Valor = armaBranca.MaterialBase.Valor + rng.GerarEntre(1, 1000000, rnd); if (tipoDanoBranca == 1) { armaBranca.DanoCorte = rng.GerarEntre(1, 100000, rnd); } else if (tipoDanoBranca == 2) { armaBranca.DanoImpacto = rng.GerarEntre(1, 100000, rnd); } else if (tipoDanoBranca == 3) { armaBranca.DanoPenetracao = rng.GerarEntre(1, 1000000, rnd); } if (geradorBoolean.GeraComChance(10, rnd)) { armaBranca.ModificadorDano = "por ki"; } return(armaBranca); }
public Resistencia Gerar(Random rnd) { GeradorInteiro rng = new GeradorInteiro(); GeradorValorMag genValorMag = new GeradorValorMag(); GeradorBoolean genBoolean = new GeradorBoolean(); GeradorString genString = new GeradorString(); CalculadorNumero calculador = new CalculadorNumero(); Resistencia resultado = new Resistencia(); ValorMag min = genValorMag.GerarEntre(new ValorMag(10, 0), new ValorMag(99, 10), rnd); ValorMag max = calculador.SomaValorMag(min, genValorMag.GerarEntre(new ValorMag(10, 0), new ValorMag(99, 10), rnd)); char tipo; if (genBoolean.GeraComChance(50, rnd)) { tipo = '+'; } else { tipo = '-'; } resultado.Nome = genString.GerarTamanhoEspecifico(3, 10, rnd); if (tipo == '+') { resultado.Positiva = genValorMag.GerarEntre(min, max, rnd); resultado.Negativa = new ValorMag(); } else { resultado.Positiva = new ValorMag(); resultado.Negativa = genValorMag.GerarEntre(min, max, rnd); } return(resultado); }
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); }
public ArmaDeTiro Gerar(Random rnd) { GeradorInteiro rng = new GeradorInteiro(); GeradorValorMag genValorMag = new GeradorValorMag(); GeradorMaterial genMaterial = new GeradorMaterial(); GeradorString genString = new GeradorString(); GeradorMunicao genMunicao = new GeradorMunicao(); GeradorModificador genModificador = new GeradorModificador(); GeradorBoolean genBoolean = new GeradorBoolean(); int tipoDano = rng.GerarEntre(1, 4, rnd); string[] tiposOperacao = new string[] { "FullAuto", "Burst", "Single", "Pump", "Charge" }; int operacoes = 0; ArmaDeTiro armaDeFogo = new ArmaDeTiro() { Id = rng.GerarEntre(1, 1000, rnd), Caracteristicas = "Arma de Fogo gerada aleatoriamente", Comprimento = genValorMag.Gerar(rnd), DistanciaMax = genValorMag.Gerar(rnd), DistanciaMin = genValorMag.Gerar(rnd), Essencia = rng.GerarEntre(1, 100000, rnd), Energia = rng.GerarEntre(0, 100000, rnd), Largura = genValorMag.Gerar(rnd), MaterialBase = genMaterial.Gerar(rnd), Nivel = rng.GerarEntre(1, 100, rnd), Nome = genString.GerarTamanhoEspecifico(3, 8, rnd), Peso = genValorMag.Gerar(rnd), Raridade = rng.GerarEntre(1, 100, rnd), Tipo = rng.GerarEntre(1, 100, rnd), TipoCarga = genMunicao.Gerar(rnd), TirosPorCarga = rng.GerarEntre(1, 100000, rnd), Valor = rng.GerarEntre(1, 100000, rnd), }; armaDeFogo.Modificadores = genModificador.GerarListaComOrigem("Arma", armaDeFogo.Id, rng.GerarEntre(0, 5, rnd), rnd); operacoes = rng.GerarEntre(1, tiposOperacao.Length, rnd); for (int i = 0; i < operacoes; i++) { armaDeFogo.Operacoes = new string[tiposOperacao.Length]; armaDeFogo.Operacoes[i] = tiposOperacao[rng.GerarEntre(0, tiposOperacao.Length - 1, rnd)]; } if (tipoDano == 1) { armaDeFogo.DanoCorte = rng.GerarEntre(1, 100000, rnd); } else if (tipoDano == 2) { armaDeFogo.DanoImpacto = rng.GerarEntre(1, 100000, rnd); } else if (tipoDano == 3) { armaDeFogo.DanoPenetracao = rng.GerarEntre(1, 1000000, rnd); } if (genBoolean.GeraComChance(10, rnd)) { armaDeFogo.ModificadorDano = "por ki"; } armaDeFogo.TirosPorAcao = armaDeFogo.TirosPorCarga - rng.GerarEntre(0, 100000, rnd); return(armaDeFogo); }
///<summary> ///Gera uma string de um tamanho especifico. ///</summary> /// <param name="min">Tamanho mínimo da string</param> /// <param name="max">Tamanho máximo da string</param> public string GerarTamanhoEspecifico(int min, int max, Random rnd) { GeradorBoolean geradorBoolean = new GeradorBoolean(); string nome = ""; int tamanhoNome = rng.GerarEntre(min, max, rnd); while (nome.Length < tamanhoNome) { if (nome.Length == 0) { if (geradorBoolean.GeraComChance(50, rnd)) { nome = Convert.ToString(consoantes[rnd.Next(0, consoantes.Length)]).ToUpper(); } else { nome = Convert.ToString(vogais[rnd.Next(0, vogais.Length)]).ToUpper(); } } else { char ultimaLetra = nome[nome.Length - 1]; //Pega última letra int chanceVogal = 50; //Inicializa chance da proxima letra ser vogal //Caso a ultima letra seja consoante if (consoantes.Contains(Convert.ToString(ultimaLetra))) { if (nome.Length > 1) //Caso o nome tenha mais de 1 letra { if (nome.Length > 2) //Caso o nome tenha mais de 2 letras { if (consoantes.Contains(Convert.ToString(nome[nome.Length - 3]))) { chanceVogal = 100; //Evita com que nomes tenham mais de 3 consoantes seguidas } } else if (consoantes.Contains(Convert.ToString(nome[nome.Length - 2]))) { chanceVogal = 90; } } else { chanceVogal = 70; } } //Caso a última letra seja vogal else { if (nome.Length > 1) { if (vogais.Contains(Convert.ToString(nome[nome.Length - 2]))) { chanceVogal = 1; } else { chanceVogal = 10; } } else { chanceVogal = 30; } } if (geradorBoolean.GeraComChance(chanceVogal, rnd)) { nome = nome + Convert.ToString(vogais[rnd.Next(0, vogais.Length)]); } else { nome = nome + Convert.ToString(consoantes[rnd.Next(0, consoantes.Length)]); } } } return(nome); }