皮肤道具点开界面

This commit is contained in:
Fang 2023-08-14 19:34:02 +08:00
parent 4845fd5480
commit 39ae534750
5 changed files with 57 additions and 25 deletions

View File

@ -16,6 +16,14 @@ HeroConst.CHECK_LV_UP_STATE = {
COIN_NOT_ENOUGH = 5
}
-- 英雄界面显示类型
HeroConst.PANEL_TYPE = {
HERO = 1,
WEAPON = 2,
ARMOR = 3,
SKIN = 4,
}
-- 总计
HeroConst.ATTR_SHOW_TOTAL = {
GConst.MATCH_HP_NAME, -- 生命

View File

@ -1,7 +1,7 @@
local HeroManager = class("HeroManager", BaseModule)
function HeroManager:showHeroDetailUI(heroId, onlyLook, heroEntity)
UIManager:showUI("app/ui/hero/hero_detail_ui", {heroId = heroId, onlyLook = onlyLook, heroEntity = heroEntity})
function HeroManager:showHeroDetailUI(heroId, onlyLook, heroEntity, skinId)
UIManager:showUI("app/ui/hero/hero_detail_ui", {heroId = heroId, onlyLook = onlyLook, heroEntity = heroEntity, skinId = skinId})
end
function HeroManager:showHeroUnlockUI(heroIdList)

View File

@ -46,6 +46,10 @@ function TipsManager:showRewardTips(rewardId, rewardType, tarPrefabObj, alignTyp
-- 英雄碎片
ModuleManager.HeroManager:showHeroDetailUI(info.parameter, true)
return
elseif info.type == GConst.ItemConst.ITEM_TYPE.SKIN then
-- 英雄皮肤
ModuleManager.HeroManager:showHeroDetailUI(DataManager.SkinData:getHeroIdBySkinId(rewardId), true, nil, rewardId)
return
elseif info.type == GConst.ItemConst.ITEM_TYPE.RANDOM_BOX_ITEM or info.type == GConst.ItemConst.ITEM_TYPE.FIXED_BOX_ITEM then
self:showBoxItemTips(rewardId)
return

View File

@ -4,15 +4,8 @@ local COMP_WEAPON = "app/ui/hero/weapon_info_comp"
local COMP_ARMOR = "app/ui/hero/armor_info_comp"
local COMP_SKIN = "app/ui/hero/skin_info_comp"
local SIZE_DELTA_Y_HERO = 942
local SIZE_DELTA_Y_LOOK = 802
-- 界面类型
local PANEL_TYPE = {
HERO = 1,
WEAPON = 2,
ARMOR = 3,
SKIN = 4,
}
local SIZE_DELTA_Y_LOOK_HERO = 802
local SIZE_DELTA_Y_LOOK_SKIN = 720
function HeroDetailUI:isFullScreen()
return false
@ -27,7 +20,13 @@ function HeroDetailUI:onPressBackspace()
end
function HeroDetailUI:ctor(parmas)
self.panelType = parmas.panelType or PANEL_TYPE.HERO
Logger.printTable(parmas)
if parmas.skinId then
self.onlyLookSkinId = parmas.skinId
self.panelType = GConst.HeroConst.PANEL_TYPE.SKIN
else
self.panelType = parmas.panelType or GConst.HeroConst.PANEL_TYPE.HERO
end
self.onlyLook = parmas.onlyLook
if parmas.heroEntity then
self.heroEntity = parmas.heroEntity
@ -101,28 +100,28 @@ function HeroDetailUI:onLoadRootComplete()
self:refreshShow()
self.btnHero:addClickListener(function()
self.panelType = PANEL_TYPE.HERO
self.panelType = GConst.HeroConst.PANEL_TYPE.HERO
self:refreshShow()
end)
self.btnWeapon:addClickListener(function()
if not DataManager.EquipData:isWeaponOpen(true) then
return
end
self.panelType = PANEL_TYPE.WEAPON
self.panelType = GConst.HeroConst.PANEL_TYPE.WEAPON
self:refreshShow()
end)
self.btnArmor:addClickListener(function()
if not DataManager.EquipData:isArmorOpen(true) then
return
end
self.panelType = PANEL_TYPE.ARMOR
self.panelType = GConst.HeroConst.PANEL_TYPE.ARMOR
self:refreshShow()
end)
self.btnSkin:addClickListener(function()
if not DataManager.SkinData:isOpen(true) then
return
end
self.panelType = PANEL_TYPE.SKIN
self.panelType = GConst.HeroConst.PANEL_TYPE.SKIN
self:refreshShow()
end)
self.btnClose:addClickListener(function()
@ -185,13 +184,13 @@ end
function HeroDetailUI:refreshShow()
self.txTitle:setText(self.heroEntity:getName())
if self.panelType == PANEL_TYPE.HERO then
if self.panelType == GConst.HeroConst.PANEL_TYPE.HERO then
self:showHeroInfo()
elseif self.panelType == PANEL_TYPE.WEAPON then
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.WEAPON then
self:showWeaponInfo()
elseif self.panelType == PANEL_TYPE.ARMOR then
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.ARMOR then
self:showArmorInfo()
elseif self.panelType == PANEL_TYPE.SKIN then
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.SKIN then
self:showSkinInfo()
end
if self.onlyLook then -- 仅查看的不显示升级和激活按钮
@ -201,7 +200,11 @@ function HeroDetailUI:refreshShow()
self.btnSkin:setActive(false)
self.btnLeft:setActive(false)
self.btnRight:setActive(false)
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_LOOK)
if self.panelType == GConst.HeroConst.PANEL_TYPE.HERO then
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_LOOK_HERO)
elseif self.panelType == GConst.HeroConst.PANEL_TYPE.SKIN then
self.commonInfo:setSizeDeltaY(SIZE_DELTA_Y_LOOK_SKIN)
end
else
self.btnHero:setActive(true)
self.btnWeapon:setActive(true)
@ -312,7 +315,7 @@ function HeroDetailUI:showSkinInfo()
self.compSkin:setUI(self)
end
self.compSkin:setHeroData(self.heroEntity)
self.compSkin:setHeroData(self.heroEntity, self.onlyLookSkinId)
self.compSkin:refresh()
end

View File

@ -2,6 +2,8 @@ local SkinInfoComp = class("SkinInfoComp", LuaComponent)
local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR
local PERCENT_FACTOR = 100
local SIZE_DELTA_Y_SKIN = 942
local SIZE_DELTA_Y_LOOK = 720
function SkinInfoComp:init()
local uiMap = self:getUIMap()
@ -10,7 +12,6 @@ function SkinInfoComp:init()
self.bgQlt = uiMap["skin_info.bg_qlt"]
self.iconQlt = uiMap["skin_info.bg_qlt.icon_qlt"]
self.txQlt = uiMap["skin_info.bg_qlt.tx_qlt"]
-- self.spineRoot = uiMap["skin_info.spine_root"]
self.spineSkin = uiMap["skin_info.spine_skin"]
self.txDesc1 = uiMap["skin_info.tx_desc_1"]
self.txDesc2 = uiMap["skin_info.tx_desc_2"]
@ -39,9 +40,15 @@ function SkinInfoComp:setUI(ui)
self.uiRoot = ui
end
function SkinInfoComp:setHeroData(heroEntity)
function SkinInfoComp:setHeroData(heroEntity, onlyLookSkinId)
self.heroEntity = heroEntity
self.selectSkinId = self.heroEntity:getSkinId()
if onlyLookSkinId then
self.onlyLook = true
self.selectSkinId = onlyLookSkinId
else
self.onlyLook = false
self.selectSkinId = self.heroEntity:getSkinId()
end
self:bind(self.heroEntity, "isDirty", function()
self:refresh()
end)
@ -207,6 +214,16 @@ function SkinInfoComp:refreshSelectSkin(selectId)
self.txSource:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_LOCKED))
end
end
if self.onlyLook then -- 仅查看
self.txDesc2:setVisible(false)
self.scrollrectComp.baseObject:setVisible(false)
self.baseObject:setSizeDeltaY(SIZE_DELTA_Y_LOOK)
else
self.txDesc2:setVisible(true)
self.scrollrectComp.baseObject:setVisible(true)
self.baseObject:setSizeDeltaY(SIZE_DELTA_Y_SKIN)
end
end
return SkinInfoComp