|
@@ -1,3 +1,4 @@
|
|
|
+using System;
|
|
|
using System.Collections;
|
|
|
using System.Collections.Generic;
|
|
|
namespace GFGGame
|
|
@@ -27,7 +28,7 @@ namespace GFGGame
|
|
|
_suitSyntheticBoxBonusStatus.Clear();
|
|
|
if (systemSuitList != null)
|
|
|
{
|
|
|
- foreach(SystemSuit systemSuit in systemSuitList)
|
|
|
+ foreach (SystemSuit systemSuit in systemSuitList)
|
|
|
{
|
|
|
_suitGuideBoxBonusStatus.Add(systemSuit.suitId, systemSuit.boxStatus);
|
|
|
_suitSyntheticBoxBonusStatus.Add(systemSuit.suitId, systemSuit.boxStatusSyn);
|
|
@@ -37,7 +38,7 @@ namespace GFGGame
|
|
|
|
|
|
public static void Add(int value)
|
|
|
{
|
|
|
- if(!_suitIDList.Contains(value))
|
|
|
+ if (!_suitIDList.Contains(value))
|
|
|
{
|
|
|
_suitIDList.Add(value);
|
|
|
}
|
|
@@ -45,7 +46,7 @@ namespace GFGGame
|
|
|
|
|
|
public static void Remove(int value)
|
|
|
{
|
|
|
- if(_suitIDList.Contains(value))
|
|
|
+ if (_suitIDList.Contains(value))
|
|
|
{
|
|
|
_suitIDList.Remove(value);
|
|
|
}
|
|
@@ -55,7 +56,7 @@ namespace GFGGame
|
|
|
{
|
|
|
totalCount = SuitCfgManager.Instance.totalItemCount;
|
|
|
count = 0;
|
|
|
- foreach(KeyValuePair<int , int> item in _progressBySuitIdDic)
|
|
|
+ foreach (KeyValuePair<int, int> item in _progressBySuitIdDic)
|
|
|
{
|
|
|
count += item.Value;
|
|
|
}
|
|
@@ -64,9 +65,9 @@ namespace GFGGame
|
|
|
public static void GetSuitProgressByItemId(int itemID, out int suitId, out int count)
|
|
|
{
|
|
|
suitId = SuitCfgManager.Instance.GetItemSuitId(itemID);
|
|
|
- if(suitId > 0)
|
|
|
+ if (suitId > 0)
|
|
|
{
|
|
|
- if(_progressByItemIdDic.ContainsKey(itemID))
|
|
|
+ if (_progressByItemIdDic.ContainsKey(itemID))
|
|
|
{
|
|
|
count = _progressByItemIdDic[itemID];
|
|
|
}
|
|
@@ -83,9 +84,9 @@ namespace GFGGame
|
|
|
|
|
|
public static void GetSuitProgressBySuitId(int suitId, out int count, out int totalCount)
|
|
|
{
|
|
|
- if(suitId > 0)
|
|
|
+ if (suitId > 0)
|
|
|
{
|
|
|
- if(_progressBySuitIdDic.ContainsKey(suitId))
|
|
|
+ if (_progressBySuitIdDic.ContainsKey(suitId))
|
|
|
{
|
|
|
count = _progressBySuitIdDic[suitId];
|
|
|
}
|
|
@@ -107,7 +108,7 @@ namespace GFGGame
|
|
|
int count = 0;
|
|
|
int totalCount = 1;
|
|
|
GetSuitProgressBySuitId(suitId, out count, out totalCount);
|
|
|
- return (float)count/totalCount;
|
|
|
+ return (float)count / totalCount;
|
|
|
}
|
|
|
|
|
|
public static bool CheckHaveSuit(int suitId)
|
|
@@ -118,19 +119,19 @@ namespace GFGGame
|
|
|
public static void CheckItemInSuit(int itemId)
|
|
|
{
|
|
|
int suitId = SuitCfgManager.Instance.GetItemSuitId(itemId);
|
|
|
- if(suitId > 0)
|
|
|
+ if (suitId > 0)
|
|
|
{
|
|
|
SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
|
|
|
int[] itemIds = SuitCfgManager.Instance.GetSuitItems(suitId);
|
|
|
int totalCount = itemIds.Length;
|
|
|
bool hasAll = true;
|
|
|
int count = 0;
|
|
|
-
|
|
|
- for(int i = 0; i < totalCount; i++)
|
|
|
+
|
|
|
+ for (int i = 0; i < totalCount; i++)
|
|
|
{
|
|
|
int tempItemId = itemIds[i];
|
|
|
bool hasItem = DressUpMenuItemDataManager.CheckHasItem(tempItemId);
|
|
|
- if(!hasItem)
|
|
|
+ if (!hasItem)
|
|
|
{
|
|
|
hasAll = false;
|
|
|
}
|
|
@@ -141,27 +142,59 @@ namespace GFGGame
|
|
|
}
|
|
|
_progressBySuitIdDic[suitId] = count;
|
|
|
_progressByItemIdDic[itemId] = count;
|
|
|
- if(hasAll)
|
|
|
+ if (hasAll)
|
|
|
{
|
|
|
Add(suitId);
|
|
|
}
|
|
|
GetSuitItemController.AddItemId(itemId);
|
|
|
}
|
|
|
}
|
|
|
+ //检测当前穿戴是否是一件完整套装,且只穿了一件套装,返回套装id
|
|
|
+ public static int CheckCurDressIsSuit()
|
|
|
+ {
|
|
|
+ if (EquipDataCache.cacher.suitId > 0) return EquipDataCache.cacher.suitId;
|
|
|
+
|
|
|
+ int[] equipDatas = EquipDataCache.cacher.equipDatas;
|
|
|
+ int dressSuitId = 0;
|
|
|
+ List<int> _equipDatas = new List<int>();
|
|
|
+ for (int i = 0; i < equipDatas.Length; i++)
|
|
|
+ {
|
|
|
+ if (DressUpMenuItemDataManager.CheckIsSceneType(equipDatas[i])) continue;
|
|
|
+ if (equipDatas[i] != ConstItemID.DEFULT_FA_XING && equipDatas[i] != ConstItemID.DEFULT_LIAN_YI_QUN && equipDatas[i] != ConstItemID.DEFULT_NEI_DA && equipDatas[i] != ConstItemID.DEFULT_XIA_ZHUANG)
|
|
|
+ {
|
|
|
+ int suitId = SuitCfgManager.Instance.GetItemSuitId(equipDatas[i]);
|
|
|
+ if (suitId <= 0) return 0;//有任何不属于套装的部件且不是原始服装,则当前穿戴不属于套装
|
|
|
+
|
|
|
+ if (dressSuitId != 0 && dressSuitId != suitId) return 0;//当前穿戴不同套装的部件,则当前穿戴不属于套装
|
|
|
+ dressSuitId = suitId;
|
|
|
+
|
|
|
+ _equipDatas.Add(equipDatas[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (dressSuitId == 0) return dressSuitId;
|
|
|
+ int[] itemIds = SuitCfgManager.Instance.GetSuitItems(dressSuitId);
|
|
|
+ for (int i = 0; i < itemIds.Length; i++)
|
|
|
+ {
|
|
|
+ if (DressUpMenuItemDataManager.CheckIsSceneType(itemIds[i])) continue;
|
|
|
+ if (_equipDatas.IndexOf(itemIds[i]) < 0) return 0;//套装部件穿戴不完整
|
|
|
+ }
|
|
|
+
|
|
|
+ return dressSuitId;
|
|
|
+ }
|
|
|
|
|
|
public static List<int> GetSuitIDList()
|
|
|
{
|
|
|
return (List<int>)_suitIDList.GetRange(0, _suitIDList.Count);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static int GetSuitGuideBonusStatus(int suitId)
|
|
|
{
|
|
|
int status = ConstBonusStatus.CAN_NOT_GET;
|
|
|
- if(_suitGuideBoxBonusStatus.ContainsKey(suitId))
|
|
|
+ if (_suitGuideBoxBonusStatus.ContainsKey(suitId))
|
|
|
{
|
|
|
status = _suitGuideBoxBonusStatus[suitId];
|
|
|
}
|
|
|
- if(status == ConstBonusStatus.CAN_NOT_GET)
|
|
|
+ if (status == ConstBonusStatus.CAN_NOT_GET)
|
|
|
{
|
|
|
if (CheckHaveSuit(suitId))
|
|
|
{
|
|
@@ -177,7 +210,7 @@ namespace GFGGame
|
|
|
_suitGuideBoxBonusStatus[suitId] = status;
|
|
|
SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
|
|
|
List<ItemData> itemDatas = ItemUtil.CreateItemDataList(suitCfg.boxBonusArr);
|
|
|
- foreach(ItemData itemData in itemDatas)
|
|
|
+ foreach (ItemData itemData in itemDatas)
|
|
|
{
|
|
|
ItemDataManager.Add(itemData.id, itemData.num);
|
|
|
}
|