public void Add(Card card) { if (!CanHoldAdditionalCards) { return; } if (stack.Children.Contains(card)) { return; } double offset = 0; bool shouldOffsetCard = false; if (IsLimitingShownCards) { if (HoldsMoreCardsThanShown || StackCount == MaxShownCards) { card.Visibility = Visibility.Collapsed; } else { shouldOffsetCard = true; } } else { shouldOffsetCard = true; } if (shouldOffsetCard) { offset = StackVerticalOffset; } ((card.RenderTransform as TransformGroup).Children[0] as TranslateTransform).Y = offset; ((card.RenderTransform as TransformGroup).Children[1] as RotateTransform).Angle = 0; if (card.Parent is Panel) { (card.Parent as Panel).Children.Remove(card); } card.IsHitTestVisible = false; if (FlipsCardsWhenAdded) { card.Flip(); } stack.Children.Add(card); }
void ConvertStackToSword(CardSlot slot) { Card sword = new Card(); CardViewModel swordCardContext = sword.DataContext as CardViewModel; swordCardContext.Type = CardType.Sword; swordCardContext.Value = slot.StackCount; slot.Add(sword); sword.Flip(); sword.PlaceInSlot(weaponSlot, TimeSpan.FromSeconds(1)); }