EquipedData.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class EquipedData
  5. {
  6. public enum StyleType
  7. {
  8. Recommand = 0,
  9. Customize = 1
  10. }
  11. private static System.Array styleArr = System.Enum.GetValues(typeof(StyleType));
  12. public static StyleType GetSytleTypeByCode(int code)
  13. {
  14. return (StyleType)styleArr.GetValue (code);
  15. }
  16. public const int MAX_EQUIPED_COUNT = 6;
  17. public int craftId;
  18. private List<Equipment> rcmdlist;
  19. private List<Equipment> custList;
  20. private bool customized;
  21. public StyleType styleType;
  22. public EquipedData(int craftId)
  23. {
  24. this.craftId = craftId;
  25. rcmdlist = new List<Equipment> ();
  26. custList = new List<Equipment> ();
  27. UpdateRecommandList ();
  28. }
  29. public List<Equipment> GetList(StyleType styleType)
  30. {
  31. return styleType == StyleType.Recommand ? rcmdlist : custList;
  32. }
  33. public List<Equipment> GetCurrentList()
  34. {
  35. return GetList (styleType);
  36. }
  37. public void UpdateRecommandList()
  38. {
  39. rcmdlist.Clear ();
  40. Dictionary<int, Equipment> rcmdDict = new Dictionary<int, Equipment> ();
  41. CraftConfigData craftData = CraftManager.GetInstance ().GetData (craftId);
  42. int hpCount = 0;
  43. int dmgCount = 0;
  44. int movCount = 0;
  45. for(int i=0; i<MAX_EQUIPED_COUNT; i++)
  46. {
  47. if (i >= craftData.equipRcmdArr.Length)
  48. continue;
  49. int priorityCode = craftData.equipRcmdArr [i];
  50. Equipment.Priority priority = Equipment.GetPriorityByCode (priorityCode);
  51. Equipment equipment = null;
  52. if (priority == Equipment.Priority.Hp) {
  53. equipment = EquipManager.GetInstance ().GetHpPriority (rcmdDict);
  54. if (equipment == null) {
  55. equipment = EquipManager.GetInstance ().GetDamagePriority (rcmdDict);
  56. }
  57. } else if (priority == Equipment.Priority.Damage) {
  58. equipment = EquipManager.GetInstance ().GetDamagePriority (rcmdDict);
  59. if (equipment == null) {
  60. equipment = EquipManager.GetInstance ().GetHpPriority (rcmdDict);
  61. }
  62. } else if (priority == Equipment.Priority.Move) {
  63. equipment = EquipManager.GetInstance ().GetMovePriority (rcmdDict);
  64. }
  65. if (equipment != null) {
  66. rcmdDict.Add (equipment.GetData ().id, equipment);
  67. rcmdlist.Add (equipment);
  68. }
  69. }
  70. if (!customized) {
  71. custList.Clear ();
  72. for(int i=0; i<rcmdlist.Count; i++)
  73. {
  74. custList.Add (rcmdlist[i]);
  75. }
  76. }
  77. }
  78. public bool ReplaceCustomize(Equipment origin, Equipment replace)
  79. {
  80. bool found = false;
  81. List<Equipment> list = new List<Equipment> ();
  82. if (styleType == StyleType.Recommand) {
  83. for (int i = 0; i < rcmdlist.Count; i++) {
  84. list.Add (rcmdlist [i]);
  85. }
  86. } else {
  87. list = custList;
  88. }
  89. for(int i=0; i<list.Count; i++)
  90. {
  91. Equipment e = list [i];
  92. if(origin != null)
  93. {
  94. if(e == origin)
  95. {
  96. list [i] = replace;
  97. found = true;
  98. break;
  99. }
  100. }
  101. else if(e == null)
  102. {
  103. list [i] = replace;
  104. found = true;
  105. break;
  106. }
  107. }
  108. if(found)
  109. {
  110. custList = list;
  111. customized = true;
  112. styleType = StyleType.Customize;
  113. }
  114. return found;
  115. }
  116. public bool IsEquiped(Equipment equipment)
  117. {
  118. List<Equipment> list = GetCurrentList ();
  119. for(int i=0; i<list.Count; i++)
  120. {
  121. if(list[i] == equipment)
  122. {
  123. return true;
  124. }
  125. }
  126. return false;
  127. }
  128. }