private static GameDef LoadFromXml(XElement xml, PackagePart part) { if (xml.Name != Defs.XmlnsOctgn + "game") { throw new InvalidFormatException("The root document element must be <game>."); } return(new GameDef { Id = xml.Attr <Guid>("id"), Name = xml.Attr <string>("name"), Version = xml.Attr <Version>("version"), OctgnVersion = xml.Attr <Version>("octgnVersion"), MarkerSize = xml.Attr <int>("markersize"), CardsRevertToOriginalOnGroupChange = xml.Attr <bool>("cardsRevertToOriginalOnGroupChange"), CardDefinition = CardDef.LoadFromXml(xml.Child("card"), part), DeckDefinition = DeckDef.LoadFromXml(xml.Child("deck")), SharedDeckDefinition = DeckDef.LoadFromXml(xml.Child("sharedDeck")), TableDefinition = GroupDef.LoadFromXml(xml.Child("table"), part, 0), PlayerDefinition = PlayerDef.LoadFromXml(xml.Child("player"), part), GlobalDefinition = SharedDef.LoadFromXml(xml.Child("shared"), part), GlobalVariables = GlobalVariableDef.LoadAllFromXml(xml.Child("globalvariables")), Variables = VariableDef.LoadAllFromXml(xml.Child("variables")), Scripts = ScriptDef.LoadAllFromXml(xml.Child("scripts"), part), Fonts = FontDef.LoadAllFromXml(xml.Child("fonts"), part), Icons = IconDef.LoadAllFromXml(xml.Child("iconreplacements"), part) }); }
internal static PlayerDef LoadFromXml(XElement xml, PackagePart part) { var res = new PlayerDef { IndicatorsFormat = xml.Attr <string>("summary"), Hand = GroupDef.LoadFromXml(xml.Child("hand"), part, 0), GlobalVariables = GlobalVariableDef.LoadAllFromXml(xml) }; res.LoadBaseXml(xml, part); return(res); }
protected void LoadBaseXml(XElement xml, PackagePart part) { int i = 1; Counters = xml.Elements(Defs.XmlnsOctgn + "counter") .Select(x => CounterDef.LoadFromXml(x, part, i++)) .ToArray(); i = 1; Groups = xml.Elements(Defs.XmlnsOctgn + "group") .Select(x => GroupDef.LoadFromXml(x, part, i++)) .ToArray(); }
internal Pile(Player owner, GroupDef def) : base(owner, def) { _collapsed = def.Collapsed; }
public Table(GroupDef def) : base(null, def) { }
protected virtual List<Control> CreateCardMenuItems(GroupDef def) { int nCardActions = def.CardActions == null ? 0 : def.CardActions.Length; var items = new List<Control>(); if (nCardActions > 0 || group.Controller == null) { _cardHeader = new MenuItem(); _cardHeader.SetResourceReference(StyleProperty, "MenuHeader"); items.Add(_cardHeader); } if (nCardActions > 0) { for (int i = 0; i < nCardActions; i++) if (def.CardActions != null) items.Add(CreateCardMenuItem(def.CardActions[i])); if (group.Controller == null) items.Add(new Separator()); } if (group.Controller == null) items.Add(CreateCardPassToItem()); return items; }
protected virtual List<Control> CreateGroupMenuItems(GroupDef def) { int nGroupActions = def.GroupActions == null ? 0 : def.GroupActions.Length; var items = new List<Control> {CreateGroupHeader()}; for (int i = 0; i < nGroupActions; i++) if (def.GroupActions != null) items.Add(CreateGroupMenuItem(def.GroupActions[i])); if (nGroupActions > 0) items.Add(new Separator()); if (group.Controller != null) items.Add(CreateGroupPassToItem()); if (group.Visibility != GroupVisibility.Undefined) items.Add(CreateVisibilityItem()); MenuItem item = CreateLookAtCardsMenuItem(); if (item != null) items.Add(item); if (items.Last() is Separator) items.RemoveAt(items.Count - 1); return items; }
public Hand(Player owner, GroupDef def) : base(owner, def) { }