// checks one specific drop target to see if a card was dropped there func dropCardHere(c *card.Card, d *staticimg.StaticImg, t touch.Event, u *uistate.UIState) bool { if !touchingStaticImg(t, d, u) { return false } lastDroppedCard := d.GetCardHere() if lastDroppedCard != nil { reposition.ResetCardPosition(lastDroppedCard, u.Eng) reposition.RealignSuit(lastDroppedCard.GetSuit(), lastDroppedCard.GetInitial().Y, u) } oldY := c.GetInitial().Y suit := c.GetSuit() u.CurCard.Move(d.GetCurrent(), c.GetDimensions(), u.Eng) d.SetCardHere(u.CurCard) // realign suit the card just left reposition.RealignSuit(suit, oldY, u) return true }
// checks all drop targets to see if a card was dropped there func dropCardOnTarget(c *card.Card, t touch.Event, u *uistate.UIState) bool { for _, d := range u.DropTargets { // checking to see if card was dropped onto a drop target if touchingStaticImg(t, d, u) { lastDroppedCard := d.GetCardHere() if lastDroppedCard != nil { reposition.ResetCardPosition(lastDroppedCard, u.Eng) reposition.RealignSuit(lastDroppedCard.GetSuit(), lastDroppedCard.GetInitial().Y, u) } oldY := c.GetInitial().Y suit := c.GetSuit() c.Move(d.GetCurrent(), c.GetDimensions(), u.Eng) d.SetCardHere(c) // realign suit the card just left reposition.RealignSuit(suit, oldY, u) return true } } return false }
// Resets the position of card c to its initial position, then realigns the suit it was in func ResetCardPosition(c *card.Card, eng sprite.Engine) { c.Move(c.GetInitial(), c.GetDimensions(), eng) }