|
--增减数量组件
|
|
AddNumberComponent = AddNumberComponent or BaseClass(BaseComponent)
|
|
function AddNumberComponent:__init(parent,min_count,max_count,step,curr_count,calc_type, size_delta_x)
|
|
self.size_delta_x = size_delta_x or 253
|
|
self:CreateGameObject(UIType.AddNumberComponent)
|
|
self:InitData(min_count,max_count,step,curr_count,calc_type, size_delta_x)
|
|
end
|
|
|
|
--num_changed_call_back 加一个改变数量后的回调
|
|
function AddNumberComponent:InitData(min_count,max_count,step,curr_count,calc_type, size_delta_x,num_changed_call_back)
|
|
self.min_count = min_count or 1
|
|
self.max_count = max_count or 1
|
|
self.step = step or 1 --步长
|
|
self.calc_type = calc_type or self.calc_type or 1
|
|
self.num_changed_call_back = num_changed_call_back
|
|
self:SetCurrCount(curr_count or 1)
|
|
end
|
|
|
|
function AddNumberComponent:LoadSuccess()
|
|
self.reduceBtn = self:GetChild("reduceBtn").gameObject
|
|
self.numberBg = self:GetChild("numberBg").gameObject
|
|
self.numberText = self:GetChild("numberBg/numberText"):GetComponent(typeof(TMPro.TextMeshProUGUI))
|
|
self.addBtn = self:GetChild("addBtn").gameObject
|
|
self.calcBtn = self:GetChild("calcBtn").gameObject
|
|
|
|
self.transform.sizeDelta = Vector2(self.size_delta_x, 50)
|
|
|
|
self:InitEvent()
|
|
end
|
|
|
|
function AddNumberComponent:InitEvent()
|
|
local function onBtnClickHandler(target, x, y)
|
|
if target == self.reduceBtn then
|
|
self:Reduce()
|
|
elseif target == self.addBtn then
|
|
self:Add()
|
|
elseif target == self.calcBtn then
|
|
self:SetCurrCount(self.max_count)
|
|
elseif target == self.numberBg then
|
|
local function call_back(num)
|
|
if self._use_delete_method then
|
|
return
|
|
end
|
|
self:SetCurrCount(num)
|
|
end
|
|
GlobalEventSystem:Fire(EventName.OPEN_CALCULATOR_VIEW, self.max_count, call_back, Vector3(x, y, 0), self.calc_type)
|
|
end
|
|
end
|
|
AddClickEvent(self.reduceBtn,onBtnClickHandler)
|
|
AddClickEvent(self.addBtn,onBtnClickHandler)
|
|
AddClickEvent(self.numberBg,onBtnClickHandler)
|
|
AddClickEvent(self.calcBtn,onBtnClickHandler)
|
|
end
|
|
|
|
function AddNumberComponent:Reduce()
|
|
self:SetCurrCount(self.curr_count - self.step)
|
|
end
|
|
|
|
function AddNumberComponent:Add()
|
|
if self.curr_count + self.step > self.max_count then
|
|
self:ShowTipsWord()
|
|
else
|
|
self:SetCurrCount(self.curr_count + self.step)
|
|
end
|
|
end
|
|
|
|
function AddNumberComponent:SetCurrCount(count)
|
|
|
|
if self.transform and not IsNull(self.transform) then
|
|
self.curr_count = count
|
|
self.curr_count = math.max(self.curr_count,self.min_count)
|
|
self.curr_count = math.min(self.curr_count,self.max_count)
|
|
if self.calc_type == 12 then--续时界面使用
|
|
self.numberText.text = string.format("%s/%s", self.curr_count, self.max_count)
|
|
else
|
|
self.numberText.text = self.curr_count
|
|
end
|
|
self:Fire(ComponentEvent.AddNumberComponent.CHANGE_COUNT,self.curr_count)
|
|
|
|
if self.num_changed_call_back then
|
|
self.num_changed_call_back()
|
|
end
|
|
end
|
|
end
|
|
|
|
function AddNumberComponent:GetCurrCount()
|
|
return self.curr_count
|
|
end
|
|
|
|
function AddNumberComponent:SetVisibleCalcBtn( flag )
|
|
self.calcBtn:SetActive(flag)
|
|
end
|
|
function AddNumberComponent:SetVisibleBtn( )
|
|
self.reduceBtn:SetActive(false)
|
|
self.addBtn:SetActive(false)
|
|
self.calcBtn:GetComponent("RectTransform").anchoredPosition = Vector2(-18.3,-2)
|
|
self.numberBg.transform.pivot = Vector2(0.5, 0.5)
|
|
local numberBgTra = self.numberBg:GetComponent("RectTransform")
|
|
numberBgTra.offsetMin = Vector2(0,0.5)
|
|
numberBgTra.offsetMax = Vector2(-30,0.5)
|
|
self.numberText.text = "请输入最低战力限制"
|
|
end
|
|
function AddNumberComponent:ShowTipsWord()
|
|
if self.calc_type == 1 then
|
|
Message.show("本次最多购买"..self.max_count.."个")
|
|
elseif self.calc_type == 2 then
|
|
Message.show("本次最多兑换"..self.max_count.."个")
|
|
elseif self.calc_type == 3 then
|
|
Message.show("战力最高设置为"..self.max_count)
|
|
elseif self.calc_type == 4 then
|
|
Message.show("等级最高设置为"..self.max_count.."级")
|
|
elseif self.calc_type == 5 then
|
|
Message.show("本次最多发"..self.max_count.."个")
|
|
elseif self.calc_type == 6 then
|
|
Message.show("本次最多可上架"..self.max_count.."个")
|
|
elseif self.calc_type == 7 then
|
|
Message.show("价格不能超过"..self.max_count)
|
|
elseif self.calc_type == 8 then
|
|
Message.show("本次最多出售"..self.max_count.."个")
|
|
elseif self.calc_type == 9 then
|
|
Message.show("本次最多使用"..self.max_count.."本")
|
|
elseif self.calc_type == 10 then
|
|
Message.show("本次最多可以制作"..self.max_count.."个")
|
|
elseif self.calc_type == 11 then
|
|
Message.show("本次最多合成"..self.max_count.."个")
|
|
elseif self.calc_type == 12 then--续时界面使用
|
|
Message.show("本次最多使用"..self.max_count.."个")
|
|
elseif self.calc_type == 13 then
|
|
Message.show("剩余可选数量不足")
|
|
elseif self.calc_type == 14 then
|
|
Message.show("请先使用免费兑换次数")
|
|
end
|
|
end
|
|
function AddNumberComponent:SetAddBtnOffset(offset)
|
|
|
|
local temp_pos = self.addBtn.transform.anchoredPosition
|
|
SetAnchoredPosition(self.addBtn.transform, temp_pos.x+offset, temp_pos.y)
|
|
|
|
local temp_size = self.numberBg.transform.sizeDelta
|
|
SetSizeDelta(self.numberBg.transform, temp_size.x+offset, temp_size.y)
|
|
end
|
|
|
|
function AddNumberComponent:SetNumberBgOffset(offset)
|
|
local temp_pos = self.numberBg.transform.anchoredPosition
|
|
SetAnchoredPosition(self.numberBg.transform, temp_pos.x, temp_pos.y+offset*0.5)
|
|
|
|
local temp_size = self.numberBg.transform.sizeDelta
|
|
SetSizeDelta(self.numberBg.transform, temp_size.x, temp_size.y+offset)
|
|
end
|
|
|
|
--传入组件大小(也就是父节点的大小,不懂用法可以看看其他是怎么用的)
|
|
function AddNumberComponent:SetComponentWidth( width )
|
|
if width then
|
|
self.transform:SetInsetAndSizeFromParentEdge(self.transform.EdgeLeft, 0, width)
|
|
else
|
|
self.transform:SetInsetAndSizeFromParentEdge(self.transform.EdgeLeft, 0, 300)
|
|
end
|
|
end
|
|
|
|
function AddNumberComponent:SetNumTextColor( color )
|
|
self.numberText.text = HtmlColorTxt( self.numberText.text, color)
|
|
end
|