CustomSuitDataManager.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using System.Collections.Generic;
  2. using System.Collections;
  3. using ET;
  4. namespace GFGGame
  5. {
  6. public class CustomSuitDataManager : Singleton<CustomSuitDataManager>
  7. {
  8. private static int _currentIndex;
  9. public static int currentIndex { get; set; }
  10. private static Dictionary<int, CustomSuitData> _dataDic = new Dictionary<int, CustomSuitData>();
  11. public static void SaveSuit(int index, DressUpData dressUpData)
  12. {
  13. CustomSuitData suitSavedData = null;
  14. if (_dataDic.ContainsKey(index))
  15. {
  16. suitSavedData = _dataDic[index];
  17. }
  18. else
  19. {
  20. suitSavedData = new CustomSuitData(index);
  21. _dataDic.Add(index, suitSavedData);
  22. }
  23. suitSavedData.dressUpData = dressUpData;
  24. }
  25. public static CustomSuitData GetSuitList(int index)
  26. {
  27. CustomSuitData suitSavedData = null;
  28. if (_dataDic.ContainsKey(index))
  29. {
  30. suitSavedData = _dataDic[index];
  31. }
  32. else
  33. {
  34. suitSavedData = CreateDefaultSuitData(index);
  35. _dataDic.Add(index, suitSavedData);
  36. }
  37. return suitSavedData;
  38. }
  39. public static CustomSuitData CreateDefaultSuitData(int index)
  40. {
  41. CustomSuitData suitSavedData = new CustomSuitData(index);
  42. suitSavedData.dressUpData = DressUpData.CreateDefault();
  43. return suitSavedData;
  44. }
  45. public static CustomSuitData GetCurrentSuitData()
  46. {
  47. return GetSuitList(currentIndex);
  48. }
  49. public static void SaveCurrentSuit(int index, bool showTips = true)
  50. {
  51. if (currentIndex != index)
  52. {
  53. currentIndex = index;
  54. }
  55. CustomSuitSProxy.UpdateCustomSuit(index, MyDressUpHelper.dressUpObj.DressUpDataClone(), showTips).Coroutine();
  56. }
  57. public static void InitServerData(List<CustomSuitProto> list)
  58. {
  59. _dataDic.Clear();
  60. if (list != null)
  61. {
  62. foreach (var suitProto in list)
  63. {
  64. CustomSuitData suitSavedData = new CustomSuitData(suitProto.Pos);
  65. _dataDic[suitProto.Pos] = suitSavedData;
  66. suitSavedData.dressUpData.bgId = suitProto.BgId;
  67. suitSavedData.dressUpData.suitId = suitProto.SuitId;
  68. suitSavedData.dressUpData.actionId = suitProto.ActionId;
  69. foreach (var equipId in suitProto.EquipIds)
  70. {
  71. suitSavedData.dressUpData.itemList.Add(equipId);
  72. }
  73. }
  74. }
  75. }
  76. public static string[] GetSuitPosItems()
  77. {
  78. MonthlyCardPrivilegeCfg privilegeCfg = MonthlyCardPrivilegeCfgArray.Instance.GetCfg(MonthCardPrivilegeType.Privilege3);
  79. string[] posItems = new string[GlobalCfgArray.globalCfg.freeSuitNum + privilegeCfg.value1Arr[0] + privilegeCfg.value2Arr[0]];
  80. for (int i = 0; i < posItems.Length; i++)
  81. {
  82. if (GetPosType(i) == 0)
  83. {
  84. posItems[i] = string.Format("我的套装{0}", NumberUtil.GetChiniseNumberText(i + 1));
  85. }
  86. else if (GetPosType(i) == MonthCardType.Gold)
  87. {
  88. if (RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.Gold))
  89. {
  90. posItems[i] = string.Format("我的套装{0}", NumberUtil.GetChiniseNumberText(i + 1));
  91. }
  92. else
  93. {
  94. posItems[i] = "金卡开启";
  95. }
  96. }
  97. else if (GetPosType(i) == MonthCardType.BlackGold)
  98. {
  99. if (RoleDataManager.CheckIsMonthCardOpenByType(MonthCardType.BlackGold))
  100. {
  101. posItems[i] = string.Format("我的套装{0}", NumberUtil.GetChiniseNumberText(i + 1));
  102. }
  103. else
  104. {
  105. posItems[i] = "黑金卡开启";
  106. }
  107. }
  108. }
  109. return posItems;
  110. }
  111. //获取指定位置月卡类型
  112. public static int GetPosType(int pos)
  113. {
  114. if (pos < GlobalCfgArray.globalCfg.freeSuitNum) return 0;
  115. MonthlyCardPrivilegeCfg privilegeCfg = MonthlyCardPrivilegeCfgArray.Instance.GetCfg(MonthCardPrivilegeType.Privilege3);
  116. if (pos < GlobalCfgArray.globalCfg.freeSuitNum + privilegeCfg.value1Arr[0]) return MonthCardType.Gold;
  117. if (pos >= GlobalCfgArray.globalCfg.freeSuitNum + privilegeCfg.value1Arr[0]) return MonthCardType.BlackGold;
  118. return 0;
  119. }
  120. }
  121. }