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

135 lines
4.2 KiB

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