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); }
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); }