Equipment.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. using UnityEngine;
  2. using UnityEngine.Events;
  3. using System.Collections;
  4. public class Equipment
  5. {
  6. public enum Priority
  7. {
  8. None = 0,
  9. Hp = 1,
  10. Damage = 2,
  11. Move = 3
  12. }
  13. private static System.Array priorityArr = System.Enum.GetValues (typeof(Priority));
  14. public static Priority GetPriorityByCode(int code)
  15. {
  16. return (Priority)priorityArr.GetValue (code);
  17. }
  18. public UnityEvent Updated = new UnityEvent ();
  19. private int id;
  20. private EquipData data;
  21. public Equipment(int id, EquipData data)
  22. {
  23. this.id = id;
  24. this.data = data;
  25. }
  26. public int GetId()
  27. {
  28. return id;
  29. }
  30. public EquipData GetData()
  31. {
  32. return this.data;
  33. }
  34. private int m_Level = 1;
  35. public int GetLevel()
  36. {
  37. return m_Level;
  38. }
  39. public void SetLevel(int level)
  40. {
  41. m_Level = Mathf.Max(1, level);
  42. }
  43. public int GetMaxLevel()
  44. {
  45. return UpgradeUtil.GetMaxLevel (GetData ().quality);
  46. }
  47. public string GetLevelLabel()
  48. {
  49. return Language.GetStr ("EquipPanel", "levelLabel")+" "+GetLevel();
  50. }
  51. private int m_Count;
  52. public int GetCount()
  53. {
  54. return m_Count;
  55. }
  56. public void SetCount(int value)
  57. {
  58. m_Count = value;
  59. }
  60. public int GetNextLevelCount()
  61. {
  62. return UpgradeUtil.GetUpgradeCount (GetLevel ());
  63. }
  64. public int GetUpgradePrice()
  65. {
  66. return UpgradeUtil.GetUpgradePrice (GetLevel (), GetData ().quality);
  67. }
  68. public void Upgrade(int level, int count)
  69. {
  70. SetLevel (level);
  71. SetCount (count);
  72. Updated.Invoke ();
  73. }
  74. public string GetDescription()
  75. {
  76. if (data.equipType == EquipData.EquipType.Equip)
  77. return GetEquipmentDesc ();
  78. else if (data.equipType == EquipData.EquipType.UAV)
  79. return GetUAVDesc ();
  80. return "";
  81. }
  82. private string GetEquipmentDesc()
  83. {
  84. string desc = "";
  85. desc += Language.GetStr("Equip", "currentLevel") + "\n";
  86. if (HasHp ())
  87. desc += "\t+" + GetHp (GetLevel()) + " " + Language.GetStr ("Equip", "hp") + "\n";
  88. if (HasDmg ())
  89. desc += "\t+" + GetDmg (GetLevel()) + " " + Language.GetStr ("Equip", "dmg") + "\n";
  90. if (HasMove())
  91. desc += "\t+" + GetMove (GetLevel()) + "% " + Language.GetStr ("Equip", "mov") + "\n";
  92. int maxLevel = UpgradeUtil.GetMaxLevel (data.quality);
  93. if (GetLevel () < maxLevel) {
  94. desc += "\n"+Language.GetStr ("Equip", "nextLevel") + "\n";
  95. if (HasHp ())
  96. desc += "\t+" + GetHp (GetLevel () + 1) + " " + Language.GetStr ("Equip", "hp") + "\n";
  97. if (HasDmg ())
  98. desc += "\t+" + GetDmg (GetLevel () + 1) + " " + Language.GetStr ("Equip", "dmg") + "\n";
  99. if (HasMove())
  100. desc += "\t+" + GetMove (GetLevel() + 1) + "% " + Language.GetStr ("Equip", "mov") + "\n";
  101. } else {
  102. desc += "\n"+Language.GetStr ("Equip", "maxLevel");
  103. }
  104. return desc;
  105. }
  106. private string GetUAVDesc()
  107. {
  108. string desc = "";
  109. desc += Language.GetStr("Equip", "currentLevel") + "\n";
  110. if (HasHp ())
  111. desc += "\t" + Language.GetStr ("Equip", "hps").Replace("%NUM%", Mathf.FloorToInt(GetHp (GetLevel())).ToString()) + "\n";
  112. if (HasDmg ())
  113. desc += "\t" + Language.GetStr ("Equip", "dps").Replace("%NUM%", Mathf.FloorToInt(GetDmg (GetLevel())).ToString()) + "\n";
  114. // if (HasMove())
  115. // desc += "\t+" + GetMove (GetLevel()) + "% " + Language.GetStr ("Equip", "mov") + "\n";
  116. int maxLevel = UpgradeUtil.GetMaxLevel (data.quality);
  117. if (GetLevel () < maxLevel) {
  118. desc += "\n"+Language.GetStr ("Equip", "nextLevel") + "\n";
  119. if (HasHp ())
  120. desc += "\t" + Language.GetStr ("Equip", "hps").Replace("%NUM%", Mathf.FloorToInt(GetHp (GetLevel() + 1)).ToString()) + "\n";
  121. if (HasDmg ())
  122. desc += "\t" + Language.GetStr ("Equip", "dps").Replace("%NUM%", Mathf.FloorToInt(GetDmg (GetLevel() + 1)).ToString()) + "\n";
  123. // if (HasHp ())
  124. // desc += "\t+" + GetHp (GetLevel () + 1) + " " + Language.GetStr ("Equip", "hp") + "\n";
  125. // if (HasDmg ())
  126. // desc += "\t+" + GetDmg (GetLevel () + 1) + " " + Language.GetStr ("Equip", "dmg") + "\n";
  127. // if (HasMove())
  128. // desc += "\t+" + GetMove (GetLevel() + 1) + "% " + Language.GetStr ("Equip", "mov") + "\n";
  129. } else {
  130. desc += "\n"+Language.GetStr ("Equip", "maxLevel");
  131. }
  132. return desc;
  133. }
  134. public bool HasHpProperty()
  135. {
  136. return HasHp ();
  137. }
  138. public float GetHpProperty()
  139. {
  140. float hp = data.hp + data.hp_up * (float)m_Level;
  141. float hpProperty = hp;
  142. return hpProperty;
  143. }
  144. public bool HasDamageProperty()
  145. {
  146. return HasDmg ();
  147. }
  148. public float GetDamageProperty()
  149. {
  150. float dmg = data.dmg + data.dmg_up * (float)m_Level;
  151. float dmgProperty = dmg;
  152. return dmgProperty;
  153. }
  154. public bool HasMoveProperty()
  155. {
  156. return HasMove ();
  157. }
  158. public float GetMoveProperty()
  159. {
  160. float move = data.mov + data.mov_up * (float)m_Level;
  161. float moveProperty = move;
  162. return moveProperty;
  163. }
  164. public float GetHp()
  165. {
  166. return GetHp (GetLevel());
  167. }
  168. public float GetHp(int level)
  169. {
  170. float value = data.hp + (data.hp_up * (float)(level - 1));
  171. return UpgradeUtil.GetHp (value);
  172. }
  173. public bool HasHp()
  174. {
  175. return data.hp > 0;
  176. }
  177. public float GetDmg()
  178. {
  179. return GetDmg (GetLevel ());
  180. }
  181. public float GetDmg(int level)
  182. {
  183. float value = data.dmg + (data.dmg_up * (float)(level - 1));
  184. return UpgradeUtil.GetDamage (value);
  185. }
  186. public bool HasDmg()
  187. {
  188. return data.dmg > 0;
  189. }
  190. public float GetMove()
  191. {
  192. return GetMove (GetLevel ());
  193. }
  194. public float GetMove(int level)
  195. {
  196. float value = data.mov + (data.mov_up * (float)(level - 1));
  197. return value;
  198. }
  199. public bool HasMove()
  200. {
  201. return data.mov > 0;
  202. }
  203. public void Dispose()
  204. {
  205. Updated.RemoveAllListeners ();
  206. }
  207. }