Beispiel #1
0
        private void dumpPKX_SAV(byte[] pkx, int dumpnum, int dumpstart)
        {
            if (ghost && CHK_HideFirst.Checked) return;
            if (pkx == null || !verifyCHK(pkx)) //RTB_SAV.AppendText("SLOT LOCKED\n");
                return;

            Structures.PKX data = new Structures.PKX(pkx);

            // Printout Parsing
            if (data.species == 0) //RTB_SAV.AppendText("SLOT EMPTY");
                return;

            string box = "B"+(dumpstart + (dumpnum/30)).ToString("00");
            string slot = (((dumpnum%30) / 6 + 1).ToString() + "," + (dumpnum % 6 + 1).ToString());
            string species = specieslist[data.species];
            string gender = data.genderstring;
            string nature = natures[data.nature];
            string ability = abilitylist[data.ability];
            string hp = data.HP_IV.ToString();
            string atk = data.ATK_IV.ToString();
            string def = data.DEF_IV.ToString();
            string spa = data.SPA_IV.ToString();
            string spd = data.SPD_IV.ToString();
            string spe = data.SPE_IV.ToString();
            string hptype = types[data.hptype];
            string ESV = data.ESV.ToString("0000");
            string TSV = data.TSV.ToString("0000");
            string ball = balls[data.ball];
            string nickname = data.nicknamestr;
            string otname = data.ot;
            string TID = data.TID.ToString("00000");
            string SID = data.SID.ToString("00000");
            string move1 = movelist[data.move1];
            string move2 = movelist[data.move2];
            string move3 = movelist[data.move3];
            string move4 = movelist[data.move4];
            string ev_hp = data.HP_EV.ToString();
            string ev_at = data.ATK_EV.ToString();
            string ev_de = data.DEF_EV.ToString();
            string ev_sa = data.SPA_EV.ToString();
            string ev_sd = data.SPD_EV.ToString();
            string ev_se = data.SPE_EV.ToString();

            // Bonus
            string relearn1 = movelist[data.eggmove1].ToString();
            string relearn2 = movelist[data.eggmove2].ToString();
            string relearn3 = movelist[data.eggmove3].ToString();
            string relearn4 = movelist[data.eggmove4].ToString();
            string isshiny = ""; if (data.isshiny) isshiny = "★";
            string isegg = ""; if (data.isegg) isegg = "✓";

            bool statisfiesFilters = true;

            while (CHK_Enable_Filtering.Checked)
            {
                if (CHK_Egg.Checked && !data.isegg) { statisfiesFilters = false; break; }
                bool checkHp = false;
                if (CB_HP_Type.SelectedIndex > 0)
                {
                    if (CB_HP_Type.SelectedIndex != data.hptype) { statisfiesFilters = false; break; }
                    checkHp = true;
                }

                int perfects = Convert.ToInt16(CB_No_IVs.SelectedItem);
                bool ivsSelected = CHK_IV_HP.Checked || CHK_IV_Atk.Checked || CHK_IV_Def.Checked || CHK_IV_SpAtk.Checked || CHK_IV_SpDef.Checked || CHK_IV_Spe.Checked;
                if (hp == "31" ||checkHp && hp == "30") --perfects;
                else if (ivsSelected && CHK_IV_HP.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; }
                if ((atk == "31" || checkHp && atk == "30") && !CHK_Special_Attacker.Checked || (atk == "0" || checkHp && atk == "1") && CHK_Special_Attacker.Checked) --perfects;
                else if (ivsSelected && CHK_IV_Atk.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; }
                if (def == "31" || checkHp && def == "30") --perfects;
                else if (ivsSelected && CHK_IV_Def.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; }
                if (spa == "31" || checkHp && spa == "30") --perfects;
                else if (ivsSelected && CHK_IV_SpAtk.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; }
                if (spd == "31" || checkHp && spd == "30") --perfects;
                else if (ivsSelected && CHK_IV_SpDef.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; }
                if ((spe == "31" || checkHp && spe == "30") && !CHK_Trickroom.Checked || (spe == "0" || checkHp && spe == "1") && CHK_Trickroom.Checked) --perfects;
                else if (ivsSelected && CHK_IV_Spe.Checked != RAD_IVs_Miss.Checked) { statisfiesFilters = false; break; }
                if (perfects > 0) { statisfiesFilters = false; break; }

                if (CHK_Is_Shiny.Checked || CHK_Hatches_Shiny_For_Me.Checked || CHK_Hatches_Shiny_For.Checked)
                {
                    // TODO: Should probably cache this somewhere...
                    if (!(CHK_Is_Shiny.Checked && data.isshiny ||
                        data.isegg && CHK_Hatches_Shiny_For_Me.Checked && ESV == TSV ||
                        data.isegg && CHK_Hatches_Shiny_For.Checked && Array.IndexOf(selectedTSVs, data.ESV) > -1))
                    { statisfiesFilters = false; break; }
                }

                break;
            }

            if (statisfiesFilters)
            {
                if (!data.isegg) ESV = "";

                // Vivillon Forms...
                if (data.species >= 664 && data.species <= 666)
                    species += "-" + vivlist[data.altforms];

                if (((CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6)) && CHK_BoldIVs.Checked))
                {
                    if (hp == "31") hp = "**31**";
                    if (atk == "31") atk = "**31**";
                    if (def == "31") def = "**31**";
                    if (spa == "31") spa = "**31**";
                    if (spd == "31") spd = "**31**";
                    if (spe == "31") spe = "**31**";
                }

                string format = RTB_OPTIONS.Text;
                if (CB_ExportStyle.SelectedIndex >= 6)
                    format = "{0} - {1} - {2} ({3}) - {4} - {5} - {6}.{7}.{8}.{9}.{10}.{11} - {12} - {13}";

                if (CB_ExportStyle.SelectedIndex == 6)
                {
                    csvdata += String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{32},{33},{34},{35}\n",
                        box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg);
                }
                if (CB_ExportStyle.SelectedIndex == 7)
                {
                    isshiny = "";
                    if (data.isshiny)
                        isshiny = " ★";
                    if (data.isnick)
                        data.nicknamestr += String.Format(" ({0})", specieslist[data.species]);

                    string savedname =
                        data.species.ToString("000") + isshiny + " - "
                        + data.nicknamestr + " - "
                        + data.chk.ToString("X4") + data.EC.ToString("X8");
                    File.WriteAllBytes(Path.Combine(dbpath, CleanFileName(savedname) + ".pk6"), pkx);
                }
                if (!(CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6 && CHK_R_Table.Checked)))
                {
                    if (ESV != "")
                        ESV = "[" + ESV + "]";
                }
                string result = String.Format(format, box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg);

                if (ghost && CHK_MarkFirst.Checked) result = "~" + result;
                dumpedcounter++;
                RTB_SAV.AppendText(result + "\n");
            }
        }
Beispiel #2
0
        // BV
        private void dumpPKX_BV(byte[] pkx, int slot)
        {
            if (pkx == null || !verifyCHK(pkx)) //RTB_SAV.AppendText("SLOT LOCKED\n");
                return;

            Structures.PKX data = new Structures.PKX(pkx);

            // Printout Parsing
            if (data.species == 0) //RTB_SAV.AppendText("SLOT EMPTY");
                return;

            string box = "~";
            string species = specieslist[data.species];
            string gender = data.genderstring;
            string nature = natures[data.nature];
            string ability = abilitylist[data.ability];
            string hp = data.HP_IV.ToString();
            string atk = data.ATK_IV.ToString();
            string def = data.DEF_IV.ToString();
            string spa = data.SPA_IV.ToString();
            string spd = data.SPD_IV.ToString();
            string spe = data.SPE_IV.ToString();
            string hptype = types[data.hptype];
            string ESV = data.ESV.ToString("0000");
            string TSV = data.TSV.ToString("0000");
            string ball = balls[data.ball];
            string nickname = data.nicknamestr;
            string otname = data.ot;
            string TID = data.TID.ToString("00000");
            string SID = data.SID.ToString("00000");
            // if (!data.isegg) ESV = "";
            string move1 = movelist[data.move1];
            string move2 = movelist[data.move2];
            string move3 = movelist[data.move3];
            string move4 = movelist[data.move4];
            string ev_hp = data.HP_EV.ToString();
            string ev_at = data.ATK_EV.ToString();
            string ev_de = data.DEF_EV.ToString();
            string ev_sa = data.SPA_EV.ToString();
            string ev_sd = data.SPD_EV.ToString();
            string ev_se = data.SPE_EV.ToString();

            // Bonus
            string relearn1 = movelist[data.eggmove1].ToString();
            string relearn2 = movelist[data.eggmove2].ToString();
            string relearn3 = movelist[data.eggmove3].ToString();
            string relearn4 = movelist[data.eggmove4].ToString();
            string isshiny = ""; if (data.isshiny) isshiny = "★";
            string isegg = ""; if (data.isegg) isegg = "✓";

            // Vivillon Forms...
            if (data.species >= 664 && data.species <= 666)
                species += "-" + vivlist[data.altforms];

            if (((CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6)) && CHK_BoldIVs.Checked))
            {
                if (hp == "31") hp = "**31**";
                if (atk == "31") atk = "**31**";
                if (def == "31") def = "**31**";
                if (spa == "31") spa = "**31**";
                if (spd == "31") spd = "**31**";
                if (spe == "31") spe = "**31**";
            }
            string format = RTB_OPTIONS.Text;
            if (CB_ExportStyle.SelectedIndex >= 6)
                format = "{0} - {1} - {2} ({3}) - {4} - {5} - {6}.{7}.{8}.{9}.{10}.{11} - {12} - {13}";

            if (CB_ExportStyle.SelectedIndex == 6)
            {
                csvdata += String.Format("{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{32},{33},{34},{35}\n",
                    box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg);
            }
            if (CB_ExportStyle.SelectedIndex == 7)
            {
                isshiny = "";
                if (data.isshiny)
                    isshiny = " ★";
                if (data.isnick)
                    data.nicknamestr += String.Format(" ({0})",specieslist[data.species]);
                string savedname =
                    data.species.ToString("000") + isshiny + " - "
                    + data.nicknamestr + " - "
                    + data.chk.ToString("X4") + data.EC.ToString("X8");
                File.WriteAllBytes(Path.Combine(dbpath, CleanFileName(savedname) + ".pk6"), pkx);
            }
            if (!(CB_ExportStyle.SelectedIndex == 1 || CB_ExportStyle.SelectedIndex == 2 || (CB_ExportStyle.SelectedIndex != 0 && CB_ExportStyle.SelectedIndex < 6 && CHK_R_Table.Checked)))
            {
                if (ESV != "")
                    ESV = "[" + ESV + "]";
            }
            string result = String.Format(format, box, slot, species, gender, nature, ability, hp, atk, def, spa, spd, spe, hptype, ESV, TSV, nickname, otname, ball, TID, SID, ev_hp, ev_at, ev_de, ev_sa, ev_sd, ev_se, move1, move2, move3, move4, relearn1, relearn2, relearn3, relearn4, isshiny, isegg);

            RTB_VID.AppendText(result + "\n");
        }