示例#1
0
 public void addDrawAction(CardContainer startingContainer, CardContainer endingContainer, BoardFunctionality boardFunc)
 {
     moveToAction = () => {
         drawCardLogic(startingContainer, endingContainer, boardFunc);
     };
     boardFunc.boardActions.AddAction(moveToAction);
 }
示例#2
0
 private void setContainerPlayState(CardContainer container, PlayState playState)
 {
     foreach (Card card in container.cardsInContainer)
     {
         card.playState = playState;
     }
 }
示例#3
0
 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);
 }
示例#4
0
 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");
     }
 }
示例#6
0
 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);
     }
 }
示例#8
0
 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();
 }
示例#9
0
        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();
            }
        }