コード例 #1
0
        public Models.Deck GetOpponentDeck()
        {
            var deck = new Models.Deck();

            if (Core.Game.IsRunning)
            {
                var game = Core.Game.CurrentGameStats;
                if (game != null && game.CanGetOpponentDeck)
                {
                    Log.Info("oppoent deck available");
                    // hero class
                    deck.Klass = KlassKonverter.FromString(game.OpponentHero);
                    // standard viable, use temp HDT deck
                    var hdtDeck = new HDTDeck();
                    foreach (var card in game.OpponentCards)
                    {
                        var c = Database.GetCardFromId(card.Id);
                        c.Count = card.Count;
                        hdtDeck.Cards.Add(c);
                        if (c != null && c != Database.UnknownCard)
                        {
                            deck.Cards.Add(
                                new Models.Card(c.Id, c.LocalizedName, c.Count, c.Background.Clone()));
                        }
                    }
                    deck.IsStandard = hdtDeck.StandardViable;
                }
            }
            return(deck);
        }
コード例 #2
0
        public BlackjackController(ILogger <BlackjackController> logger, Models.ApiContext context)
        {
            this.context = context;

            if (!context.Croupiers.Any(p => p.Nickname == "Croupier-Blackjack"))
            {
                var croupier = new Models.Croupier
                {
                    Nickname = "Croupier-Blackjack",
                    Wallet   = 1000000, // krupier ma bank (kasino zacina s 1.000.000$/krupier existenciu)
                    GameId   = "Blackjack",
                    State    = Items.Player.EState.PLAYING
                };
                context.Croupiers.Add(croupier);

                var deck = new Models.Deck(context)
                {
                    CroupierId = croupier.Nickname
                };
                context.Decks.Add(deck);
                context.SaveChanges();

                // Krupier zacina s jednou kartou hru
                RandomCard(croupier).Wait();

                context.SaveChanges();
            }
        }
コード例 #3
0
        public DeckViewModel(Models.Deck deckModel)
        {
            _deckModel = deckModel;

            // Load available input languages
            foreach (var lang in InputLanguageManager.Current.AvailableInputLanguages ?? new List <object>())
            {
                Languages.Add(CultureInfo.CreateSpecificCulture(lang.ToString()));
            }

            // Load system default language
            var defaultLang = InputLanguageManager.Current.CurrentInputLanguage;

            // TODO: Remove hard-coded initialization
            // Initialize scripts
            var defaultScript = new NoneScript("None");

            Scripts.Add(defaultScript);
            Scripts.Add(new MirrorScript("Clone"));
            Scripts.Add(new FuriganaScript(MyQuery, "Furigana"));
            Scripts.Add(new DictionaryFormScript(MyQuery, "Dictionary Form"));
            Scripts.Add(new NotesScript(MyQuery, "Notes"));


            // Initialize deck settings
            DeckSettings = new DeckSettings(defaultLang, defaultScript);

            foreach (var noteModel in deckModel.note_models)
            {
                DeckSettings.AddFieldSettings(noteModel);
            }

            // Create dictionary of noteModels
            foreach (var noteModel in deckModel.note_models)
            {
                _noteModels.Add(noteModel.crowdanki_uuid, noteModel);
                NoteModels.Add(noteModel);
            }

            SelectedNoteModel = NoteModels.First();

            foreach (var note in deckModel.notes)
            {
                // Add notes where note model exists
                if (_noteModels.TryGetValue(note.note_model_uuid, out var noteModel))
                {
                    NoteViewModels.Add(new NoteViewModel(note, noteModel, this));
                }
                else
                {
                    // TODO Error handling
                }
            }

            Sort();
        }
コード例 #4
0
 private static Models.Deck ConvertFromServiceDeckToClientDeck(GameTableServiceReference.Deck serviceDeck)
 {
     Models.Deck clientDeck = new Models.Deck()
     {
         Id    = serviceDeck.Id,
         Name  = serviceDeck.DeckName,
         cards = ConvertFromListOfServiceCardsToListOfClientCards(serviceDeck.cards)
     };
     return(clientDeck);
 }
コード例 #5
0
 private static object ConvertFromServiceDeckToClientDeck(Deck serviceDeck)
 {
     Models.Deck clientDeck = new Models.Deck()
     {
         Id    = serviceDeck.Id,
         Name  = serviceDeck.DeckName,
         cards = ConvertFromListOfServiceCardsToListOfClientCards(serviceDeck.cards)
     };
     return(clientDeck);
 }
コード例 #6
0
 private static GameServiceReference.Deck ConvertFromClientDeckToServiceDeck(Models.Deck clientDeck)
 {
     GameServiceReference.Deck serviceDeck = new GameServiceReference.Deck()
     {
         Id       = clientDeck.Id,
         DeckName = clientDeck.Name,
         cards    = ConvertFromListOfClientCardsToListOfServiceCards(clientDeck.cards)
     };
     return(serviceDeck);
 }
コード例 #7
0
        public void AddDeck(Models.Deck deck)
        {
            HDTDeck d    = new HDTDeck();
            var     arch = deck as ArchetypeDeck;

            if (arch != null)
            {
                d.Name = arch.Name;
            }
            d.Class = deck.Klass.ToString();
            d.Cards = new ObservableCollection <HDTCard>(deck.Cards.Select(c => Database.GetCardFromId(c.Id)));
            DeckList.Instance.Decks.Add(d);
            // doesn't refresh the deck picker view
        }
コード例 #8
0
        /*
         * Metodo che prende i mazzi di carte, li unisce e i mischia
         *
         */
        public Card[] CreateDeck(int qtaMazzi)
        {
            Models.Deck[] decks = new Models.Deck[qtaMazzi];

            int qtaCarte = qtaMazzi * 52;

            Card[] cards = new Card[qtaCarte];
            for (int i = 0; i < qtaMazzi; i++)
            {
                decks[i] = new Models.Deck();
                cards    = cards.Union(decks[i].Cards).ToArray();
            }
            return(cards);
        }
コード例 #9
0
        //
        // GET: /Home/



        public ActionResult Index()
        {
            String strMessage = String.Empty;



            Models.Deck deck = FillDeck();
            foreach (Models.Card c in deck.Cards)
            {
                strMessage += c.CardRank + " of " + c.CardSuit + " /n ";
            }

            @ViewBag.Message = strMessage;

            return(View());
        }
コード例 #10
0
        public Models.Deck ShuffleDeck(Models.Deck deck)
        {
            Models.Deck tempDeck1 = new Models.Deck();
            Models.Deck tempDeck2 = new Models.Deck();

            Models.Card[] c1 = new Models.Card[26];
            Models.Card[] c2 = new Models.Card[26];

            SplitMidPoint <Models.Card>(deck.Cards, out c1, out c2);

            tempDeck1.Cards = c1;
            tempDeck2.Cards = c2;

            //deck.Cards = c1.Union(c2);

            return(deck);
        }
コード例 #11
0
        public ActionResult Index()
        {
            /// Decks aus der Datenbank
            var dbDecks = UserManager.GetAllDecksByEmail(User.Identity.Name);

            /// Decks für die View
            var decks = new List <Models.Deck>();

            foreach (var d in dbDecks)
            {
                Models.Deck deck = new Models.Deck();
                deck.ID   = d.ID;
                deck.Name = d.Name;
                decks.Add(deck);
            }

            return(View(decks));
        }
コード例 #12
0
        static Models.Deck FillDeck()
        {
            Models.Deck deck = new Models.Deck();

            deck.Cards = new Models.Card[52];

            int count = 0;

            foreach (Models.Rank r in (Models.Rank[])Enum.GetValues(typeof(Models.Rank)))
            {
                foreach (Models.Suit s in (Models.Suit[])Enum.GetValues(typeof(Models.Suit)))
                {
                    deck.Cards[count]          = new Models.Card();
                    deck.Cards[count].CardRank = r;
                    deck.Cards[count].CardSuit = s;
                    count++;
                }
            }


            return(deck);
        }
コード例 #13
0
        public ActionResult SaveDeck(string[] cardList, string deckName = "", int deckId = -1)
        {
            if (deckName == string.Empty)
            {
                return(RedirectToAction("Create", new { deckId = deckId }));
            }

            if (!Models.AccountUtils.isLoggedIn(this))
            {
                return(RedirectToAction("LogIn", "Account"));
            }

            var loginHash = Request.Cookies["loginHash"].Value;

            var accountId = Models.AccountUtils.GetAccountID(loginHash);

            if (accountId < 0)
            {
                return(RedirectToAction("LogOut", "Account"));
            }

            if (deckId < 0)
            {
                // New deck
                var deckDB  = new Models.DecksDataContext();
                var newDeck = new Models.Deck {
                    OwnerId = accountId,
                    Name    = deckName
                };

                deckDB.Decks.InsertOnSubmit(newDeck);
                deckDB.SubmitChanges();

                var cards = new List <Models.Card>();

                Array.ForEach(cardList, c => {
                    cards.Add(new Models.Card {
                        DeckId   = newDeck.Id,
                        CardName = c
                    });
                });

                var cardsDB = new Models.CardsDataContext();
                cardsDB.Cards.InsertAllOnSubmit(cards);
                cardsDB.SubmitChanges();
            }
            else
            {
                // Existing deck
                var deckDB = new Models.DecksDataContext();
                var deck   = from d in deckDB.Decks
                             where (d.Id == deckId) &&
                             (d.OwnerId == accountId)
                             select d;

                if (deck.ToArray().Length <= 0)
                {
                    return(RedirectToAction("Create"));
                }

                deck.First().Name = deckName;
                deckDB.SubmitChanges();

                var cardsDB = new Models.CardsDataContext();

                // Clear the deck before inserting the cards
                var currentCards = from c in cardsDB.Cards
                                   where c.DeckId == deckId
                                   select c;

                cardsDB.Cards.DeleteAllOnSubmit(currentCards);

                // Add the new cards to the deck
                var cards = new List <Models.Card>();

                Array.ForEach(cardList, c => {
                    cards.Add(new Models.Card {
                        DeckId   = deckId,
                        CardName = c
                    });
                });

                cardsDB.Cards.InsertAllOnSubmit(cards);
                cardsDB.SubmitChanges();
            }

            return(RedirectToAction("List"));
        }
コード例 #14
0
 public void GetDeck()
 {
     Models.Deck[] decks = new Models.Deck[2];
 }
コード例 #15
0
ファイル: DeckController.cs プロジェクト: Okiesmokie/mtgcards
        public ActionResult SaveDeck(string[] cardList, string deckName = "", int deckId = -1)
        {
            if(deckName == string.Empty) {
                return RedirectToAction("Create", new { deckId = deckId });
            }

            if(!Models.AccountUtils.isLoggedIn(this)) {
                return RedirectToAction("LogIn", "Account");
            }

            var loginHash = Request.Cookies["loginHash"].Value;

            var accountId = Models.AccountUtils.GetAccountID(loginHash);

            if(accountId < 0) return RedirectToAction("LogOut", "Account");

            if(deckId < 0) {
                // New deck
                var deckDB = new Models.DecksDataContext();
                var newDeck = new Models.Deck {
                    OwnerId = accountId,
                    Name = deckName
                };

                deckDB.Decks.InsertOnSubmit(newDeck);
                deckDB.SubmitChanges();

                var cards = new List<Models.Card>();

                Array.ForEach(cardList, c => {
                    cards.Add(new Models.Card {
                        DeckId = newDeck.Id,
                        CardName = c
                    });
                });

                var cardsDB = new Models.CardsDataContext();
                cardsDB.Cards.InsertAllOnSubmit(cards);
                cardsDB.SubmitChanges();
            } else {
                // Existing deck
                var deckDB = new Models.DecksDataContext();
                var deck = from d in deckDB.Decks
                           where (d.Id == deckId) &&
                                 (d.OwnerId == accountId)
                           select d;

                if(deck.ToArray().Length <= 0) return RedirectToAction("Create");

                deck.First().Name = deckName;
                deckDB.SubmitChanges();

                var cardsDB = new Models.CardsDataContext();

                // Clear the deck before inserting the cards
                var currentCards = from c in cardsDB.Cards
                                   where c.DeckId == deckId
                                   select c;

                cardsDB.Cards.DeleteAllOnSubmit(currentCards);

                // Add the new cards to the deck
                var cards = new List<Models.Card>();

                Array.ForEach(cardList, c => {
                    cards.Add(new Models.Card {
                        DeckId = deckId,
                        CardName = c
                    });
                });

                cardsDB.Cards.InsertAllOnSubmit(cards);
                cardsDB.SubmitChanges();
            }

            return RedirectToAction("List");
        }