Exemplo n.º 1
0
        public void Test_output_ser_deser()
        {
            var keychain         = Keychain.From_random_seed();
            var keyIdSet         = keychain.Derive_key_id(1);
            var commit           = keychain.Commit(5, keyIdSet);
            var switchCommit     = keychain.Switch_commit(keyIdSet);
            var switchCommitHash = SwitchCommitHash.From_switch_commit(switchCommit);
            var msg   = ProofMessage.Empty();
            var proof = keychain.Range_proof(5, keyIdSet, commit, msg);

            var outp = new Output {
                Features         = OutputFeatures.DefaultOutput,
                Commit           = commit,
                SwitchCommitHash = switchCommitHash,
                Proof            = proof
            };

            var stream = new MemoryStream();

            Ser.Serialize(stream, outp);

            Console.WriteLine("-------");
            Console.WriteLine(stream.ToArray().AsString());
            Console.WriteLine("-------");

            stream.Position = 0;

            var dout = Ser.Deserialize(stream, new Output());

            Assert.Equal(OutputFeatures.DefaultOutput, dout.Features);
            Assert.Equal(outp.Commit.Value, dout.Commit.Value);
            Assert.Equal(outp.Proof.Proof, dout.Proof.Proof);
        }
Exemplo n.º 2
0
        public void TesteCalculaSubatributosAleatorio()
        {
            Random rnd = new Random();

            calculador = new CalculadorSer();
            GeradorSer gerador = new GeradorSer();
            Ser        ser     = gerador.Gerar(rnd);

            Assert.IsNotNull(ser.Iniciativa);
            Assert.IsNotNull(ser.Destria);
            Assert.IsNotNull(ser.Acao);
            Assert.IsNotNull(ser.Turno);
            Assert.IsNotNull(ser.Instinto);
            Assert.IsNotNull(ser.Raciocinio);
            Assert.IsNotNull(ser.Subconsciencia);
            Assert.IsNotNull(ser.Autocontrole);
            Assert.IsNotNull(ser.Altura);
            Assert.IsNotNull(ser.Largura);
            Assert.IsNotNull(ser.Comprimento);
            Assert.IsNotNull(ser.Anatomia);
            Assert.IsNotNull(ser.Animo);
            Assert.IsNotNull(ser.Movimento);
            Assert.IsNotNull(ser.Precisao);
            Assert.IsNotNull(ser.Massa);
        }
Exemplo n.º 3
0
        public Ser RemoveModificador(ModSomaNumero mod, Ser ser)
        {
            PropertyInfo propriedade = ser.GetType().GetProperty(mod.Alvo);

            if (propriedade.PropertyType == typeof(int) || propriedade.PropertyType == typeof(decimal) || propriedade.PropertyType == typeof(double))
            {
                CalculadorNumero calculador = new CalculadorNumero();


                if (propriedade.PropertyType == typeof(int))
                {
                    int resultado = 0;
                    resultado = (int)propriedade.GetValue(ser, null) - (int)mod.Valor;
                    propriedade.SetValue(ser, resultado);
                }
                else if (propriedade.PropertyType == typeof(decimal))
                {
                    decimal resultado = 0;
                    resultado = (decimal)propriedade.GetValue(ser, null) - mod.Valor;
                    propriedade.SetValue(ser, resultado);
                }

                else
                {
                    double resultado = 0;
                    resultado = (double)propriedade.GetValue(ser, null) - decimal.ToDouble(mod.Valor);
                    propriedade.SetValue(ser, resultado);
                }
                return(ser);
            }
            else
            {
                throw new System.ArgumentException("Propriedade não é um int, decimal ou double.", mod.Alvo);
            }
        }
Exemplo n.º 4
0
        public void TesteCalculaKarma()
        {
            calculador = new CalculadorSer();
            List <Especie> especies = new List <Especie>()
            {
                new Especie()
                {
                    KarmaMin = 1
                },
                new Especie()
                {
                    KarmaMin = 2
                },
                new Especie()
                {
                    KarmaMin = 3
                },
            };

            Ser ser = new Ser()
            {
                Especies = especies,
            };

            ser.Karma = calculador.CalculaKarma(ser);

            Assert.AreEqual(3, ser.Karma);
        }
Exemplo n.º 5
0
        public Ser RemoveModificador(ModZeraNumero mod, Ser ser)
        {
            PropertyInfo propriedade = ser.GetType().GetProperty(mod.Alvo);

            propriedade.SetValue(ser, mod.ValorAnterior);
            return(ser);
        }
Exemplo n.º 6
0
        public void TesteNomesGeraSerAleatorio()
        {
            GeradorSer gerador = new GeradorSer();
            Ser        ser     = gerador.Gerar(rnd);

            Assert.IsTrue(ser.Nome.Length > 2);
        }
Exemplo n.º 7
0
 public Ser RemoveModificador(ModAdicionaPericia mod, Ser ser)
 {
     if (ser.Pericias.Contains(mod.Alvo))
     {
         ser.Pericias.Remove(mod.Alvo);
     }
     return(ser);
 }
Exemplo n.º 8
0
 //ModRemovePericia
 public Ser AplicaModificador(ModRemovePericia mod, Ser ser)
 {
     if (ser.Pericias.Contains(mod.Alvo))
     {
         ser.Pericias.Remove(mod.Alvo);
     }
     return(ser);
 }
Exemplo n.º 9
0
 public Ser RemoveModificador(ModRemovePericia mod, Ser ser)
 {
     if (!ser.Pericias.Contains(mod.Alvo))
     {
         ser.Pericias.Add(mod.Alvo);
     }
     return(ser);
 }
Exemplo n.º 10
0
 //ModAdicionaPericia
 public Ser AplicaModificador(ModAdicionaPericia mod, Ser ser)
 {
     if (!ser.Pericias.Contains(mod.Alvo))
     {
         ser.Pericias.Add(mod.Alvo);
     }
     return(ser);
 }
Exemplo n.º 11
0
        //ModZeraNumero
        public Ser AplicaModificador(ModZeraNumero mod, Ser ser)
        {
            PropertyInfo propriedade = ser.GetType().GetProperty(mod.Alvo);

            mod.ValorAnterior = (decimal)propriedade.GetValue(ser);
            propriedade.SetValue(ser, 0);
            return(ser);
        }
Exemplo n.º 12
0
        //Magnitude média dos atributos
        //Pega magnitude do Rei se for maior que a média dos atributos
        public int CalculaMagnitude(Ser ser)
        {
            int magTotal = ser.Forca.Porcentagem.Magnitude + ser.Destreza.Porcentagem.Magnitude + ser.Materia.Porcentagem.Magnitude + ser.Intelecto.Porcentagem.Magnitude + ser.Criatividade.Porcentagem.Magnitude + ser.Ideia.Porcentagem.Magnitude + ser.Existencia.Porcentagem.Magnitude;

            magTotal = magTotal / 7;

            return(magTotal);
        }
Exemplo n.º 13
0
        public List <Energia> CriaListaEnergias(Ser ser)
        {
            List <Energia> resultado = new List <Energia>();
            List <string>  siglas    = new List <string>();

            foreach (Especie especie in ser.Especies)
            {
                foreach (Energia energia in especie.Energias)
                {
                    //Só adiciona a energia se ela não for repetida (verificada pela sigla)
                    siglas = (from e in resultado select e.Sigla).ToList <string>();;
                    if (!siglas.Contains(energia.Sigla))
                    {
                        resultado.Add(new Energia(energia.Sigla));
                    }
                }
            }

            //Energias: "AP", "CP", "EP", "HP", "MP", "QP", "SP", "PE", "PA";
            foreach (Energia energia in resultado)
            {
                foreach (Especie especie in ser.Especies)
                {
                    //Soma todas as quantidades das energias dentro de cada uma das espécies do ser
                    //Ex: pega todos os APs de todas as espécies e soma
                    energia.Quantidade = energia.Quantidade + (from e in especie.Energias where e.Sigla.Equals(energia.Sigla) select e).Sum(e => e.Quantidade);
                }
                switch (energia.Sigla)
                {
                case "AP":
                    energia.Quantidade = energia.Quantidade + Convert.ToDecimal(ser.BonusCP);
                    break;

                case "HP":
                    energia.Quantidade = energia.Quantidade + Convert.ToDecimal(ser.BonusHP.ValorReal);
                    break;

                case "MP":
                    energia.Quantidade = ser.Ki * (energia.Quantidade + Convert.ToDecimal(ser.BonusMP.ValorReal));
                    break;

                case "SP":
                    energia.Quantidade = energia.Quantidade + ser.BonusSP;
                    break;

                //Axé
                case "XP":
                    energia.Quantidade = ser.Reis.Count * energia.Quantidade;
                    break;

                default:
                    break;
                }
                energia.Quantidade = energia.Quantidade * ser.Nivel;
            }

            return(resultado);
        }
Exemplo n.º 14
0
 private void Subser_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if ((sender as ListPicker).SelectedItem != ff)
     {
         SerId            = ((sender as ListPicker).SelectedItem as Service).Id;
         Ser.SelectedItem = ff1;
         Ser.UpdateLayout();
     }
 }
Exemplo n.º 15
0
        //ModRemoveHabilidade
        public Ser AplicaModificador(ModRemoveHabilidade mod, Ser ser)
        {
            if (ser.Habilidades.Contains(mod.Alvo))
            {
                ser.Habilidades.Remove(mod.Alvo);
            }

            return(ser);
        }
Exemplo n.º 16
0
        public Ser RemoveModificador(ModAdicionaHabilidade mod, Ser ser)
        {
            if (ser.Habilidades.Contains(mod.Alvo))
            {
                ser.Habilidades.Remove(mod.Alvo);
            }

            return(ser);
        }
Exemplo n.º 17
0
        //ModAdicionaHabilidade
        public Ser AplicaModificador(ModAdicionaHabilidade modificador, Ser ser)
        {
            if (!ser.Habilidades.Contains(modificador.Alvo))
            {
                ser.Habilidades.Add(modificador.Alvo);
            }

            return(ser);
        }
Exemplo n.º 18
0
        public Ser RemoveModificador(ModRemoveHabilidade mod, Ser ser)
        {
            if (!ser.Habilidades.Contains(mod.Alvo))
            {
                ser.Habilidades.Add(mod.Alvo);
            }

            return(ser);
        }
Exemplo n.º 19
0
        public static void issue_burn_tx(
            WalletConfig config,
            Keychain keychain,
            ulong amount,
            ulong minimumConfirmations,
            uint maxOutputs
            )
        {
            keychain = Keychain.Burn_enabled(keychain, Identifier.Zero());

            var chainTip      = Checker.get_tip_from_node(config);
            var currentHeight = chainTip.Height;

            var _ = Checker.refresh_outputs(config, keychain);

            var keyId = keychain.Root_key_id();

// select some spendable coins from the walvar
            var coins = WalletData.Read_wallet(
                config.DataFileDir, walletData => walletData.Select(
                    keyId.Clone(),
                    amount,
                    currentHeight,
                    minimumConfirmations,
                    maxOutputs,
                    false));


            Log.Debug("selected some coins - {}", coins.Length);

            var(partsArray, _) = inputs_and_change(coins, config, keychain, amount);

            var parts = partsArray.ToList();

            // add burn output and fees
            var fee = Types.tx_fee((uint)coins.Length, 2, null);

            parts.Add(c => c.Output(amount - fee, Identifier.Zero()));

            // finalize the burn transaction and send
            var(txBurn, _) = Build.Transaction(parts.ToArray(), keychain);
            txBurn.Validate(keychain.Secp);

            var txHex = HexUtil.to_hex(Ser.Ser_vec(txBurn));

            var url = $"{config.CheckNodeApiHttpAddr}/v1/pool/push";

            var json = JsonConvert.SerializeObject(new TxWrapper {
                TxHex = txHex
            });

            var res = ApiClient.PostContentAsync(url, new StringContent(json, Encoding.UTF8, "application/json")).Result;

            Log.Debug("{StatusCode}", res.StatusCode);
        }
Exemplo n.º 20
0
        public Ser CalculaExperiencia(Ser ser)
        {
            //Pontos de Graduação (G) = 10^Magnitude do Personagem
            //Pontos de Evolução (En) = Nivel * G
            //Experiência Total (XPn) = (G*(nivel^2 - nivel)) / 2
            ser.PontosGraduacao  = (decimal)Math.Floor(Math.Pow(10, ser.Magnitude));
            ser.PontosEvolucao   = Math.Floor(ser.Nivel * (Decimal)(ser.PontosGraduacao));
            ser.ExperienciaAtual = Math.Floor((ser.PontosGraduacao * ((decimal)Math.Pow(ser.Nivel, 2) - ser.Nivel)) / 2);

            return(ser);
        }
Exemplo n.º 21
0
        private void SaveAppSetting()
        {
            MemoryStream memoryStream = new MemoryStream();

            Ser.WriteObject(memoryStream, Settings);
            using (FileStream fileStream = File.Create(AppSettingPath))
            {
                memoryStream.Position = 0;
                memoryStream.CopyTo(fileStream);
            }
        }
Exemplo n.º 22
0
        public void Simple_tx_ser()
        {
            var tx = Tx2I1O();

            using (var vec = new MemoryStream())
            {
                Ser.Serialize(vec, tx);
                Console.WriteLine(vec.Length);
                Assert.True(vec.Length > 5360);
                Assert.True(vec.Length < 5380);
            }
        }
Exemplo n.º 23
0
        void client_getSubServiceCompleted(object sender, getSubServiceCompletedEventArgs e)
        {
            List <Service> ss = e.Result.ToList();

            //   Ser.ItemsSource = e.Result;
            ff1      = new Service();
            ff1.Name = "    ";
            ss.Add(ff1);
            Ser.ItemsSource  = ss;
            Ser.SelectedItem = ff1;
            Ser.UpdateLayout();
            IsInitSer = true;
        }
Exemplo n.º 24
0
 /// Builds a PartialTx from data sent by a sender (not yet completed by the receiver).
 public static PartialTx build_partial_tx(
     ulong receiveAmount,
     BlindingFactor blindSum,
     Transaction transaction
     )
 {
     return(new PartialTx
     {
         Amount = receiveAmount,
         BlindSum = HexUtil.to_hex(blindSum.Key.Value),
         Tx = HexUtil.to_hex(Ser.Ser_vec(transaction))
     });
 }
Exemplo n.º 25
0
        private List <Deslocamento> CalculaDeslocamentosBase(Ser ser)
        {
            List <Deslocamento> resultado = new List <Deslocamento>();

            //Solo
            resultado.Add(CalculaDesolocamentoSolo(ser));
            //Ar
            resultado.Add(CalculaDesolocamentoAr(ser));
            //Mar
            resultado.Add(CalculaDesolocamentoMar(ser));
            //Espaço
            resultado.Add(CalculaDesolocamentoEspaco(ser));

            return(resultado);
        }
Exemplo n.º 26
0
        public Natureza CalculaNatureza(Ser ser)
        {
            //Definido a partir da especie
            Natureza resultado = new Natureza()
            {
                Apresentacao  = (int)(from e in ser.Especies select e.Natureza.Apresentacao).Max(),
                Concepcao     = (int)(from e in ser.Especies select e.Natureza.Concepcao).Max(),
                Honra         = (int)(from e in ser.Especies select e.Natureza.Honra).Max(),
                Moral         = (int)(from e in ser.Especies select e.Natureza.Moral).Max(),
                Percepcao     = (int)(from e in ser.Especies select e.Natureza.Percepcao).Max(),
                Personalidade = (int)(from e in ser.Especies select e.Natureza.Personalidade).Max()
            };

            return(resultado);
        }
Exemplo n.º 27
0
        public void TesteCalculaExperiencia()
        {
            calculador = new CalculadorSer();

            Ser ser = new Ser()
            {
                Magnitude = 2,
                Nivel     = 25
            };

            ser = calculador.CalculaExperiencia(ser);

            Assert.AreEqual(100, ser.PontosGraduacao);
            Assert.AreEqual(2500, ser.PontosEvolucao);
            Assert.AreEqual(30000, ser.ExperienciaAtual);
        }
Exemplo n.º 28
0
        //SP = 105*(pontos de todos atributos-7) (somar tracinhos)
        private int CalculaBonusSP(Ser ser)
        {
            int resultado = 0;

            resultado = ser.Forca.Pontos + ser.Materia.Pontos + ser.Destreza.Pontos + ser.Criatividade.Pontos + ser.Existencia.Pontos + ser.Ideia.Pontos + ser.Intelecto.Pontos;
            resultado = (resultado - 7) * 105;
            resultado = resultado + ser.EvolucaoCriatividade.PontosAtuais;
            resultado = resultado + ser.EvolucaoDestreza.PontosAtuais;
            resultado = resultado + ser.EvolucaoExistencia.PontosAtuais;
            resultado = resultado + ser.EvolucaoForca.PontosAtuais;
            resultado = resultado + ser.EvolucaoIdeia.PontosAtuais;
            resultado = resultado + ser.EvolucaoIntelecto.PontosAtuais;
            resultado = resultado + ser.EvolucaoMateria.PontosAtuais;

            return(resultado);
        }
Exemplo n.º 29
0
        public Ser CalculaSer(Ser ser)
        {
            //TODO: Calcular experiencia

            //Carisma e Destino - A partir da Índole escolhida
            ser.Carisma = ser.Indole.Carisma;
            ser.Destino = ser.Indole.Destino;
            //Especial - O maior especial das raças do ser
            ser.Especial = CalculaEspecial(ser.Especies);
            //Deslocamentos
            ser.Deslocamentos = CalculaDeslocamentosBase(ser);
            //Pericias
            ser.Pericias = CriaListaPericiasSer(ser);
            //Habilidades
            ser.Habilidades = CriaListaHabilidades(ser);
            //Cansaço
            ser.CansacoMax = CalculaCansaco(ser);
            //Natureza
            ser.Natureza = CalculaNatureza(ser);
            //Fé e Karma
            ser.Fe    = CalculaFe(ser);
            ser.Karma = CalculaKarma(ser);
            //Subatributos
            ser = CalculaSubatributos(ser);
            //Ira, FV, PS
            ser.Ira          = (from e in ser.Especies select e.IraMin).Max();
            ser.ForcaVontade = (from e in ser.Especies select e.ForcaVontadeMin).Max();
            ser.PoderMaximo  = (from e in ser.Especies select e.PoderMaximoMax).Max();
            //Resposta
            ser.Resposta = CalculaResposta(ser);
            //Fugacidade
            ser.Fugacidade = CalculaFugacidade(ser);
            //Deslocamento
            ser.Deslocamentos = CalculaDeslocamentosBase(ser);
            //Modificadores
            ser.ModificadoresAtivos = ListaModificadoresAtivos(ser);
            //Magnitude
            ser.Magnitude = CalculaMagnitude(ser);
            //Energias
            ser.Energias = CriaListaEnergias(ser);
            //Experiência
            ser = CalculaExperiencia(ser);

            //TODO: Ativar modificadores

            return(ser);
        }
Exemplo n.º 30
0
        public List <Modificador> ListaModificadoresAtivos(Ser ser)
        {
            List <Modificador> resultado = new List <Modificador>();

            //Pericias
            //Itens / Equips / Posses
            //Virtudes
            //Defeitos
            //Reis

            foreach (Pericia pericia in ser.Pericias)
            {
                if (pericia.Modificadores != null)
                {
                    resultado.AddRange(pericia.Modificadores);
                }
            }

            foreach (Item item in ser.Equipamentos)
            {
                if (item.Modificadores != null)
                {
                    resultado.AddRange(item.Modificadores);
                }
            }

            foreach (Item item in ser.Posses)
            {
                if (item.Modificadores != null)
                {
                    resultado.AddRange(item.Modificadores);
                }
            }

            foreach (Rei rei in ser.Reis)
            {
                if (rei.Modificadores != null)
                {
                    resultado.AddRange(rei.Modificadores);
                }
            }

            resultado.AddRange(ser.Dons);
            resultado.AddRange(ser.Defeitos);

            return(resultado);
        }