public void lblGift_Clicked(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { return; } Label lbl = (Label)sender; XPathNavigator xNav = cvGiftsXml.CreateNavigator().SelectSingleNode($"Gifts/Gift[@Name=\"{lbl.Text}\"]"); _formCreation.lblActiveItem.Text = lbl.Text; string rtf = RtfHelper.Begin(); RtfHelper.ConvertText(ref rtf, xNav.SelectSingleNode("Description").Value); RtfHelper.End(ref rtf); _formCreation.txtDescription.Rtf = rtf; }
private void LoadDevotionDetail(XPathNavigator nav) { _formCreation.lblDevotionName.Text = nav.SelectSingleNode("@Name").Value; _formCreation.lblDevotionAttr.Text = nav.SelectSingleNode("Attribute").Value; _formCreation.lblDevotionSkill.Text = nav.SelectSingleNode("Skill").Value; _formCreation.lblDevotionVitae.Text = nav.SelectSingleNode("Vitae_Cost").Value; _formCreation.lblDevotionWill.Text = nav.SelectSingleNode("Willpower_Cost").Value; _formCreation.lblDevotionDiscipline.Text = nav.SelectSingleNode("Discipline").Value; _formCreation.imgDevotion.ImageLocation = _Disc_Img_Folder + nav.SelectSingleNode("Image").Value; _formCreation.pnlDevotionDetail.Visible = true; if (Player.Name != null) { XPathNodeIterator prereqIter = nav.Select("Prerequisite/Discipline"); string rtf = RtfHelper.Begin(); while (prereqIter.MoveNext()) { int discIndex = 99; if (Player.Discipline.TryGetValue(prereqIter.Current.Value, out discIndex) && discIndex != 99) { RtfHelper.ConvertText(ref rtf, prereqIter.Current.Value + ":" + prereqIter.Current.SelectSingleNode("@Level")); RtfHelper.EndLine(ref rtf); } else { RtfHelper.Bold(ref rtf, prereqIter.Current.Value + ":" + prereqIter.Current.SelectSingleNode("@Level")); RtfHelper.EndLine(ref rtf); } } RtfHelper.EndLine(ref rtf); RtfHelper.ConvertText(ref rtf, nav.SelectSingleNode("Description").Value); RtfHelper.End(ref rtf); _formCreation.txtDevotionDescription.Rtf = rtf; } else { _formCreation.txtDevotionDescription.Rtf = RtfHelper.PlainTextToRtf(nav.SelectSingleNode("Description").Value); } }
private void rote_CheckedChanged(object sender, EventArgs e) { CheckBox cbx = (CheckBox)sender; XPathNavigator xNav = cvArcanaXml.CreateNavigator().SelectSingleNode($"Arcanum/Arcana/Rote[@Name=\"{cbx.Text}\"]"); _formCreation.lblArcanaName.Text = cbx.Text; string rtf = RtfHelper.Begin(); RtfHelper.ConvertText(ref rtf, xNav.SelectSingleNode("Description").Value); RtfHelper.End(ref rtf); _formCreation.txtArcanaDesc.Rtf = rtf; _formCreation.lblArcanaAttribute.Text = xNav.SelectSingleNode("Attribute").Value; _formCreation.lblArcanaSkill.Text = xNav.SelectSingleNode("Skill").Value; _formCreation.lblArcanaAspect.Text = xNav.SelectSingleNode("Aspect").Value; _formCreation.lblArcanaManaCost.Text = xNav.SelectSingleNode("Cost").Value; xNav.MoveToParent(); _formCreation.imgArcana.ImageLocation = _Arcane_Img_Folder + xNav.SelectSingleNode("@Image").Value; _formCreation.pnlArcanaDetails.Visible = true; }
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); }