源战役客户端
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

161 linhas
5.8 KiB

  1. --增减数量组件
  2. AddNumberComponent = AddNumberComponent or BaseClass(BaseComponent)
  3. function AddNumberComponent:__init(parent,min_count,max_count,step,curr_count,calc_type, size_delta_x)
  4. self.size_delta_x = size_delta_x or 253
  5. self:CreateGameObject(UIType.AddNumberComponent)
  6. self:InitData(min_count,max_count,step,curr_count,calc_type, size_delta_x)
  7. end
  8. --num_changed_call_back 加一个改变数量后的回调
  9. function AddNumberComponent:InitData(min_count,max_count,step,curr_count,calc_type, size_delta_x,num_changed_call_back)
  10. self.min_count = min_count or 1
  11. self.max_count = max_count or 1
  12. self.step = step or 1 --步长
  13. self.calc_type = calc_type or self.calc_type or 1
  14. self.num_changed_call_back = num_changed_call_back
  15. self:SetCurrCount(curr_count or 1)
  16. end
  17. function AddNumberComponent:LoadSuccess()
  18. self.reduceBtn = self:GetChild("reduceBtn").gameObject
  19. self.numberBg = self:GetChild("numberBg").gameObject
  20. self.numberText = self:GetChild("numberBg/numberText"):GetComponent(typeof(TMPro.TextMeshProUGUI))
  21. self.addBtn = self:GetChild("addBtn").gameObject
  22. self.calcBtn = self:GetChild("calcBtn").gameObject
  23. self.transform.sizeDelta = Vector2(self.size_delta_x, 50)
  24. self:InitEvent()
  25. end
  26. function AddNumberComponent:InitEvent()
  27. local function onBtnClickHandler(target, x, y)
  28. if target == self.reduceBtn then
  29. self:Reduce()
  30. elseif target == self.addBtn then
  31. self:Add()
  32. elseif target == self.calcBtn then
  33. self:SetCurrCount(self.max_count)
  34. elseif target == self.numberBg then
  35. local function call_back(num)
  36. if self._use_delete_method then
  37. return
  38. end
  39. self:SetCurrCount(num)
  40. end
  41. GlobalEventSystem:Fire(EventName.OPEN_CALCULATOR_VIEW, self.max_count, call_back, Vector3(x, y, 0), self.calc_type)
  42. end
  43. end
  44. AddClickEvent(self.reduceBtn,onBtnClickHandler)
  45. AddClickEvent(self.addBtn,onBtnClickHandler)
  46. AddClickEvent(self.numberBg,onBtnClickHandler)
  47. AddClickEvent(self.calcBtn,onBtnClickHandler)
  48. end
  49. function AddNumberComponent:Reduce()
  50. self:SetCurrCount(self.curr_count - self.step)
  51. end
  52. function AddNumberComponent:Add()
  53. if self.curr_count + self.step > self.max_count then
  54. self:ShowTipsWord()
  55. else
  56. self:SetCurrCount(self.curr_count + self.step)
  57. end
  58. end
  59. function AddNumberComponent:SetCurrCount(count)
  60. if self.transform and not IsNull(self.transform) then
  61. self.curr_count = count
  62. self.curr_count = math.max(self.curr_count,self.min_count)
  63. self.curr_count = math.min(self.curr_count,self.max_count)
  64. if self.calc_type == 12 then--续时界面使用
  65. self.numberText.text = string.format("%s/%s", self.curr_count, self.max_count)
  66. else
  67. self.numberText.text = self.curr_count
  68. end
  69. self:Fire(ComponentEvent.AddNumberComponent.CHANGE_COUNT,self.curr_count)
  70. if self.num_changed_call_back then
  71. self.num_changed_call_back()
  72. end
  73. end
  74. end
  75. function AddNumberComponent:GetCurrCount()
  76. return self.curr_count
  77. end
  78. function AddNumberComponent:SetVisibleCalcBtn( flag )
  79. self.calcBtn:SetActive(flag)
  80. end
  81. function AddNumberComponent:SetVisibleBtn( )
  82. self.reduceBtn:SetActive(false)
  83. self.addBtn:SetActive(false)
  84. self.calcBtn:GetComponent("RectTransform").anchoredPosition = Vector2(-18.3,-2)
  85. self.numberBg.transform.pivot = Vector2(0.5, 0.5)
  86. local numberBgTra = self.numberBg:GetComponent("RectTransform")
  87. numberBgTra.offsetMin = Vector2(0,0.5)
  88. numberBgTra.offsetMax = Vector2(-30,0.5)
  89. self.numberText.text = "请输入最低战力限制"
  90. end
  91. function AddNumberComponent:ShowTipsWord()
  92. if self.calc_type == 1 then
  93. Message.show("本次最多购买"..self.max_count.."")
  94. elseif self.calc_type == 2 then
  95. Message.show("本次最多兑换"..self.max_count.."")
  96. elseif self.calc_type == 3 then
  97. Message.show("战力最高设置为"..self.max_count)
  98. elseif self.calc_type == 4 then
  99. Message.show("等级最高设置为"..self.max_count.."")
  100. elseif self.calc_type == 5 then
  101. Message.show("本次最多发"..self.max_count.."")
  102. elseif self.calc_type == 6 then
  103. Message.show("本次最多可上架"..self.max_count.."")
  104. elseif self.calc_type == 7 then
  105. Message.show("价格不能超过"..self.max_count)
  106. elseif self.calc_type == 8 then
  107. Message.show("本次最多出售"..self.max_count.."")
  108. elseif self.calc_type == 9 then
  109. Message.show("本次最多使用"..self.max_count.."")
  110. elseif self.calc_type == 10 then
  111. Message.show("本次最多可以制作"..self.max_count.."")
  112. elseif self.calc_type == 11 then
  113. Message.show("本次最多合成"..self.max_count.."")
  114. elseif self.calc_type == 12 then--续时界面使用
  115. Message.show("本次最多使用"..self.max_count.."")
  116. elseif self.calc_type == 13 then
  117. Message.show("剩余可选数量不足")
  118. elseif self.calc_type == 14 then
  119. Message.show("请先使用免费兑换次数")
  120. end
  121. end
  122. function AddNumberComponent:SetAddBtnOffset(offset)
  123. local temp_pos = self.addBtn.transform.anchoredPosition
  124. SetAnchoredPosition(self.addBtn.transform, temp_pos.x+offset, temp_pos.y)
  125. local temp_size = self.numberBg.transform.sizeDelta
  126. SetSizeDelta(self.numberBg.transform, temp_size.x+offset, temp_size.y)
  127. end
  128. function AddNumberComponent:SetNumberBgOffset(offset)
  129. local temp_pos = self.numberBg.transform.anchoredPosition
  130. SetAnchoredPosition(self.numberBg.transform, temp_pos.x, temp_pos.y+offset*0.5)
  131. local temp_size = self.numberBg.transform.sizeDelta
  132. SetSizeDelta(self.numberBg.transform, temp_size.x, temp_size.y+offset)
  133. end
  134. --传入组件大小(也就是父节点的大小,不懂用法可以看看其他是怎么用的)
  135. function AddNumberComponent:SetComponentWidth( width )
  136. if width then
  137. self.transform:SetInsetAndSizeFromParentEdge(self.transform.EdgeLeft, 0, width)
  138. else
  139. self.transform:SetInsetAndSizeFromParentEdge(self.transform.EdgeLeft, 0, 300)
  140. end
  141. end
  142. function AddNumberComponent:SetNumTextColor( color )
  143. self.numberText.text = HtmlColorTxt( self.numberText.text, color)
  144. end