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); }
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); }
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; }
public void UpdateDatabases() { CDBSelect.Items.Clear(); CDBSelect.Items.AddRange(CardManager.GetDatabaseNames()); }
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(); }