| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 | 
							- using System;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using ET;
 
- using UnityEngine;
 
- namespace GFGGame
 
- {
 
-     public class SuitFosterDataManager : SingletonBase<SuitFosterDataManager>
 
-     {
 
-         public string[] stepNames = { "浆洗", "晾晒", "熏香", "熨烫", "整饬" };
 
-         private Dictionary<int, SuitFosterData> _suitInfoBySuitIdDic = new Dictionary<int, SuitFosterData>();
 
-         public void Clear()
 
-         {
 
-             _suitInfoBySuitIdDic.Clear();
 
-         }
 
-         public void InitServerData(SuitFosterData suitFosterData)
 
-         {
 
-             if (!_suitInfoBySuitIdDic.ContainsKey(suitFosterData.suitId))
 
-             {
 
-                 _suitInfoBySuitIdDic.Add(suitFosterData.suitId, suitFosterData);
 
-             }
 
-             _suitInfoBySuitIdDic[suitFosterData.suitId] = suitFosterData;
 
-         }
 
-         public void SetMaintainSuit(int suitId, int maintainStep)
 
-         {
 
-             _suitInfoBySuitIdDic[suitId].maintainStep = maintainStep;
 
-             // _suitInfoBySuitIdDic[suitId].maintainBonusSteps = maintainBonusSteps;
 
-             EventAgent.DispatchEvent(ConstMessage.MAINTAIN_SUIT);
 
-         }
 
-         public void SetMaintainBonusSteps(int suitId, int maintainBonusSteps)
 
-         {
 
-             _suitInfoBySuitIdDic[suitId].maintainBonusSteps.Add(maintainBonusSteps);
 
-             EventAgent.DispatchEvent(ConstMessage.GET_MAINTAIN_SUIT_BONUS, maintainBonusSteps);
 
-         }
 
-         public void SetMakeNewSuit(int suitId, int makeNewSuit)
 
-         {
 
-             _suitInfoBySuitIdDic[suitId].makeNewState = makeNewSuit;
 
-             EventAgent.DispatchEvent(ConstMessage.MAKE_NEW_SUIT);
 
-         }
 
-         public SuitFosterData GetSuitFosterData(int suitId)
 
-         {
 
-             if (_suitInfoBySuitIdDic.ContainsKey(suitId))
 
-             {
 
-                 return _suitInfoBySuitIdDic[suitId];
 
-             }
 
-             else
 
-             {
 
-                 SuitFosterData suitFosterData = new SuitFosterData() { suitId = suitId, maintainStep = 0, maintainBonusSteps = new List<int>(), makeNewState = 0 };
 
-                 InitServerData(suitFosterData);
 
-                 return suitFosterData;
 
-             }
 
-         }
 
-         //加成属性服装占比
 
-         public List<KeyValuePair<int, string>> GetPropertyPercentData(int suitId, int index)
 
-         {
 
-             List<SuitFosterCfg> cfgs = SuitFosterCfgArray.Instance.GetCfgs(suitId);
 
-             Dictionary<int, int> _data = new Dictionary<int, int>();
 
-             for (int i = 0; i < cfgs.Count; i++)
 
-             {
 
-                 int[][] partsArr = cfgs[i].partsArr;
 
-                 for (int j = 0; j < partsArr.Length; j++)
 
-                 {
 
-                     ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(partsArr[j][0]);
 
-                     // int id = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType).i;
 
-                     if (index < cfgs.Count && index == i || index >= cfgs.Count)
 
-                     {
 
-                         int num = 0;
 
-                         if (!_data.ContainsKey(itemCfg.id))
 
-                         {
 
-                             _data.Add(itemCfg.id, num);
 
-                         }
 
-                         num = _data[itemCfg.id];
 
-                         num = num + partsArr[j][1];
 
-                         _data[itemCfg.id] = num;
 
-                     }
 
-                 }
 
-             }
 
-             ICollection keys = _data.Keys;
 
-             Dictionary<int, string> _dataPercent = new Dictionary<int, string>();
 
-             foreach (int key in keys)
 
-             {
 
-                 ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(key);
 
-                 float mainScore = ItemDataManager.GetItemScoreValue(key, itemCfg.mainScore);
 
-                 float addScore = _data[key];
 
-                 float percent = (addScore / mainScore * 100);
 
-                 _dataPercent.Add(key, percent.ToString("0.00"));
 
-             }
 
-             return new List<KeyValuePair<int, string>>(_dataPercent);
 
-         }
 
-         //获取当前阶段部件属性总值
 
-         public void GetPropertyData(int suitId, int index, out SortedList _propertyData, out SortedList _addPropertyData)
 
-         {
 
-             _propertyData = new SortedList();
 
-             _addPropertyData = new SortedList();
 
-             int[] parts = SuitCfgArray.Instance.GetCfg(suitId).partsArr;
 
-             for (int i = 0; i < parts.Length; i++)
 
-             {
 
-                 ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(parts[i]);
 
-                 for (int j = 0; j < ConstDressUpScoreType.scoreTypeList().Count; j++)
 
-                 {
 
-                     int score = j + 1;
 
-                     int count = ItemDataManager.GetScore(itemCfg.id, score);
 
-                     if (_propertyData.ContainsKey(score))
 
-                     {
 
-                         count = count + (int)_propertyData[score];
 
-                         _propertyData[score] = count;
 
-                     }
 
-                     else
 
-                     {
 
-                         _propertyData.Add(score, count);
 
-                     }
 
-                 }
 
-             }
 
-             List<SuitFosterCfg> cfgs = SuitFosterCfgArray.Instance.GetCfgs(suitId);
 
-             for (int i = 0; i < cfgs.Count; i++)
 
-             {
 
-                 int[][] partsArr = cfgs[i].partsArr;
 
-                 for (int j = 0; j < partsArr.Length; j++)
 
-                 {
 
-                     ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(partsArr[j][0]);
 
-                     for (int k = 0; k < ConstDressUpScoreType.scoreTypeList().Count; k++)
 
-                     {
 
-                         int score = k + 1;
 
-                         if (index < cfgs.Count && index == i || index >= cfgs.Count)
 
-                         {
 
-                             int addCount = 0;
 
-                             if (score == itemCfg.mainScore)
 
-                             {
 
-                                 addCount = partsArr[j][1];
 
-                             }
 
-                             if (_addPropertyData.ContainsKey(score))
 
-                             {
 
-                                 addCount = addCount + (int)_addPropertyData[score];
 
-                                 _addPropertyData[score] = addCount;
 
-                             }
 
-                             else
 
-                             {
 
-                                 _addPropertyData.Add(score, addCount);
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         //0:已完成,1:养护中,2未养护
 
-         public int GetFosterState(int suitId, int index)
 
-         {
 
-             SuitFosterData suitFosterData = this.GetSuitFosterData(suitId);
 
-             if (index < suitFosterData.maintainStep)
 
-             {
 
-                 return 0;
 
-             }
 
-             else if (index == suitFosterData.maintainStep)
 
-             {
 
-                 return 1;
 
-             }
 
-             return 2;
 
-         }
 
-         public List<SuitFosterCfg> GetSuitFosterRewards(int suitId)
 
-         {
 
-             List<SuitFosterCfg> cfgs = SuitFosterCfgArray.Instance.GetCfgs(suitId);
 
-             List<SuitFosterCfg> list = new List<SuitFosterCfg>(cfgs);
 
-             for (int i = list.Count - 1; i >= 0; i--)
 
-             {
 
-                 if (list[i].rewardsArr.Length == 0)
 
-                 {
 
-                     list.RemoveAt(i);
 
-                 }
 
-             }
 
-             list = SortRewardList(list, suitId);
 
-             return list;
 
-         }
 
-         private List<SuitFosterCfg> SortRewardList(List<SuitFosterCfg> list, int suitId)
 
-         {
 
-             SuitFosterData fosterData = GetSuitFosterData(suitId);
 
-             List<SuitFosterCfg> cfgs = SuitFosterCfgArray.Instance.GetCfgs(suitId);
 
-             list.Sort((SuitFosterCfg a, SuitFosterCfg b) =>
 
-             {
 
-                 int indexA = cfgs.IndexOf(a) + 1;
 
-                 int indexB = cfgs.IndexOf(b) + 1;
 
-                 if (fosterData.maintainBonusSteps.IndexOf(indexA) >= 0 && fosterData.maintainBonusSteps.IndexOf(indexB) < 0)
 
-                 {
 
-                     return 1;
 
-                 }
 
-                 else if (fosterData.maintainBonusSteps.IndexOf(indexA) < 0 && fosterData.maintainBonusSteps.IndexOf(indexB) >= 0)
 
-                 {
 
-                     return -1;
 
-                 }
 
-                 return 0;
 
-             });
 
-             return list;
 
-         }
 
-         //奖励领取状态
 
-         public bool GetRewardState(int suitId, int step)
 
-         {
 
-             SuitFosterData fosterData = GetSuitFosterData(suitId);
 
-             return fosterData.maintainBonusSteps.IndexOf(step) >= 0;
 
-         }
 
-         //当前奖励状态:state 0:未领1:不可领2:已完成
 
-         //当前奖励Index
 
-         public void GetFosterRewardState(int suitId, out int state, out int index)
 
-         {
 
-             index = 0;
 
-             SuitFosterData fosterData = GetSuitFosterData(suitId);
 
-             int finishStep = fosterData.maintainStep;
 
-             List<SuitFosterCfg> cfg = SuitFosterCfgArray.Instance.GetCfgs(suitId);
 
-             for (int i = 0; i < cfg.Count; i++)
 
-             {
 
-                 if (cfg[i].rewardsArr.Length == 0) continue;
 
-                 index = i;
 
-                 int _step = i + 1;
 
-                 if (_step <= finishStep && fosterData.maintainBonusSteps.IndexOf(_step) < 0)
 
-                 {
 
-                     state = 0;
 
-                     return;
 
-                 }
 
-                 if (_step > finishStep)
 
-                 {
 
-                     state = 1;
 
-                     return;
 
-                 }
 
-             }
 
-             state = 2;
 
-         }
 
-     }
 
- }
 
 
  |