From 41e12743090201c2067089ae3462977d82338426 Mon Sep 17 00:00:00 2001 From: puxuan <413323644@qq.com> Date: Thu, 22 May 2025 23:55:14 +0800 Subject: [PATCH] hero --- lua/app/userdata/bag/item_entity.lua | 24 +++++++++++++++++++ lua/app/userdata/hero/hero_data.lua | 33 +++++++++++++++++++++++++++ lua/app/userdata/hero/hero_entity.lua | 4 ++-- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/lua/app/userdata/bag/item_entity.lua b/lua/app/userdata/bag/item_entity.lua index 5e7926e5..8cc86adf 100644 --- a/lua/app/userdata/bag/item_entity.lua +++ b/lua/app/userdata/bag/item_entity.lua @@ -7,6 +7,7 @@ function ItemEntity:ctor(id, num) self.config = nil self:_loadConfig(id) + self:checkForceLockAndAddNum(num) end function ItemEntity:getConfig(id) @@ -37,9 +38,32 @@ end -- 加减道具数量 function ItemEntity:addNum(num) self.data.num = self.data.num + num + self:checkForceLockAndAddNum() self:setDirty() end +function ItemEntity:checkForceLockAndAddNum() + local type = self:getItemType() + if type == GConst.ItemConst.ITEM_TYPE.HERO_FRAGMENT then + local isOwn = DataManager.HeroData:getHeroIsUnlock(self:getId()) + local qlt = DataManager.HeroData:getHeroQlt(self:getId()) + -- local fragmentId = DataManager.ForceData:getForceItemIdByQlt(self:getId()) + local upCost = DataManager.HeroData:getHeroLevelCost(1, qlt) + if not isOwn and self.data.num >= upCost[1] then + -- self.data.num = self.data.num - upCost[1] 不消耗碎片了 + -- DataManager.HeroData:onForceUnlock(self:getId(), true) + -- BIReport:postForceUnlock(self:getId()) + end + -- 不转换万能碎片 + -- local parameter = self:getParam() + -- if qlt >= 5 and parameter and parameter[3] then + -- DataManager.HeroData:addSummonUnlockItemCount(self.data.num * parameter[3]) + -- -- DataManager.BagData.ItemData:addItemNumById(fragmentId, self.data.num * parameter[3], BIReport.ITEM_GET_TYPE.FORCE_SUMMON_EXCHANGE) + -- self.data.num = 0 + -- end + end +end + -- 设置数量 function ItemEntity:setNum(num) self.data.num = num diff --git a/lua/app/userdata/hero/hero_data.lua b/lua/app/userdata/hero/hero_data.lua index 44edc5e0..56d35369 100644 --- a/lua/app/userdata/hero/hero_data.lua +++ b/lua/app/userdata/hero/hero_data.lua @@ -345,4 +345,37 @@ function HeroData:getAllHeroesSort(formationType) return result end +-- region +function HeroData:getHeroConfig(id) + if id then + return ConfigManager:getConfig("hero")[id] + else + return ConfigManager:getConfig("hero") + end +end + +function HeroData:getHeroQlt(id) + local cfg = self:getHeroConfig(id) + if cfg then + return cfg.qlt + end +end + +function HeroData:getHeroLevelConfig(lv) + if lv then + return ConfigManager:getConfig("hero_level")[lv] + else + return ConfigManager:getConfig("hero_level") + end +end + +-- 升级目前跟质量无关 +function HeroData:getHeroLevelCost(lv, qlt) + local cfg = self:getHeroLevelConfig(lv) + if cfg then + return cfg.cost + end +end + +-- endregion return HeroData \ No newline at end of file diff --git a/lua/app/userdata/hero/hero_entity.lua b/lua/app/userdata/hero/hero_entity.lua index d8139bff..f977abe0 100644 --- a/lua/app/userdata/hero/hero_entity.lua +++ b/lua/app/userdata/hero/hero_entity.lua @@ -460,8 +460,8 @@ function HeroEntity:getLvUpMaterials() if not nextLvInfo then return end - local fieldName = "cost_" .. self:getQlt() - return nextLvInfo[fieldName] + -- local fieldName = "cost_" .. self:getQlt() + return nextLvInfo.cost end function HeroEntity:getConfig()