diff --git a/lua/app/module/battle/controller/battle_controller.lua b/lua/app/module/battle/controller/battle_controller.lua index 51d8cb77..f14d3e38 100644 --- a/lua/app/module/battle/controller/battle_controller.lua +++ b/lua/app/module/battle/controller/battle_controller.lua @@ -1166,6 +1166,11 @@ function BattleController:onSelectSkill(skillId) self.battleData:addSkillCount(skillId) BATTLE_ROGUE_SKILL_HANDLE.takeEffect(skillId, self.battleData, self) + local skillEntities = self.battleData:getSkillEntities() + for _, entity in pairs(skillEntities) do + entity:gotUpSKill(skillId) + end + if self.battleData:useAddlvCount() then ModuleManager.BattleManager:showSelectSkillUI(self:getRandomSkillList()) else @@ -1174,6 +1179,7 @@ function BattleController:onSelectSkill(skillId) if self.battleUI then self.battleUI:refreshBoard() + self.battleUI:refreshSkill() end end diff --git a/lua/app/ui/battle/battle_result_ui.lua b/lua/app/ui/battle/battle_result_ui.lua index 75f3e4ea..84d8c5c9 100644 --- a/lua/app/ui/battle/battle_result_ui.lua +++ b/lua/app/ui/battle/battle_result_ui.lua @@ -69,7 +69,7 @@ function BattleResultUI:refreshVictoryNode() uiMap["battle_result_ui.mask_d"]:setActive(false) uiMap["battle_result_ui.defeat_node"]:setActive(false) uiMap["battle_result_ui.victory_node"]:setActive(true) - uiMap["battle_result_ui.victory_node.title_bg.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_6)) + uiMap["battle_result_ui.victory_node.title_bg.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_5)) end function BattleResultUI:refreshDefeatNode() diff --git a/lua/app/userdata/battle/battle_data.lua b/lua/app/userdata/battle/battle_data.lua index 8b572c81..815feb5f 100644 --- a/lua/app/userdata/battle/battle_data.lua +++ b/lua/app/userdata/battle/battle_data.lua @@ -36,6 +36,7 @@ function BattleData:initRogueSkills() local skillId = heroEntity:getActiveSkill() local cfg = SKILL_CFG[skillId] self.skillMap[cfg.position] = BATTLE_BOARD_SKILL_ENTITY:create(skillId) + self.skillMap[cfg.position]:addUpSkills(heroEntity:getRogueSkillList()) for _, id in ipairs(heroEntity:getActiveTogueSkills()) do if not skillmap[id] then table.insert(self.skillPool, id) diff --git a/lua/app/userdata/battle/skill/battle_board_skill_entity.lua b/lua/app/userdata/battle/skill/battle_board_skill_entity.lua index f1ab2804..ec281800 100644 --- a/lua/app/userdata/battle/skill/battle_board_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_board_skill_entity.lua @@ -1,7 +1,7 @@ -local BattleBoardSkillEnity = class("BattleBoardSkillEnity", BaseData) +local BattleBoardSkillEntity = class("BattleBoardSkillEntity", BaseData) local BattleBuffEntity = require "app/userdata/battle/skill/battle_buff_entity" -function BattleBoardSkillEnity:ctor(skillId) +function BattleBoardSkillEntity:ctor(skillId) self:refreshSkillId(skillId) self.curEnergy = 0 self.addRange = {} @@ -10,9 +10,12 @@ function BattleBoardSkillEnity:ctor(skillId) self.generalAttackEffectEntities = {} self.elementCountEffectEntities = {} self.cacheBuffEntities = {} + + self.upSkillIdMap = {} + self.getUpSkillKind = 0 end -function BattleBoardSkillEnity:refreshSkillId(skillId) +function BattleBoardSkillEntity:refreshSkillId(skillId) if self.skillId and self.skillId > skillId then return end @@ -20,46 +23,46 @@ function BattleBoardSkillEnity:refreshSkillId(skillId) self.config = ConfigManager:getConfig("skill")[skillId] end -function BattleBoardSkillEnity:getSkillId() +function BattleBoardSkillEntity:getSkillId() return self.skillId end -function BattleBoardSkillEnity:getNeedEnergy() +function BattleBoardSkillEntity:getNeedEnergy() if not self.config then return 1 end return self.config.energy end -function BattleBoardSkillEnity:getPosition() +function BattleBoardSkillEntity:getPosition() if not self.config then return 1 end return self.config.position end -function BattleBoardSkillEnity:getMethond() +function BattleBoardSkillEntity:getMethond() if not self.config then return end return self.config.method end -function BattleBoardSkillEnity:getSkillType() +function BattleBoardSkillEntity:getSkillType() if not self.config then return end return self.config.skill_type end -function BattleBoardSkillEnity:getSkillTypeParameter() +function BattleBoardSkillEntity:getSkillTypeParameter() if not self.config then return end return self.config.skill_type_parameter end -function BattleBoardSkillEnity:getBoardRange() +function BattleBoardSkillEntity:getBoardRange() if not self.config or not self.config.boardrange then return end @@ -79,7 +82,7 @@ function BattleBoardSkillEnity:getBoardRange() return boardRangeList end -function BattleBoardSkillEnity:addBoardRange(range) +function BattleBoardSkillEntity:addBoardRange(range) for _, info in ipairs(range) do if self.addRange[info.type] then self.addRange[info.type] = self.addRange[info.type] + info.range @@ -92,46 +95,50 @@ function BattleBoardSkillEnity:addBoardRange(range) end end -function BattleBoardSkillEnity:getEffect() +function BattleBoardSkillEntity:getEffect() if not self.config then return end return self.config.effect end -function BattleBoardSkillEnity:getTartget() +function BattleBoardSkillEntity:getTartget() if not self.config then return end return self.config.obj end -function BattleBoardSkillEnity:getIcon() +function BattleBoardSkillEntity:getIcon() if not self.config then return end return self.config.icon end -function BattleBoardSkillEnity:getBattleIcon() +function BattleBoardSkillEntity:getBattleIcon() if not self.config then return end - return tostring(self.config.battle_icon) + if self.getUpSkillKind > 0 then + return tostring(self.config.battle_icon) .. "_" .. self.getUpSkillKind + else + return tostring(self.config.battle_icon) + end end -function BattleBoardSkillEnity:getNameAct() +function BattleBoardSkillEntity:getNameAct() if not self.config then return end return self.config.name_act end -function BattleBoardSkillEnity:getEnergy() +function BattleBoardSkillEntity:getEnergy() return self.curEnergy end -function BattleBoardSkillEnity:getEnergyEnough(onlyGetBool) +function BattleBoardSkillEntity:getEnergyEnough(onlyGetBool) local enough = self.curEnergy >= self:getNeedEnergy() if enough and not onlyGetBool then self:clearEnergy() @@ -139,27 +146,27 @@ function BattleBoardSkillEnity:getEnergyEnough(onlyGetBool) return enough end -function BattleBoardSkillEnity:addEnergy(count) +function BattleBoardSkillEntity:addEnergy(count) self.curEnergy = self.curEnergy + count end -function BattleBoardSkillEnity:clearEnergy() +function BattleBoardSkillEntity:clearEnergy() self.curEnergy = 0 end -function BattleBoardSkillEnity:getIgnoreElementType() +function BattleBoardSkillEntity:getIgnoreElementType() return self.ignoreElementType end -function BattleBoardSkillEnity:setIgnoreElementType(ignore) +function BattleBoardSkillEntity:setIgnoreElementType(ignore) self.ignoreElementType = ignore end -function BattleBoardSkillEnity:getLinkEffects() +function BattleBoardSkillEntity:getLinkEffects() return self.linkEffectEntities end -function BattleBoardSkillEnity:addLinkEffect(effect, unitEntity, targetSide) +function BattleBoardSkillEntity:addLinkEffect(effect, unitEntity, targetSide) effect = GFunc.getTable(effect) local buffEntities = self.linkEffectEntities[effect.type] if not buffEntities then @@ -187,11 +194,11 @@ function BattleBoardSkillEnity:addLinkEffect(effect, unitEntity, targetSide) end end -function BattleBoardSkillEnity:getInInfluenceEffects() +function BattleBoardSkillEntity:getInInfluenceEffects() return self.inInfluenceEntities end -function BattleBoardSkillEnity:addInInfluenceEffect(effect, unitEntity, targetSide) +function BattleBoardSkillEntity:addInInfluenceEffect(effect, unitEntity, targetSide) effect = GFunc.getTable(effect) local buffEntities = self.inInfluenceEntities[effect.type] if not buffEntities then @@ -219,7 +226,7 @@ function BattleBoardSkillEnity:addInInfluenceEffect(effect, unitEntity, targetSi end end -function BattleBoardSkillEnity:addGeneralAttackEffect(effect, unitEntity, targetSide) +function BattleBoardSkillEntity:addGeneralAttackEffect(effect, unitEntity, targetSide) local buffEntity = self.generalAttackEffectEntities[effect.type] if not buffEntity then buffEntity = BattleBuffEntity:create() @@ -233,11 +240,11 @@ function BattleBoardSkillEnity:addGeneralAttackEffect(effect, unitEntity, target buffEntity:setTargetSide(targetSide) end -function BattleBoardSkillEnity:getGeneralAttackEffect() +function BattleBoardSkillEntity:getGeneralAttackEffect() return self.generalAttackEffectEntities end -function BattleBoardSkillEnity:addElementCountEffect(effect, unitEntity, targetSide) +function BattleBoardSkillEntity:addElementCountEffect(effect, unitEntity, targetSide) local buffEntities = self.elementCountEffectEntities[effect.type] if not buffEntities then self.elementCountEffectEntities[effect.type] = {} @@ -266,11 +273,11 @@ function BattleBoardSkillEnity:addElementCountEffect(effect, unitEntity, targetS end end -function BattleBoardSkillEnity:getElementCountEffect() +function BattleBoardSkillEntity:getElementCountEffect() return self.elementCountEffectEntities end -function BattleBoardSkillEnity:addBuffEffect(buff, unitEntity) +function BattleBoardSkillEntity:addBuffEffect(buff, unitEntity) local buffEntity = self.cacheBuffEntities[buff.type] if not buffEntity then buffEntity = BattleBuffEntity:create() @@ -283,8 +290,29 @@ function BattleBoardSkillEnity:addBuffEffect(buff, unitEntity) end end -function BattleBoardSkillEnity:getBuffEffects() +function BattleBoardSkillEntity:getBuffEffects() return self.cacheBuffEntities end -return BattleBoardSkillEnity \ No newline at end of file +function BattleBoardSkillEntity:addUpSkills(skillList) + for _, skillId in ipairs(skillList) do + self.upSkillIdMap[skillId] = false + end + self.getUpSkillKind = 0 +end + +function BattleBoardSkillEntity:gotUpSKill(skillId) + if self.upSkillIdMap[skillId] == nil then + return false + end + + if not self.upSkillIdMap[skillId] then + self.getUpSkillKind = self.getUpSkillKind + 1 + end + + self.upSkillIdMap[skillId] = true + + return true +end + +return BattleBoardSkillEntity \ No newline at end of file