EnhancementItem.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System;
  2. using DatabaseModel;
  3. using I2.Loc;
  4. public class EnhancementItem
  5. {
  6. public EnhancementItem(string name) : this(name, R.Player.Enhancement[name])
  7. {
  8. }
  9. public EnhancementItem(string name, int level)
  10. {
  11. Enhancement enhancement = Enhancement.FindByName(name);
  12. this.Name = name;
  13. this.Level = level;
  14. this.Cost = enhancement.GetNextLevelPrice(level);
  15. this.LocalizeName = ScriptLocalization.Get("ui/enhancement/" + enhancement.Name);
  16. this.Desc = enhancement.GetDesc(level);
  17. this.NextLevelDesc = enhancement.GetNextLevelDesc(level);
  18. this.Controlkeys = enhancement.GetControlKeys(level);
  19. }
  20. public bool Unlockable
  21. {
  22. get
  23. {
  24. bool flag = false;
  25. return this.Level != 3 && !flag;
  26. }
  27. }
  28. public bool CoinEnough
  29. {
  30. get
  31. {
  32. return R.Equipment.CoinNum >= this.Cost;
  33. }
  34. }
  35. public override bool Equals(object obj)
  36. {
  37. EnhancementItem enhancementItem = obj as EnhancementItem;
  38. return enhancementItem != null && (this.Cost == enhancementItem.Cost && this.Level == enhancementItem.Level && this.LocalizeName == enhancementItem.LocalizeName) && this.Name == enhancementItem.Name;
  39. }
  40. public override int GetHashCode()
  41. {
  42. return this.Cost.GetHashCode() + this.Level.GetHashCode() + this.LocalizeName.GetHashCode() + this.Name.GetHashCode();
  43. }
  44. public readonly int Level;
  45. public readonly string Name;
  46. public readonly int Cost;
  47. public readonly string LocalizeName;
  48. public readonly string Desc;
  49. public readonly string NextLevelDesc;
  50. public readonly string Controlkeys;
  51. }