| | |
| | | {
|
| | | private static Dictionary<StoreItem, StoreConfig> s_StoreItemDict = new Dictionary<StoreItem, StoreConfig>();
|
| | | private static Dictionary<int, List<StoreConfig>> storeConfigs = new Dictionary<int, List<StoreConfig>>();
|
| | |
|
| | | static readonly int[] shop1Types = new int[] { 2, 3 };
|
| | | static readonly int[] shop2Types = new int[] { 4 };
|
| | | public void OnConfigParseCompleted()
|
| | | {
|
| | | if (ShopType == 0) return;
|
| | |
|
| | | var _storeItem = new StoreItem()
|
| | | {
|
| | | shopType = this.ShopType,
|
| | | item = this.ItemID,
|
| | | type = this.MoneyType,
|
| | | };
|
| | |
| | | list.Add(this);
|
| | | }
|
| | |
|
| | | public static StoreConfig GetStoreCfg(int _item, int _moneyType)
|
| | | public static StoreConfig GetStoreCfg(int _item, int _moneyType, int shopType = 0)
|
| | | {
|
| | | var _storeItem = new StoreItem()
|
| | | if (shopType != 0)
|
| | | {
|
| | | item = _item,
|
| | | type = _moneyType,
|
| | | };
|
| | | if (s_StoreItemDict.ContainsKey(_storeItem))
|
| | | var storeItem = new StoreItem()
|
| | | {
|
| | | item = _item,
|
| | | type = _moneyType,
|
| | | shopType = shopType,
|
| | | };
|
| | | if (s_StoreItemDict.ContainsKey(storeItem))
|
| | | {
|
| | | return s_StoreItemDict[storeItem];
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | return s_StoreItemDict[_storeItem];
|
| | | switch (_moneyType)
|
| | | {
|
| | | case 1:
|
| | | {
|
| | | for (int i = 0; i < shop1Types.Length; i++)
|
| | | {
|
| | | var storeItem = new StoreItem()
|
| | | {
|
| | | item = _item,
|
| | | type = _moneyType,
|
| | | shopType = shop1Types[i],
|
| | | };
|
| | | if (s_StoreItemDict.ContainsKey(storeItem))
|
| | | {
|
| | | return s_StoreItemDict[storeItem];
|
| | | }
|
| | | }
|
| | | }
|
| | | break;
|
| | | case 2:
|
| | | {
|
| | | for (int i = 0; i < shop2Types.Length; i++)
|
| | | {
|
| | | var storeItem = new StoreItem()
|
| | | {
|
| | | item = _item,
|
| | | type = _moneyType,
|
| | | shopType = shop2Types[i],
|
| | | };
|
| | | if (s_StoreItemDict.ContainsKey(storeItem))
|
| | | {
|
| | | return s_StoreItemDict[storeItem];
|
| | | }
|
| | | }
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | | return null;
|
| | | }
|
| | |
| | |
|
| | | public struct StoreItem
|
| | | {
|
| | | public int shopType;
|
| | | public int item;
|
| | | public int type;
|
| | |
|
| | | public override bool Equals(object x)
|
| | | {
|
| | | StoreItem _storeItem = (StoreItem)x;
|
| | | return this.item == _storeItem.item && this.type == _storeItem.type;
|
| | | return this.item == _storeItem.item && this.type == _storeItem.type && this.shopType == _storeItem.shopType;
|
| | | }
|
| | |
|
| | | public override int GetHashCode()
|