From 61b76292c96d9120a4b867586f8650592daff430 Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Wed, 5 Jul 2023 17:25:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=B1=E9=9B=84=E9=9D=A2=E6=9D=BF=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/global/global_const.lua | 9 ---- lua/app/userdata/battle/battle_base_data.lua | 15 +++---- lua/app/userdata/hero/hero_entity.lua | 45 +++++++++++++------- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua index 3b810651..18815aa5 100644 --- a/lua/app/global/global_const.lua +++ b/lua/app/global/global_const.lua @@ -467,15 +467,6 @@ GConst.MATCH_ATTACK_NAME = { [5] = "atk_purple", } -GConst.ATTR_TYPE = { - hp = 1, - atk_red = 2, - atk_yellow = 3, - atk_green = 4, - atk_blue = 5, - atk_purple = 6 -} - GConst.GAMEOBJECT_LAYER = { DEFAULT = CS.BF.Utils.NameToLayer("Default"), UI = CS.BF.Utils.NameToLayer("UI"), diff --git a/lua/app/userdata/battle/battle_base_data.lua b/lua/app/userdata/battle/battle_base_data.lua index 241e28ab..7229ef73 100644 --- a/lua/app/userdata/battle/battle_base_data.lua +++ b/lua/app/userdata/battle/battle_base_data.lua @@ -1,5 +1,6 @@ local BattleTeamEntity = require "app/userdata/battle/team/battle_team_entity" local BattleSkillEntity = require "app/userdata/battle/skill/battle_skill_entity" +local ATTR_NAME = GConst.BattleConst.ATTR_NAME local BattleBaseData = class("BattleBaseData", BaseData) local SKILL_CFG = ConfigManager:getConfig("skill") @@ -7,7 +8,6 @@ local BattleConst = GConst.BattleConst local BATTLE_GRID_ENTITY = require "app/userdata/battle/battle_grid_entity" local BATTLE_BOARD_SKILL_ENTITY = require "app/userdata/battle/skill/battle_board_skill_entity" -local ATTR_TYPE = GConst.ATTR_TYPE local DEFAULT_FACTOR = BattleConst.DEFAULT_FACTOR local TIME_SPEED_LEVEL_0 = 0 local TIME_SPEED_LEVEL_1 = 1 @@ -669,9 +669,8 @@ function BattleBaseData:initHeroData(formation) if formation then local skillCfg = ConfigManager:getConfig("skill") for matchType, heroEntity in pairs(formation) do - local heroAttr = heroEntity:getAllAttr() local skillId = heroEntity:getBaseSkill() - local hp = heroAttr[ATTR_TYPE.hp] // DEFAULT_FACTOR + local hp = heroEntity:getAttrValue(ATTR_NAME.HP) // DEFAULT_FACTOR local unitData = { id = heroEntity:getCfgId(), modelId = heroEntity:getModelId(), @@ -683,11 +682,11 @@ function BattleBaseData:initHeroData(formation) hp = hp, max_hp = hp, atk = 0, - atk_red = heroAttr[ATTR_TYPE.atk_red] // DEFAULT_FACTOR, - atk_yellow = heroAttr[ATTR_TYPE.atk_yellow] // DEFAULT_FACTOR, - atk_green = heroAttr[ATTR_TYPE.atk_green] // DEFAULT_FACTOR, - atk_blue = heroAttr[ATTR_TYPE.atk_blue] // DEFAULT_FACTOR, - atk_purple = heroAttr[ATTR_TYPE.atk_purple] // DEFAULT_FACTOR, + atk_red = heroEntity:getAttrValue(ATTR_NAME.ATK_RED) // DEFAULT_FACTOR, + atk_yellow = heroEntity:getAttrValue(ATTR_NAME.ATK_YELLOW) // DEFAULT_FACTOR, + atk_green = heroEntity:getAttrValue(ATTR_NAME.ATK_GREEN) // DEFAULT_FACTOR, + atk_blue = heroEntity:getAttrValue(ATTR_NAME.ATK_BLUE) // DEFAULT_FACTOR, + atk_purple = heroEntity:getAttrValue(ATTR_NAME.ATK_PURPLE) // DEFAULT_FACTOR, } } local skillInfo = skillCfg[skillId] diff --git a/lua/app/userdata/hero/hero_entity.lua b/lua/app/userdata/hero/hero_entity.lua index 576f37b8..1176378c 100644 --- a/lua/app/userdata/hero/hero_entity.lua +++ b/lua/app/userdata/hero/hero_entity.lua @@ -1,4 +1,5 @@ local HeroEntity = class("HeroEntity", BaseData) +local ATTR_NAME = GConst.BattleConst.ATTR_NAME function HeroEntity:ctor(cfgId, lv) self.id = cfgId @@ -15,12 +16,13 @@ function HeroEntity:ctor(cfgId, lv) end function HeroEntity:initAttr() - self.allAttr[GConst.ATTR_TYPE.hp] = 0 - self.allAttr[GConst.ATTR_TYPE.atk_red] = 0 - self.allAttr[GConst.ATTR_TYPE.atk_yellow] = 0 - self.allAttr[GConst.ATTR_TYPE.atk_green] = 0 - self.allAttr[GConst.ATTR_TYPE.atk_blue] = 0 - self.allAttr[GConst.ATTR_TYPE.atk_purple] = 0 + self:setAttrValue(ATTR_NAME.HP, 0) + self:setAttrValue(ATTR_NAME.ATK, 0) + self:setAttrValue(ATTR_NAME.ATK_RED, 0) + self:setAttrValue(ATTR_NAME.ATK_YELLOW, 0) + self:setAttrValue(ATTR_NAME.ATK_GREEN, 0) + self:setAttrValue(ATTR_NAME.ATK_BLUE, 0) + self:setAttrValue(ATTR_NAME.ATK_PURPLE, 0) end function HeroEntity:setLv(lv) @@ -73,13 +75,13 @@ function HeroEntity:updateAttr() end function HeroEntity:updateBaseAttr() - self.baseAttrOriginal[GConst.ATTR_TYPE.hp] = self:getCfgHp() - self.baseAttrOriginal[GConst.ATTR_TYPE.atk_red] = 0 - self.baseAttrOriginal[GConst.ATTR_TYPE.atk_yellow] = 0 - self.baseAttrOriginal[GConst.ATTR_TYPE.atk_green] = 0 - self.baseAttrOriginal[GConst.ATTR_TYPE.atk_blue] = 0 - self.baseAttrOriginal[GConst.ATTR_TYPE.atk_purple] = 0 - self.baseAttrOriginal[GConst.ATTR_TYPE[GConst.MATCH_ATTACK_NAME[self.config.position]]] = self:getCfgAtk() + self.baseAttrOriginal[ATTR_NAME.HP] = self:getCfgHp() + self.baseAttrOriginal[ATTR_NAME.ATK_RED] = 0 + self.baseAttrOriginal[ATTR_NAME.ATK_YELLOW] = 0 + self.baseAttrOriginal[ATTR_NAME.ATK_GREEN] = 0 + self.baseAttrOriginal[ATTR_NAME.ATK_BLUE] = 0 + self.baseAttrOriginal[ATTR_NAME.ATK_PURPLE] = 0 + self.baseAttrOriginal[GConst.MATCH_ATTACK_NAME[self.config.position]] = self:getCfgAtk() end function HeroEntity:getCfgHp(lv) @@ -116,16 +118,27 @@ end function HeroEntity:updateAllAttr() for k, v in pairs(self.baseAttrOriginal) do - self.allAttr[k] = v + self:setAttrValue(k, v) end end +function HeroEntity:setAttrValue(name, value) + self.allAttr[name] = GFunc.encryptNumber(value or 0) +end + +function HeroEntity:getAttrValue(name) + if not self.allAttr[name] then + return 0 + end + return GFunc.decryptNumber(self.allAttr[name]) +end + function HeroEntity:getAtk() - return self.allAttr[GConst.ATTR_TYPE.atk] or 0 + return self:getAttrValue(GConst.BattleConst.ATTR_NAME.ATK) end function HeroEntity:getHp() - return self.allAttr[GConst.ATTR_TYPE.hp] or 0 + return self:getAttrValue(GConst.BattleConst.ATTR_NAME.HP) end function HeroEntity:setDirty()