diff --git a/lua/app/module/hero/hero_const.lua b/lua/app/module/hero/hero_const.lua index 0fbdfbc7..b8bc0f4d 100644 --- a/lua/app/module/hero/hero_const.lua +++ b/lua/app/module/hero/hero_const.lua @@ -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, -- 生命 diff --git a/lua/app/module/hero/hero_manager.lua b/lua/app/module/hero/hero_manager.lua index 2a3b94f0..7f3559c0 100644 --- a/lua/app/module/hero/hero_manager.lua +++ b/lua/app/module/hero/hero_manager.lua @@ -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) diff --git a/lua/app/module/tips/tips_manager.lua b/lua/app/module/tips/tips_manager.lua index 4bf06d67..acbc13aa 100644 --- a/lua/app/module/tips/tips_manager.lua +++ b/lua/app/module/tips/tips_manager.lua @@ -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 diff --git a/lua/app/ui/hero/hero_detail_ui.lua b/lua/app/ui/hero/hero_detail_ui.lua index d72bd28c..094b33f8 100644 --- a/lua/app/ui/hero/hero_detail_ui.lua +++ b/lua/app/ui/hero/hero_detail_ui.lua @@ -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 diff --git a/lua/app/ui/hero/skin_info_comp.lua b/lua/app/ui/hero/skin_info_comp.lua index 245cb9f8..95fdce8e 100644 --- a/lua/app/ui/hero/skin_info_comp.lua +++ b/lua/app/ui/hero/skin_info_comp.lua @@ -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 \ No newline at end of file