| 
					
				 | 
			
			
				@@ -1,48 +1,112 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Collections; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using ET; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using UnityEngine; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public class SuitFosterDataManager : SingletonBase<SuitFosterDataManager> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private Dictionary<int, SuitInfoProto> _suitInfoBySuitIdDic = new Dictionary<int, SuitInfoProto>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private Dictionary<int, SuitFosterData> _suitInfoBySuitIdDic = new Dictionary<int, SuitFosterData>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void InitData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _suitInfoBySuitIdDic.Clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public void InitServerData(List<SuitInfoProto> suitInfoList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void InitServerData(SuitFosterData suitFosterData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (suitInfoList != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                foreach (SuitInfoProto suitInfo in suitInfoList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    _suitInfoBySuitIdDic.Add(suitInfo.SuitId, suitInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            EventAgent.DispatchEvent(ConstMessage.GET_SUIT_INFOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _suitInfoBySuitIdDic.Add(suitFosterData.suitId, suitFosterData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public void SetMaintainSuit(int suitId, M2C_MaintainSuit maintainSuit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void SetMaintainSuit(int suitId, int maintainStep) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _suitInfoBySuitIdDic[suitId].MaintainStep = maintainSuit.MaintainStep; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _suitInfoBySuitIdDic[suitId].MaintainBonusSteps = maintainSuit.MaintainBonusSteps; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _suitInfoBySuitIdDic[suitId].maintainStep = maintainStep; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // _suitInfoBySuitIdDic[suitId].maintainBonusSteps = maintainBonusSteps; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EventAgent.DispatchEvent(ConstMessage.MAINTAIN_SUIT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public void SetMaintainBonusSteps(int suitId, M2C_GetMaintainSuitBonus getMaintainSuitBonus) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void SetMaintainBonusSteps(int suitId, int maintainBonusSteps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _suitInfoBySuitIdDic[suitId].MaintainBonusSteps = getMaintainSuitBonus.MaintainBonusSteps; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _suitInfoBySuitIdDic[suitId].maintainBonusSteps.Add(maintainBonusSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EventAgent.DispatchEvent(ConstMessage.GET_MAINTAIN_SUIT_BONUS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public void SetMakeNewSuit(int suitId, M2C_MakeNewSuit makeNewSuit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void SetMakeNewSuit(int suitId, int makeNewSuit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _suitInfoBySuitIdDic[suitId].MakeNewState = makeNewSuit.MakeNewState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _suitInfoBySuitIdDic[suitId].makeNewState = makeNewSuit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EventAgent.DispatchEvent(ConstMessage.MAKE_NEW_SUIT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public SuitFosterData GetSuitFosterData(int suitId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return _suitInfoBySuitIdDic[suitId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //加成属性服装占比 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public List<KeyValuePair<string, int>> GetPropertyPercentData(int suitId, int index) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SuitFosterCfg cfg = SuitFosterCfgArray.Instance.GetCfgs(suitId)[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dictionary<string, int> _data = new Dictionary<string, int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int count = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < cfg.partsArr.Length; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.partsArr[i][0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                string type = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType).name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int num = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (_data.ContainsKey(type)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    num = _data[type]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                num = num + cfg.partsArr[i][1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _data.Add(type, num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                count += cfg.partsArr[i][1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int percentCount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int dicIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ICollection keys = _data.Keys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dictionary<string, int> _dataPercent = new Dictionary<string, int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach (string key in keys) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (dicIndex == _data.Count - 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    _dataPercent.Add(key, 100 - percentCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    _dataPercent.Add(key, Mathf.FloorToInt(_data[key] * 100 / count)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                percentCount += _dataPercent[key]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dicIndex++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return new List<KeyValuePair<string, int>>(_dataPercent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public SortedList GetPropertyData(int suitId, int index) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SortedList propertyData = new SortedList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int[][] partsArr = SuitFosterCfgArray.Instance.GetCfgs(suitId)[index].partsArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < partsArr.Length; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(partsArr[i][0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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.Add(score, count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return propertyData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |