public void Load(byte[] data, int start)
        {
            if (start + 0xf0 > data.Length)
            {
                throw new ArgumentOutOfRangeException("start");
            }

            Party = new BattleSubwayPokemon5[3];
            for (int x = 0; x < 3; x++)
            {
                Party[x] = new BattleSubwayPokemon5(data, start + x * 0x3c);
            }
            Profile = new BattleSubwayProfile5(data, 0xb4 + start);

            byte[] trendyPhrase = new byte[8];
            Array.Copy(data, 0xd6 + start, trendyPhrase, 0, 8);
            PhraseChallenged = new TrendyPhrase5(trendyPhrase);
            trendyPhrase     = new byte[8];
            Array.Copy(data, 0xde + start, trendyPhrase, 0, 8);
            PhraseWon    = new TrendyPhrase5(trendyPhrase);
            trendyPhrase = new byte[8];
            Array.Copy(data, 0xe6 + start, trendyPhrase, 0, 8);
            PhraseLost = new TrendyPhrase5(trendyPhrase);

            Unknown3 = BitConverter.ToUInt16(data, 0xee + start);
        }
        public BattleSubwayProfile5(EncodedString5 name, Versions version,
                                    Languages language, byte country, byte region, uint ot,
                                    TrendyPhrase5 phrase_leader, byte gender, byte unknown)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (name.Size != 16)
            {
                throw new ArgumentException("name");
            }
            if (phrase_leader == null)
            {
                throw new ArgumentNullException("phrase_leader");
            }

            Name         = name; // todo: clone
            Version      = version;
            Language     = language;
            Country      = country;
            Region       = region;
            OT           = ot;
            PhraseLeader = phrase_leader; // todo: clone
            Gender       = gender;
            Unknown      = unknown;
        }
        public void Load(byte[] data, int start)
        {
            if (start + 0x22 > data.Length) throw new ArgumentOutOfRangeException("start");

            Name = new EncodedString5(data, start, 0x10);
            Version = (Versions)data[0x10 + start];
            Language = (Languages)data[0x11 + start];
            Country = data[0x12 + start];
            Region = data[0x13 + start];
            OT = BitConverter.ToUInt32(data, 0x14 + start);
            byte[] trendyPhrase = new byte[8];
            Array.Copy(data, 0x18 + start, trendyPhrase, 0, 8);
            PhraseLeader = new TrendyPhrase5(trendyPhrase);
            Gender = data[0x20 + start];
            Unknown = data[0x21 + start];
        }
Exemplo n.º 4
0
        public void Load(byte[] data, int start)
        {
            if (start + 0x22 > data.Length)
            {
                throw new ArgumentOutOfRangeException("start");
            }

            Name     = new EncodedString5(data, start, 0x10);
            Version  = (Versions)data[0x10 + start];
            Language = (Languages)data[0x11 + start];
            Country  = data[0x12 + start];
            Region   = data[0x13 + start];
            OT       = BitConverter.ToUInt32(data, 0x14 + start);
            byte[] trendyPhrase = new byte[8];
            Array.Copy(data, 0x18 + start, trendyPhrase, 0, 8);
            PhraseLeader = new TrendyPhrase5(trendyPhrase);
            Gender       = data[0x20 + start];
            Unknown      = data[0x21 + start];
        }
        public void Load(byte[] data, int start)
        {
            if (start + 0xf0 > data.Length) throw new ArgumentOutOfRangeException("start");

            Party = new BattleSubwayPokemon5[3];
            for (int x = 0; x < 3; x++)
            {
                Party[x] = new BattleSubwayPokemon5(data, start + x * 0x3c);
            }
            Profile = new BattleSubwayProfile5(data, 0xb4 + start);

            byte[] trendyPhrase = new byte[8];
            Array.Copy(data, 0xd6 + start, trendyPhrase, 0, 8);
            PhraseChallenged = new TrendyPhrase5(trendyPhrase);
            trendyPhrase = new byte[8];
            Array.Copy(data, 0xde + start, trendyPhrase, 0, 8);
            PhraseWon = new TrendyPhrase5(trendyPhrase);
            trendyPhrase = new byte[8];
            Array.Copy(data, 0xe6 + start, trendyPhrase, 0, 8);
            PhraseLost = new TrendyPhrase5(trendyPhrase);

            Unknown3 = BitConverter.ToUInt16(data, 0xee + start);
        }
        protected void btnGet_Click(object sender, EventArgs e)
        {
            byte rank;
            byte room;

            if (!Byte.TryParse(txtRank.Text, out rank) ||
                !Byte.TryParse(txtRoom.Text, out room))
            {
                litResults.Text = "Please type numbers.";
                return;
            }

            if (rank > 10 || rank < 1)
            {
                litResults.Text = "Rank must be 1-10.";
            }
            if (room > 50 || rank < 1)
            {
                litResults.Text = "Room must be 1-50.";
            }

            rank--;
            room--;

            Pokedex.Pokedex pokedex = AppStateHelper.Pokedex(Context.Application);

            switch (rbGeneration.SelectedValue)
            {
            case "4":
            {
                BattleTowerProfile4[] results = Database.Instance.BattleTowerGetLeaders4(pokedex, rank, room);

                StringBuilder builder = new StringBuilder();

                builder.Append("<p>Leaders:</p><ul>");
                foreach (BattleTowerProfile4 profile in results)
                {
                    builder.Append("<li>");
                    TrendyPhrase4 tp = profile.PhraseLeader;
                    builder.Append(tp.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));
                    builder.Append("</li>");
                }
                builder.Append("</ul><p>Opponents:</p><ul>");

                BattleTowerRecord4[] opponents = Database.Instance.BattleTowerGetOpponents4(pokedex, -1, rank, room);
                foreach (BattleTowerRecord4 record in opponents)
                {
                    builder.Append("<li>");

                    builder.Append(record.PhraseChallenged.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));
                    builder.Append("<br />");

                    builder.Append(record.PhraseWon.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));
                    builder.Append("<br />");

                    builder.Append(record.PhraseLost.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));

                    builder.Append("</li>");
                }
                litResults.Text = builder.ToString();
            } break;

            case "5":
            {
                BattleSubwayProfile5[] results = Database.Instance.BattleSubwayGetLeaders5(pokedex, rank, room);

                StringBuilder builder = new StringBuilder();

                builder.Append("<p>Leaders:</p><ul>");
                foreach (BattleSubwayProfile5 profile in results)
                {
                    builder.Append("<li>");
                    TrendyPhrase5 tp = profile.PhraseLeader;
                    builder.Append(tp.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));
                    builder.Append("</li>");
                }
                builder.Append("</ul><p>Opponents:</p><ul>");

                BattleSubwayRecord5[] opponents = Database.Instance.BattleSubwayGetOpponents5(pokedex, -1, rank, room);
                foreach (BattleSubwayRecord5 record in opponents)
                {
                    builder.Append("<li>");

                    builder.Append(record.PhraseChallenged.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));
                    builder.Append("<br />");

                    builder.Append(record.PhraseWon.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));
                    builder.Append("<br />");

                    builder.Append(record.PhraseLost.Render("<span style=\"color: #0066ff; font-weight: bold;\">{0}</span>"));

                    builder.Append("</li>");
                }
                litResults.Text = builder.ToString();
            } break;
            }
        }