public void DrawCards(int amount, Duel duel) { for (int i = 0; i < amount; ++i) { Card drawnCard = RemoveTopCardOfDeck(); if (drawnCard != null) { _ = Hand.Add(drawnCard, duel, null); var cardDrawnEvent = new CardDrawnEvent(new Player(this), new Card(drawnCard, true)); if (duel.Turns.Any()) { duel.CurrentTurn.CurrentStep.GameEvents.Enqueue(cardDrawnEvent); } else { duel.PreGameEvents.Enqueue(cardDrawnEvent); } } else { break; } } }
public void PutFromBattleZoneOnTopOfDeck(Card permanent, Duel duel) { BattleZone.Remove(permanent); _ = Deck.Add(new Card(permanent, false), duel, null); duel.CurrentTurn.CurrentStep.GameEvents.Enqueue(new PermanentPutIntoTopDeckEvent(new Player(this), new Card(permanent, true))); }
internal bool AffectedBySummoningSickness(Duel duel) { return(SummoningSickness && !duel.GetContinuousEffects <SpeedAttackerEffect>(this).Any()); }
public abstract bool Applies(Card card, Duel duel);