Beispiel #1
0
        //ModAdicionaHabilidade
        public Ser AplicaModificador(ModAdicionaHabilidade modificador, Ser ser)
        {
            if (!ser.Habilidades.Contains(modificador.Alvo))
            {
                ser.Habilidades.Add(modificador.Alvo);
            }

            return(ser);
        }
Beispiel #2
0
        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));
        }
Beispiel #4
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);
            }
        }