//ModAdicionaPericia public Ser AplicaModificador(ModAdicionaPericia mod, Ser ser) { if (!ser.Pericias.Contains(mod.Alvo)) { ser.Pericias.Add(mod.Alvo); } return(ser); }
public Ser RemoveModificador(ModAdicionaPericia mod, Ser ser) { if (ser.Pericias.Contains(mod.Alvo)) { ser.Pericias.Remove(mod.Alvo); } return(ser); }
public void TesteAplicaModificadorModAdicionaPericia() { ser = new Ser(); CalculadorMod calcMod = new CalculadorMod(); Pericia pericia = new Pericia() { Nome = "Pericia 1" }; ModAdicionaPericia modificador = new ModAdicionaPericia() { Alvo = pericia, Origem = "Teste" }; calcMod.AplicaModificador(modificador, ser); Assert.IsTrue(ser.Pericias.Contains(pericia)); }
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); } }