예제 #1
0
파일: Deck.cs 프로젝트: vitaliygor/Well
 public void MoveTo(Deck deck)
 {
     if (TopCard.Value > 0)
     {
         deck.Add(TopCard);
         Remove();
     }
 }
예제 #2
0
파일: Game.cs 프로젝트: vitaliygor/Well
 private void MoveFromGeneral(Deck to, Random random, bool useDifficulty = true)
 {
     int left = _generalDeck.Count;
     if (useDifficulty)
     {
         left += _options.Difficulty - MaxDifficulty;
     }
     int index = random.Next(0, left);
     Card addCard = _generalDeck[index];
     to.Add(addCard);
     _generalDeck.RemoveAt(index);
 }
예제 #3
0
파일: Game.cs 프로젝트: vitaliygor/Well
 public bool TryMove(Deck to)
 {
     if (_selected.TryMove(to))
     {
         DeleteOldSteps();
         AddNewStep();
         ModifyScore(_selected, to);
         SaveMovement(_selected.Name, to.Name);
         if (to.Type == DeckType.Result)
         {
             var deck = (ResultDeck) to;
             if (deck.DisabledSuit != null)
             {
                 LastStep.DisabledSuit = deck.DisabledSuit;
                 deck.DisabledSuit = null;
             }
         }
         NotifyCardsChanged();
         return true;
     }
     return false;
 }
예제 #4
0
파일: Game.cs 프로젝트: vitaliygor/Well
 public void Select(Deck deck)
 {
     _isSomethingSelected = true;
     _selected = deck;
 }
예제 #5
0
파일: Game.cs 프로젝트: vitaliygor/Well
 public void ModifyScore(Deck from, Deck to)
 {
     int change = ScoreCounter.CountChange(from, to);
     Score += change;
     LastStep.ScoreIncreased = change;
 }
예제 #6
0
파일: Deck.cs 프로젝트: vitaliygor/Well
 public virtual bool TryMove(Deck deck)
 {
     if (deck.CanPutOnTop(TopCard))
     {
         MoveTo(deck);
         return true;
     }
     return false;
 }
예제 #7
0
 public override bool TryMove(Deck deck)
 {
     return false;
 }
예제 #8
0
 private void MakeStep(Border border, Deck deck)
 {
     if (MyGame.IsSomethingSelected)
     {
         MakeAction(border, MyGame.TryMove(deck));
     }
     else
     {
         MyGame.Select(deck);
         MakeSelected(border);
     }
     CheckWin();
 }