Esempio n. 1
0
        public bool Load()
        {
            bool bResult = false;

            string FilePath = AssetManager.Get().CreateFilePath(DBPath);

            if (File.Exists(FilePath))
            {
                using (StreamReader file = new StreamReader(FilePath))
                {
                    string fileContent = file.ReadToEnd();
                    bResult = LoadFromJson(fileContent);
                    file.Close();
                }
            }

            TriadCardDB cardDB = TriadCardDB.Get();

            starterCards[0] = cardDB.Find("Dodo");
            starterCards[1] = cardDB.Find("Sabotender");
            starterCards[2] = cardDB.Find("Bomb");
            starterCards[3] = cardDB.Find("Mandragora");
            starterCards[4] = cardDB.Find("Coeurl");

            foreach (TriadCard starterCard in starterCards)
            {
                if (!ownedCards.Contains(starterCard))
                {
                    ownedCards.Add(starterCard);
                }
            }

            Logger.WriteLine("Loaded player cards: " + ownedCards.Count + ", npcs: " + completedNpcs.Count + ", hashes: " + customHashes.Count);
            return(bResult);
        }
Esempio n. 2
0
        private bool UpdateCards(Dictionary <int, TriadCard> cardMap)
        {
            TriadCardDB cardDB     = TriadCardDB.Get();
            int         newCardId  = cardDB.cards[cardDB.cards.Count - 1].Id + 1;
            bool        hasChanges = false;

            foreach (KeyValuePair <int, TriadCard> kvp in cardMap)
            {
                if (kvp.Key > 285)
                {
                    int a = 1;
                    a++;
                }

                if (kvp.Key >= newCardId)
                {
                    kvp.Value.Id = kvp.Key;
                    newCardId    = kvp.Key + 1;

                    while (cardDB.cards.Count < newCardId)
                    {
                        cardDB.cards.Add(null);
                    }
                    cardDB.cards[kvp.Value.Id] = kvp.Value;

                    Logger.WriteLine("Newly added card: " + kvp.Value.ToShortString());
                    hasChanges = true;
                    continue;
                }

                TriadCard cardMatch = cardDB.Find(kvp.Value.Name);
                if (cardMatch == null)
                {
                    foreach (TriadCard testCard in cardDB.cards)
                    {
                        if (testCard != null &&
                            testCard.Rarity == kvp.Value.Rarity &&
                            testCard.Type == kvp.Value.Type &&
                            testCard.Sides[0] == kvp.Value.Sides[0] &&
                            testCard.Sides[1] == kvp.Value.Sides[1] &&
                            testCard.Sides[2] == kvp.Value.Sides[2] &&
                            testCard.Sides[3] == kvp.Value.Sides[3])
                        {
                            Logger.WriteLine("Card name remap: " + testCard.ToShortString() + " => " + kvp.Value.Name);
                            cardMatch  = testCard;
                            hasChanges = true;
                            break;
                        }
                    }
                }

                if (cardMatch != null)
                {
                    kvp.Value.Id = cardMatch.Id;
                    cardDB.cards[kvp.Value.Id] = kvp.Value;
                }
                else
                {
                    TriadCard otherCard = cardDB.cards[kvp.Key];
                    Logger.WriteLine("Missing card match: " + kvp.Value.ToString() + "! Will replace existing Id: " + (otherCard != null ? otherCard.ToString() : "??"));

                    kvp.Value.Id = kvp.Key;
                    cardDB.cards[kvp.Value.Id] = kvp.Value;
                    hasChanges = true;
                }
            }

            if (hasChanges)
            {
                cardDB.Save();
            }

            return(hasChanges);
        }