CustomSuitDataManager.cs 4.8 KB

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