public void addDrawAction(CardContainer startingContainer, CardContainer endingContainer, BoardFunctionality boardFunc) { moveToAction = () => { drawCardLogic(startingContainer, endingContainer, boardFunc); }; boardFunc.boardActions.AddAction(moveToAction); }
private void setContainerPlayState(CardContainer container, PlayState playState) { foreach (Card card in container.cardsInContainer) { card.playState = playState; } }
public void moveTo(CardContainer startingContainer, CardContainer endingContainer, Card card, BoardFunctionality boardFunc) { //Vector2 toMoveTo = container.getPosition(); //Vector2 from = card.getPosition(); moveToAction = () => { movementLogic(startingContainer, endingContainer, card, boardFunc); }; boardFunc.boardActions.AddAction(moveToAction); }
private void deselectContainer(CardContainer container) { foreach (Card card in container.cardsInContainer) { if (card.selectState == SelectState.Selected) { card.setRegular(); } } }
public void moveCard(CardContainer container, Card card) { if (cardsInContainer.Contains(card)) { cardsInContainer.Remove(card); container.cardsInContainer.Add(card); } else { Console.WriteLine("Card not found in this container"); } }
public void drawCardLogic(CardContainer startingContainer, CardContainer endingContainer, BoardFunctionality boardFunc) { if (startingContainer.cardsInContainer.Count > 0) { Card card = startingContainer.cardsInContainer[0]; card.makingAction = true; movementLogic(startingContainer, endingContainer, card, boardFunc); } else { boardFunc.BOARDMESSAGE.addMessage("No more cards left in deck."); } }
private void drawStack(CardContainer container, SpriteBatch spriteBatch) { if (!container.isEmpty()) { if (!container.hasAtLeastTwoCards()) { container.cardsInContainer[1].setCardBackColor(Color.Green); container.cardsInContainer[1].drawSprite(spriteBatch); } container.cardsInContainer[0].setCardBackColor(Color.White); container.cardsInContainer[0].drawSprite(spriteBatch); } }
public Side(Player player) { Deck = player.deck; Player = player; Deck = new Deck(); Rows = new FunctionalRow[MaxRows]; Resources = new List <Race>(); Rows[General] = new FunctionalRow(CardType.General); Rows[General].setVisibility(false); Rows[Armies] = new ArmyRow(CardType.Army); Rows[Armies].setVisibility(false); Rows[FieldUnit] = new FunctionalRow(CardType.FieldUnit); Rows[FieldUnit].setVisibility(true); boardFunc = new BoardFunctionality(); Hand = new Hand(); Oblivion = new CardContainer(); LifeTotal = SetLife; Life = new CardContainer(); }
public void movementLogic(CardContainer startingContainer, CardContainer endingContainer, Card card, BoardFunctionality boardFunc) { card.makingAction = true; Vector2 newPosition = endingContainer.getEntrancePosition(card); if (newPosition.X > Game1.windowW || newPosition.X < -100) { throw new Exception(endingContainer.getPosition().ToString()); } if (newPosition.Y > Game1.windowH || newPosition.Y < -200) { throw new Exception(endingContainer.getPosition().ToString()); } int timeUntilArrival = 3; int speedX = (int)GameComponent.ToAbsolute((newPosition.X - card.getPosition().X)) / timeUntilArrival; if (speedX < 1) { speedX = 1; } int speedY = (int)GameComponent.ToAbsolute((newPosition.Y - card.getPosition().Y)) / timeUntilArrival; if (speedY < 1) { speedY = 1; } Vector2 adjustingPosition; bool xAxisFinished = false; bool yAxisFinished = false; if (card.getPosition().X < newPosition.X) { adjustingPosition = new Vector2(card.getPosition().X + speedX, card.getPosition().Y); card.setPos(adjustingPosition); } else if (card.getPosition().X > newPosition.X) { adjustingPosition = new Vector2(card.getPosition().X - speedX, card.getPosition().Y); card.setPos(adjustingPosition); } else { xAxisFinished = true; } if (card.getPosition().Y < newPosition.Y) { adjustingPosition = new Vector2(card.getPosition().X, card.getPosition().Y + speedY); card.setPos(adjustingPosition); } else if (card.getPosition().Y > newPosition.Y) { adjustingPosition = new Vector2(card.getPosition().X, card.getPosition().Y - speedY); card.setPos(adjustingPosition); } else { yAxisFinished = true; } if (xAxisFinished && yAxisFinished) { try { startingContainer.moveCard(endingContainer, card); } catch (Exception e) { Console.WriteLine(e); } card.makingAction = false; boardFunc.boardPosLogic.updateBoard(boardFunc); MouseTransformer.Set(MouseTransformer.State.Reg); boardFunc.boardActions.nextAction(); } }