|
|
- ClActExchangeItem = ClActExchangeItem or BaseClass(BaseItem)
-
- function ClActExchangeItem:__init(parent_wnd, prefab_asset, layer_name)
- self.base_file = "collectingAct"
- self.layout_file = "ClActExchangeItem"
- self.layer_name = layer_name or "UI"
- self.is_delay_callback = true
- self.data = nil
- self.award_item_list = {}
- self.symbol_item_list = {}
- self.award_vo_list = {}
- self.vo = nil
- self.base_type = nil
- self.sub_type = nil
- self.num = nil
- self.kind = nil
- self.model = CustomActivityModel:getInstance()
- -- self.use_local_view = true
- self:Load()
- end
-
- function ClActExchangeItem:Load_callback()
- self.ex_btn
- = GetChildGameObjects(self.transform,
- {
- "btnGet",
- })
-
- self.sub_con,
- self.Bg
- = GetChildTransforms(self.transform,
- {
- "subcon",
- "Bg",
- })
-
- self.btn_label,
- self.txt
- = GetChildTexts(self.transform,
- {
- "btnGet/Text",
- "txt",
- })
- self.btn_img = self:GetChild("btnGet"):GetComponent("ImageExtend")
-
- self:InitEvent()
- if self.need_refreshData then
- self:SetData(self.vo, self.base_type, self.sub_type)
- end
- if self.need_setText then
- self:SetText(self.num)
- end
- if self.need_refreshStr then
- self:SetText2(self.str)
- end
- end
-
- function ClActExchangeItem:InitEvent()
- local function onClick(target)
- self:ToExchange()
- end
- AddClickEvent(self.ex_btn,onClick)
-
- local function onBagChange()
- if self._use_delete_method then return end
- self:UpdateItemData()
- end
- self.bag_change_event_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST,onBagChange)
- end
-
- function ClActExchangeItem:SetData(vo, base_type, sub_type)
- self.vo = vo
- self.base_type = base_type
- self.sub_type = sub_type
- self.kind = vo.grade
-
- if not self.is_loaded then
- self.need_refreshData = true
- return
- end
- -- local item_size = 60 --物品的大小
- -- local symbol_size = 22 --符号的大小
- -- local size_gap = 5 --物品和符号之间的间隔
- -- local gap = 0
- -- local size = 0
- -- local sub_con_size = self.sub_con.sizeDelta.x
- -- self.act_type = self.model:getActType(self.base_type,self.sub_type)
- -- if self.act_type and self.act_type == Config.ConfigActStatic.ActType.RUN then
- -- -- self.Bg.sizeDelta = co.TableXY(814, 105)
- -- -- self.Bg.anchoredPosition = co.TableXYZ(408, 52.5)
- -- self.ex_btn.transform.sizeDelta = co.TableXY(124, 56)
- -- self.ex_btn.transform.anchoredPosition = co.TableXYZ(-100, 10)
- -- self.sub_con.sizeDelta = co.TableXY(562, 105)
- -- sub_con_size = 562
- -- self.sub_con.anchoredPosition = co.TableXYZ(20, 0, 0)
- -- self.txt.transform.sizeDelta = co.TableXY(160, 20)
- -- self.txt.transform.anchoredPosition = co.TableXYZ(308, -35, 0)
- -- gap = 28
- -- size = 8
- -- item_size = 70
- -- size_gap = 7
- -- end
- self.act_type = self.model:getActType(self.base_type,self.sub_type)
- if self.act_type then
- if self.act_type == Config.ConfigActStatic.ActType.RUN then
- -- self.ex_btn.transform.sizeDelta = co.TableXY(124, 56)
- -- self.ex_btn.transform.anchoredPosition = co.TableXYZ(-100, 10)
- self.ex_btn.transform.anchorMin = Vector2(0.5, 0.5)
- self.ex_btn.transform.anchorMax = Vector2(0.5, 0.5)
- -- self.ex_btn.transform.pivot
- self.ex_btn.transform.anchoredPosition = co.TableXYZ(308, 10)
- self.txt.transform.sizeDelta = co.TableXY(160, 20)
- self.txt.transform.anchoredPosition = co.TableXYZ(308, -35, 0)
- elseif self.act_type == Config.ConfigActStatic.ActType.OPEN then
- -- self.ex_btn.transform.anchoredPosition = co.TableXYZ(-100, 10)
- self.ex_btn.transform.anchorMin = Vector2(0.5, 0.5)
- self.ex_btn.transform.anchorMax = Vector2(0.5, 0.5)
- -- self.ex_btn.transform.pivot
- self.ex_btn.transform.anchoredPosition = co.TableXYZ(260, 10)
- end
- end
- if vo == nil then return end
- self:SetText(nil)
- -- self:SetText2("")
-
- local const_item_list = vo.condition_list[1][2]
- local len = #const_item_list
- for i = 1,len do
- self.award_vo_list[i] = const_item_list[i]
- end
- -- 下面的数值计算为 物品 符号 物品 符号...
- -- (space)(item_size)(space)(symbol_size)(space)...
- local item_size = 60 --物品的大小
- local symbol_size = 22 --符号的大小
- local space = 3 --物品和符号之间的间隔
- local sub_con_size = 0
- local self_size = self.transform.sizeDelta.x
- local gap = 5
- if self.act_type and self.act_type == Config.ConfigActStatic.ActType.RUN then
- space = 6
- item_size = 70
- self_size = 816 --手动赋值
- gap = 12
- end
- if len > 0 then
- sub_con_size = (len + 1)*(item_size + 2*space) + len*symbol_size
- self.sub_con.sizeDelta = co.TableXY(sub_con_size, self.sub_con.sizeDelta.y)
- local btn_size = self.ex_btn.transform.sizeDelta.x
- local btn_posX = self.ex_btn.transform.anchoredPosition.x
- self.sub_con.anchoredPosition = co.TableXYZ(btn_posX - btn_size/2 - gap - sub_con_size + self_size/2, self.sub_con.anchoredPosition.y, self.sub_con.anchoredPosition.z)
- end
- --设置+和=图
- for i = 1,len do
- if self.symbol_item_list[i] == nil then
- self.symbol_item_list[i] = ClActSymbolImgItem.New(self.sub_con)
- end
- if i == len then
- self.symbol_item_list[i]:SetData(2, i)
- self.symbol_item_list[i]:SetAnchoredPosition(i*(item_size + 2*space) + (i - 1)*symbol_size, -36)
- else
- self.symbol_item_list[i]:SetData(1, i)
- self.symbol_item_list[i]:SetAnchoredPosition(i*(item_size + 2*space) + (i - 1)*symbol_size, -36)
- end
- end
- -- 加上收益item
- local obtain_item_list = vo.reward_info
- self.award_vo_list[len + 1] = {[2]=obtain_item_list[1].goods_id,[3]=obtain_item_list[1].goods_count} -- 最后一个为收益物品信息
- len = len + 1
- -- 生成物品item
- local item
- for i = 1,len do
- item = self.award_vo_list[i]
- if self.award_item_list[i] == nil then
- self.award_item_list[i] = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.sub_con)
- self.award_item_list[i]:SetItemSize(item_size, item_size)
- end
- self.award_item_list[i]:SetData(tonumber(item[2]))
- self.award_item_list[i]:SetPosition((i - 1)*(item_size + 2*space) + (i - 1)*symbol_size + space, -16)
- end
-
- -- --设置+和=图
- -- for i = 1,len do
- -- if self.symbol_item_list[i] == nil then
- -- self.symbol_item_list[i] = ClActSymbolImgItem.New(self.sub_con)
- -- end
- -- if i == len then
- -- self.symbol_item_list[i]:SetData(2, i)
- -- -- local x = gap > 0 and (gap-2) or gap
- -- -- self.symbol_item_list[i]:SetPosition(sub_con_size - item_size - symbol_size + x,-40)
- -- self.symbol_item_list[i]:SetAnchoredPosition(sub_con_size - item_size - symbol_size - size_gap,-40)
- -- else
- -- self.symbol_item_list[i]:SetData(1, i)
- -- -- self.symbol_item_list[i]:SetPosition(248+size-(i-2)*(90+size),-42)
- -- self.symbol_item_list[i]:SetAnchoredPosition((sub_con_size - item_size - symbol_size - size_gap) - size_gap*(i+1) - i*item_size - i*symbol_size, -42)
- -- end
- -- end
-
- -- -- 加上收益item
- -- local obtain_item_list = vo.reward_info
- -- self.award_vo_list[len + 1] = {[2]=obtain_item_list[1].goods_id,[3]=obtain_item_list[1].goods_count} -- 最后一个为收益物品信息
- -- len = len + 1
-
- -- -- 生成物品item
- -- local item
- -- for i = 1,len do
- -- item = self.award_vo_list[i]
- -- if self.award_item_list[i] == nil then
- -- -- self.award_item_list[i] = ClActAwardItem.New(self.sub_con)
- -- self.award_item_list[i] = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.sub_con)
- -- self.award_item_list[i]:SetItemSize(item_size, item_size)
- -- end
- -- self.award_item_list[i]:SetData(tonumber(item[2]))
- -- -- if i == 1 then
- -- self.award_item_list[i]:SetPosition(460+gap - (len-i)*(90+size),-16)
- -- -- else
- -- -- -- self.award_item_list[i]:SetPosition(542 - (len-i)*110,-16)
- -- -- self.award_item_list[i]:SetPosition(560 - (len-i)*110+(i-1)*92,-16)
- -- -- end
- -- --[[ if i == len then
- -- self.award_item_list[i]:SetPosition(632,-16)
- -- else
- -- self.award_item_list[i]:SetPosition(480-((len-i-1)*116),-16)
- -- end--]]
- -- end
-
-
- self:UpdateItemData()
-
- end
-
- function ClActExchangeItem:SetText(num)
- self.num = num
- if self.is_loaded then
- if num == nil then self.txt.text = "" return end
- self.txt.text = "今日全服已兑: "..self.num
- else
- self.need_setText = true
- end
- end
-
- function ClActExchangeItem:SetText2(str)
- self.str = str
- if self.is_loaded then
- self.txt.text = self.str
- else
- self.need_refreshStr = true
- end
- end
-
- function ClActExchangeItem:UpdateItemData()
- local num = 0
- local count = 0
- for i=1,#self.award_vo_list do
- num = GoodsModel:getInstance():GetTypeGoodsNum(tonumber(self.award_vo_list[i][2]))
- self.award_item_list[i]:SetNumText2(i == #self.award_vo_list,tonumber(self.award_vo_list[i][3]),num)
- if i < #self.award_vo_list and num >= tonumber(self.award_vo_list[i][3]) then
- count = count + 1
- end
- end
-
- -- self.btn_img.gray = (count < #self.award_vo_list - 1)
- if self.model:IsJiZiMaxNumType(self.kind) and self.model:CheckJiZiIsMaxNumByGrade(self.kind) then
- self.btn_img.gray = true
- else
- self.btn_img.gray = (count < #self.award_vo_list - 1)
- end
- -- local color = count < #self.award_vo_list - 1 and "#636060" or "#9A3E12"
- -- self.btn_label.text = string.format("<color=%s>兑换</color>",color)
- self.btn_label.text = "兑换"
- end
-
- function ClActExchangeItem:ToExchange()
- if self.btn_img.gray == true then
- if self.model:IsJiZiMaxNumType(self.kind) and self.model:CheckJiZiIsMaxNumByGrade(self.kind) then
- Message.show("本奖励已到今日兑换上限")
- return
- end
- Message.show("材料不足,兑换失败")
- else
- local exchange_id = self.vo.id
- local len = #self.award_vo_list
- local num = tonumber(self.award_vo_list[len][3])
- --GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15022,exchange_id,num)
- CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT,33105,self.base_type,self.sub_type,self.kind)
- end
-
- end
-
- function ClActExchangeItem:__delete()
- if self.bag_change_event_id then
- GoodsModel:getInstance():UnBind(self.bag_change_event_id)
- self.bag_change_event_id = nil
- end
-
- for k,v in pairs(self.award_item_list) do
- -- v:DeleteMe()
- v:ReleaseObj()
- v = nil
- end
- self.award_item_list = {}
-
- for k,v in pairs(self.symbol_item_list) do
- v:DeleteMe()
- v = nil
- end
- self.symbol_item_list = {}
-
- self.award_vo_list = {}
- end
|