源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
3.6 KiB

  1. SkillUIAttrOne = SkillUIAttrOne or BaseClass(BaseItem)
  2. function SkillUIAttrOne:__init(parent_wnd, prefab_asset, layer_name)
  3. self.base_file = "skillUI"
  4. self.layout_file = "SkillUIAttrOne"
  5. self.layer_name = "Top"
  6. self.lv_str = ""
  7. self.text_str = ""
  8. self.b_cur = false
  9. self.b_toggle = false
  10. self.pos = false
  11. self.showing_effect = false
  12. self.will_show_effect = false
  13. self.is_select = false
  14. self:Load()
  15. end
  16. function SkillUIAttrOne:Load_callback()
  17. local nodes = {
  18. "toggle:obj",
  19. "cur:obj",
  20. "text:tmp",
  21. "lv_text:tmp" ,
  22. "effect_con",
  23. "bg:obj",
  24. "toggle_bg:obj",
  25. "select:obj",
  26. }
  27. self:GetChildren(nodes)
  28. if self.need_refreshData then
  29. self:SetData(self.lv_str, self.text_str, self.b_cur, self.b_toggle, self.pos)
  30. self:WillShowEffect(self.will_show_effect)
  31. self:SetSelect(self.is_select)
  32. end
  33. end
  34. function SkillUIAttrOne:SetData(lv_str, text_str, b_cur, b_toggle, pos)
  35. self.lv_str = lv_str
  36. self.text_str = text_str
  37. self.b_cur = b_cur
  38. self.b_toggle = b_toggle
  39. self.pos = pos
  40. if self.is_loaded then
  41. self.lv_text_tmp.text = lv_str
  42. self.text_tmp.text = text_str
  43. --self.cur_obj:SetActive(self.b_cur)
  44. self.cur_obj:SetActive(false)
  45. self.toggle_obj:SetActive(self.b_toggle)
  46. self.toggle_bg_obj:SetActive(not self.b_toggle)
  47. self.bg_obj:SetActive(self.pos % 2 == 1)
  48. -- local w = self.lv_text_tmp.preferredWidth
  49. -- if w <= 40 then
  50. -- SetAnchoredPositionX(self.text, 97)
  51. -- SetSizeDeltaX(self.text, 240)
  52. -- else
  53. -- SetAnchoredPositionX(self.text, 97 + w - 40)
  54. -- SetSizeDeltaX(self.text, 280 - w)
  55. -- end
  56. SetSizeDeltaY(self.transform, self.text_tmp.preferredHeight+28)
  57. SetSizeDeltaY(self.bg, self.text_tmp.preferredHeight+28)
  58. SetSizeDeltaY(self.select, self.text_tmp.preferredHeight+34)
  59. if self.text_tmp.preferredHeight > 30 then
  60. SetLocalScale(self.effect_con, 1, 1.6, 1.6)
  61. else
  62. SetLocalScale(self.effect_con, 1, 1.2, 1.2)
  63. end
  64. else
  65. self.need_refreshData = true
  66. end
  67. end
  68. function SkillUIAttrOne:__delete()
  69. self:ClearAllUIEffect()
  70. end
  71. function SkillUIAttrOne:WillShowEffect(show)
  72. self.will_show_effect = show
  73. if self.is_loaded then
  74. if self.will_show_effect then
  75. self.will_show_effect = false
  76. self:AddEffect()
  77. end
  78. else
  79. self.need_refreshData = true
  80. end
  81. end
  82. function SkillUIAttrOne:ClearAllUIEffect()
  83. if self.is_loaded then
  84. self:ClearUIEffect(self.effect_con)
  85. end
  86. end
  87. function SkillUIAttrOne:WillShowEffect(show)
  88. self.will_show_effect = show
  89. if self.is_loaded then
  90. if self.will_show_effect then
  91. self.will_show_effect = false
  92. self:AddEffect()
  93. end
  94. else
  95. self.need_refreshData = true
  96. end
  97. end
  98. function SkillUIAttrOne:SetSelect(is_select)
  99. self.is_select = is_select
  100. if self.is_loaded then
  101. self.select_obj:SetActive(self.is_select)
  102. else
  103. self.need_refreshData = true
  104. end
  105. end
  106. function SkillUIAttrOne:AddEffect()
  107. if not self.showing_effect then
  108. local function call_back( )
  109. self.showing_effect = false
  110. end
  111. self:ClearUIEffect(self.effect_con)
  112. self:AddUIEffect("ui_jinjieshuxing", self.effect_con, self.layer_name, Vector3(-170,0,0), 1, false, 0.75, false, call_back)
  113. self.showing_effect = true
  114. end
  115. end