//ModAdicionaHabilidade public Ser AplicaModificador(ModAdicionaHabilidade modificador, Ser ser) { if (!ser.Habilidades.Contains(modificador.Alvo)) { ser.Habilidades.Add(modificador.Alvo); } return(ser); }
public Ser RemoveModificador(ModAdicionaHabilidade mod, Ser ser) { if (ser.Habilidades.Contains(mod.Alvo)) { ser.Habilidades.Remove(mod.Alvo); } return(ser); }
public void TesteAplicaModificadorModAdicionaHabilidade() { ser = new Ser(); CalculadorMod calcMod = new CalculadorMod(); Habilidade habilidade = new Habilidade() { Id = 1 }; ModAdicionaHabilidade modificador = new ModAdicionaHabilidade() { Alvo = habilidade, Origem = "Teste" }; calcMod.AplicaModificador(modificador, ser); Assert.IsTrue(ser.Habilidades.Contains(habilidade)); }
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); } }