|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|