Esempio n. 1
0
        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)
            });
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 internal Pile(Player owner, GroupDef def)
     : base(owner, def)
 {
     _collapsed = def.Collapsed;
 }
Esempio n. 5
0
File: Table.cs Progetto: 0M3G4/OCTGN
 public Table(GroupDef def)
     : base(null, def)
 {
 }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
File: Hand.cs Progetto: 0M3G4/OCTGN
 public Hand(Player owner, GroupDef def)
     : base(owner, def)
 {
 }