UIEnhancementItem.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System;
  2. using GameWorld;
  3. using UnityEngine;
  4. public class UIEnhancementItem : MonoBehaviour
  5. {
  6. private string LocalizeName
  7. {
  8. get
  9. {
  10. return this._name.text;
  11. }
  12. set
  13. {
  14. this._name.text = value;
  15. }
  16. }
  17. private int Level
  18. {
  19. get
  20. {
  21. return this._intLevel;
  22. }
  23. set
  24. {
  25. this._intLevel = value;
  26. this._level.text = "Lv " + this._intLevel;
  27. }
  28. }
  29. private void Start()
  30. {
  31. this.DataBind();
  32. }
  33. private void OnEnable()
  34. {
  35. EventManager.RegisterEvent<EnhanceArgs>("EnhanceLevelup", new EventManager.FBEventHandler<EnhanceArgs>(this.OnEnhancementLevelUp), EventManager.ListenerQueue.Game);
  36. EventDelegate.Add(this._toggle.onChange, new EventDelegate.Callback(this.OnToggleSelect));
  37. this.DataBind();
  38. }
  39. private void OnDisable()
  40. {
  41. EventManager.UnregisterEvent<EnhanceArgs>("EnhanceLevelup", new EventManager.FBEventHandler<EnhanceArgs>(this.OnEnhancementLevelUp), EventManager.ListenerQueue.Game);
  42. EventDelegate.Remove(this._toggle.onChange, new EventDelegate.Callback(this.OnToggleSelect));
  43. }
  44. private void OnToggleSelect()
  45. {
  46. if (UIToggle.current.value && UIToggle.current == this._toggle)
  47. {
  48. UIEnhancementItem.Current = this.DataBind();
  49. }
  50. }
  51. private bool OnEnhancementLevelUp(string eventDefine, object sender, EnhanceArgs msg)
  52. {
  53. if (msg.Name == this.Name)
  54. {
  55. UIEnhancementItem.Current = this.DataBind();
  56. }
  57. else
  58. {
  59. this.DataBind();
  60. }
  61. return true;
  62. }
  63. private EnhancementItem DataBind()
  64. {
  65. EnhancementItem enhancementItem = new EnhancementItem(this.Name);
  66. this.LocalizeName = enhancementItem.LocalizeName;
  67. this.Level = enhancementItem.Level;
  68. if (enhancementItem.CoinEnough)
  69. {
  70. this._name.color = UIEnhancementItem.LightYellow;
  71. this._level.color = UIEnhancementItem.LightYellow;
  72. }
  73. else if (enhancementItem.Level == 0)
  74. {
  75. this._name.color = UIEnhancementItem.LightGray;
  76. this._level.color = UIEnhancementItem.LightGray;
  77. }
  78. else
  79. {
  80. this._name.color = Color.white;
  81. this._level.color = Color.white;
  82. }
  83. return enhancementItem;
  84. }
  85. public static EnhancementItem Current;
  86. public string Name;
  87. [SerializeField]
  88. private UIToggle _toggle;
  89. [SerializeField]
  90. private UILabel _name;
  91. [SerializeField]
  92. private UILabel _level;
  93. private int _intLevel;
  94. private static readonly Color LightYellow = new Color(0.647f, 1f, 0.31f);
  95. private static readonly Color LightGray = new Color(0.25f, 0.25f, 0.25f);
  96. }