示例#1
0
 public void Sort(SortField[] sortFields)
 {
     MainDeck.Sort(sortFields);
     SideDeck.Sort(sortFields);
     ExtraDeck.Sort(sortFields);
     TempDeck.Sort(sortFields);
 }
示例#2
0
        public bool SaveFileForPRO(string filename)
        {
            try
            {
                StreamWriter sw          = new StreamWriter(filename, false, System.Text.Encoding.ASCII);
                CardLibrary  cardLibrary = CardLibrary.GetInstance();

                sw.WriteLine("#created by DeckBuilder2");

                //Êä³öÖ÷¿¨×é
                Card[] Cards = MainDeck.GetList();
                sw.WriteLine("#main");
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    sw.WriteLine(cd.cheatcode);
                }

                //Êä³ö¶îÍ⿨×é
                Cards = ExtraDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("#extra");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    sw.WriteLine(cd.cheatcode);
                }

                //Êä³ö¸±¿¨×é
                Cards = SideDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("!side");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    sw.WriteLine(cd.cheatcode);
                }

                //Êä³öºòÑ¡¿¨±í
                Cards = TempDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("#wait list");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    sw.WriteLine("#" + cd.cheatcode);
                }

                sw.Close();

                deckname            = Regex.Replace(filename, @".[^.]*$", "");
                deckname            = Regex.Replace(deckname, @"^.*\\", "");
                MainDeck.isChanged  = false;
                SideDeck.isChanged  = false;
                ExtraDeck.isChanged = false;
                TempDeck.isChanged  = false;
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#3
0
        public bool SaveFileForCGI(string filename)
        {
            try
            {
                StreamWriter sw          = new StreamWriter(filename, false, System.Text.Encoding.Unicode);
                CardLibrary  cardLibrary = CardLibrary.GetInstance();

                Card[] Cards = MainDeck.GetList();
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    string          s  = CharacterSet.JPDBCToSBC(cd.japName);
                    sw.WriteLine(s);
                }

                Cards = SideDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("####");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    sw.WriteLine(CharacterSet.JPDBCToSBC(cd.japName));
                }

                Cards = ExtraDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("====");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    sw.WriteLine(CharacterSet.JPDBCToSBC(cd.japName));
                }

                Cards = TempDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("$$$$");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    sw.WriteLine(CharacterSet.JPDBCToSBC(cd.japName));
                }

                sw.Close();

                deckname            = Regex.Replace(filename, @".[^.]*$", "");
                deckname            = Regex.Replace(deckname, @"^.*\\", "");
                MainDeck.isChanged  = false;
                SideDeck.isChanged  = false;
                ExtraDeck.isChanged = false;
                TempDeck.isChanged  = false;
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#4
0
        public bool SaveFile(string filename)
        {
            this.filename = filename;

            try
            {
                StreamWriter sw          = new StreamWriter(filename, false, System.Text.Encoding.GetEncoding("gb2312"));
                CardLibrary  cardLibrary = CardLibrary.GetInstance();

                Card[] Cards = MainDeck.GetList();
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    if (card.Text.Length > 0)
                    {
                        sw.WriteLine("[" + cd.name + "]#" + card.Text + "#");
                    }
                    else
                    {
                        sw.WriteLine("[" + cd.name + "]");
                    }
                }

                Cards = SideDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("####");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    if (card.Text.Length > 0)
                    {
                        sw.WriteLine("[" + cd.name + "]#" + card.Text + "#");
                    }
                    else
                    {
                        sw.WriteLine("[" + cd.name + "]");
                    }
                }

                Cards = ExtraDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("====");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    if (card.Text.Length > 0)
                    {
                        sw.WriteLine("[" + cd.name + "]#" + card.Text + "#");
                    }
                    else
                    {
                        sw.WriteLine("[" + cd.name + "]");
                    }
                }

                Cards = TempDeck.GetList();
                if (Cards.Length > 0)
                {
                    sw.WriteLine("$$$$");
                }
                foreach (Card card in Cards)
                {
                    CardDescription cd = cardLibrary.GetCardByID(card.ID);
                    if (card.Text.Length > 0)
                    {
                        sw.WriteLine("[" + cd.name + "]#" + card.Text + "#");
                    }
                    else
                    {
                        sw.WriteLine("[" + cd.name + "]");
                    }
                }

                sw.Close();

                deckname            = Regex.Replace(filename, @".[^.]*$", "");
                deckname            = Regex.Replace(deckname, @"^.*\\", "");
                MainDeck.isChanged  = false;
                SideDeck.isChanged  = false;
                ExtraDeck.isChanged = false;
                TempDeck.isChanged  = false;
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#5
0
        public ArrayList LoadFileByCharSetForPRO(string FileName, string CharSet)
        {
            try
            {
                Clear();

                StreamReader sr          = new StreamReader(FileName, System.Text.Encoding.GetEncoding(CharSet));
                int          lastNumber  = 0;
                int          currentDeck = 0;
                ArrayList    lastList    = new ArrayList();

                while (!sr.EndOfStream)
                {
                    string s = sr.ReadLine().Trim();
                    if (s.StartsWith("!side"))
                    {
                        currentDeck = 2;
                        continue;
                    }
                    else if (s.StartsWith("#wait list"))
                    {
                        currentDeck = 3;
                        continue;
                    }
                    else if (s.Length == 0 || s.StartsWith("#") || s.StartsWith("!"))
                    {
                        continue;
                    }

                    CardDescription card     = null;
                    string          lastname = s;
                    if (currentDeck == 3)
                    {
                        lastname = s.Substring(1);
                    }
                    card = CardLibrary.GetInstance().GetCardByCheatCode(lastname);
                    string text = null;


                    if (card != null)
                    {
                        string err = null;
                        switch (currentDeck)
                        {
                        case 0:
                            if (CardDescription.isExtraCard(card))
                            {
                                err = ExtraDeck.AddCard(card.ID, -1, text);
                            }
                            else
                            {
                                err = MainDeck.AddCard(card.ID, -1, text);
                            }
                            break;

                        case 1:
                            err = ExtraDeck.AddCard(card.ID, -1, text);
                            break;

                        case 2:
                            err = SideDeck.AddCard(card.ID, -1, text);
                            break;

                        case 3:
                            err = TempDeck.AddCard(card.ID, -1, text);
                            break;
                        }
                        if (err != null)
                        {
                            lastNumber++;
                            lastList.Add(card.name);
                        }
                    }
                    else
                    {
                        lastNumber++;
                        lastList.Add(lastname);
                    }
                }

                sr.Close();
                deckname            = Regex.Replace(FileName, @".[^.]*$", "");
                deckname            = Regex.Replace(deckname, @"^.*\\", "");
                MainDeck.isChanged  = false;
                SideDeck.isChanged  = false;
                ExtraDeck.isChanged = false;
                TempDeck.isChanged  = false;

                return(lastList);
            }
            catch
            {
                Clear();
                return(null);
            }
        }
示例#6
0
        public ArrayList LoadFileByCharSet(string FileName, string CharSet)
        {
            try
            {
                Clear();

                StreamReader sr          = new StreamReader(FileName, System.Text.Encoding.GetEncoding(CharSet));
                int          lastNumber  = 0;
                int          currentDeck = 0;
                ArrayList    lastList    = new ArrayList();

                while (!sr.EndOfStream)
                {
                    string s = sr.ReadLine().Trim();
                    if (s.StartsWith("===="))
                    {
                        currentDeck = 1;
                        continue;
                    }
                    else if (s.StartsWith("####"))
                    {
                        currentDeck = 2;
                        continue;
                    }
                    else if (s.StartsWith("$$$$"))
                    {
                        currentDeck = 3;
                        continue;
                    }
                    else if (s.Length == 0)
                    {
                        continue;
                    }

                    CardDescription card     = null;
                    string          text     = "";
                    string          lastname = null;
                    if (s[0] == '[')
                    {
                        Match  match = regex1.Match(s);
                        string name  = match.Groups["name"].Value;
                        text = match.Groups["text"].Value;
                        //string name = s.Substring(s.LastIndexOf('[') + 1, s.LastIndexOf(']') - s.LastIndexOf('[') - 1);
                        lastname = name;
                        card     = CardLibrary.GetInstance().GetCardByName(name);
                        if (card == null)
                        {
                            card = CardLibrary.GetInstance().GetCardByOldName(name);
                        }
                    }
                    else
                    {
                        string japname = CharacterSet.JPSBCToDBC(s);
                        lastname = japname;
                        card     = CardLibrary.GetInstance().GetCardByJapName(japname);
                    }

                    if (card != null)
                    {
                        string err = null;
                        switch (currentDeck)
                        {
                        case 0:
                            if (CardDescription.isExtraCard(card))
                            {
                                err = ExtraDeck.AddCard(card.ID, -1, text);
                            }
                            else
                            {
                                err = MainDeck.AddCard(card.ID, -1, text);
                            }
                            break;

                        case 1:
                            err = ExtraDeck.AddCard(card.ID, -1, text);
                            break;

                        case 2:
                            err = SideDeck.AddCard(card.ID, -1, text);
                            break;

                        case 3:
                            err = TempDeck.AddCard(card.ID, -1, text);
                            break;
                        }
                        if (err != null)
                        {
                            lastNumber++;
                            lastList.Add(card.name);
                        }
                    }
                    else
                    {
                        lastNumber++;
                        lastList.Add(lastname);
                    }
                }

                sr.Close();
                deckname            = Regex.Replace(FileName, @".[^.]*$", "");
                deckname            = Regex.Replace(deckname, @"^.*\\", "");
                MainDeck.isChanged  = false;
                SideDeck.isChanged  = false;
                ExtraDeck.isChanged = false;
                TempDeck.isChanged  = false;

                return(lastList);
            }
            catch
            {
                Clear();
                return(null);
            }
        }
示例#7
0
 public bool isEmpty()
 {
     return(MainDeck.Count() + SideDeck.Count() + ExtraDeck.Count() + TempDeck.Count() == 0);
 }