皮肤道具点开界面

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 COIN_NOT_ENOUGH = 5
} }
-- 英雄界面显示类型
HeroConst.PANEL_TYPE = {
HERO = 1,
WEAPON = 2,
ARMOR = 3,
SKIN = 4,
}
-- 总计 -- 总计
HeroConst.ATTR_SHOW_TOTAL = { HeroConst.ATTR_SHOW_TOTAL = {
GConst.MATCH_HP_NAME, -- 生命 GConst.MATCH_HP_NAME, -- 生命

View File

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

View File

@ -46,6 +46,10 @@ function TipsManager:showRewardTips(rewardId, rewardType, tarPrefabObj, alignTyp
-- 英雄碎片 -- 英雄碎片
ModuleManager.HeroManager:showHeroDetailUI(info.parameter, true) ModuleManager.HeroManager:showHeroDetailUI(info.parameter, true)
return 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 elseif info.type == GConst.ItemConst.ITEM_TYPE.RANDOM_BOX_ITEM or info.type == GConst.ItemConst.ITEM_TYPE.FIXED_BOX_ITEM then
self:showBoxItemTips(rewardId) self:showBoxItemTips(rewardId)
return 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_ARMOR = "app/ui/hero/armor_info_comp"
local COMP_SKIN = "app/ui/hero/skin_info_comp" local COMP_SKIN = "app/ui/hero/skin_info_comp"
local SIZE_DELTA_Y_HERO = 942 local SIZE_DELTA_Y_HERO = 942
local SIZE_DELTA_Y_LOOK = 802 local SIZE_DELTA_Y_LOOK_HERO = 802
local SIZE_DELTA_Y_LOOK_SKIN = 720
-- 界面类型
local PANEL_TYPE = {
HERO = 1,
WEAPON = 2,
ARMOR = 3,
SKIN = 4,
}
function HeroDetailUI:isFullScreen() function HeroDetailUI:isFullScreen()
return false return false
@ -27,7 +20,13 @@ function HeroDetailUI:onPressBackspace()
end end
function HeroDetailUI:ctor(parmas) 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 self.onlyLook = parmas.onlyLook
if parmas.heroEntity then if parmas.heroEntity then
self.heroEntity = parmas.heroEntity self.heroEntity = parmas.heroEntity
@ -101,28 +100,28 @@ function HeroDetailUI:onLoadRootComplete()
self:refreshShow() self:refreshShow()
self.btnHero:addClickListener(function() self.btnHero:addClickListener(function()
self.panelType = PANEL_TYPE.HERO self.panelType = GConst.HeroConst.PANEL_TYPE.HERO
self:refreshShow() self:refreshShow()
end) end)
self.btnWeapon:addClickListener(function() self.btnWeapon:addClickListener(function()
if not DataManager.EquipData:isWeaponOpen(true) then if not DataManager.EquipData:isWeaponOpen(true) then
return return
end end
self.panelType = PANEL_TYPE.WEAPON self.panelType = GConst.HeroConst.PANEL_TYPE.WEAPON
self:refreshShow() self:refreshShow()
end) end)
self.btnArmor:addClickListener(function() self.btnArmor:addClickListener(function()
if not DataManager.EquipData:isArmorOpen(true) then if not DataManager.EquipData:isArmorOpen(true) then
return return
end end
self.panelType = PANEL_TYPE.ARMOR self.panelType = GConst.HeroConst.PANEL_TYPE.ARMOR
self:refreshShow() self:refreshShow()
end) end)
self.btnSkin:addClickListener(function() self.btnSkin:addClickListener(function()
if not DataManager.SkinData:isOpen(true) then if not DataManager.SkinData:isOpen(true) then
return return
end end
self.panelType = PANEL_TYPE.SKIN self.panelType = GConst.HeroConst.PANEL_TYPE.SKIN
self:refreshShow() self:refreshShow()
end) end)
self.btnClose:addClickListener(function() self.btnClose:addClickListener(function()
@ -185,13 +184,13 @@ end
function HeroDetailUI:refreshShow() function HeroDetailUI:refreshShow()
self.txTitle:setText(self.heroEntity:getName()) self.txTitle:setText(self.heroEntity:getName())
if self.panelType == PANEL_TYPE.HERO then if self.panelType == GConst.HeroConst.PANEL_TYPE.HERO then
self:showHeroInfo() self:showHeroInfo()
elseif self.panelType == PANEL_TYPE.WEAPON then elseif self.panelType == GConst.HeroConst.PANEL_TYPE.WEAPON then
self:showWeaponInfo() self:showWeaponInfo()
elseif self.panelType == PANEL_TYPE.ARMOR then elseif self.panelType == GConst.HeroConst.PANEL_TYPE.ARMOR then
self:showArmorInfo() self:showArmorInfo()
elseif self.panelType == PANEL_TYPE.SKIN then elseif self.panelType == GConst.HeroConst.PANEL_TYPE.SKIN then
self:showSkinInfo() self:showSkinInfo()
end end
if self.onlyLook then -- 仅查看的不显示升级和激活按钮 if self.onlyLook then -- 仅查看的不显示升级和激活按钮
@ -201,7 +200,11 @@ function HeroDetailUI:refreshShow()
self.btnSkin:setActive(false) self.btnSkin:setActive(false)
self.btnLeft:setActive(false) self.btnLeft:setActive(false)
self.btnRight: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 else
self.btnHero:setActive(true) self.btnHero:setActive(true)
self.btnWeapon:setActive(true) self.btnWeapon:setActive(true)
@ -312,7 +315,7 @@ function HeroDetailUI:showSkinInfo()
self.compSkin:setUI(self) self.compSkin:setUI(self)
end end
self.compSkin:setHeroData(self.heroEntity) self.compSkin:setHeroData(self.heroEntity, self.onlyLookSkinId)
self.compSkin:refresh() self.compSkin:refresh()
end end

View File

@ -2,6 +2,8 @@ local SkinInfoComp = class("SkinInfoComp", LuaComponent)
local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR local DEFAULT_FACTOR = GConst.BattleConst.DEFAULT_FACTOR
local PERCENT_FACTOR = 100 local PERCENT_FACTOR = 100
local SIZE_DELTA_Y_SKIN = 942
local SIZE_DELTA_Y_LOOK = 720
function SkinInfoComp:init() function SkinInfoComp:init()
local uiMap = self:getUIMap() local uiMap = self:getUIMap()
@ -10,7 +12,6 @@ function SkinInfoComp:init()
self.bgQlt = uiMap["skin_info.bg_qlt"] self.bgQlt = uiMap["skin_info.bg_qlt"]
self.iconQlt = uiMap["skin_info.bg_qlt.icon_qlt"] self.iconQlt = uiMap["skin_info.bg_qlt.icon_qlt"]
self.txQlt = uiMap["skin_info.bg_qlt.tx_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.spineSkin = uiMap["skin_info.spine_skin"]
self.txDesc1 = uiMap["skin_info.tx_desc_1"] self.txDesc1 = uiMap["skin_info.tx_desc_1"]
self.txDesc2 = uiMap["skin_info.tx_desc_2"] self.txDesc2 = uiMap["skin_info.tx_desc_2"]
@ -39,9 +40,15 @@ function SkinInfoComp:setUI(ui)
self.uiRoot = ui self.uiRoot = ui
end end
function SkinInfoComp:setHeroData(heroEntity) function SkinInfoComp:setHeroData(heroEntity, onlyLookSkinId)
self.heroEntity = heroEntity 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:bind(self.heroEntity, "isDirty", function()
self:refresh() self:refresh()
end) end)
@ -207,6 +214,16 @@ function SkinInfoComp:refreshSelectSkin(selectId)
self.txSource:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_LOCKED)) self.txSource:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_LOCKED))
end end
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 end
return SkinInfoComp return SkinInfoComp