public static void LoadDecks() { Console.Write("Loading decks... "); try { DirectoryInfo directoryInfo = new DirectoryInfo(Json.JsonLocation); var decks = directoryInfo.GetFiles("*.json", SearchOption.AllDirectories); foreach (FileInfo deck in decks) { string deckName = Path.GetFileNameWithoutExtension(deck.Name); CardDeck cardDeck = Json.Load <CardDeck>(deckName); cardDeck.Name = deckName; Decks.Add(cardDeck); } } catch (Exception) { Console.WriteLine("Empty deck!"); return; } Decks.First().Include = true; Console.WriteLine("Done!"); }
/// <summary> /// Sort a sub-deck into its parent /// </summary> /// <param name="parent"></param> /// <param name="child"></param> private void SortIntoSubdeck(DeckInformation parent, DeckInformation child) { int currentIndex = decks.IndexOf(child); int parentIndex = decks.IndexOf(parent); //No need to do anything if it's already next to its parent if (currentIndex == parentIndex + 1) { return; } Decks.Remove(child); int childLevel = child.ChildLevel; parentIndex = decks.IndexOf(parent); for (int i = parentIndex + 1; i < decks.Count; i++) { int level = decks[i].ChildLevel; if (level > childLevel) { continue; } if ((level < childLevel) || (Compare(child, decks[i]) < 0)) { Decks.Insert(i, child); return; } } Decks.Add(child); }
public override async Task Update() { IsLoadingDecks = true; Note = _repository.GetGameNote()?.ToString(); var deck = _repository.GetOpponentDeck(); Cards.Clear(); deck.Cards.ForEach(c => Cards.Add(c)); PlayerClass = deck.Class.ToString(); Decks.Clear(); await Task.Run(() => { var alldecks = _repository .GetAllDecksWithTag(Strings.ArchetypeTag) .Select(d => new ArchetypeDeck(d)) .ToList(); var results = ViewModelHelper.MatchArchetypes(deck, alldecks); results.ForEach(r => Decks.Add(r)); results.ForEach(r => _log.Info($"{r.Deck.Name} [{r.Similarity}, {r.Containment}]")); var firstDeck = Decks.FirstOrDefault(); if (firstDeck != null && firstDeck.Similarity > MatchResult.THRESHOLD) { DeckSelected(firstDeck); } IsLoadingDecks = false; IsNoteFocused = true; }); }
public void SetResetDeck() { Decks.Clear(); for (int j = 0; j < NumOfDecks; j++) { //Generate cards for deck that are numbers for (int i = 2; i < 11; i++) { for (int NumofSuits = 1; NumofSuits < 5; NumofSuits++) { Decks.Add(i.ToString()); } } //Generate Face cards string[] FaceCards = { "J", "Q", "K", "A" }; for (int i = 0; i < (FaceCards.Length); i++) { for (int NumofSuits = 1; NumofSuits < 5; NumofSuits++) { Decks.Add(FaceCards[i]); } } } }
private void UpdateDecks(List <DeckInformation> listDeck) { Decks.Clear(); foreach (var deck in listDeck) { Decks.Add(deck); } }
public CNetDeckVO AddDeck(CNetDeckVO deck) { deck.Index = CNetDeckVO.NewIndex(); lock (Decks) { Decks.Add(deck); } return(deck); }
private void AddNewDeckAndCardCount(DeckDueNode deck) { Decks.Add(new DeckInformation(deck.NewCount, deck.LearnCount + deck.ReviewCount, deck.DeckId)); if (!Collection.Deck.HasParent(deck.DeckId)) { AddCardsCountToTotal(deck.NewCount, deck.LearnCount + deck.ReviewCount); } }
public SelectDeckPopupModel() { DeckDatabase = new DeckDB(); Decks = DeckDatabase.GetDecks(); for (var i = 0; i < 2; i++) { Decks.Add(Decks[i]); } for (var i = 0; i < 5; i++) { Decks.Add(Decks[i]); } DeckSettings = new Command(NavToDeckSettings); }
public async Task DeckInitializing() { var oldDeckList = await DeckDataSource.GetDecksAsync(); Decks.Clear(); foreach (var deck in oldDeckList) { foreach (var item in deck.items) { FindCardImage(item.card); } } oldDeckList.ForEach(p => Decks.Add(p)); }
public override async Task Update() { IsNoteFocused = true; IsLoadingDecks = true; Note = _repository.GetGameNote()?.ToString(); Deck deck; if (EndGame.Settings.Get(Strings.DeveloperMode).Bool) { deck = _repository.GetOpponentDeckLive(); } else { deck = _repository.GetOpponentDeck(); } Cards.Clear(); deck.Cards.ForEach(c => Cards.Add(c)); PlayerClass = deck.Class.ToString(); Decks.Clear(); if (Cards.Count <= 0) { EndGame.Logger.Debug("NoteVM: Opponent deck is empty, skipping"); IsLoadingDecks = false; return; } await Task.Run(() => { var alldecks = _repository .GetAllDecksWithTag(Strings.ArchetypeTag) .Select(d => new ArchetypeDeck(d)) .ToList(); var format = EndGame.Data.GetGameFormat(); var results = ViewModelHelper.MatchArchetypes(format, deck, alldecks); results.ForEach(r => Decks.Add(r)); results.ForEach(r => _log.Debug($"Archetype: ({r.Similarity}, {r.Containment}) " + $"{r.Deck.DisplayName} ({r.Deck.Class})")); var firstDeck = Decks.FirstOrDefault(); if (firstDeck != null && firstDeck.Similarity > MatchResult.THRESHOLD) { DeckSelected(firstDeck); } IsLoadingDecks = false; }); }
internal void UpdateObservableDeckList(List <SharedDeckInfo> deckList) { lock (this) { Decks.Clear(); foreach (var g in deckList.GroupBy(x => x.GameId)) { var dg = new SharedDeckGroup(g.Key, IsMe); Decks.Add(dg); foreach (var d in g) { dg.Decks.Add(new SharedDeckInfoWithOwner(d, IsMe)); } } } }
/// <summary> /// Re-Sort a non-subdeck /// </summary> /// <param name="deck"></param> public void ResortNonSubdeck(DeckInformation deck) { Decks.Remove(deck); for (int i = 0; i < decks.Count; i++) { if (decks[i].Name.Contains(Constant.SUBDECK_SEPERATE)) { continue; } if (Compare(deck, decks[i]) < 0) { Decks.Insert(i, deck); return; } } Decks.Add(deck); }
/* * @name CreateDecks() * @purpose Hard code deck IDs to a list then creates a deck and adds it to deck list with an id associated with it */ public void CreateDecks() { // adds individual deck IDs to list DeckIds.Add("D001"); DeckIds.Add("D002"); DeckIds.Add("D003"); DeckIds.Add("D004"); // for each deckID in list DeckIds foreach (string id in DeckIds) { // create a new deck Deck deck = new Deck(); // set new deck ID to id in list deck.DeckId = id; // add newly created deck to Deck list Decks.Add(deck); } }
public async Task FilterDecks(GameMode mode, GameFormat format) { Decks.Clear(); var allDecks = await GetAllDecks(); allDecks.Where(d => { var include = true; switch (mode) { case GameMode.ALL: include = include && true; break; case GameMode.ARENA: include = include && d.IsArena; break; default: include = include && !d.IsArena; break; } switch (format) { case GameFormat.ANY: include = include && true; break; case GameFormat.STANDARD: include = include && d.IsStandard; break; case GameFormat.WILD: include = include && !d.IsStandard; break; } return(include); }) .OrderBy(d => d.Name) .ToList() .ForEach(d => Decks.Add(d)); Decks.Insert(0, ALL_DECK); Decks.Insert(1, Deck.None); SelectedDeck = ALL_DECK; }
private void Update() { Note = _repository.GetGameNote()?.ToString(); var deck = _repository.GetOpponentDeck(); Cards.Clear(); deck.Cards.ForEach(c => Cards.Add(c)); PlayerClass = deck.Klass.ToString(); Decks.Clear(); var alldecks = _repository.GetAllArchetypeDecks(); var results = ViewModelHelper.MatchArchetypes(deck, alldecks); results.ForEach(r => Decks.Add(r)); results.ForEach(r => _log.Info($"{r.Deck.Name} [{r.Similarity}, {r.Containment}]")); var firstDeck = Decks.FirstOrDefault(); if (firstDeck != null && firstDeck.Similarity > MatchResult.THRESHOLD) { DeckSelected(firstDeck); } }
public HongYan() { Decks.Add(DeckType.Hand); Decks.Add(DeckType.JudgeResult); }
public WuShen() { Decks.Add(DeckType.Hand); Triggers.Add(Sha.PlayerShaTargetValidation, new WuShenShaTrigger()); }
public static void AddDeck() { Decks.Add(new CardDeck()); }
public void AddDeck(Deck deck) { db.SaveDeck(deck); Decks.Add(deck); }
private void AddNewDeckAndCardCount(long did, string name) { DeckCardCount count = AddNewDeckCardCount(did); Decks.Add(new DeckInformation(name, count.New, count.Due, did, Collection.Deck.IsDyn(did))); }
public void AddNewDeck(string name, string fraction, List <string> stringCards, List <ICardData> cards) => Decks.Add(new DeckData(name, fraction, stringCards, cards));
public JinJiu() { Decks.Add(DeckType.Hand); }