123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- using System;
- using System.Collections.Generic;
- using ET;
- namespace GFGGame
- {
- public class DressUpMenuSuitDataManager
- {
- private static List<int> _suitIDList = new List<int>();
- private static List<int> _actionIDList;//拥有的特殊动作列表列表
- private static List<int> _travelSuitIDList;//拥有的游历套装列表
- public static int chooseClothing = 0;//服裝合成选择合成第几件衣服
- public static List<int> TravelSuitIDList
- {
- get
- {
- if(_travelSuitIDList == null)
- {
- InitTravelSuitIDList();
- }
- return _travelSuitIDList;
- }
- }
- //套装当前的进度
- private static Dictionary<int, int> _progressBySuitIdDic = new Dictionary<int, int>();
- private static Dictionary<int, int> _suitGuideBoxBonusStatus = new Dictionary<int, int>();
- private static Dictionary<int, int> _suitSyntheticBoxBonusStatus = new Dictionary<int, int>();
- public static Dictionary<int, int> _suitSyntheticRewardStatus = new Dictionary<int, int>();
- public static void InitData()
- {
- _suitIDList.Clear();
- _travelSuitIDList = null;
- _progressBySuitIdDic.Clear();
- _actionIDList = null;
- }
- public static void SetSuitInfo(List<SuitInfoProto> suitInfoList)
- {
- if (suitInfoList != null)
- {
- _suitGuideBoxBonusStatus.Clear();
- _suitSyntheticBoxBonusStatus.Clear();
- _suitSyntheticRewardStatus.Clear();
- foreach (SuitInfoProto suitInfo in suitInfoList)
- {
- SuitFosterData suitFosterData = new SuitFosterData()
- {
- suitId = suitInfo.SuitId,
- maintainStep = suitInfo.MaintainStep,
- maintainBonusSteps = suitInfo.MaintainBonusSteps,
- makeNewState = suitInfo.MakeNewState
- };
- SuitFosterDataManager.Instance.InitServerData(suitFosterData);
- //图鉴
- _suitGuideBoxBonusStatus.Add(suitInfo.SuitId, suitInfo.GuideBoxBonusState);
- //合成
- _suitSyntheticBoxBonusStatus.Add(suitInfo.SuitId, suitInfo.SyntheticBoxBonusState);
- //套装合成奖励2
- _suitSyntheticRewardStatus.Add(suitInfo.SuitId,suitInfo.BringTogetherRewardStatus);
- _progressBySuitIdDic[suitInfo.SuitId] = suitInfo.PartsCount;
- if (suitInfo.CollectedAll)
- {
- Add(suitInfo.SuitId);
- }
- }
- EventAgent.DispatchEvent(ConstMessage.GET_SUIT_INFOS);
- }
- }
- public static void Add(int value)
- {
- if (!_suitIDList.Contains(value))
- {
- _suitIDList.Add(value);
- TryAddTravelSuitID(value);
- TryAddActionID(value);
- }
- }
- public static void Remove(int value)
- {
- if (_suitIDList.Contains(value))
- {
- _suitIDList.Remove(value);
- TravelSuitCfg travelSuitCfg = TravelSuitCfgArray.Instance.GetCfgBysuitId(value);
- if (travelSuitCfg != null
- && _travelSuitIDList != null
- && _travelSuitIDList.Contains(travelSuitCfg.id))
- {
- _travelSuitIDList.Remove(travelSuitCfg.id);
- }
- if (_actionIDList != null
- && SuitCfgArray.Instance.CheckSuitHasAction(value)
- && _actionIDList.Contains(value))
- {
- _actionIDList.Remove(travelSuitCfg.id);
- }
- }
- }
- public static void GetTotalProgress(out int count, out int totalCount)
- {
- totalCount = GlobalCfgArray.globalCfg.suitPartTotalCount;
- count = 0;
- foreach (KeyValuePair<int, int> item in _progressBySuitIdDic)
- {
- if (item.Key == 210000)
- {
- continue;
- }
- count += item.Value;
- }
- }
- public static void GetSuitProgressBySuitId(int suitId, out int count, out int totalCount)
- {
- if (suitId > 0)
- {
- if (_progressBySuitIdDic.ContainsKey(suitId))
- {
- count = _progressBySuitIdDic[suitId];
- }
- else
- {
- count = 0;
- }
- totalCount = SuitCfgArray.Instance.GetTotalCountOfOneSuit(suitId);
- }
- else
- {
- count = 0;
- totalCount = 1;
- }
- }
- public static float GetSuitProgressValueBySuitId(int suitId)
- {
- int count = 0;
- int totalCount = 1;
- GetSuitProgressBySuitId(suitId, out count, out totalCount);
- return (float)count / totalCount;
- }
- public static bool CheckHaveSuit(int suitId)
- {
- return _suitIDList.Contains(suitId);
- }
- public static void CheckItemInSuit(int itemId)
- {
- int suitId = SuitCfgArray.Instance.GetSuitIdOfItem(itemId);
- if (suitId > 0)
- {
- SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
- int[] itemIds = SuitCfgArray.Instance.GetSuitItems(suitId);
- int totalCount = itemIds.Length;
- bool hasAll = true;
- int count = 0;
- for (int i = 0; i < totalCount; i++)
- {
- int tempItemId = itemIds[i];
- bool hasItem = DressUpMenuItemDataManager.CheckHasItem(tempItemId);
- if (!hasItem)
- {
- hasAll = false;
- }
- else
- {
- count++;
- }
- }
- _progressBySuitIdDic[suitId] = count;
- if (hasAll)
- {
- Add(suitId);
- }
- GetSuitItemController.AddItemId(itemId);
- }
- }
- public static List<int> GetSuitIDList()
- {
- return (List<int>)_suitIDList.GetRange(0, _suitIDList.Count);
- }
- public static List<int> GetActionIDList()
- {
- if(_actionIDList == null)
- {
- InitActionIDList();
- }
- return _actionIDList;
- }
- public static int GetSuitGuideBonusStatus(int suitId)
- {
- int status = ConstBonusStatus.CAN_NOT_GET;
- if (_suitGuideBoxBonusStatus.ContainsKey(suitId))
- {
- status = _suitGuideBoxBonusStatus[suitId];
- }
- if (status == ConstBonusStatus.CAN_NOT_GET)//游戏过程中收集完成套装,不会有奖励可领状态不会有推送,需要前端判断
- {
- if (CheckHaveSuit(suitId))
- {
- status = ConstBonusStatus.CAN_GET;
- }
- }
- return status;
- }
- public static void SetSuitGuideBoxBonusCompleted(int suitId)
- {
- _suitGuideBoxBonusStatus[suitId] = ConstBonusStatus.GOT;
- EventAgent.DispatchEvent(ConstMessage.SUIT_BOX_STATUS_CHANGED, suitId);
- }
- public static int GetSuitSyntheticBonusStatus(int suitId)
- {
- int status = ConstBonusStatus.CAN_NOT_GET;
- if (_suitSyntheticBoxBonusStatus.ContainsKey(suitId))
- {
- status = _suitSyntheticBoxBonusStatus[suitId];
- }
- if (status == ConstBonusStatus.CAN_NOT_GET)
- {
- if (CheckHaveSuit(suitId))
- {
- status = ConstBonusStatus.CAN_GET;
- }
- }
- return status;
- }
- public static void SetSuitSyntheticBoxBonusCompleted(int suitId)
- {
- _suitSyntheticBoxBonusStatus[suitId] = ConstBonusStatus.GOT;
- EventAgent.DispatchEvent(ConstMessage.SUIT_BOX_STATUS_CHANGED, suitId);
- }
- //套装集齐奖励2
- public static void SetSuitSyntheticRewardStatus(int suitId)
- {
- if(_suitSyntheticRewardStatus.ContainsKey(suitId))
- {
- _suitSyntheticRewardStatus[suitId] = ConstBonusStatus.GOT;
- }
- }
- public static int GetSuitSyntheticRewardStatus(int suitId)
- {
- int status = ConstBonusStatus.CAN_NOT_GET;
- if (_suitSyntheticRewardStatus.ContainsKey(suitId))
- {
- status = _suitSyntheticRewardStatus[suitId];
- }
- if (status == ConstBonusStatus.CAN_NOT_GET)
- {
- if (CheckHaveSuit(suitId))
- {
- status = ConstBonusStatus.CAN_GET;
- }
- }
- return status;
- }
- //检查套装是否有动作资源
- public static bool CheckSuitHasActionRes(int suitId)
- {
- var suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
- return suitCfg != null && ResPathUtil.CheckDressUpAnimationResExist(suitCfg.aniRes);
- }
- private static void InitActionIDList()
- {
- _actionIDList = new List<int>();
- foreach (var t in _suitIDList)
- {
- TryAddActionID(t);
- }
- }
- private static void TryAddActionID(int value)
- {
- if(_actionIDList == null)
- {
- return;
- }
- if (SuitCfgArray.Instance.CheckSuitHasAction(value))
- {
- _actionIDList.Add(value);
- }
- }
- private static void InitTravelSuitIDList()
- {
- _travelSuitIDList = new List<int>();
- foreach (var t in _suitIDList)
- {
- TryAddTravelSuitID(t);
- }
- }
- private static void TryAddTravelSuitID(int value)
- {
- if(_travelSuitIDList == null)
- {
- return;
- }
- TravelSuitCfg travelSuitCfg = TravelSuitCfgArray.Instance.GetCfgBysuitId(value);
- if (travelSuitCfg != null)
- {
- _travelSuitIDList.Add(travelSuitCfg.id);
- }
- }
- }
- }
|