EmpowerExchangeView = EmpowerExchangeView or BaseClass(BaseItem)
|
|
local EmpowerExchangeView = EmpowerExchangeView
|
|
|
|
function EmpowerExchangeView:__init()
|
|
self.base_file = "empower"
|
|
self.layout_file = "EmpowerExchangeView"
|
|
self.emExchange_item_list ={}
|
|
self.model = EmpowerModel:GetInstance()
|
|
self:Load()
|
|
end
|
|
|
|
function EmpowerExchangeView:Load_callback()
|
|
self.nodes = {
|
|
"des:tmp", "icon_bg/icon:img", "icon_bg/add_btn:obj",
|
|
"icon_bg/count:tmp", "icon_bg"
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
self.itemCon = self:GetChild("ScrollView/Viewport/Content")
|
|
self.girlIcon = self:GetChild("girlIcon"):GetComponent("Image")
|
|
-- lua_resM:setOutsideImageSprite(self, self.girlIcon, GameResPath.GetRoleBg("empower_shop_girl"), false)
|
|
--self.freshBtn = self:GetChild("freshBtn").gameObject
|
|
self.num_txt = self:GetChild("moneyBg/num"):GetComponent("TextMeshProUGUI")
|
|
|
|
self.des_tmp.text = string.format('%s可兑换为%s升品石', HtmlColorTxt( "万能升品石", ColorUtil.PURPLE_DARK), HtmlColorTxt( "任意部位", ColorUtil.GREEN_DARK))
|
|
|
|
SetAnchoredPositionX(self.des, -210)
|
|
SetAnchoredPositionX(self.icon_bg, 235)
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function EmpowerExchangeView:AddEvents( )
|
|
local on_click = function ( click_obj )
|
|
if self.add_btn_obj == click_obj then
|
|
local empower_coin_good_id = self.model:GetEmpowerCoinGoodId()
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(empower_coin_good_id,
|
|
nil, nil,nil,nil,nil,nil,true)
|
|
end
|
|
end
|
|
AddClickEvent(self.add_btn_obj, on_click)
|
|
|
|
-- 监听材料数目变化
|
|
local function onBagChange()
|
|
self:UpdateGoodsCount( )
|
|
end
|
|
self.bag_change_event_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST, onBagChange)
|
|
|
|
-- 监听界面刷事件
|
|
local function update_view_func()
|
|
self:UpdateView( )
|
|
end
|
|
self:BindEvent(self.model, EmpowerConst.UPDATE_EXCHANGE_VIEW, update_view_func)
|
|
end
|
|
|
|
function EmpowerExchangeView:UpdateView( )
|
|
local exchangeReward = self.model:GetConfigMarbleKvVal("exchange_reward")
|
|
local list = ErlangParser:GetInstance():Parse(exchangeReward)
|
|
local good_id,cost_num = self:GetExchangeGoodId()
|
|
for k,v in pairs(list) do
|
|
local item = self.emExchange_item_list[k]
|
|
if item == nil then
|
|
item = EmpowerShopItem.New(self.itemCon)
|
|
self.emExchange_item_list[k] = item
|
|
end
|
|
local data = {}
|
|
data.goods_id = v[2]
|
|
data.num = v[3]
|
|
data.price = cost_num
|
|
data.discount = 0
|
|
data.is_pay = false
|
|
data.money_type = EmpowerConst.EmpowerMoneyId
|
|
if v.state == 1 then
|
|
data.is_gray = true
|
|
else
|
|
data.is_gray = false
|
|
end
|
|
if v[1] == 100 then
|
|
data.bind = true
|
|
else
|
|
data.bind = false
|
|
end
|
|
self.emExchange_item_list[k]:SetData(data,k,true)
|
|
end
|
|
|
|
-- 当前持有的数目
|
|
local asset, source = WordManager:GetCommonMoneyIcon(EmpowerConst.EmpowerMoneyId)
|
|
self.icon.sizeDelta = co.TableXY(26,21)
|
|
lua_resM:setImageSprite(self, self.icon_img, asset, source)
|
|
|
|
|
|
|
|
--exchange_cost
|
|
self:UpdateGoodsCount( )
|
|
end
|
|
|
|
-- 更新材料数目
|
|
function EmpowerExchangeView:UpdateGoodsCount( )
|
|
local empower_coin_good_id = self.model:GetEmpowerCoinGoodId()
|
|
local num = GoodsModel:getInstance():GetTypeGoodsNum(empower_coin_good_id)
|
|
self.count_tmp.text = num
|
|
self.model:Fire(EmpowerConst.UPDATA_EMTREASURE_COIN_NUM,num)
|
|
end
|
|
|
|
function EmpowerExchangeView:SetData( data )
|
|
self.data = data
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function EmpowerExchangeView:GetExchangeGoodId( )
|
|
local exchange_cost = self.model:GetConfigMarbleKvVal("exchange_cost")
|
|
local exchange_cost_list = ErlangParser:GetInstance():Parse(exchange_cost)[1]
|
|
self.exchangePropId = exchange_cost_list[2]
|
|
local exchangePropNum = exchange_cost_list[3]
|
|
return self.exchangePropId,exchangePropNum
|
|
end
|
|
|
|
function EmpowerExchangeView:__delete( )
|
|
for i, v in ipairs(self.emExchange_item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.emExchange_item_list = {}
|
|
|
|
if self.bag_change_event_id then
|
|
GoodsModel:getInstance():UnBind(self.bag_change_event_id)
|
|
self.bag_change_event_id = nil
|
|
end
|
|
end
|