From e2ef9ea208a6746c3bab823af23fe2a5789cec05 Mon Sep 17 00:00:00 2001 From: Fang Date: Fri, 14 Jul 2023 17:35:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/ui/hero/hero_comp.lua | 25 ++++++++++++++++--- .../collection/collection_base_entity.lua | 5 ++++ .../userdata/collection/collection_data.lua | 5 ++++ .../collection/collection_hero_entity.lua | 20 +++++++++++++++ lua/app/userdata/hero/hero_data.lua | 4 +++ 5 files changed, 56 insertions(+), 3 deletions(-) diff --git a/lua/app/ui/hero/hero_comp.lua b/lua/app/ui/hero/hero_comp.lua index 984d348b..c0d0e74f 100644 --- a/lua/app/ui/hero/hero_comp.lua +++ b/lua/app/ui/hero/hero_comp.lua @@ -70,6 +70,13 @@ function HeroComp:init() self.heroBgSpineObj[index]:playAnim("idle", true, false) end end + + self:bind(DataManager.CollectionData, "dirtyHero", function() + self:refreshCollectEntrance() + end) + self:bind(DataManager.HeroData, "isDirty", function() + self:refreshCollectEntrance() + end) end function HeroComp:refresh(battleType) @@ -77,6 +84,7 @@ function HeroComp:refresh(battleType) self:clearAdapt() self:adapt() + self:refreshCollectEntrance() if self.battleType == GConst.BattleConst.FORMATION_TYPE.STAGE then self:refreshStageFormation() elseif self.battleType == GConst.BattleConst.FORMATION_TYPE.ARENA_ATTACK then @@ -91,7 +99,6 @@ function HeroComp:refreshStageFormation() self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.MAIN_BTN_2)) self.rimgTopBG:setTexture("assets/arts/textures/background/hero/hero_bg_1.png") self.curFormation = DataManager.FormationData:getStageFormation() - self.btnCollection:setVisible(DataManager.CollectionData:isOpen(GConst.CollectionConst.TYPE.HERO)) self.onClickUseFunc = function(id, type) ModuleManager.FormationManager:upHeroToStageFormation(id, type) @@ -105,7 +112,6 @@ function HeroComp:refreshArenaFightFormation() self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_10)) self.rimgTopBG:setTexture("assets/arts/textures/background/arena/arena_bg_2.png") self.curFormation = DataManager.FormationData:getArenaAttackFormation() - self.btnCollection:setVisible(false) self.onClickUseFunc = function(id, type) DataManager.FormationData:upHeroToFormation(self.battleType, type, id) @@ -120,7 +126,6 @@ function HeroComp:refreshArenaDefendFormation() self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_9)) self.rimgTopBG:setTexture("assets/arts/textures/background/arena/arena_bg_2.png") self.curFormation = DataManager.FormationData:getArenaDefendFormation() - self.btnCollection:setVisible(false) self.onClickUseFunc = function(id, type) DataManager.FormationData:upHeroToFormation(self.battleType, type, id) @@ -279,4 +284,18 @@ function HeroComp:getHeroCell(heroId) return targetCell end +-- 刷新图鉴入口 +function HeroComp:refreshCollectEntrance() + if self.battleType == GConst.BattleConst.FORMATION_TYPE.STAGE then + self.btnCollection:setVisible(DataManager.CollectionData:isOpen(GConst.CollectionConst.TYPE.HERO)) + if DataManager.CollectionData:hasRedPoint(GConst.CollectionConst.TYPE.HERO) then + self.btnCollection:addRedPoint(25, 30, 0.6) + else + self.btnCollection:removeRedPoint() + end + else + self.btnCollection:setVisible(false) + end +end + return HeroComp \ No newline at end of file diff --git a/lua/app/userdata/collection/collection_base_entity.lua b/lua/app/userdata/collection/collection_base_entity.lua index be57be25..1165a852 100644 --- a/lua/app/userdata/collection/collection_base_entity.lua +++ b/lua/app/userdata/collection/collection_base_entity.lua @@ -6,6 +6,11 @@ local CollectionBaseEntity = class("CollectionBaseEntity", BaseData) function CollectionBaseEntity:init(data) end +-- 是否有红点 +function CollectionBaseEntity:hasRedPoint() + return nil +end + -- 获取当前收集值 function CollectionBaseEntity:getCurCollectPoint() return nil diff --git a/lua/app/userdata/collection/collection_data.lua b/lua/app/userdata/collection/collection_data.lua index 1095177d..025ae0f4 100644 --- a/lua/app/userdata/collection/collection_data.lua +++ b/lua/app/userdata/collection/collection_data.lua @@ -61,6 +61,11 @@ function CollectionData:getCollectEntity(type) return self.dataCollects[type] end +-- 是否有红点 +function CollectionData:hasRedPoint(type) + return self.dataCollects[type]:hasRedPoint() +end + -- 获取当前收集值 function CollectionData:getCurCollectPoint(type) return self.dataCollects[type]:getCurCollectPoint() diff --git a/lua/app/userdata/collection/collection_hero_entity.lua b/lua/app/userdata/collection/collection_hero_entity.lua index 10df3ec0..332c146e 100644 --- a/lua/app/userdata/collection/collection_hero_entity.lua +++ b/lua/app/userdata/collection/collection_hero_entity.lua @@ -9,6 +9,26 @@ function CollectionHeroEntity:init(data) self.curPoint = data.point end +-- 是否有红点 +function CollectionHeroEntity:hasRedPoint() + + -- 可领点数 + for idx, data in pairs(self:getCollectList()) do + if self:getCanCollectPoint(data.id) > 0 then + return true + end + end + + -- 可领奖励 + for id, data in pairs(self:getRewardList()) do + if self:isMeetTargetPoint(id) and not self:isRewardReceived(id) then + return true + end + end + + return false +end + -- 获取当前收集值 function CollectionHeroEntity:getCurCollectPoint() return self.curPoint diff --git a/lua/app/userdata/hero/hero_data.lua b/lua/app/userdata/hero/hero_data.lua index e4c01d52..3c220227 100644 --- a/lua/app/userdata/hero/hero_data.lua +++ b/lua/app/userdata/hero/hero_data.lua @@ -173,6 +173,10 @@ function HeroData:getRp() end end + if DataManager.CollectionData:hasRedPoint(GConst.CollectionConst.TYPE.HERO) then + return true + end + return false end