public void Start() { for (int i = 0; i <= (int)SetCard.Color.purple; i++) { for (int j = 0; j <= (int)SetCard.Fill.empty; j++) { for (int k = 0; k <= (int)SetCard.Number.three; k++) { SetCard go = Instantiate(prefab); go.color = (SetCard.Color)i; go.number = (SetCard.Number)j; go.fill = (SetCard.Fill)k; go.transform.parent = transform; } } } }
public static bool Convert(bool canPlay, SetCard card) { return canPlay && (card != null); }
public static DrawingImage Convert(SetCard setCard) { Util.RequireNotNull(setCard, "setCard"); return new DrawingImage(SetCardDrawingFactory.GetFullCardDrawing(setCard)); }
public static Drawing GetFullCardDrawing(SetCard setCard) { Drawing designDrawing = GetCardDesignDrawing(setCard); DrawingGroup group = new DrawingGroup(); group.Children.Add(s_cardDrawing); group.Children.Add(designDrawing); return group; }
public static Drawing GetCardDesignDrawing(SetCard setCard) { Util.RequireNotNull(setCard, "setCard"); DrawingGroup drawingGroup = new DrawingGroup(); #region Border RectangleGeometry cardBorderGeometry = new RectangleGeometry(new Rect(s_cardSize)); GeometryDrawing cardBorderDrawing = new GeometryDrawing(null, s_borderPen, cardBorderGeometry); drawingGroup.Children.Add(cardBorderDrawing); #endregion #region Brush Brush itemBrush = null; switch (setCard.Fill) { case SetFill.Solid: switch (setCard.Color) { case SetColor.Green: itemBrush = Brushes.Green; break; case SetColor.Purple: itemBrush = Brushes.Purple; break; case SetColor.Red: itemBrush = Brushes.Red; break; } break; case SetFill.Stripe: switch (setCard.Color) { case SetColor.Green: itemBrush = s_stripedGreenBrush; break; case SetColor.Purple: itemBrush = s_stripedPurpleBrush; break; case SetColor.Red: itemBrush = s_stripedRedBrush; break; } break; case SetFill.Empty: itemBrush = Brushes.Transparent; break; } #endregion Pen itemPen = null; switch (setCard.Color) { case SetColor.Green: itemPen = s_greenPen; break; case SetColor.Purple: itemPen = s_purplePen; break; case SetColor.Red: itemPen = s_redPen; break; } Point startCenter = new Point(s_cardSize.Width / 2, s_cardSize.Height / 2); if (setCard.Count == 2) { startCenter.Y -= c_centerOffset / 2; } else if (setCard.Count == 3) { startCenter.Y -= c_centerOffset; } GeometryGroup geometryGroup = new GeometryGroup(); for (int i = 0; i < setCard.Count; i++) { Geometry itemGeometry = null; switch (setCard.Shape) { case SetShape.Diamond: itemGeometry = GetDiamondGeometry(); break; case SetShape.Oval: itemGeometry = new RectangleGeometry( new Rect(s_itemSize), s_itemSize.Height / 2, s_itemSize.Height / 2); break; case SetShape.Squiggle: itemGeometry = new PathGeometry(s_squigglePathFigureCollection); break; } itemGeometry.Transform = GetCenterTransform(itemGeometry, startCenter); geometryGroup.Children.Add(itemGeometry); startCenter.Y += c_centerOffset; } Debug.Assert(itemBrush != null); Debug.Assert(itemPen != null); GeometryDrawing itemDrawing = new GeometryDrawing(itemBrush, itemPen, geometryGroup); drawingGroup.Children.Add(itemDrawing); return drawingGroup; }