using System.Collections; using System.Collections.Generic; using ET; using UnityEngine; namespace GFGGame { public class SuitFosterDataManager : SingletonBase { private Dictionary _suitInfoBySuitIdDic = new Dictionary(); public void InitData() { _suitInfoBySuitIdDic.Clear(); } public void InitServerData(SuitFosterData suitFosterData) { _suitInfoBySuitIdDic.Add(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); } public void SetMakeNewSuit(int suitId, int makeNewSuit) { _suitInfoBySuitIdDic[suitId].makeNewState = makeNewSuit; EventAgent.DispatchEvent(ConstMessage.MAKE_NEW_SUIT); } public SuitFosterData GetSuitFosterData(int suitId) { return _suitInfoBySuitIdDic[suitId]; } //加成属性服装占比 public List> GetPropertyPercentData(int suitId, int index) { SuitFosterCfg cfg = SuitFosterCfgArray.Instance.GetCfgs(suitId)[index]; Dictionary _data = new Dictionary(); 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 _dataPercent = new Dictionary(); 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>(_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; } } }