hero
This commit is contained in:
parent
f18ab0ee83
commit
722639abab
@ -518,6 +518,15 @@ GConst.ENTITY_TYPE = {
|
||||
JEWELRY_ENTITY = 3,
|
||||
}
|
||||
|
||||
GConst.MATCH_ATKP_PERSONAL = {
|
||||
[0] = "attr_atkp_person",
|
||||
[1] = "attr_atkp_person",
|
||||
[2] = "attr_atkp_person",
|
||||
[3] = "attr_atkp_person",
|
||||
[4] = "attr_atkp_person",
|
||||
[5] = "attr_atkp_person",
|
||||
}
|
||||
|
||||
GConst.MATCH_HP_NAME = {
|
||||
[0] = "hp",
|
||||
[1] = "hp",
|
||||
|
||||
@ -486,6 +486,7 @@ local ATTR_NAME = {
|
||||
ATTR_ALL_HURTP_GREEN = "attr_all_hurtp_green",
|
||||
ATTR_ALL_HURTP_BLUE = "attr_all_hurtp_blue",
|
||||
ATTR_ALL_HURTP_PURPLE = "attr_all_hurtp_purple",
|
||||
ATTR_ATKP_PERSON = "attr_atkp_person",
|
||||
|
||||
INVINCIBLE_SHIELD = "invincible_shield",
|
||||
REBIRTH = "rebirth",
|
||||
|
||||
@ -34,39 +34,44 @@ HeroConst.PANEL_TYPE = {
|
||||
|
||||
-- 总计
|
||||
HeroConst.ATTR_SHOW_TOTAL = {
|
||||
GConst.MATCH_HP_NAME, -- 生命
|
||||
GConst.MATCH_ATTACK_NAME, -- 攻击
|
||||
GConst.MATCH_NORMAL_HURT_NAME, -- 普攻增伤
|
||||
GConst.MATCH_SKILL_HURT_NAME, -- 技能增伤
|
||||
GConst.MATCH_CRIT_NAME, -- 暴击率百分比
|
||||
GConst.MATCH_CRIT_TIME_NAME, -- 暴击伤害百分比
|
||||
GConst.MATCH_NORMAL_HURTP_NAME, -- 普攻增伤百分比
|
||||
GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
|
||||
GConst.MATCH_CURED_NAME, -- 治疗效果提升百分比
|
||||
GConst.MATCH_HP_NAME, -- 生命
|
||||
GConst.MATCH_ATTACK_NAME, -- 攻击
|
||||
GConst.MATCH_NORMAL_HURT_NAME, -- 普攻增伤
|
||||
GConst.MATCH_SKILL_HURT_NAME, -- 技能增伤
|
||||
GConst.MATCH_CRIT_NAME, -- 暴击率百分比
|
||||
GConst.MATCH_CRIT_TIME_NAME, -- 暴击伤害百分比
|
||||
GConst.MATCH_NORMAL_HURTP_NAME, -- 普攻增伤百分比
|
||||
GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
|
||||
GConst.MATCH_CURED_NAME, -- 治疗效果提升百分比
|
||||
}
|
||||
-- 基础
|
||||
HeroConst.ATTR_SHOW_BASE = {
|
||||
GConst.MATCH_HP_NAME, -- 生命
|
||||
GConst.MATCH_ATTACK_NAME, -- 攻击
|
||||
GConst.MATCH_HP_NAME, -- 生命
|
||||
GConst.MATCH_ATTACK_NAME, -- 攻击
|
||||
}
|
||||
-- 升星
|
||||
HeroConst.ATTR_SHOW_STAR = {
|
||||
GConst.MATCH_ATKP_PERSONAL, -- 个人攻击百分比
|
||||
GConst.MATCH_ATTACK_ADD_NAME, -- 攻击百分比
|
||||
}
|
||||
-- 皮肤
|
||||
HeroConst.ATTR_SHOW_SKIN = {
|
||||
GConst.MATCH_HP_FIX_NAME, -- 生命
|
||||
GConst.MATCH_ATTACK_NAME, -- 攻击
|
||||
GConst.MATCH_NORMAL_HURT_NAME, -- 普攻增伤
|
||||
GConst.MATCH_SKILL_HURT_NAME, -- 技能增伤
|
||||
GConst.MATCH_CRIT_NAME, -- 暴击率百分比
|
||||
GConst.MATCH_CRIT_TIME_NAME, -- 暴击伤害百分比
|
||||
GConst.MATCH_NORMAL_HURTP_NAME, -- 普攻增伤百分比
|
||||
GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
|
||||
GConst.MATCH_CURED_NAME, -- 治疗效果提升百分比
|
||||
GConst.MATCH_HP_FIX_NAME, -- 生命
|
||||
GConst.MATCH_ATTACK_NAME, -- 攻击
|
||||
GConst.MATCH_NORMAL_HURT_NAME, -- 普攻增伤
|
||||
GConst.MATCH_SKILL_HURT_NAME, -- 技能增伤
|
||||
GConst.MATCH_CRIT_NAME, -- 暴击率百分比
|
||||
GConst.MATCH_CRIT_TIME_NAME, -- 暴击伤害百分比
|
||||
GConst.MATCH_NORMAL_HURTP_NAME, -- 普攻增伤百分比
|
||||
GConst.MATCH_SKILL_HURTP_NAME, -- 技能增伤百分比
|
||||
GConst.MATCH_CURED_NAME, -- 治疗效果提升百分比
|
||||
}
|
||||
|
||||
-- 需要显示属性的模块
|
||||
HeroConst.SHOW_NODE = {
|
||||
HeroConst.ATTR_SHOW_TOTAL,
|
||||
HeroConst.ATTR_SHOW_BASE,
|
||||
HeroConst.ATTR_SHOW_SKIN,
|
||||
HeroConst.ATTR_SHOW_TOTAL,
|
||||
HeroConst.ATTR_SHOW_BASE,
|
||||
HeroConst.ATTR_SHOW_STAR,
|
||||
HeroConst.ATTR_SHOW_SKIN,
|
||||
}
|
||||
|
||||
HeroConst.TRIAL_HERO_ID = 34001 -- 花木兰
|
||||
|
||||
@ -20,14 +20,7 @@ function HeroManager:upgradeHero(heroId, heroEntity)
|
||||
|
||||
local canLvUp, state = heroEntity:canLvUp()
|
||||
if not canLvUp then
|
||||
-- 如果是金币不足 尝试触发金币礼包
|
||||
if state == GConst.HeroConst.CHECK_LV_UP_STATE.COIN_NOT_ENOUGH then
|
||||
if not ModuleManager.ShopManager:tryTriggerCoinGift() then
|
||||
GFunc.showItemNotEnough(GConst.ItemConst.ITEM_ID_GOLD)
|
||||
end
|
||||
else
|
||||
heroEntity:canLvUp(true)
|
||||
end
|
||||
heroEntity:canLvUp(true)
|
||||
return
|
||||
end
|
||||
|
||||
@ -49,26 +42,25 @@ function HeroManager:upgradeHeroStar(heroId, heroEntity)
|
||||
return
|
||||
end
|
||||
|
||||
-- local canLvUp, state = heroEntity:canLvUp()
|
||||
-- if not canLvUp then
|
||||
-- -- 如果是金币不足 尝试触发金币礼包
|
||||
-- if state == GConst.HeroConst.CHECK_LV_UP_STATE.COIN_NOT_ENOUGH then
|
||||
-- if not ModuleManager.ShopManager:tryTriggerCoinGift() then
|
||||
-- GFunc.showItemNotEnough(GConst.ItemConst.ITEM_ID_GOLD)
|
||||
-- end
|
||||
-- else
|
||||
-- heroEntity:canLvUp(true)
|
||||
-- end
|
||||
-- return
|
||||
-- end
|
||||
local canStarUp, state = heroEntity:canStarUp()
|
||||
if not canStarUp then
|
||||
-- 如果是金币不足 尝试触发金币礼包
|
||||
if state == GConst.HeroConst.CHECK_LV_UP_STATE.COIN_NOT_ENOUGH then
|
||||
-- if not ModuleManager.ShopManager:tryTriggerCoinGift() then
|
||||
GFunc.showItemNotEnough(GConst.ItemConst.ITEM_ID_GOLD)
|
||||
-- end
|
||||
else
|
||||
heroEntity:canStarUp(true)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
self:sendMessage(ProtoMsgType.FromMsgEnum.HeroStarReq, {id = heroId}, {}, self.heroStarReqFinish, BIReport.ITEM_GET_TYPE.UPGRADE_HERO)
|
||||
end
|
||||
|
||||
function HeroManager:heroStarReqFinish(result)
|
||||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||
DataManager.HeroData:setHeroLv(result.hero.id, result.hero.level)
|
||||
DataManager.HeroData:setDirty()
|
||||
DataManager.HeroData:onHeroStarUp(result.hero.id)
|
||||
|
||||
AudioManager:playEffect(AudioManager.EFFECT_ID.HERO_UP)
|
||||
end
|
||||
|
||||
@ -81,15 +81,15 @@ function HeroCell:refresh(heroEntity, isGray)
|
||||
else
|
||||
self.unlockTx:setVisible(true)
|
||||
self.progressBg:setVisible(false)
|
||||
local unlcokChapter = heroEntity:getUnlcokChapter()
|
||||
local unlockDan = heroEntity:getUnlockDan()
|
||||
if unlcokChapter then
|
||||
self.unlockTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_10, unlcokChapter))
|
||||
elseif unlockDan then
|
||||
self.unlockTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_12, I18N:getGlobalText(I18N.GlobalConst["ARENA_RANKNAME_" .. unlockDan])))
|
||||
else
|
||||
self.unlockTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_11))
|
||||
end
|
||||
-- local unlcokChapter = heroEntity:getUnlcokChapter()
|
||||
-- local unlockDan = heroEntity:getUnlockDan()
|
||||
-- if unlcokChapter then
|
||||
-- self.unlockTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_10, unlcokChapter))
|
||||
-- elseif unlockDan then
|
||||
-- self.unlockTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_12, I18N:getGlobalText(I18N.GlobalConst["ARENA_RANKNAME_" .. unlockDan])))
|
||||
-- else
|
||||
-- self.unlockTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_11))
|
||||
-- end
|
||||
end
|
||||
end
|
||||
self:refreshRedPoint()
|
||||
|
||||
@ -22,12 +22,17 @@ function StarCell:refresh(heroEntity, idx)
|
||||
|
||||
local star = self.heroEntity:getStar()
|
||||
for i, v in ipairs(self.starImgs) do
|
||||
if i <= star then
|
||||
if i <= idx then
|
||||
v:setActive(true)
|
||||
else
|
||||
v:setActive(false)
|
||||
end
|
||||
end
|
||||
if idx <= star then
|
||||
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, "common_board_quality_3")
|
||||
else
|
||||
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, "common_board_quality_2")
|
||||
end
|
||||
self.starBg:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT):RefreshLayout()
|
||||
self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst["HERO_STAR_DESC_" .. idx]) .. self.heroEntity:getCfgId())
|
||||
end
|
||||
|
||||
@ -65,6 +65,9 @@ function HeroAttrUI:isShowAttr(node)
|
||||
if node == GConst.HeroConst.ATTR_SHOW_SKIN then
|
||||
return #DataManager.SkinData:getOwnAllAttr(self.heroEntity) > 0
|
||||
end
|
||||
if node == GConst.HeroConst.ATTR_SHOW_STAR then
|
||||
return table.nums(self.heroEntity:getStarAttr()) > 0
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ function StarInfoComp:init()
|
||||
self.upBtnTx:setText("升星")
|
||||
self.lvBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_4))
|
||||
self.upBtn:addClickListener(function()
|
||||
-- ModuleManager.EquipManager:reqUpgrade(self.heroEntity:getCfgId(), GConst.EquipConst.PART_TYPE.WEAPON)
|
||||
ModuleManager.HeroManager:upgradeHeroStar(self.heroEntity:getCfgId())
|
||||
end)
|
||||
|
||||
self.lvBtn:addClickListener(function()
|
||||
|
||||
@ -355,7 +355,7 @@ function HeroData:getHeroLevelCost(lv, qlt)
|
||||
end
|
||||
-- endregion
|
||||
|
||||
-- region
|
||||
-- region 升星相关
|
||||
function HeroData:isStarOpen()
|
||||
return true
|
||||
end
|
||||
@ -367,6 +367,15 @@ function HeroData:getStarById(id)
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function HeroData:onHeroStarUp(id)
|
||||
local entity = self:getHeroById(id)
|
||||
if entity then
|
||||
entity:onHeroStarUp()
|
||||
end
|
||||
-- BIReport:postHeroLev(beforeLv, lv)
|
||||
-- BIReport:postFirstDayHeroLevel(id)
|
||||
end
|
||||
-- endregion
|
||||
|
||||
-- region 皮肤相关
|
||||
|
||||
@ -7,6 +7,7 @@ function HeroEntity:ctor(cfgId, lv, skin, star)
|
||||
self.data.lv = lv
|
||||
self.data.skin = skin
|
||||
self.data.star = star
|
||||
self.data.star = 1
|
||||
self.config = ConfigManager:getConfig("hero")[self.cfgId]
|
||||
self.beginLv = 1 -- 激活等级
|
||||
|
||||
@ -77,41 +78,15 @@ end
|
||||
-- 更新皮肤属性
|
||||
function HeroEntity:updateStarAttr()
|
||||
self.starAttr = {}
|
||||
-- local attr = self:getStarAttrCfg()[self.data.star]
|
||||
local attr = self:getStarAttrCfg()
|
||||
for index, value in ipairs(attr or {}) do
|
||||
self.starAttr[value.type] = value.num
|
||||
end
|
||||
end
|
||||
|
||||
-- local hp = DataManager.SkinData:getHp(self)
|
||||
-- local atk = DataManager.SkinData:getAttack(self)
|
||||
-- local normalHurt = DataManager.SkinData:getNormalHurt(self)
|
||||
-- local skillHurt = DataManager.SkinData:getSkillHurt(self)
|
||||
-- local critPer = DataManager.SkinData:getCritPercent(self)
|
||||
-- local critHurtPer = DataManager.SkinData:getCritHurtPercent(self)
|
||||
-- local normalHurtPer = DataManager.SkinData:getNormalHurtPercent(self)
|
||||
-- local skillHurtPer = DataManager.SkinData:getSkillHurtPercent(self)
|
||||
-- local healPer = DataManager.SkinData:getHealPercent(self)
|
||||
|
||||
-- self.starAttr[GConst.MATCH_HP_NAME[self:getMatchType()]] = hp
|
||||
-- self.starAttr[GConst.MATCH_ATTACK_NAME[self:getMatchType()]] = atk
|
||||
-- self.starAttr[GConst.MATCH_NORMAL_HURT_NAME[self:getMatchType()]] = normalHurt
|
||||
-- self.starAttr[GConst.MATCH_SKILL_HURT_NAME[self:getMatchType()]] = skillHurt
|
||||
-- self.starAttr[GConst.MATCH_CRIT_NAME[self:getMatchType()]] = critPer
|
||||
-- self.starAttr[GConst.MATCH_CRIT_TIME_NAME[self:getMatchType()]] = critHurtPer
|
||||
-- self.starAttr[GConst.MATCH_NORMAL_HURTP_NAME[self:getMatchType()]] = normalHurtPer
|
||||
-- self.starAttr[GConst.MATCH_SKILL_HURTP_NAME[self:getMatchType()]] = skillHurtPer
|
||||
-- self.starAttr[GConst.MATCH_CURED_NAME[self:getMatchType()]] = healPer
|
||||
|
||||
-- if EDITOR_MODE then
|
||||
-- local printStr = ""
|
||||
-- printStr = printStr .. "更新皮肤数值:"..self:getCfgId() .. "\n"
|
||||
-- printStr = printStr .. "生命:".. hp .. "\n"
|
||||
-- printStr = printStr .. "攻击力:".. atk .. "\n"
|
||||
-- printStr = printStr .. "普攻增伤:".. normalHurt .. "\n"
|
||||
-- printStr = printStr .. "技能增伤:".. skillHurt .. "\n"
|
||||
-- printStr = printStr .. "暴击率:".. critPer .. "\n"
|
||||
-- printStr = printStr .. "暴击伤害百分比:".. critHurtPer .. "\n"
|
||||
-- printStr = printStr .. "普攻增伤百分比:".. normalHurtPer .. "\n"
|
||||
-- printStr = printStr .. "技能增伤百分比:".. skillHurtPer .. "\n"
|
||||
-- printStr = printStr .. "治疗加成百分比:".. healPer .. "\n"
|
||||
-- Logger.logHighlight(printStr)
|
||||
-- end
|
||||
function HeroEntity:getStarAttr()
|
||||
return self.starAttr
|
||||
end
|
||||
|
||||
-- 更新皮肤属性
|
||||
@ -160,6 +135,9 @@ function HeroEntity:updateTotalAttr()
|
||||
for k, v in pairs(self.baseAttrOriginal) do
|
||||
self:setTotalAttrValue(k, v)
|
||||
end
|
||||
for k, v in pairs(self.starAttr) do
|
||||
self:addTotalAttrValue(k, v)
|
||||
end
|
||||
for k, v in pairs(self.skinAttr) do
|
||||
self:addTotalAttrValue(k, v)
|
||||
end
|
||||
@ -410,6 +388,10 @@ end
|
||||
function HeroEntity:getStarUpCostId()
|
||||
return self.config.entry
|
||||
end
|
||||
|
||||
function HeroEntity:getStarAttrCfg()
|
||||
return self.config.star
|
||||
end
|
||||
-- endregion
|
||||
|
||||
-- function HeroEntity:getActiveRogueCount()
|
||||
@ -497,6 +479,33 @@ function HeroEntity:getStarUpMaterials()
|
||||
local fieldName = "cost_" .. self:getQlt()
|
||||
return nextLvInfo[fieldName]
|
||||
end
|
||||
|
||||
function HeroEntity:canStarUp(showToast)
|
||||
if self:getIsStarMax() then
|
||||
return false, GConst.HeroConst.CHECK_LV_UP_STATE.MAX_LV
|
||||
end
|
||||
|
||||
local cost = self:getStarUpMaterials()
|
||||
if not cost then
|
||||
return false, GConst.HeroConst.CHECK_LV_UP_STATE.NO_COST
|
||||
end
|
||||
|
||||
local fragmentCost = cost[1] or 0
|
||||
if not GFunc.checkCost(self:getFragmentId(), fragmentCost, showToast) then
|
||||
return false, GConst.HeroConst.CHECK_LV_UP_STATE.FRAGMENT_NOT_ENOUGH
|
||||
end
|
||||
local goldCost = cost[2] or 0
|
||||
if not GFunc.checkCost(GConst.ItemConst.ITEM_ID_GOLD, goldCost, showToast) then
|
||||
return false, GConst.HeroConst.CHECK_LV_UP_STATE.COIN_NOT_ENOUGH
|
||||
end
|
||||
|
||||
return true, GConst.HeroConst.CHECK_LV_UP_STATE.SUCCESS
|
||||
end
|
||||
|
||||
function HeroEntity:onHeroStarUp()
|
||||
self.data.star = self.data.star + 1
|
||||
self:setDirty()
|
||||
end
|
||||
-- endregion
|
||||
|
||||
-- region 皮肤相关
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user