|
NiceGoodsTips = NiceGoodsTips or BaseClass(BaseView)
|
|
local NiceGoodsTips = NiceGoodsTips
|
|
--[[
|
|
NiceGoodsTips.TabData = {
|
|
[1] = {name = "人物", level = MainRoleModel.TabOpenLevel[1]},
|
|
}
|
|
--]]
|
|
|
|
function NiceGoodsTips:__init()
|
|
self.base_file = "common"
|
|
self.layout_file = "NiceGoodsTips"
|
|
self.layer_name = "Top"
|
|
self.destroy_imm = true
|
|
self.is_set_zdepth = true
|
|
self.use_background = true --全屏界面默认使用这个参数
|
|
self.click_bg_toClose = true
|
|
self.hide_maincancas = false
|
|
self.change_scene_close = true
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.model = GoodsModel:getInstance()
|
|
self.shop_model = ShopModel:getInstance()
|
|
self.pos_x = 0
|
|
self.pos_y = 0
|
|
self.goods_vo = nil
|
|
self.is_show_btn = nil
|
|
self.mainVo = RoleManager.Instance.mainRoleInfo
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:OpenSuccess()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function NiceGoodsTips:Open(type_id, x, y, goods_vo, show_btn_list, parm_list)
|
|
self.type_id = type_id
|
|
self.is_show_btn = goods_vo ~= nil
|
|
self.show_btn_list = show_btn_list
|
|
self.parm_list = parm_list
|
|
self.shop_data = parm_list and parm_list.shop_data or nil
|
|
self.goods_vo = goods_vo or self.model:GetGoodsBasicByTypeId(type_id)
|
|
self.pos_x = x
|
|
self.pos_y = y
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function NiceGoodsTips:LoadSuccess()
|
|
local nodes = {
|
|
"layout/base_con/attr_scroll","layout/base_con/line1:obj","layout/base_con/attr_scroll/Viewport/attr_con",
|
|
"layout/base_con/designation_con:obj","layout/base_con/power_text:txt","layout/base_con/bg:raw",
|
|
"layout/base_con/get_text:txt","layout/base_con/desc_text:txt","layout/base_con/name_text:txt","layout/base_con/limit_image:obj",
|
|
----------------------------
|
|
"layout:obj","layout/base_con/designation_con/designation_image:obj:img",
|
|
"layout/base_con/designation_con/designation_text:txt","layout/base_con/designation_con/designation_effect:obj",
|
|
"layout/base_con/roleCon:obj","layout/btns_con:obj",
|
|
|
|
--商城购买界面
|
|
"layout/shop_con:obj",
|
|
}
|
|
self:GetChildren(nodes)
|
|
self.shiyongBtn = self:GetChild("layout/btns_con/shiyongBtn").gameObject
|
|
self.hechengBtn = self:GetChild("layout/btns_con/hechengBtn").gameObject
|
|
self.chushouBtn = self:GetChild("layout/btns_con/chushouBtn").gameObject
|
|
self.yulanBtn = self:GetChild("layout/btns_con/yulanBtn").gameObject
|
|
self.storeBtn = self:GetChild("layout/btns_con/storeBtn").gameObject
|
|
self.takeBtn = self:GetChild("layout/btns_con/takeBtn").gameObject
|
|
self.splitBtn = self:GetChild("layout/btns_con/splitBtn").gameObject
|
|
self.shelvesUpBtn = self:GetChild("layout/btns_con/shelvesUpBtn").gameObject
|
|
self.shelvesDownBtn = self:GetChild("layout/btns_con/shelvesDownBtn").gameObject
|
|
self.decomposeBtn = self:GetChild("layout/btns_con/decomposeBtn").gameObject
|
|
self.oneKeyBuyBtn = self:GetChild("layout/btns_con/oneKeyBuyBtn").gameObject
|
|
self.replaceBtn = self:GetChild("layout/btns_con/replaceBtn").gameObject
|
|
self.dropBtn = self:GetChild("layout/btns_con/dropBtn").gameObject
|
|
self.capsuleEggTakeBtn = self:GetChild("layout/btns_con/capsuleEggTakeBtn").gameObject
|
|
self.btns_list = {
|
|
self.shiyongBtn, self.hechengBtn, self.chushouBtn,
|
|
self.yulanBtn, self.storeBtn, self.takeBtn, self.splitBtn,
|
|
self.shelvesUpBtn, self.shelvesDownBtn,
|
|
self.oneKeyBuyBtn, self.decomposeBtn, self.replaceBtn, self.dropBtn,self.capsuleEggTakeBtn
|
|
}
|
|
end
|
|
|
|
function NiceGoodsTips:AddEvent()
|
|
local function onClickBtnHandler(target)
|
|
if (self.goods_vo and (self.is_show_btn or CapsuleEggModel:getInstance():IsShowCapsuleEggTakeOutBtn() or self:ForeceTriggerEvt())) then
|
|
if target == self.shiyongBtn then
|
|
if self.mainVo.level < self.goods_vo.level then
|
|
Message.show("等级不足,无法使用")
|
|
return
|
|
end
|
|
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
|
|
if basic.use_way and basic.use_way ~= "" then
|
|
local use_table = stringtotable(basic.use_way)
|
|
if use_table and use_table[1] and use_table[2] then
|
|
--特殊参数处理
|
|
local arg1, arg2
|
|
if self.goods_vo.type_id == 102601 then --扩容钥匙
|
|
local num = self.goods_vo.goods_num
|
|
local open_count = math.max(math.floor(num / 2), 1)
|
|
arg1 = self.goods_pos_type
|
|
arg2 = open_count
|
|
end
|
|
OpenFun.Open(tonumber(use_table[1]), tonumber(use_table[2]), arg1, arg2)
|
|
self:Close()
|
|
return
|
|
end
|
|
end
|
|
self:CheckSecondView()
|
|
|
|
elseif target == self.hechengBtn then
|
|
self:JumpComposeFunc()
|
|
elseif target == self.chushouBtn then
|
|
GlobalEventSystem:Fire(EventName.OPEN_SEll_VIEW, self.goods_vo)
|
|
elseif target == self.storeBtn then
|
|
GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT, 15003, self.goods_vo.goods_id, GoodsModel.GOODS_POS_TYPE.bag, GoodsModel.GOODS_POS_TYPE.warehouse)
|
|
elseif target == self.takeBtn then
|
|
GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT, 15003, self.goods_vo.goods_id, GoodsModel.GOODS_POS_TYPE.warehouse, GoodsModel.GOODS_POS_TYPE.bag)
|
|
elseif target == self.splitBtn then
|
|
BagModel:getInstance():Fire(BagModel.OPEN_BATHANDLE_VIEW, self.goods_vo, SplitView.TYPE.SPLIT)
|
|
elseif target == self.yulanBtn then
|
|
elseif target == self.shelvesUpBtn then
|
|
|
|
elseif target == self.shelvesDownBtn then
|
|
elseif target == self.oneKeyBuyBtn then
|
|
|
|
elseif target == self.decomposeBtn then
|
|
BagModel:getInstance():Fire(BagModel.OPEN_EQUIP_DECOMPOSE_VIEW, self.goods_vo)
|
|
elseif target == self.dropBtn then
|
|
BagModel:getInstance():Fire(BagModel.OPEN_BATHANDLE_VIEW, self.goods_vo, SplitView.TYPE.BAT_DROP)
|
|
elseif target == self.replaceBtn then
|
|
if self.goods_vo then
|
|
local has_vo, main, sub = HorseModel:getInstance():CheckVoIsOnMaterialTab(self.goods_vo)
|
|
if has_vo then
|
|
local typ = (self.parm_list and self.parm_list.material_type and self.parm_list.material_type ~= 0) and self.parm_list.material_type or main
|
|
local pos = (self.parm_list and self.parm_list.material_pos and self.parm_list.material_pos ~= 0) and self.parm_list.material_pos or sub
|
|
HorseModel:getInstance():Fire(HorsePetEvent.SELECT_MATERIAL_VIEW, typ, true, pos)
|
|
self:Close()
|
|
return
|
|
end
|
|
end
|
|
elseif target == self.capsuleEggTakeBtn then --龙神宝库临时仓库取出按钮
|
|
local now_warehouse_selected_goods_id = CapsuleEggModel:getInstance():GetWarehouseNowSelectedGoodsId()
|
|
CapsuleEggModel:getInstance():Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17008,now_warehouse_selected_goods_id)
|
|
CapsuleEggModel:getInstance():ResetWarehouseNowSelectedGoodsId()
|
|
end
|
|
end
|
|
self:Close()
|
|
end
|
|
AddClickEvent(self.shiyongBtn, onClickBtnHandler)
|
|
AddClickEvent(self.hechengBtn, onClickBtnHandler)
|
|
AddClickEvent(self.chushouBtn, onClickBtnHandler)
|
|
AddClickEvent(self.storeBtn, onClickBtnHandler)
|
|
AddClickEvent(self.takeBtn, onClickBtnHandler)
|
|
AddClickEvent(self.splitBtn, onClickBtnHandler)
|
|
AddClickEvent(self.yulanBtn, onClickBtnHandler)
|
|
AddClickEvent(self.shelvesUpBtn, onClickBtnHandler)
|
|
AddClickEvent(self.shelvesDownBtn, onClickBtnHandler)
|
|
AddClickEvent(self.oneKeyBuyBtn, onClickBtnHandler)
|
|
AddClickEvent(self.decomposeBtn, onClickBtnHandler)
|
|
AddClickEvent(self.replaceBtn, onClickBtnHandler)
|
|
AddClickEvent(self.dropBtn, onClickBtnHandler)
|
|
AddClickEvent(self.capsuleEggTakeBtn,onClickBtnHandler)
|
|
|
|
function on_close( )
|
|
self:Close()
|
|
end
|
|
self:BindEvent(self.shop_model,ShopModel.CLOSE_SHOP_BUY_VIEW, on_close)
|
|
end
|
|
|
|
function NiceGoodsTips:OpenSuccess()
|
|
self:UpdateView()
|
|
end
|
|
|
|
function NiceGoodsTips:UpdateView()
|
|
if self.goods_vo == nil then return end
|
|
local basic = self.model:GetGoodsBasicByTypeId(self.type_id)
|
|
self.attr_list = {}
|
|
self.designation_con_obj:SetActive(false)
|
|
self.roleCon_obj:SetActive(false)
|
|
if basic.type == GoodsModel.TYPE.DESIGNATION then
|
|
lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("designation_tip_bg"),true)
|
|
local cfg = Config.Dsgt
|
|
local designation_id = DesignationModel:GetInstance():GetDesignationIdByGoodsId(self.type_id)
|
|
self.attr_list = stringtotable(cfg[designation_id].attr_list)
|
|
local is_limit = DesignationModel:GetInstance():IsDesignationLimitTime(designation_id)
|
|
self.limit_image_obj:SetActive(is_limit)
|
|
self.designation_image_obj:SetActive(false)
|
|
self.designation_effect_obj:SetActive(false)
|
|
self.name_text_txt.text = ""
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.designation_image)
|
|
if cfg[designation_id].type == 1 then--文字称号(文字称号也用图片了)
|
|
self.designation_image_obj:SetActive(true)
|
|
lua_resM:setOutsideImageSprite(self, self.designation_image_img, GameResPath.GetDesignImage(cfg[designation_id].id), true)
|
|
self.designation_text_txt.text = ""
|
|
elseif cfg[designation_id].type == 2 then--图片称号
|
|
self.designation_image_obj:SetActive(true)
|
|
lua_resM:setOutsideImageSprite(self, self.designation_image_img, GameResPath.GetDesignImage(cfg[designation_id].id), true)
|
|
self.designation_text_txt.text = ""
|
|
elseif cfg[designation_id].type == 3 then--特效称号
|
|
self.designation_image_obj:SetActive(true)
|
|
local data = DesignationConst.DesignationData[cfg[designation_id].id] or DesignationConst.DesignationData[0]
|
|
local action = cc.Animation.New(data,0.15)
|
|
cc.ActionManager:getInstance():addAction(cc.RepeatForever.New(action),self.designation_image.transform)
|
|
self.designation_text_txt.text = ""
|
|
end
|
|
self.designation_con_obj:SetActive(true)
|
|
elseif basic.type == GoodsModel.TYPE.FASHION then
|
|
local fashion_id,color_id = FashionModel:getInstance():GetFashionIdByGoodsId(self.type_id)
|
|
local cur_cfg = Config.Fashionstarup[fashion_id.."@"..color_id.."@0"]
|
|
if cur_cfg then
|
|
self.attr_list = stringtotable(cur_cfg.attr_list)
|
|
end
|
|
lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("fashion_tip_bg"),true)
|
|
local is_limit = FashionModel:GetInstance():IsFashionLimitTime(fashion_id,color_id)
|
|
self.limit_image_obj:SetActive(is_limit)
|
|
self.roleCon_obj:SetActive(true)
|
|
elseif basic.type == GoodsModel.TYPE.CHILDTOY then
|
|
lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("designation_tip_bg"),true)
|
|
self.designation_con_obj:SetActive(true)
|
|
self.designation_image_obj:SetActive(true)
|
|
lua_resM:setOutsideImageSprite(self, self.designation_image_img, GameResPath.GetChildHandbookIcon(basic.type_id), true)
|
|
if DeepCopy(Config.Childtoynew)[basic.type_id] then
|
|
self.attr_list = stringtotable(DeepCopy(Config.Childtoynew)[basic.type_id].attr_list)
|
|
end
|
|
end
|
|
self.name_text_txt.text = basic.goods_name
|
|
self.get_text_txt.text = basic.getway
|
|
self.desc_text_txt.text = basic.intro
|
|
self:SetBtnCon()
|
|
self:UpdateAttrCon()
|
|
if self.shop_data then
|
|
self.shop_con_obj:SetActive(true)
|
|
self:UpdateShopView()
|
|
else
|
|
self.shop_con_obj:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function NiceGoodsTips:UpdateAttrCon( )
|
|
local attr_list = self.attr_list
|
|
if not self.attr_list_com then
|
|
self.attr_list_com = self:AddUIComponent(UI.ItemListCreator)
|
|
end
|
|
local child_names = {
|
|
"num_text:txt","name_text:txt",
|
|
}
|
|
self.power_text_txt.text = GetFighting(attr_list)
|
|
local function on_update( item,i,v )
|
|
local _, name, _, val = WordManager:GetPropertyInfo(v[1], v[2])
|
|
item.name_text_txt.text = name..":"
|
|
item.num_text_txt.text = val
|
|
end
|
|
|
|
local info = {
|
|
data_list = attr_list,
|
|
item_con = self.attr_con,
|
|
prefab_ab_name = "common",
|
|
prefab_res_name = "NiceGoodsAttrItem",
|
|
item_width = 160,
|
|
item_height = 34,
|
|
space_x = 2,
|
|
space_y = 2,
|
|
start_x = 2,
|
|
start_y = -2,
|
|
scroll_view = self.attr_scroll,
|
|
create_frequency = 0.05,
|
|
is_scroll_back_on_update = false,
|
|
child_names = child_names,
|
|
on_update_item = function(item, i, v)
|
|
on_update(item,i,v)
|
|
end,
|
|
}
|
|
self.attr_list_com:UpdateItems(info)
|
|
end
|
|
|
|
function NiceGoodsTips:SetBtnCon( )
|
|
local basic = self.model:GetGoodsBasicByTypeId(self.type_id)
|
|
for i, v in pairs(self.btns_list) do
|
|
v:SetActive(false)
|
|
end
|
|
|
|
local btns_list = {}
|
|
if self.model:IsShowPreviewBtn(self.type_id) then
|
|
table.insert(btns_list, self.yulanBtn)
|
|
self.yulanBtn:SetActive(true)
|
|
else
|
|
self.yulanBtn:SetActive(false)
|
|
end
|
|
|
|
if self.is_show_btn then
|
|
if (self.goods_vo.use > 0 or self.goods_vo.use_way ~= "") and self.mainVo.level >= self.goods_vo.level then
|
|
table.insert(btns_list, self.shiyongBtn)
|
|
end
|
|
if basic.jump > 0 then--and self.mainVo.level >= self.goods_vo.level then
|
|
table.insert(btns_list, self.jumpBtn)
|
|
end
|
|
if self.goods_vo.compose > 0 then
|
|
table.insert(btns_list, self.hechengBtn)
|
|
end
|
|
if self.goods_vo.goods_num > 1 then
|
|
table.insert(btns_list, self.splitBtn)
|
|
end
|
|
|
|
if self.goods_vo.sell > 0 then
|
|
table.insert(btns_list, self.chushouBtn)
|
|
end
|
|
|
|
if MarketModel:getInstance():IsGoodsCanUpShelves(self.goods_vo) then
|
|
table.insert(btns_list, self.shelvesUpBtn)
|
|
end
|
|
|
|
if basic and basic.drop == 1 then
|
|
table.insert(btns_list, self.dropBtn)
|
|
end
|
|
|
|
end
|
|
|
|
local hide_yulan_btn = false
|
|
if GoodsModel:getInstance().show_warehouse == true and self.goods_vo.pos == GoodsModel.GOODS_POS_TYPE.bag then
|
|
hide_yulan_btn = true
|
|
btns_list = {self.storeBtn}
|
|
elseif self.goods_vo.pos == GoodsModel.GOODS_POS_TYPE.warehouse then
|
|
hide_yulan_btn = true
|
|
btns_list = {self.takeBtn}
|
|
elseif self.goods_vo.pos == GoodsModel.GOODS_POS_TYPE.hunt_store then
|
|
hide_yulan_btn = true
|
|
btns_list = {self.takeBtn}
|
|
end
|
|
if hide_yulan_btn then
|
|
self.yulanBtn:SetActive(false)
|
|
end
|
|
|
|
if CapsuleEggModel:getInstance():IsShowCapsuleEggTakeOutBtn() then--龙神宝库扭蛋临时仓库显示取出按钮
|
|
btns_list = {self.capsuleEggTakeBtn}
|
|
end
|
|
|
|
--自定义显示的按钮
|
|
if self.show_btn_list then
|
|
btns_list = self:ShowCustomBtns()
|
|
end
|
|
|
|
local btns_len = #btns_list
|
|
self.btns_con_obj:SetActive(btns_len > 0)
|
|
local local_index = 0
|
|
local local_offset_h = 55
|
|
for k, v in ipairs(btns_list) do
|
|
local b = self.is_show_btn
|
|
or CapsuleEggModel:getInstance():IsShowCapsuleEggTakeOutBtn()--龙神宝库仓库需要显示按钮
|
|
v:SetActive(b)
|
|
if b then
|
|
print(v)
|
|
SetAnchoredPosition(v.transform, 8, local_index * local_offset_h - 504)
|
|
local_index = local_index + 1
|
|
end
|
|
end
|
|
|
|
if not hide_yulan_btn then
|
|
if self.goods_vo.type == 32 or self.goods_vo.type == 34 then
|
|
self.yulanBtn:SetActive(true)
|
|
end
|
|
end
|
|
end
|
|
|
|
function NiceGoodsTips:CheckSecondView()
|
|
if self.goods_vo.type == GoodsModel.TYPE.DESIGNATION then--称号类型物品直接发激活协议
|
|
local designation_id = DesignationModel:GetInstance():GetDesignationIdByGoodsId(self.goods_vo.type_id)
|
|
if designation_id ~= 0 then
|
|
DesignationModel:GetInstance():Fire(DesignationModel.REQUEST_DESIGNATION, 41106, self.goods_vo.type_id, designation_id, 1)
|
|
else
|
|
Message.show("称号物品有点问题哦~请联系GM")
|
|
end
|
|
return
|
|
elseif self.goods_vo.type == GoodsModel.TYPE.FASHION and self.goods_vo.subtype ~= GoodsModel.FASHION_LIMIT_SUB_TYPE then--时装体验卡物品不走这里的激活协议
|
|
local fashion_id,color_id = FashionModel:getInstance():GetFashionIdByGoodsId(self.type_id)
|
|
local cur_cfg = Config.Fashionstarup[fashion_id.."@"..color_id.."@0"]
|
|
if cur_cfg then
|
|
local pos = cur_cfg.pos_id
|
|
FashionModel:GetInstance():Fire(FashionEvent.REQUEST_FASHION_PROTOCOL, 41306, pos, fashion_id, color_id)
|
|
else
|
|
Message.show("时装物品有点问题哦~请联系GM")
|
|
end
|
|
return
|
|
end
|
|
|
|
if self.goods_vo.use == 1 then
|
|
if self.goods_vo.goods_num > 1 then
|
|
BagModel:getInstance():Fire(BagModel.OPEN_BATHANDLE_VIEW, self.goods_vo, SplitView.TYPE.BAT_USE)
|
|
else
|
|
self.model:Fire(GoodsModel.REQUEST_CCMD_EVENT, 15050, self.goods_vo.goods_id, self.goods_vo.type_id, 1)
|
|
end
|
|
else
|
|
self.model:Fire(GoodsModel.REQUEST_CCMD_EVENT, 15050, self.goods_vo.goods_id, self.goods_vo.type_id, 1)
|
|
end
|
|
end
|
|
|
|
function NiceGoodsTips:ShowCustomBtns()
|
|
local temp_list = {}
|
|
for _, v in pairs(self.btns_list) do
|
|
v:SetActive(false)
|
|
end
|
|
|
|
for _, v in pairs(self.show_btn_list) do
|
|
if self[v] then
|
|
table.insert(temp_list, self[v])
|
|
end
|
|
end
|
|
return temp_list
|
|
end
|
|
|
|
function NiceGoodsTips:DestroySuccess( )
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.designation_image)
|
|
if self.change_count_id then
|
|
self.addNumComponent:UnBind(self.change_count_id)
|
|
self.change_count_id = nil
|
|
|
|
self.addNumComponent:DeleteMe()
|
|
self.addNumComponent = nil
|
|
end
|
|
|
|
if self.change_jin_id then
|
|
self.mainVo:UnBind(self.change_jin_id)
|
|
self.change_jin_id = nil
|
|
end
|
|
if self.change_lockJin_id then
|
|
self.mainVo:UnBind(self.change_lockJin_id)
|
|
self.change_lockJin_id = nil
|
|
end
|
|
if self.change_silver_id then
|
|
self.mainVo:UnBind(self.change_silver_id)
|
|
self.change_silver_id = nil
|
|
end
|
|
if self.score_change_event_id then
|
|
GoodsModel:getInstance():UnBind(self.score_change_event_id)
|
|
self.score_change_event_id = nil
|
|
end
|
|
if self.shop_view then
|
|
self.shop_view:DeleteMe()
|
|
self.shop_view = nil
|
|
end
|
|
end
|
|
|
|
function NiceGoodsTips:UpdateShopView( )
|
|
if not self.shop_view then
|
|
self.shop_view = ShopBuySubView.New(self.shop_con)
|
|
end
|
|
self.shop_view:SetData(self.shop_data)
|
|
self.shop_view:SetPosition(9,-141)
|
|
end
|