Ejemplo n.º 1
0
        private bool SaveCardtoCDB(string cdbpath)
        {
            int cardid;
            int cardalias;
            int atk;
            int def;
            int ot = (CardFormats.SelectedItem == null ? 0 : GetCardFormat());

            if (chkPre.Checked)
            {
                ot |= 0x4;
            }

            if (!Int32.TryParse(CardID.Text, out cardid))
            {
                MessageBox.Show("Invalid card id");
                return(false);
            }

            int updatecard = m_loadedCard == 0 ? cardid : m_loadedCard;

            if (!Int32.TryParse(Alias.Text, out cardalias))
            {
                cardalias = 0;
            }
            if (!Int32.TryParse(ATK.Text, out atk))
            {
                MessageBox.Show("Invalid atk value");
                return(false);
            }
            if (!Int32.TryParse(DEF.Text, out def))
            {
                MessageBox.Show("Invalid def value");
                return(false);
            }
            if (CDBSelect.Items.Count == 0)
            {
                MessageBox.Show("No loaded database");
                return(false);
            }

            CardInfos newCardInfo = new CardInfos(new[] { cardid.ToString(CultureInfo.InvariantCulture), (ot.ToString(CultureInfo.InvariantCulture)), cardalias.ToString(CultureInfo.InvariantCulture), GetSetCode().ToString(CultureInfo.InvariantCulture), GetTypeCode().ToString(CultureInfo.InvariantCulture),
                                                          GetLevelCode().ToString(), (Race.SelectedItem == null ? "0" : (Race.SelectedItem == null ? "0" : m_cardRaces[Race.SelectedIndex].ToString(CultureInfo.InvariantCulture))),
                                                          (CardAttribute.SelectedItem == null ? "0" : (CardAttribute.SelectedItem == null ? "0" : m_cardAttributes[CardAttribute.SelectedIndex].ToString(CultureInfo.InvariantCulture))), atk.ToString(CultureInfo.InvariantCulture), def.ToString(CultureInfo.InvariantCulture), GetCategoryNumber().ToString(CultureInfo.InvariantCulture) }
                                                  , CDBSelect.SelectedIndex + 1);

            var cardtextarray = new List <string> {
                cardid.ToString(CultureInfo.InvariantCulture), CardName.Text, CardDescription.Text
            };

            for (var i = 0; i < 17; i++)
            {
                cardtextarray.Add((i < EffectList.Items.Count ? EffectList.Items[i].ToString() : string.Empty));
            }

            newCardInfo.SetCardText(cardtextarray.ToArray());

            if (CardTypeList.CheckedItems.Contains("Link"))
            {
                newCardInfo.Def = GetLinkMarkers();
            }

            //check source DB

            if (CardManager.ContainsCard(cardid))
            {
                if (CardManager.GetCard(cardid).source != newCardInfo.source)
                {
                    if (MessageBox.Show("Copy to new database?", "", MessageBoxButtons.YesNo) != DialogResult.Yes)
                    {
                        return(false);
                    }
                }
            }


            //save/update card
            var connection = new SQLiteConnection("Data Source=" + CardManager.GetDatabaseDir(newCardInfo.source));

            connection.Open();
            //check if card id exsists
            bool overwrite = SQLiteCommands.ContainsCard(updatecard, connection);

            if (overwrite)
            {
                if (MessageBox.Show("Overwrite current card?", "Found", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    connection.Close();
                    return(false);
                }
            }

            SQLiteCommands.SaveCard(newCardInfo, connection, updatecard, overwrite);

            connection.Close();

            if (cardid != updatecard)
            {
                CardManager.RenameKey(updatecard, cardid);
            }

            CardManager.UpdateOrAddCard(newCardInfo);

            MessageBox.Show("Card Saved");
            return(true);
        }
Ejemplo n.º 2
0
        private bool LoadCard(int cardid)
        {
            if (!CardManager.ContainsCard(cardid))
            {
                return(false);
            }

            Clearbtn_Click(null, EventArgs.Empty);
            CardInfos info = CardManager.GetCard(cardid);

            CardID.Text = info.Id.ToString(CultureInfo.InvariantCulture);
            Alias.Text  = info.AliasId.ToString(CultureInfo.InvariantCulture);
            for (int i = 0; i < m_formats.Count; i++)
            {
                if (m_formats[i] == (info.Ot & 0x3))
                {
                    CardFormats.SelectedIndex = i;
                    break;
                }
            }
            Level.SelectedIndex  = (int)info.Level - 1;
            RScale.SelectedIndex = (int)info.RScale;
            LScale.SelectedIndex = (int)info.LScale;
            for (int i = 0; i < m_cardRaces.Count; i++)
            {
                if (m_cardRaces[i] == info.Race)
                {
                    Race.SelectedIndex = i;
                    break;
                }
            }
            for (int i = 0; i < m_cardAttributes.Count; i++)
            {
                if (m_cardAttributes[i] == info.Attribute)
                {
                    CardAttribute.SelectedIndex = i;
                    break;
                }
            }
            ATK.Text       = info.Atk.ToString(CultureInfo.InvariantCulture);
            DEF.Text       = info.Def.ToString(CultureInfo.InvariantCulture);
            chkPre.Checked = (info.Ot & 0x4) > 0;

            CardName.Text        = info.Name;
            CardDescription.Text = info.Description;
            foreach (string effect in info.EffectStrings)
            {
                EffectList.Items.Add(effect);
            }
            SetCardTypes(info.GetCardTypes());
            if (CardTypeList.CheckedItems.Contains("Link"))
            {
                SetCardMarkers(info.GetLinkMarkers());
                linkMarkerPanel.Enabled = true;
            }

            long setcode = info.SetCode & 0xffff;

            if (m_setCodes.ContainsKey((int)setcode))
            {
                SetCodeOne.SelectedItem = (int)setcode;
            }
            else
            {
                SetCodeOne.SelectedItem = m_setCodes[0];
            }
            setcode = info.SetCode >> 16 & 0xffff;
            if (m_setCodes.ContainsKey((int)setcode))
            {
                SetCodeTwo.SelectedItem = (int)setcode;
            }
            else
            {
                SetCodeTwo.SelectedItem = m_setCodes[0];
            }
            setcode = info.SetCode >> 32 & 0xffff;
            if (m_setCodes.ContainsKey((int)setcode))
            {
                SetCodeThree.SelectedItem = (int)setcode;
            }
            else
            {
                SetCodeThree.SelectedItem = 0;
            }
            setcode = info.SetCode >> 48 & 0xffff;
            if (m_setCodes.ContainsKey((int)setcode))
            {
                SetCodeFour.SelectedItem = (int)setcode;
            }
            else
            {
                SetCodeFour.SelectedItem = m_setCodes[0];
            }
            SetCategoryCheckBoxs(info.Category);

            m_loadedCard = info.Id;

            CDBSelect.SelectedIndex = info.source - 1;

            return(true);
        }
Ejemplo n.º 3
0
        private void ConvertButton_Click(object sender, EventArgs e)
        {
            ConvertButton.Enabled = false;
            bool            updateCdb    = cdbchk.Checked;
            bool            updateScript = patchchk.Checked;
            bool            updateImage  = imagechk.Checked;
            List <string[]> updateCards  = UpdateCardsList.Items.OfType <string[]>().ToList();

            if (patchchk.Checked)
            {
                if (!Directory.Exists("DevPatch"))
                {
                    Directory.CreateDirectory("DevPatch");
                }
                if (!Directory.Exists("DevPatch\\script"))
                {
                    Directory.CreateDirectory("DevPatch\\script");
                }
                if (!Directory.Exists("DevPatch\\pics"))
                {
                    Directory.CreateDirectory("DevPatch\\pics");
                }
                if (!Directory.Exists("DevPatch\\pics\\thumbnail"))
                {
                    Directory.CreateDirectory("DevPatch\\pics\\thumbnail");
                }
            }

            string str = "cards.cdb";

            foreach (var updateCard in updateCards)
            {
                if (updateCdb)
                {
                    if (!File.Exists(str))
                    {
                        MessageBox.Show("cards.cdb not found.");
                        return;
                    }

                    int cardid = Int32.Parse(updateCard[0]);
                    int newid  = Int32.Parse(updateCard[1]);
                    CardManager.RenameKey(cardid, newid);

                    CardInfos card = CardManager.GetCard(newid);
                    card.Id = newid;
                    if (chkremovepre.Checked)
                    {
                        card.Ot = card.Ot & 0x03;
                    }

                    CardManager.UpdateOrAddCard(card);

                    var connection = new SQLiteConnection("Data Source=" + str);
                    connection.Open();

                    SQLiteCommands.UpdateCardId(updateCard[0], updateCard[1], connection);
                    if (chkremovepre.Checked)
                    {
                        SQLiteCommands.UpdateCardOt(updateCard[1], card.Ot.ToString(), connection);
                    }

                    connection.Close();
                }

                if (updateImage)
                {
                    string       mainDir            = Directory.GetCurrentDirectory();;
                    const string picFolderName      = "pics";
                    const string tumbnailFolderName = "pics\\thumbnail";
                    string       picName            = updateCard[0] + ".png";
                    string       newPicName         = updateCard[1] + ".png";

                    string imagePath             = Path.Combine(mainDir, picFolderName, picName);
                    string newImagePath          = Path.Combine(mainDir, picFolderName, newPicName);
                    string thumbnailImagePath    = Path.Combine(mainDir, tumbnailFolderName, picName);
                    string newthumbnailImagePath = Path.Combine(mainDir, tumbnailFolderName, newPicName);

                    if (File.Exists(imagePath) && !File.Exists(newImagePath))
                    {
                        File.Move(imagePath, newImagePath);
                    }
                    if (File.Exists(thumbnailImagePath) && !File.Exists(newthumbnailImagePath))
                    {
                        File.Move(thumbnailImagePath, newthumbnailImagePath);
                    }
                    if (patchchk.Checked)
                    {
                        if (File.Exists(newImagePath))
                        {
                            File.Copy(newImagePath, Path.Combine("DevPatch\\pics", newPicName), true);
                        }
                        if (File.Exists(newthumbnailImagePath))
                        {
                            File.Copy(newthumbnailImagePath, Path.Combine("DevPatch\\pics\\thumbnail", newPicName), true);
                        }
                    }
                }

                if (updateScript)
                {
                    string       mainDir          = Directory.GetCurrentDirectory();;
                    const string scriptFolderName = "script";
                    string       scriptName       = "c" + updateCard[0] + ".lua";
                    string       newScriptName    = "c" + updateCard[1] + ".lua";

                    string scriptPath    = Path.Combine(mainDir, scriptFolderName, scriptName);
                    string newScriptPath = Path.Combine(mainDir, scriptFolderName, newScriptName);

                    if (File.Exists(scriptPath))
                    {
                        File.Move(scriptPath, newScriptPath);

                        //needs testing id replacing
                        string scriptFile = File.ReadAllText(newScriptPath);
                        scriptFile = scriptFile.Replace(updateCard[0], updateCard[1]);
                        File.WriteAllText(newScriptPath, scriptFile);

                        if (patchchk.Checked)
                        {
                            if (File.Exists(newScriptPath))
                            {
                                File.Copy(newScriptPath, Path.Combine("DevPatch\\script", newScriptName), true);
                            }
                        }
                    }
                }
            }
            if (patchchk.Checked)
            {
                File.Copy(str, "DevPatch\\cards.cdb", true);
            }
            UpdateCardsList.Items.Clear();
            MessageBox.Show("Complete.");
            ConvertButton.Enabled = true;
        }
Ejemplo n.º 4
0
 public void UpdateDatabases()
 {
     CDBSelect.Items.Clear();
     CDBSelect.Items.AddRange(CardManager.GetDatabaseNames());
 }
Ejemplo n.º 5
0
        private void LoadBanList()
        {
            m_banlists = new Dictionary <string, List <BanListCard> >();
            if (!File.Exists("lflist.conf"))
            {
                return;
            }

            var reader = new StreamReader(File.OpenRead("lflist.conf"));

            while (!reader.EndOfStream)
            {
                string line = reader.ReadLine();
                if (string.IsNullOrEmpty(line) || line.StartsWith("#"))
                {
                    continue;
                }
                if (line.StartsWith("!"))
                {
                    if (!BanList.Items.Contains(line.Substring(1)))
                    {
                        BanList.Items.Add(line.Substring(1));
                    }
                }
                else
                {
                    string[] parts = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    if (!CardManager.ContainsCard(Int32.Parse(parts[0])))
                    {
                        continue;
                    }

                    if (CardManager.GetCard(Int32.Parse(parts[0])).Name == "")
                    {
                        continue;
                    }

                    BanListCard card = new BanListCard {
                        ID = Int32.Parse(parts[0]), Banvalue = Int32.Parse(parts[1]), Name = CardManager.GetCard(Int32.Parse(parts[0])).Name
                    };
                    if (!m_banlists.ContainsKey(BanList.Items[BanList.Items.Count - 1].ToString()))
                    {
                        m_banlists.Add(BanList.Items[BanList.Items.Count - 1].ToString(), new List <BanListCard>());
                        m_banlists[BanList.Items[BanList.Items.Count - 1].ToString()].Add(card);
                    }
                    else
                    {
                        if (!m_banlists[BanList.Items[BanList.Items.Count - 1].ToString()].Exists(banListCard => banListCard.ID == Int32.Parse(parts[0])))
                        {
                            m_banlists[BanList.Items[BanList.Items.Count - 1].ToString()].Add(card);
                        }
                    }
                }
            }
            reader.Close();
        }