源战役客户端
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.
 
 
 
 
 

162 lines
5.8 KiB

--增减数量组件
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