using System.Collections.Generic; using LitJson; namespace Wizard; public class SpotCardData { private Dictionary _spotCardDict = new Dictionary(); public void SetSpotCardData(JsonData jsonData) { if (jsonData == null || jsonData.Count == 0) { return; } _spotCardDict = new Dictionary(jsonData.Count); foreach (string key in jsonData.Keys) { if (int.TryParse(key, out var result)) { _spotCardDict[result] = jsonData[key].ToInt(); } } GameMgr.GetIns().GetDataMgr().SetDirtyPossessionCardDict(); } public bool ExistsSpotCard() { return _spotCardDict.Count > 0; } public bool ExistsSpotCard(int cardId) { return _spotCardDict.ContainsKey(cardId); } public int GetSpotCardNum(int cardId) { int value = 0; _spotCardDict.TryGetValue(cardId, out value); return value; } public void SetSpotCardNum(int cardId, int num) { _spotCardDict[cardId] = num; GameMgr.GetIns().GetDataMgr().SetDirtyPossessionCardDict(); } public Dictionary CreateDictionaryIncludingSpotCard(IDictionary srcDict) { Dictionary dictionary = new Dictionary(srcDict); foreach (KeyValuePair item in _spotCardDict) { int value = 0; if (dictionary.TryGetValue(item.Key, out value)) { dictionary[item.Key] = value + item.Value; } else { dictionary.Add(item.Key, item.Value); } } return dictionary; } }