コード例 #1
0
ファイル: CardControl.cs プロジェクト: Yogr/Wizard
        private void _FillOutDataToCard(Card card)
        {
            card.Id   = CardManager.GetInstance().GetNextValidId();
            card.Name = CardName_text.Text;
            card.Cost = Convert.ToUInt32(CardCost_text.Text);
            card.Type = (Card.CardType)CardType_chooser.SelectedIndex;
            card.SubType = (Card.CardSubType)CardSubtype_chooser.SelectedIndex;
            card.Attack = Convert.ToInt32(CardAttack_text.Text);
            card.Defense = Convert.ToInt32(CardDefense_text.Text);
            card.Hitpoints = Convert.ToInt32(CardHitpoints_text.Text);

            // Factions
            card.SetFactions(0);
            if (true == FactionHuman_checkbox.Checked) { card.AddFaction(GameEntity.Faction.FACTION_HUMAN); }
            if (true == FactionVampire_checkbox.Checked) { card.AddFaction(GameEntity.Faction.FACTION_VAMPIRE); }
            if (true == FactionScoundrel_checkbox.Checked) { card.AddFaction(GameEntity.Faction.FACTION_SCOUNDREL); }
            if (true == FactionBarbarian_checkbox.Checked) { card.AddFaction(GameEntity.Faction.FACTION_BARBARIAN); }
            if (true == FactionDragon_checkbox.Checked) { card.AddFaction(GameEntity.Faction.FACTION_DRAGON); }
            if (true == FactionOrc_checkbox.Checked) { card.AddFaction(GameEntity.Faction.FACTION_ORC); }

            // Card Effects
            card.RemoveAllEffects();
            foreach(Effect e in CardEffects_listbox.Items)
            {
                card.AddEffectById(e.Id);
            }
        }
コード例 #2
0
ファイル: CardControl.cs プロジェクト: Yogr/Wizard
        private void Save_btn_Click(object sender, EventArgs e)
        {
            Card card;

            if(-1 == mLastSelectedIndex || mLastSelectedIndex >= CardManager.GetInstance().GetListCards().Count)
            {
                // Build & add new card
                card = new Card();
                _FillOutDataToCard(card);
                CardManager.GetInstance().AddCard(card);
            }
            else
            {
                // Just fill out card with new data and save
                card = CardManager.GetInstance().GetCardAtIndex(mLastSelectedIndex);
                _FillOutDataToCard(card);
            }

            _RefreshListbox();
        }
コード例 #3
0
ファイル: SetControl.cs プロジェクト: Yogr/Wizard
 private void _RemoveCardFromSet(Card c)
 {
     SetCards_listBox.Items.Remove(c);
     AllCards_listBox.Items.Add(c);
 }
コード例 #4
0
ファイル: CardManager.cs プロジェクト: Yogr/Wizard
 public void AddCard(Card card)
 {
     mCards.Add(card);
 }
コード例 #5
0
ファイル: CardParser.cs プロジェクト: Yogr/Wizard
        public void Parse(List<Card> outList)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(mFilename);

            XmlNodeList nodes = doc.SelectNodes(ROOT_NODE);

            foreach (XmlNode node in nodes)
            {
                Card card = new Card();

                foreach(XmlNode c in node.ChildNodes)
                {
                    switch(c.Name)
                    {
                        case P_NAME:
                            {
                                card.Name = c.InnerText;
                                break;
                            }
                        case P_TYPE:
                            {
                                card.Type = ParseEnum<Card.CardType>(c.InnerText);
                                break;
                            }
                        case P_SUBTYPE:
                            {
                                card.SubType = ParseEnum<Card.CardSubType>(c.InnerText);
                                break;
                            }
                        case P_ID:
                            {
                                card.Id = Convert.ToUInt32(c.InnerText);
                                break;
                            }
                        case P_COST:
                            {
                                card.Cost = Convert.ToUInt32(c.InnerText);
                                break;
                            }
                        case P_FACTIONS:
                            {
                                card.SetFactions(Convert.ToUInt32(c.InnerText));
                                break;
                            }
                        case P_FRAMECOLOR:
                            {
                                card.FrameColor = ParseEnum<Card.eFrameColor>(c.InnerText);
                                break;
                            }
                        case P_ATTACK:
                            {
                                card.Attack = Convert.ToInt32(c.InnerText);
                                break;
                            }
                        case P_DEFENSE:
                            {
                                card.Defense = Convert.ToInt32(c.InnerText);
                                break;
                            }
                        case P_HITPOINTS:
                            {
                                card.Hitpoints = Convert.ToInt32(c.InnerText);
                                break;
                            }
                        case P_EFFECTS:
                            {
                                foreach(XmlNode e in c.ChildNodes)
                                {
                                    uint eId = Convert.ToUInt32(e.InnerText);
                                    card.AddEffectById(eId);
                                }
                                break;
                            }
                        default:
                            {
                                Console.WriteLine("Unhandled node type: " + c.Name);
                                break;
                            }
                    }
                }

                outList.Add(card);
            }
        }
コード例 #6
0
ファイル: CardParser.cs プロジェクト: Yogr/Wizard
        private void _AppendCardNode(XmlDocument doc, XmlElement root, Card data)
        {
            // Set up our card element
            XmlElement card = doc.CreateElement(CARD_NODE);

            // Declare element storage
            XmlElement element;

            // Create attribute nodes
            element = doc.CreateElement(P_NAME);
            element.InnerText = data.Name;
            card.AppendChild(element);

            element = doc.CreateElement(P_TYPE);
            element.InnerText = data.Type.ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_SUBTYPE);
            element.InnerText = data.SubType.ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_ID);
            element.InnerText = data.Id.ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_COST);
            element.InnerText = data.Cost.ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_FACTIONS);
            element.InnerText = data.GetFactions().ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_FRAMECOLOR);
            element.InnerText = data.FrameColor.ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_ATTACK);
            element.InnerText = data.Attack.ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_DEFENSE);
            element.InnerText = data.Defense.ToString();
            card.AppendChild(element);

            element = doc.CreateElement(P_HITPOINTS);
            element.InnerText = data.Hitpoints.ToString();
            card.AppendChild(element);

            List<uint> effectsList = data.GetAllEffectIds();
            if (0 < effectsList.Count)
            {
                XmlElement effects = doc.CreateElement(P_EFFECTS);

                foreach (uint eId in effectsList)
                {
                    XmlElement effect = doc.CreateElement(P_EFFECT);
                    effect.InnerText = eId.ToString();
                    effects.AppendChild(effect);
                }

                card.AppendChild(effects);
            }

            // Append this to our root element
            root.AppendChild(card);
        }