コード例 #1
0
        private void InitDisplay_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                InitDisplay iDisplay = sender as InitDisplay;
                iDisplay.DoDragDrop(iDisplay.Name, DragDropEffects.Move);
            }
            else
            {
                Global.SelectedActorID = lblID.Text;
                this.BackColor         = Color.CadetBlue;

                if (Global._UserState == Global.UserState.GM)
                {
                    Global.SelectedActorType = DisplayType;
                    GMControl gmControl = new GMControl();
                    GMForm.setPanelSelectedGMControl(gmControl);
                }
            }
        }
コード例 #2
0
        private void treeReference_AfterSelect(object sender, TreeViewEventArgs e)
        {
            XPathDocument  xDoc;
            XPathNavigator xNav            = null;
            bool           descriptionOnly = false;

            if (e.Node.Parent != null)
            {
                switch (e.Node.Parent.Name)
                {
                case "nodeStatuses":
                    xDoc = new XPathDocument(Global.StatusXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Statuses/Status[@Text=\"{e.Node.Text}\"]");
                    break;

                case "nodeActions":
                    xDoc = new XPathDocument(Global.ActionsXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Actions/Action[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDamageTypes":
                    xDoc = new XPathDocument(Global.DamageXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Damages/Damage[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeFormWerewolf":
                    xDoc = new XPathDocument(Global.FormXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Forms/Werewolf/Form[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDerangements":
                    xDoc = new XPathDocument(Global.DerangementXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Derangements/Derangement[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeFlaws":
                    xDoc = new XPathDocument(Global.FlawXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Flaws/Flaw[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeMerits":
                    xDoc = new XPathDocument(Global.MeritXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Merits/Merit[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVices":
                    xDoc = new XPathDocument(Global.ViceXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vices/Vice[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVirtues":
                    xDoc = new XPathDocument(Global.VirtueXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Virtues/Virtue[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeRules":
                    xDoc = new XPathDocument(Global.RuleXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Rules/Rule[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcana":
                    xDoc            = new XPathDocument(Arcana.ArcanaXml);
                    xNav            = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name=\"{e.Node.Text}\"]");
                    descriptionOnly = true;
                    break;

                case "nodeArcanaGeneral":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='General']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaDeath":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Death']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaFate":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Fate']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaForces":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Forces']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaLife":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Life']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaMatter":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Matter']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaMind":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Mind']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaPrime":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Prime']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaSpace":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Space']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaSpirit":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Spirit']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeArcanaTime":
                    xDoc = new XPathDocument(Arcana.ArcanaXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Arcanum/Arcana[@Name='Time']/Rote[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplines":
                    xDoc            = new XPathDocument(Discipline.DisciplineXml);
                    xNav            = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name=\"{e.Node.Text}\"]");
                    descriptionOnly = true;
                    break;

                case "nodeDisciplineAnimalism":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Animalism']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineAuspex":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Auspex']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineCelerity":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Celerity']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineDominate":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Dominate']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineMajesty":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Majesty']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineNightmare":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Nightmare']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineObfuscate":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Obfuscate']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineProtean":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Protean']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineResilience":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Resilience']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineVigor":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Vigor']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineCrúac":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Crúac']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDisciplineThebanSorcery":
                    xDoc = new XPathDocument(Discipline.DisciplineXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Disciplines/Discipline[@Name='Theban Sorcery']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeDevotions":
                    xDoc = new XPathDocument(Devotion.DevotionXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Devotions/Devotion[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGifts":
                    xDoc            = new XPathDocument(Gift.GiftXml);
                    xNav            = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name=\"{e.Node.Text}\"]");
                    descriptionOnly = true;
                    break;

                case "nodeGiftCrescentMoon":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Crescent Moon']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftDeath":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Death']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftDominance":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Dominance']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftElemental":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Elemental']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftEvasion":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Evasion']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftFatherWolf":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Father Wolf']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftFullMoon":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Full Moon']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftGibbousMoon":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Gibbouls Moon']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftHalfMoon":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Half Moon']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftInsight":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Insight']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftInspiration":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Inspiration']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftKnowledge":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Knowledge']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftMotherLuna":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Mother Luna']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftNature":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Nature']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftNewMoon":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='New Moon']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftRage":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Rage']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftShaping":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Shaping']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftStealth":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Stealth']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftStrength":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Strength']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftTechnology":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Technology']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftWarding":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Warding']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeGiftWeather":
                    xDoc = new XPathDocument(Gift.GiftXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name='Weather']/Sub[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeProfessions":
                    xDoc = new XPathDocument(Profession.ProfessionXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Professions/Profession[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeRites":
                    xDoc = new XPathDocument(Rite.RiteXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Rites/Rite[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVestments":
                    xDoc            = new XPathDocument(Vestment.VestmentXml);
                    xNav            = xDoc.CreateNavigator().SelectSingleNode($"Vesments/Vice[@Name=\"{e.Node.Text}\"]");
                    descriptionOnly = true;
                    break;

                case "nodeVestmentEnvy":
                    xDoc = new XPathDocument(Vestment.VestmentXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vestments/Vice[@Name='Envy']//Vestment[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVestmentGluttony":
                    xDoc = new XPathDocument(Vestment.VestmentXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vestments/Vice[@Name='Gluttony']//Vestment[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVestmentGreed":
                    xDoc = new XPathDocument(Vestment.VestmentXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vestments/Vice[@Name='Greed']//Vestment[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVestmentLust":
                    xDoc = new XPathDocument(Vestment.VestmentXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vestments/Vice[@Name='Lust']//Vestment[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVestmentPride":
                    xDoc = new XPathDocument(Vestment.VestmentXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vestments/Vice[@Name='Pride']//Vestment[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVestmentSloth":
                    xDoc = new XPathDocument(Vestment.VestmentXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vestments/Vice[@Name='Sloth']//Vestment[@Name=\"{e.Node.Text}\"]");
                    break;

                case "nodeVestmentWrath":
                    xDoc = new XPathDocument(Vestment.VestmentXml);
                    xNav = xDoc.CreateNavigator().SelectSingleNode($"Vestments/Vice[@Name='Wrath']//Vestment[@Name=\"{e.Node.Text}\"]");
                    break;

                default:
                    return;
                }
            }
            else
            {
                return;
            }

            string rtf = RtfHelper.Begin();

            RtfHelper.Bold(ref rtf, xNav.SelectSingleNode("@Name").Value);
            RtfHelper.EndLine(ref rtf);

            XPathNodeIterator nodeIter = xNav.SelectChildren(XPathNodeType.All);

            while (nodeIter.MoveNext())
            {
                if (nodeIter.Current.Name == "Image")
                {
                    continue;
                }

                RtfHelper.EndLine(ref rtf);
                RtfHelper.Bold(ref rtf, nodeIter.Current.Name + ": ");

                XPathNodeIterator xChildIter = nodeIter.Current.SelectChildren(XPathNodeType.Element);

                if (xChildIter.Count > 0)
                {
                    while (xChildIter.MoveNext())
                    {
                        RtfHelper.EndLine(ref rtf);
                        RtfHelper.ConvertText(ref rtf, xChildIter.Current.Name + " | ");
                        RtfHelper.ConvertText(ref rtf, xChildIter.Current.Value);
                        if (xChildIter.Current.SelectSingleNode("@Value") != null)
                        {
                            RtfHelper.ConvertText(ref rtf, $" [{xChildIter.Current.SelectSingleNode("@Value").Value}]");
                        }
                    }
                }
                else if (descriptionOnly)
                {
                    if (nodeIter.Current.SelectSingleNode("Description") != null)
                    {
                        RtfHelper.EndLine(ref rtf);
                        RtfHelper.Bold(ref rtf, "Description: ");
                        RtfHelper.ConvertText(ref rtf, nodeIter.Current.SelectSingleNode("Description").Value);
                    }
                }
                else
                {
                    RtfHelper.ConvertText(ref rtf, nodeIter.Current.Value);
                }
                RtfHelper.EndLine(ref rtf);
            }

            RtfHelper.End(ref rtf);
            RtfDisplay.Description = rtf;


            RtfDisplay iDisplay = new RtfDisplay();

            GMForm.setPanelSelectedItem(iDisplay);
        }
コード例 #3
0
        private void treeCompendium_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Text == "Cash")
            {
                CashControl cControl = new CashControl();
                GMForm.setPanelSelectedCash(cControl);
            }
            else if (e.Node.Parent != null)
            {
                switch (e.Node.Parent.Text)
                {
                case "Item":
                    XPathNavigator itemNav = cvItemXml.CreateNavigator().SelectSingleNode("Items/Item[@Name = '" + e.Node.Text + "']");

                    ItemDisplay.ItemName      = e.Node.Text;
                    ItemDisplay.Image         = itemNav.SelectSingleNode("Image").Value;
                    ItemDisplay.Cost          = itemNav.SelectSingleNode("Cost").ValueAsInt;
                    ItemDisplay.ItemSize      = itemNav.SelectSingleNode("Size").ValueAsInt;
                    ItemDisplay.Durability    = itemNav.SelectSingleNode("Durability").ValueAsInt;
                    ItemDisplay.Structure     = itemNav.SelectSingleNode("Structure").ValueAsInt;
                    ItemDisplay.Description   = itemNav.SelectSingleNode("Description").Value;
                    ItemDisplay.Scope         = null;
                    ItemDisplay.Damage_Prim   = null;
                    ItemDisplay.Damage_Sec    = null;
                    ItemDisplay.Capacity      = null;
                    ItemDisplay.Def_General   = 0;
                    ItemDisplay.Def_Ballistic = 0;
                    ItemDisplay.Range         = null;

                    ItemDisplay iDisplay = new ItemDisplay();
                    GMForm.setPanelSelectedItem(iDisplay);
                    break;

                case "Weapon":
                    XPathNavigator weaponNav = cvItemXml.CreateNavigator().SelectSingleNode("Items/Item[@Name = '" + e.Node.Text + "']");

                    ItemDisplay.ItemName    = e.Node.Text;
                    ItemDisplay.Scope       = weaponNav.SelectSingleNode("Scope").Value;
                    ItemDisplay.Image       = weaponNav.SelectSingleNode("Image").Value;
                    ItemDisplay.Cost        = weaponNav.SelectSingleNode("Cost").ValueAsInt;
                    ItemDisplay.ItemSize    = weaponNav.SelectSingleNode("Size").ValueAsInt;
                    ItemDisplay.Damage_Prim = weaponNav.SelectSingleNode("Primary/Damage").Value + "(" + weaponNav.SelectSingleNode("Primary/Threat").Value + ")";;

                    XPathNavigator secNav = weaponNav.SelectSingleNode("Secondary/Damage");
                    if (secNav != null)
                    {
                        ItemDisplay.Damage_Sec = weaponNav.SelectSingleNode("Secondary/Damage").Value + "(" + weaponNav.SelectSingleNode("Secondary/Threat").Value + ")";
                    }
                    else
                    {
                        ItemDisplay.Damage_Sec = null;
                    }

                    XPathNavigator mediumNav = weaponNav.SelectSingleNode("Range/Medium");
                    XPathNavigator longNav   = weaponNav.SelectSingleNode("Range/Long");

                    ItemDisplay.Range = weaponNav.SelectSingleNode("Range/Short").Value;
                    if (mediumNav != null)
                    {
                        ItemDisplay.Range += @"/" + mediumNav.Value;
                    }
                    if (longNav != null)
                    {
                        ItemDisplay.Range += @"/" + longNav.Value;
                    }

                    ItemDisplay.Durability    = 0;
                    ItemDisplay.Structure     = 0;
                    ItemDisplay.Def_General   = 0;
                    ItemDisplay.Def_Ballistic = 0;

                    ItemDisplay.Description = weaponNav.SelectSingleNode("Description").Value;

                    ItemDisplay wDisplay = new ItemDisplay();
                    GMForm.setPanelSelectedItem(wDisplay);
                    break;

                case "Armor":
                    XPathNavigator armorNav = cvItemXml.CreateNavigator().SelectSingleNode("Items/Item[@Name = '" + e.Node.Text + "']");

                    ItemDisplay.ItemName      = e.Node.Text;
                    ItemDisplay.Image         = armorNav.SelectSingleNode("Image").Value;
                    ItemDisplay.Cost          = armorNav.SelectSingleNode("Cost").ValueAsInt;
                    ItemDisplay.Def_General   = armorNav.SelectSingleNode("General").ValueAsInt;
                    ItemDisplay.Def_Ballistic = armorNav.SelectSingleNode("Ballistic").ValueAsInt;
                    ItemDisplay.Description   = armorNav.SelectSingleNode("Description").Value;
                    ItemDisplay.Durability    = 0;
                    ItemDisplay.Structure     = 0;
                    ItemDisplay.Scope         = null;
                    ItemDisplay.Damage_Prim   = null;
                    ItemDisplay.Damage_Sec    = null;
                    ItemDisplay.Capacity      = null;
                    ItemDisplay.Range         = null;

                    ItemDisplay aDisplay = new ItemDisplay();
                    GMForm.setPanelSelectedItem(aDisplay);
                    break;

                case "Vehicle":
                    XPathNavigator vehicleNav = cvVehicleXml.CreateNavigator().SelectSingleNode("Vehicles/Vehicle[@Name = '" + e.Node.Text + "']");

                    VehicleDisplay.VehicleName  = e.Node.Text;
                    VehicleDisplay.Image        = vehicleNav.SelectSingleNode("Image").Value;
                    VehicleDisplay.Cost         = vehicleNav.SelectSingleNode("Cost").ValueAsInt;
                    VehicleDisplay.ItemSize     = vehicleNav.SelectSingleNode("Size").ValueAsInt;
                    VehicleDisplay.Durability   = vehicleNav.SelectSingleNode("Durability").ValueAsInt;
                    VehicleDisplay.Structure    = vehicleNav.SelectSingleNode("Structure").ValueAsInt;
                    VehicleDisplay.Acceleration = vehicleNav.SelectSingleNode("Acceleration").ValueAsInt;
                    VehicleDisplay.Speed        = vehicleNav.SelectSingleNode("Speed").ValueAsInt;
                    VehicleDisplay.Safe_Speed   = vehicleNav.SelectSingleNode("Safe_Speed").ValueAsInt;
                    VehicleDisplay.Handling     = vehicleNav.SelectSingleNode("Handling").ValueAsInt;
                    VehicleDisplay.Occupancy    = vehicleNav.SelectSingleNode("Occupancy").ValueAsInt;
                    VehicleDisplay.Capacity     = vehicleNav.SelectSingleNode("Capacity").ValueAsInt;
                    VehicleDisplay.Description  = vehicleNav.SelectSingleNode("Description").Value;

                    VehicleDisplay vDisplay = new VehicleDisplay();
                    GMForm.setPanelSelectedVehicle(vDisplay);
                    break;

                case "NPC":
                    XPathDocument  lvNPCxml = new XPathDocument(Properties.Settings.Default.DataLocation + @"NPC/" + e.Node.Text + ".xml");
                    XPathNavigator npcNav   = lvNPCxml.CreateNavigator();

                    CharDisplay.CharName         = npcNav.SelectSingleNode("Character/Background/Name").Value;
                    CharDisplay.Type             = npcNav.SelectSingleNode("Character/Background/Type").Value;
                    CharDisplay.Health           = npcNav.SelectSingleNode("Character/Attributes/Health/Max").ValueAsInt;
                    CharDisplay.Bash             = npcNav.SelectSingleNode("Character/Attributes/Health/Bash").ValueAsInt;
                    CharDisplay.Lethal           = npcNav.SelectSingleNode("Character/Attributes/Health/Lethal").ValueAsInt;
                    CharDisplay.Aggravated       = npcNav.SelectSingleNode("Character/Attributes/Health/Aggravated").ValueAsInt;
                    CharDisplay.WillpowerMax     = npcNav.SelectSingleNode("Character/Attributes/Willpower/Max").ValueAsInt;
                    CharDisplay.WillpowerCurrent = npcNav.SelectSingleNode("Character/Attributes/Willpower/Current").ValueAsInt;
                    CharDisplay.Image            = npcNav.SelectSingleNode("Character/Image").Value;
                    CharDisplay.DisplayType      = Global.CharType.NPC;
                    CharDisplay lvChar = new CharDisplay();

                    CharDisplay cDisplay = new CharDisplay();
                    GMForm.setPanelSelectedChar(cDisplay);
                    break;

                default:
                    break;
                }
            }
        }