News:

A forum for users of LackeyCCG

Main Menu

VS System and L5R Updates?

Started by Beast Boy, April 27, 2012, 07:14:13 PM

Previous topic - Next topic

Beast Boy

Hey guys! Could someone update the plugins of VS System and Legend of the Five Rings, please? The new cards for VS System can be found on www.vssystem.org and the Legend of the Five Rings images of newer cards (including Emperor Edition!) can be found at www.imperialassembly.com/oracle. If someone can update these, I'd really appreciate it. :)

Alastair

In regards to VS, those are fan created sets. I simply don't have the time to try to import all of that into the plugin and keep it updated for a game that's used infrequently at best. If someone else is interested in maintaining the plugin they can contact me here on the forum or send a PM.

Kanashimi

I've contemplated updating the L5R plugin myself, however I just don't have the time available to manage it.

Kanashimi

I've got the vast majority of the card images for L5R, just working on the text files.

Skazlathac

I converted the Empire Edition card data from the file that gempukku uses so that it and the images can be loaded by lackey. If anyone wants the files, I'll be happy to email them to you. Here is the C# code for converting from gempukku to lackey:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication3
{
    public class Card
    {
        public string id { get; set; }
        public string name { get; set; }
        public string type {get;set;}
        public string ImageFile {get;set;}
        public string clan {get;set;}
        public string force {get;set;}
        public string chi{get;set;}
        public string gold{get;set;}
        public string pHonor{get;set;}
        public string honorReq { get; set; }
        public string focus{get;set;}
        public string rarity{get;set;}
        public string number{get;set;}
        public string text{get;set;}
        public string edition { get; set; }
        public string set { get; set; }
        public string deck
        {
            get
            {
                string dynasty = "dynasty";
                string fate = "fate";
                if (type == "spell")
                    return "fate";
                else if (type == "personality")
                    return "dynasty";
                else if (type == "holding")
                    return "dynasty";
                else if (type == "strategy")
                    return "fate";
                else if (type == "celestial")
                    return "dynasty";
                else if (type == "event")
                    return fate;
                else if (type == "region")
                    return dynasty;
                else if (type == "follower")
                    return "fate";
                else if (type == "item")
                    return "fate";
                else if (type == "stronghold")
                    return "stronghold";
                else if (type == "ring")
                    return "fate";
                else if (type == "")
                    return "";
                return "dynasty";
            }
        }
        public List<string> legality = new List<string>();

        //Name   Set   ImageFile   Type   Deck   Clan   Force   Chi   HonorReq   Gold   PHonor   Focus   Rarity   Number   Text
        public string exportCard()
        {
            string line = "";
            line += name + "\t";
            line+=edition + "\t";
            string reImageFile = ImageFile.Split(new string[] { "/", ".jpg" }, StringSplitOptions.RemoveEmptyEntries).Last();
            line +=  reImageFile+ "\t";
            line += type + "\t";
            line += deck + "\t";
            line += clan + "\t";
            line += force + "\t";
            line += chi + "\t";
            line += honorReq + "\t";
            line += gold + "\t";
            line += pHonor + "\t";
            line += focus + "\t";
            line += rarity + "\t";
            line += id + "\t";
            string[] removeThese = { "<b>", "<B>", "</B>", "</b>", "<br>", "</b>", "&#8226", "<i>", "</i>" };
            string[] retextA = text.Split(removeThese,StringSplitOptions.RemoveEmptyEntries);
            string retext = "";
            for (int i = 0; i < retextA.Count(); i++)
                retext += retextA;
            Console.WriteLine(retext);
            if(retext.Contains('<'))
            {
            }
            line += retext+ "\t";
            line += "\n";
            return line;
        }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Serialization;
using System.Xml;
using System.IO;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDialog = new OpenFileDialog();
            DialogResult result = openDialog.ShowDialog();
            if (result != DialogResult.OK)
                return;

            Stream fileStream = openDialog.OpenFile();
            // StreamReader reader = new StreamReader(fileStream);
            //  string fileText=reader.ReadToEnd();
            // XmlTextReader reader = new XmlTextReader(fileStream);
            XmlReader reader = XmlReader.Create(fileStream);
            string output = "Name   Set   ImageFile   Type   Deck   Clan   Force   Chi   HonorReq   Gold   PHonor   Focus   Rarity   Number   Text\n";
            List<Card> cards = new List<Card>();
            Card currentCard = null;
            while (reader.Read())
            {
                Console.WriteLine(cards.Count);
                string nodeName = reader.Name;
                if (reader.NodeType == XmlNodeType.Element)
                    if (reader.Name == "card")
                    {
                        currentCard = new Card();
                        cards.Add(currentCard);
                        currentCard.id = reader.GetAttribute("id");
                        currentCard.type = reader.GetAttribute("type");
                        while (reader.NodeType != XmlNodeType.EndElement || reader.Name != "card")
                        {
                            reader.Read();
                            if (reader.NodeType == XmlNodeType.Element)
                            {
                                switch (reader.Name)
                                {
                                    case "name":
                                        reader.Read();
                                        currentCard.name = reader.Value;
                                        break;
                                    case "rarity":
                                        reader.Read();
                                        currentCard.rarity = reader.Value;
                                        break;
                                    case "clan":
                                        reader.Read();
                                        currentCard.clan = reader.Value;
                                        break;
                                    case "cost":
                                        reader.Read();
                                        currentCard.gold = reader.Value;
                                        break;
                                    case "edition":
                                        reader.Read();
                                        currentCard.edition = reader.Value;
                                        break;
                                    case "image":
                                        reader.Read();
                                        currentCard.ImageFile = reader.Value;
                                        break;
                                    case "legal":
                                        reader.Read();
                                        currentCard.legality.Add(reader.Value);
                                        break;
                                    case "force":
                                        reader.Read();
                                        currentCard.force = reader.Value;
                                        break;
                                    case "chi":
                                        reader.Read();
                                        currentCard.chi = reader.Value;
                                        break;
                                    case "focus":
                                        reader.Read();
                                        currentCard.focus = reader.Value;
                                        break;
                                    case "text":
                                        reader.Read();
                                        currentCard.text = reader.Value;
                                        break;
                                    case "personal_honor":
                                        reader.Read();
                                        currentCard.pHonor = reader.Value;
                                        break;
                                    case "honor_req":
                                        reader.Read();
                                        currentCard.honorReq = reader.Value;
                                        break;
                                    case"flavor":
                                        //donothing
                                        break;
                                    case "artist":
                                        //donothing
                                        break;
                                    case "province_strength":
                                        reader.Read();
                                        currentCard.force = reader.Value;
                                        break;
                                    case "gold_production":
                                        reader.Read();
                                        currentCard.gold = reader.Value;
                                        break;
                                    case "starting_honor":
                                        reader.Read();
                                        currentCard.chi = reader.Value;
                                        break;
                                    default:
                                        break;
                                }
                                string thatWas = reader.Name;
                            }
                        }
                    }
            }
            foreach (Card card in cards)
            {
                output += card.exportCard();
            }
            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.AddExtension = true;
            saveDialog.DefaultExt = "txt";
            if (saveDialog.ShowDialog() == DialogResult.OK)
            {
                Stream outStream = new FileStream(saveDialog.FileName, FileMode.Create);
                StreamWriter writer = new StreamWriter(outStream);
                writer.Write(output);
                writer.Close();
            }
        }
    }
}