예제 #1
0
 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;
         }
     }
 }
예제 #2
0
 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)));
 }
예제 #3
0
 internal bool AffectedBySummoningSickness(Duel duel)
 {
     return(SummoningSickness && !duel.GetContinuousEffects <SpeedAttackerEffect>(this).Any());
 }
예제 #4
0
 public abstract bool Applies(Card card, Duel duel);