protected virtual List <Control> CreateCardMenuItems(DataNew.Entities.Group def) { var tempActions = def.CardActions.ToArray(); int nCardActions = def.CardActions == null ? 0 : tempActions.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++) { items.Add(CreateCardMenuItem(tempActions[i])); } if (group.Controller == null) { items.Add(new Separator()); } } if (group.Controller == null) { items.Add(CreateCardPassToItem()); } return(items); }
internal Group(Player owner, DataNew.Entities.Group def) : base(owner) { Def = def; ResetVisibility(); GroupShortcuts = CreateShortcuts(def.GroupActions); CardShortcuts = CreateShortcuts(def.CardActions); if (def.Shortcut != null) { MoveToShortcut = (KeyGesture)KeyConverter.ConvertFromInvariantString(def.Shortcut); } }
protected virtual List <Control> CreateGroupMenuItems(DataNew.Entities.Group def) { var tempActions = def.GroupActions.ToArray(); int nGroupActions = def.GroupActions == null ? 0 : tempActions.Length; var items = new List <Control> { CreateGroupHeader() }; for (int i = 0; i < nGroupActions; i++) { items.Add(CreateGroupMenuItem(tempActions[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 (def.Id == Program.GameEngine.Definition.Table.Id) { if (!(items.Last() is Separator)) { items.Add(new Separator()); } var noteItem = new MenuItem() { Header = "Create Note" }; noteItem.Click += NoteItemOnClick; items.Add(noteItem); } if (items.Last() is Separator) { items.RemoveAt(items.Count - 1); } return(items); }
private void SetBoard(DataNew.Entities.Group tableDef) { Rect pos = new Rect(tableDef.BoardPosition.X, tableDef.BoardPosition.Y, tableDef.BoardPosition.Width, tableDef.BoardPosition.Height); var img = new Image { Source = ExtensionMethods.BitmapFromUri(new Uri(tableDef.Board)), Width = pos.Width, Height = pos.Height, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Margin = new Thickness(pos.Left, pos.Top, 0, 0) }; boardContainer.Children.Insert(0, img); }
private void SetBackground(DataNew.Entities.Group tableDef) { var bim = new BitmapImage(); bim.BeginInit(); bim.CacheOption = BitmapCacheOption.OnLoad; bim.UriSource = new Uri(tableDef.Background); if (Program.GameEngine.IsTableBackgroundFlipped) { bim.Rotation = Rotation.Rotate180; } bim.EndInit(); var backBrush = new ImageBrush(bim); if (tableDef.BackgroundStyle != null) { switch (tableDef.BackgroundStyle) { case "tile": backBrush.TileMode = TileMode.Tile; backBrush.Viewport = new Rect(0, 0, backBrush.ImageSource.Width, backBrush.ImageSource.Height); backBrush.ViewportUnits = BrushMappingMode.Absolute; break; case "uniform": backBrush.Stretch = Stretch.Uniform; break; case "uniformToFill": backBrush.Stretch = Stretch.UniformToFill; break; case "stretch": backBrush.Stretch = Stretch.Fill; break; } } Background = backBrush; }
protected virtual List <Control> CreateGroupMenuItems(DataNew.Entities.Group def) { var tempActions = def.GroupActions.ToArray(); int nGroupActions = def.GroupActions == null ? 0 : tempActions.Length; var items = new List <Control> { CreateGroupHeader() }; for (int i = 0; i < nGroupActions; i++) { items.Add(CreateGroupMenuItem(tempActions[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); }
protected override List <Control> CreateCardMenuItems(DataNew.Entities.Group def) { List <Control> items = base.CreateCardMenuItems(def); var item = new MenuItem { Header = "Move to" }; var subItem = new MenuItem { Header = Program.GameEngine.Definition.Player.Hand.Name, InputGestureText = Program.GameEngine.Definition.Player.Hand.Shortcut }; subItem.Click += delegate { Selection.Do(c => c.MoveTo(Player.LocalPlayer.Hand, true, false), ContextCard); }; item.Items.Add(subItem); var groupDefs = Program.GameEngine.Definition.Player.Groups.ToArray(); var moveToBottomItems = new List <MenuItem>(); for (int i = 0; i < groupDefs.Length; ++i) { var groupDef = groupDefs[i]; Group indexedGroup = Player.LocalPlayer.IndexedGroups[i + 1]; // 0 is hand subItem = new MenuItem { Header = groupDef.Name, InputGestureText = groupDef.Shortcut }; subItem.Click += delegate { Selection.Do(c => c.MoveTo(indexedGroup, true, false), ContextCard); }; item.Items.Add(subItem); subItem = new MenuItem { Header = string.Format("Bottom of {0}", groupDef.Name), InputGestureText = string.IsNullOrEmpty(groupDef.Shortcut) ? null : "Alt+" + groupDef.Shortcut }; subItem.Click += delegate { Selection.Do(c => c.MoveTo(indexedGroup, true, indexedGroup.Count, false), ContextCard); }; moveToBottomItems.Add(subItem); } if (moveToBottomItems.Count > 0) { item.Items.Add(new Separator()); } foreach (MenuItem x in moveToBottomItems) { item.Items.Add(x); } items.Add(item); item = new MenuItem { Header = "Bring to front", InputGestureText = "PgUp" }; item.Click += delegate { Selection.Do(c => Program.GameEngine.Table.BringToFront(c), ContextCard); }; items.Add(item); item = new MenuItem { Header = "Send to back", InputGestureText = "PgDn" }; item.Click += delegate { Selection.Do(c => Program.GameEngine.Table.SendToBack(c), ContextCard); }; items.Add(item); return(items); }
internal void SetBackground(DataNew.Entities.Group tableDef) { SetBackground(tableDef.Background, tableDef.BackgroundStyle); }
public Table(DataNew.Entities.Group def) : base(null, def) { }
protected virtual List <Control> CreateCardMenuItems(Card card, DataNew.Entities.Group def) { var items = new List <Control>(); if (!card.CanManipulate()) { var item = new MenuItem { Header = card.Name, Background = card.Controller.TransparentBrush }; item.SetResourceReference(StyleProperty, "MenuHeader"); items.Add(item); item = new MenuItem { Header = "Take control" }; item.Click += delegate { card.TakeControl(); }; items.Add(item); return(items); } else { var actions = def.CardActions.ToList(); var nCardActions = actions.ToArray().Length; if (nCardActions > 0 || group.Controller == null) { var cardHeader = new MenuItem(); cardHeader.SetResourceReference(StyleProperty, "MenuHeader"); cardHeader.Header = card.Name; cardHeader.Background = card.Controller.TransparentBrush; items.Add(cardHeader); } if (nCardActions > 0) { items.AddRange(actions.Select(action => CreateActionMenuItem(action, CardActionClicked, card)).Where(x => x.Visibility == Visibility.Visible)); if (group.Controller == null) { items.Add(new Separator()); } } if (group.Controller == null) { items.Add(CreateCardPassToItem()); } } if (def.Id == Program.GameEngine.Definition.Table.Id) { var ami = new MenuItem() { Header = card.Anchored ? "Unanchor" : "Anchor" }; ami.Click += (sender, args) => ContextCard.SetAnchored(false, card.Anchored == false); items.Add(ami); } if (!card.FaceUp) { var peekItem = new MenuItem { Header = "Peek", InputGestureText = "Ctrl+P" }; peekItem.Click += delegate { ContextCard.Peek(); }; items.Add(peekItem); } return(items); }
protected virtual List <Control> CreateGroupMenuItems(DataNew.Entities.Group def) { var items = new List <Control> { CreateGroupHeader() }; if (!group.CanManipulate()) { items.Add(CreateGroupHeader()); var item = new MenuItem { Header = "Take control" }; item.Click += delegate { group.TakeControl(); }; items.Add(item); items.Add(new Separator()); item = CreateLookAtCardsMenuItem(); if (item != null) { items.Add(item); } } else { var actions = def.GroupActions; var nGroupActions = actions.ToArray().Length; if (nGroupActions > 0) { items.AddRange(actions.Select(action => CreateActionMenuItem(action, GroupActionClicked, null)).Where(x => x.Visibility == Visibility.Visible)); } 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 (def.Id == Program.GameEngine.Definition.Table.Id) { if (!(items.Last() is Separator)) { items.Add(new Separator()); } var noteItem = new MenuItem() { Header = "Create Note" }; noteItem.Click += NoteItemOnClick; items.Add(noteItem); } if (items.Last() is Separator) { items.RemoveAt(items.Count - 1); } } return(items); }
internal Pile(Player owner, DataNew.Entities.Group def) : base(owner, def) { _collapsed = def.Collapsed; }
internal Pile(Player owner, DataNew.Entities.Group def) : base(owner, def) { _viewState = def.ViewState; }
protected virtual List <Control> CreateCardMenuItems(Card card, DataNew.Entities.Group def) { var items = new List <Control>(); if (!card.CanManipulate()) { var item = new MenuItem { Header = card.Name, Background = card.Controller.TransparentBrush }; item.SetResourceReference(StyleProperty, "MenuHeader"); items.Add(item); item = new MenuItem { Header = "Take control" }; item.Click += delegate { card.TakeControl(); }; items.Add(item); return(items); } else { var selection = Selection.ExtendToSelection(card); //actionFilter showCard = async (IGroupAction a) => actionFilter showCard = (IGroupAction a) => { if (a.ShowIf != null) { //return await CallActionShowIf(a.ShowIf, selection); return(CallActionShowIf(a.ShowIf, selection)); } return(true); }; var visibleActionsTasks = def.CardActions.Select(item => new { Item = item, PredTask = showCard.Invoke(item) }).ToList(); //await TaskEx.WhenAll(visibleActionsTasks.Select(x => x.PredTask)); //var visibleActions = visibleActionsTasks.Where(x => x.PredTask.Result).Select(x => x.Item).ToArray(); var visibleActions = visibleActionsTasks.Where(x => x.PredTask).Select(x => x.Item).ToArray(); var nCardActions = visibleActions.Length; if (nCardActions > 0 || group.Controller == null) { var cardHeader = new MenuItem(); cardHeader.SetResourceReference(StyleProperty, "MenuHeader"); cardHeader.Header = card.Name; cardHeader.Background = card.Controller.TransparentBrush; items.Add(cardHeader); } if (nCardActions > 0) { items.AddRange(visibleActions.Select(action => CreateActionMenuItem(action, CardActionClicked))); if (group.Controller == null) { items.Add(new Separator()); } } if (group.Controller == null) { items.Add(CreateCardPassToItem()); } } if (!card.FaceUp) { var peekItem = new MenuItem { Header = "Peek", InputGestureText = "Ctrl+P" }; peekItem.Click += delegate { ContextCard.Peek(); }; items.Add(peekItem); } return(items); }
public Hand(Player owner, DataNew.Entities.Group def) : base(owner, def) { }