|
|
- EnlargeView = EnlargeView or BaseClass(BaseView)
- function EnlargeView:__init()
- self.base_file = "bag"
- self.layout_file = "EnlargeView"
- self.layer_name = "Top"
- self.use_background = true
- self.is_set_zdepth = true
- self.model = GoodsModel:getInstance()
- self.load_callback = function ()
- self:LocalSuccess()
- end
- self.open_callback = function ()
- self:SetData()
- end
- self.destroy_callback = function ()
- self:Remove()
- end
-
- end
-
- function EnlargeView:Remove()
- if self.icon_item then
- self.icon_item:ReleaseObj()
- self.icon_item = nil
- end
- end
-
- function EnlargeView:LocalSuccess()
- self.icon_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self:GetChild("iconItem"))
- self.icon_item:ChangeCountVisible(false)
-
- self.bg_raw = self:GetChild("Window"):GetComponent("RawImage")
- self.num = self:GetChild("num"):GetComponent("TextMeshProUGUI")
- self.count_text = self:GetChild("countbg/count"):GetComponent("TextMeshProUGUI")
- self.btn_text = self:GetChild("confirmBtn/Text"):GetComponent("TextMeshProUGUI")
- self.name_text = self:GetChild("namebg/name"):GetComponent("TextMeshProUGUI")
- self.confirmBtn,self.lblTip, self.cancelBtn, self.addBtn, self.subBtn =GetChildGameObjects (self.transform,
- {
- "confirmBtn","lblTip", "cancelBtn", "addBtn", "subBtn",
- })
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false)
- self:InitEvent()
- end
- function EnlargeView:InitEvent()
- local function onBtnClickHandler(target)
- if target == self.confirmBtn then
- local own_count = GoodsModel:getInstance():GetTypeGoodsNum(102601)
- if own_count >= self.total_count then
- if target == self.confirmBtn then
- GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15002,self.pos,self.lock_index)
- end
- else
- local function ok()
- GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15002,self.pos,self.lock_index)
- end
- Alert.show(string.format("您的扩展钥匙不足,是否花费%d红钻补足缺额",self.total_cost),Alert.Type.Two,ok)
- end
- self:Close()
- elseif target == self.cancelBtn then
- self:Close()
-
- elseif target == self.addBtn then
- self:ChangeCount(self.lock_index + 1)
-
- elseif target == self.subBtn then
- self:ChangeCount(self.lock_index - 1)
- end
-
- end
- AddClickEvent(self.confirmBtn,onBtnClickHandler)
- AddClickEvent(self.cancelBtn,onBtnClickHandler)
- AddClickEvent(self.addBtn,onBtnClickHandler)
- AddClickEvent(self.subBtn,onBtnClickHandler)
- end
-
- function EnlargeView:Open(pos,lock_index)
- self.pos = pos or GoodsModel.GOODS_POS_TYPE.bag
- self.lock_index = lock_index
- BaseView.Open(self)
- end
-
- function EnlargeView:SetData()
- local good_vo = GoodsModel:getInstance():GetGoodsBasicByTypeId(102601)
- self.base_view_titleText:GetComponent("TextMeshProUGUI").text = string.format("拓展%s",self.pos == GoodsModel.GOODS_POS_TYPE.bag and "背包" or "仓库")
- self.btn_text.text = self.pos == GoodsModel.GOODS_POS_TYPE.bag and "拓展背包" or "拓展仓库"
- self.icon_item:SetData(102601, 1, nil, nil, true)
- self.icon_item:SetItemSize(62, 62)
- self.name_text.text = HtmlColorTxt(good_vo.goods_name, WordManager.GetGoodsColor(good_vo.color))
- local own_count = GoodsModel:getInstance():GetTypeGoodsNum(102601)
- local info
- if self.pos == GoodsModel.GOODS_POS_TYPE.bag then
- info = self.model.slot_info_pos_2
- else
- info = self.model.slot_info_pos_3
- end
- local slot_num = info.slot_num or 0 --开放格子
- local def_num = info.def_cell or 0 --默认开放格子数
- local isOpenNum = slot_num - def_num
- self.total_count,self.total_cost = 0,0
- for i=1,self.lock_index do
- local num,cost = self:GetEnlargeCost(i+isOpenNum)
- self.total_count = self.total_count + num
- if own_count < self.total_count then
- self.total_cost = self.total_cost + cost
- end
- end
- local color = own_count >= self.total_count and ColorUtil.GREEN or ColorUtil.RED
- self.icon_item:SetNumText("")
- self.count_text.text = string.format("<color=%s>%d</color>/%d",color,own_count,self.total_count)
- --self.count_text.text = string.format("%d/%d",own_count,self.total_count)
-
- self.num.text = self.lock_index
- --self.lblTip:SetActive(own_count < self.total_count)
- self.lblTip:SetActive(false)
- end
-
- function EnlargeView:GetEnlargeCost( open_index )
- local num,cost = 0,0
- for k,v in pairs(Config.Expandbagcosts) do
- if self.pos == v.bag_type and v.min_cell <= open_index and v.max_cell >= open_index then
- local list = ErlangParser:GetInstance():Parse(v.cost_goods_list)
- if list then
- num = list[1][3]
- end
-
- local goods_price = Config.Goodsprice[102601]
- price = goods_price and goods_price.price or 5
- cost = price * num
- break
- end
- end
- return num,cost
- end
-
- function EnlargeView:ChangeCount(count)
- if count < 1 then
- return
- end
- local info
- if self.pos == GoodsModel.GOODS_POS_TYPE.bag then
- info = self.model.slot_info_pos_2
- else
- info = self.model.slot_info_pos_3
- end
- if count > info.all_slot - info.slot_num then
- return
- end
- self.lock_index = count
- self:SetData()
- end
|