public bool PickCard(CardEntity cardToPick) { bool isCardHand = this.CardsHand.Contains(cardToPick); bool isCardCemetery = this.CardsCemetery.Contains(cardToPick); if (isCardHand || isCardCemetery) { this.pilePicked = isCardHand ? PileFocused.HAND : PileFocused.CEMETERY; this.NotifyCardPicked(cardToPick, this.pilePicked); this.RemoveEntityFromLayer(cardToPick); this.CardEntityFocused = null; return(true); } return(false); }
protected override void InternalInitializeLayer(World world, ALevelNode levelNode) { int i = 0; this.CardsDeck.Clear(); this.CardsHand.Clear(); this.CardsCemetery.Clear(); this.isCemeteryShowed = false; this.isHandShowed = true; this.pileFocused = PileFocused.HAND; this.pilePicked = PileFocused.NONE; this.IsActiveTurn = false; this.SupportedPlayer = (levelNode as CardBoardLevel).GetPlayerFromIndex(world, out int currentPlayerIndex); this.IndexPlayer = currentPlayerIndex; List <Card.Card> deckCards = this.SupportedPlayer.ConstructDeck(world.CardLibrary); foreach (Card.Card card in deckCards) { CardEntity cardEntity = new CardEntity(this, card, false); cardEntity.Position = this.DeckPosition; cardEntity.IsActive = i < TOP_DECK; this.CardsDeck.Add(cardEntity); this.AddEntityToLayer(cardEntity); i++; } this.nbCardsToDraw = 0; this.cardFocused = null; }
public CardEntity UnpickCard(Card.Card cardToUnpick, Vector2f startPosition) { CardEntity cardEntity = new CardEntity(this, cardToUnpick, true); this.AddEntityToLayer(cardEntity); cardEntity.Position = startPosition; switch (this.pilePicked) { case PileFocused.HAND: this.CardsHand.Add(cardEntity); break; case PileFocused.CEMETERY: this.CardsCemetery.Add(cardEntity); break; } this.NotifyCardUnpicked(cardEntity, this.pilePicked); switch (this.pilePicked) { case PileFocused.HAND: this.UpdateCardsHandPosition(); break; case PileFocused.CEMETERY: this.UpdateCardsCimeteryPosition(); break; } this.pilePicked = PileFocused.NONE; return(cardEntity); }
protected void NotifyCardUnpicked(CardEntity cardUnpicked, PileFocused pilePicked) { this.CardUnpicked?.Invoke(cardUnpicked, pilePicked); }