示例#1
0
        private void createSampleHand(int handSize, CardRepository cardRepository)
        {
            SampleHand.Clear();

            Shuffle();

            for (int i = 0; i < handSize; i++)
            {
                draw(cardRepository);
            }

            SampleHand.SetOrder(SampleHand.CardsIds
                                .OrderBy(id => cardRepository.CardsById[id].Cmc)
                                .ThenBy(id => cardRepository.CardsById[id].TypeEn)
                                .ThenBy(id => cardRepository.CardsById[id].Color)
                                .ToList());

            lock (DataSource)
            {
                DataSource.Clear();
                DataSource.AddRange(SampleHand.CardsIds.Select(id => cardRepository.CardsById[id]));
            }

            DeckChanged?.Invoke(
                listChanged: true,
                countChanged: true,
                card: null,
                touchedChanged: false,
                changedZone: CurrentZone,
                changeTerminatesBatch: true);
        }
示例#2
0
        public void Clear()
        {
            switch (CurrentZone)
            {
            case Zone.SampleHand:
                SampleHand.Clear();
                break;

            case Zone.Side:
                SideDeck.Clear();
                break;

            case Zone.Main:
                MainDeck.Clear();
                SideDeck.Clear();
                break;

            default:
                return;
            }

            lock (DataSource)
                DataSource.Clear();

            DeckChanged?.Invoke(
                listChanged: true,
                countChanged: true,
                card: null,
                touchedChanged: false,
                changedZone: CurrentZone,
                changeTerminatesBatch: true);
        }