升级升星属性
This commit is contained in:
parent
887400cb76
commit
ec8344394d
@ -685,6 +685,14 @@ GConst.MATCH_ALL_ATKP_NAME = {
|
||||
[5] = "attr_atkp_purple_all",
|
||||
}
|
||||
|
||||
GConst.MATCH_ALL_HPP_NAME = {
|
||||
[1] = "attr_hpp_red_all",
|
||||
[2] = "attr_hpp_yellow_all",
|
||||
[3] = "attr_hpp_green_all",
|
||||
[4] = "attr_hpp_blue_all",
|
||||
[5] = "attr_hpp_purple_all",
|
||||
}
|
||||
|
||||
GConst.ALL_ATTR = {
|
||||
ATTR_ATK_ALL = "atk_all", -- 全体英雄攻击(固定值)
|
||||
ATTR_HP_ALL = "attr_hp_all", -- 全体英雄生命(固定值)
|
||||
|
||||
@ -85,7 +85,7 @@ function GMToolUI:onRefresh()
|
||||
end
|
||||
end)
|
||||
|
||||
skipTutorialCheck:setVisible(LocalData:getTutorialSkip() > 0)
|
||||
skipTutorialCheck:setActive(LocalData:getTutorialSkip() > 0)
|
||||
skipTutorialBtn:addClickListener(function()
|
||||
if LocalData:getTutorialSkip() == 0 then
|
||||
LocalData:setTutorialSkip(1)
|
||||
@ -95,7 +95,7 @@ function GMToolUI:onRefresh()
|
||||
skipTutorialCheck:setActive(LocalData:getTutorialSkip() > 0)
|
||||
end)
|
||||
|
||||
skipPopCheck:setVisible(LocalData:getTutorialSkip() > 0)
|
||||
skipPopCheck:setActive(LocalData:getTutorialSkip() > 0)
|
||||
skipPopBtn:addClickListener(function()
|
||||
if LocalData:getFuncOpenPopSkip() == 0 then
|
||||
LocalData:setFuncOpenPopSkip(1)
|
||||
@ -207,7 +207,7 @@ function GMToolUI:updateTime()
|
||||
-- if not DataManager.PlayerData or not DataManager.PlayerData:getServerOpenTime() then
|
||||
-- return
|
||||
-- end
|
||||
if not DataManager.PlayerData then
|
||||
if not DataManager.PlayerData or not Time.serverTimeZone then
|
||||
return
|
||||
end
|
||||
local uiMap = self.root:genAllChildren()
|
||||
|
||||
@ -342,13 +342,12 @@ function HeroData:setTalentAttr(attr)
|
||||
end
|
||||
|
||||
function HeroData:calcAttr()
|
||||
self.allAtkpAttr = {}
|
||||
self.allAtkpAttr = {{}, {}, {}, {}, {}}
|
||||
for heroId, attrs in pairs(self.allAtkpAttrByHero) do
|
||||
-- self.baseAttrOriginal[ATTR_NAME.ATK_RED] = 0
|
||||
local matchType = self.heroes[heroId]:getMatchType()
|
||||
self.allAtkpAttr[matchType] = self.allAtkpAttr[matchType] or {}
|
||||
for k,v in pairs(attrs) do
|
||||
self.allAtkpAttr[matchType][k] = (self.allAtkpAttr[matchType][k] or 0) + v
|
||||
for matchType, v in ipairs(self.allAtkpAttr) do
|
||||
for k, vv in pairs(attrs) do
|
||||
self.allAtkpAttr[matchType][k] = (self.allAtkpAttr[matchType][k] or 0) + vv
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -94,34 +94,45 @@ function HeroEntity:_updateAllAttr()
|
||||
|
||||
-- 同属性通用加成
|
||||
self.allAttr[GConst.MATCH_ALL_ATKP_NAME[self:getMatchType()]] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_ATK_ALL] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_HP_ALL] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_DMGDEC_ALL] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_CRIT_ALL] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_CRIT_TIME_ALL] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_NORMAL_HURTP_ALL] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_SKILL_HURTP_ALL] = nil
|
||||
self.allAttr[GConst.ALL_ATTR.ATTR_ATKP_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_ATK_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_HP_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_DMGDEC_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_CRIT_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_CRIT_TIME_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_NORMAL_HURTP_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_SKILL_HURTP_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_ATKP_ALL] = nil
|
||||
-- self.allAttr[GConst.ALL_ATTR.ATTR_HPP_ALL] = nil
|
||||
for _, v in pairs(GConst.ALL_ATTR) do
|
||||
self.allAttr[v] = nil
|
||||
end
|
||||
|
||||
-- 攻击力(百分比)
|
||||
local atkType = GConst.MATCH_ATTACK_NAME[self:getMatchType()]
|
||||
local allAtk = DataManager.HeroData:getAttrByMatchType(self:getMatchType(), GConst.ALL_ATTR.ATTR_ATK_ALL)
|
||||
local atkpType = GConst.MATCH_ALL_ATKP_NAME[self:getMatchType()]
|
||||
local allFactorValue = DataManager.HeroData:getAttrByMatchType(self:getMatchType(), atkpType)
|
||||
local factorValue = self.allAttr[GConst.MATCH_ATTACK_ADD_NAME[self:getMatchType()]] or 0
|
||||
local allAtkP = self:getGlobalAttrByType(GConst.ALL_ATTR.ATTR_ATKP_ALL)
|
||||
-- 全局增加攻击力
|
||||
local allAtk = self:getGlobalAttrByType(GConst.ALL_ATTR.ATTR_ATK_ALL)
|
||||
local atk = self.allAttr[atkType] + allAtk
|
||||
-- 全局元素攻击力百分比加成
|
||||
local allFactorValue = self:getGlobalAttrByType(GConst.MATCH_ALL_ATKP_NAME[self:getMatchType()])
|
||||
-- 个人攻击力百分比加成
|
||||
local factorValue = self.allAttr[GConst.MATCH_ATTACK_ADD_NAME[self:getMatchType()]] or 0
|
||||
-- 全局攻击力百分比加成
|
||||
local allAtkP = self:getGlobalAttrByType(GConst.ALL_ATTR.ATTR_ATKP_ALL)
|
||||
self.allAttr[atkType] = math.floor(atk * (1 + (factorValue + allFactorValue + allAtkP) / GConst.DEFAULT_FACTOR) + 0.0000001)
|
||||
self.allAttr[GConst.MATCH_ATTACK_ADD_NAME[self:getMatchType()]] = nil
|
||||
|
||||
-- 生命(百分比)
|
||||
local hpType = GConst.MATCH_HP_NAME[self:getMatchType()]
|
||||
local allHp = DataManager.HeroData:getAttrByMatchType(self:getMatchType(), GConst.ALL_ATTR.ATTR_HP_ALL)
|
||||
-- local atkpType = GConst.MATCH_ALL_ATKP_NAME[self:getMatchType()]
|
||||
-- local allFactorValue = DataManager.HeroData:getAttrByMatchType(self:getMatchType(), atkpType)
|
||||
local factorValue = self.allAttr[GConst.MATCH_HP_ADD_NAME[self:getMatchType()]] or 0
|
||||
-- 全局增加生命
|
||||
local allHp = self:getGlobalAttrByType(GConst.ALL_ATTR.ATTR_HP_ALL)
|
||||
local hp = self.allAttr[hpType] + allHp
|
||||
self.allAttr[hpType] = math.floor(hp * (1 + factorValue / GConst.DEFAULT_FACTOR) + 0.0000001)
|
||||
-- 全局元素生命百分比加成
|
||||
local allFactorValue = self:getGlobalAttrByType(GConst.MATCH_ALL_HPP_NAME[self:getMatchType()])
|
||||
-- 个人生命百分比加成
|
||||
local factorValue = self.allAttr[GConst.MATCH_HP_ADD_NAME[self:getMatchType()]] or 0
|
||||
-- 全局生命百分比加成
|
||||
local allHpP = self:getGlobalAttrByType(GConst.ALL_ATTR.ATTR_HPP_ALL)
|
||||
self.allAttr[hpType] = math.floor(hp * (1 + (factorValue + allFactorValue + allHpP) / GConst.DEFAULT_FACTOR) + 0.0000001)
|
||||
self.allAttr[GConst.MATCH_HP_ADD_NAME[self:getMatchType()]] = nil
|
||||
|
||||
self.allAttr[ATTR_NAME.DMGDEC] = (self.allAttr[ATTR_NAME.DMGDEC] or 0) + self:getGlobalAttrByType(GConst.ALL_ATTR.ATTR_DMGDEC_ALL)
|
||||
@ -148,8 +159,9 @@ end
|
||||
-- 更新所有属性(自己)
|
||||
function HeroEntity:_updateAllBaseAttr()
|
||||
self:_updateBaseAttr()
|
||||
self:_updateLvAttr()
|
||||
self:_updateStarAttr()
|
||||
self:_updateSkinAttr()
|
||||
-- self:_updateSkinAttr()
|
||||
self:_updateTotalAttr()
|
||||
|
||||
-- 处理全局属性
|
||||
@ -158,15 +170,18 @@ function HeroEntity:_updateAllBaseAttr()
|
||||
attr[GConst.MATCH_ALL_ATKP_NAME[self:getMatchType()]] = self.allBaseAttr[GConst.MATCH_ALL_ATKP_NAME[self:getMatchType()]]
|
||||
end
|
||||
|
||||
attr[GConst.ALL_ATTR.ATTR_ATK_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_ATK_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_HP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_HP_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_DMGDEC_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_DMGDEC_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_CRIT_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_CRIT_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_CRIT_TIME_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_CRIT_TIME_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_NORMAL_HURTP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_NORMAL_HURTP_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_SKILL_HURTP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_SKILL_HURTP_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_ATKP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_ATKP_ALL]
|
||||
attr[GConst.ALL_ATTR.ATTR_ATK_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_ATK_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_ATK_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_ATK_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_HP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_HP_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_DMGDEC_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_DMGDEC_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_CRIT_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_CRIT_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_CRIT_TIME_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_CRIT_TIME_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_NORMAL_HURTP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_NORMAL_HURTP_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_SKILL_HURTP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_SKILL_HURTP_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_ATKP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_ATKP_ALL]
|
||||
-- attr[GConst.ALL_ATTR.ATTR_HPP_ALL] = self.allBaseAttr[GConst.ALL_ATTR.ATTR_HPP_ALL]
|
||||
for _, v in pairs(GConst.ALL_ATTR) do
|
||||
attr[v] = self.allBaseAttr[v]
|
||||
end
|
||||
|
||||
DataManager.HeroData:setHeroAttr(self:getCfgId(), attr)
|
||||
end
|
||||
@ -182,7 +197,19 @@ function HeroEntity:_updateBaseAttr()
|
||||
self.baseAttrOriginal[GConst.MATCH_ATTACK_NAME[self.config.position]] = self:getCfgAtk()
|
||||
end
|
||||
|
||||
-- 更新皮肤属性
|
||||
-- 更新升级属性
|
||||
function HeroEntity:_updateLvAttr()
|
||||
self.lvAttr = {}
|
||||
local lvPoint = self:getLvAttrPointList()
|
||||
for i = 1, #lvPoint do
|
||||
if self.data.lv >= lvPoint[i] then
|
||||
local attr = self:getLvAttrCfg(i)
|
||||
self.lvAttr[attr.type] = (self.lvAttr[attr.type] or 0) + attr.num
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- 更新升星属性
|
||||
function HeroEntity:_updateStarAttr()
|
||||
self.starAttr = {}
|
||||
for i = 1, self.data.star do
|
||||
@ -244,6 +271,9 @@ function HeroEntity:_updateTotalAttr()
|
||||
for k, v in pairs(self.baseAttrOriginal) do
|
||||
self.allBaseAttr[k] = (self.allBaseAttr[k] or 0) + v
|
||||
end
|
||||
for k, v in pairs(self.lvAttr) do
|
||||
self.allBaseAttr[k] = (self.allBaseAttr[k] or 0) + v
|
||||
end
|
||||
for k, v in pairs(self.starAttr) do
|
||||
self.allBaseAttr[k] = (self.allBaseAttr[k] or 0) + v
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user