buff
This commit is contained in:
parent
f0110c46e4
commit
09a8b2ea50
@ -383,7 +383,14 @@ local BUFF_NAME = {
|
|||||||
BLUE_REFRESH_WEIGHT = "blue_refresh_weight",
|
BLUE_REFRESH_WEIGHT = "blue_refresh_weight",
|
||||||
PURPLE_REFRESH_WEIGHT = "purple_refresh_weight",
|
PURPLE_REFRESH_WEIGHT = "purple_refresh_weight",
|
||||||
ATTR_MONSTER_DMG_ADD = "attr_monster_dmg_add",
|
ATTR_MONSTER_DMG_ADD = "attr_monster_dmg_add",
|
||||||
ATTR_BOSS_DMG_ADD = "attr_boss_dmg_add",
|
HPP_RED_ADD = "hpp_red_add",
|
||||||
|
HPP_YELLOW_ADD = "hpp_yellow_add",
|
||||||
|
HPP_GREEN_ADD = "hpp_green_add",
|
||||||
|
HPP_BLUE_ADD = "hpp_blue_add",
|
||||||
|
HPP_PURPLE_ADD = "hpp_purple_add",
|
||||||
|
FOREVER_NORMAL_ATTACK_ADD = "forever_normal_attack_add",
|
||||||
|
FOREVER_UNCONTROLLED = "forever_uncontrolled",
|
||||||
|
ATTR_NORMAL_HURTP_ALL_ADD = "attr_normal_hurtp_all_add",
|
||||||
}
|
}
|
||||||
BattleConst.BUFF_NAME = BUFF_NAME
|
BattleConst.BUFF_NAME = BUFF_NAME
|
||||||
|
|
||||||
@ -516,6 +523,8 @@ local ATTR_NAME = {
|
|||||||
INVINCIBLE_SHIELD = "invincible_shield",
|
INVINCIBLE_SHIELD = "invincible_shield",
|
||||||
REBIRTH = "rebirth",
|
REBIRTH = "rebirth",
|
||||||
IMMUNE_REDUCTION_BENEFIT = "immune_reduction_benefit", -- 免疫减益
|
IMMUNE_REDUCTION_BENEFIT = "immune_reduction_benefit", -- 免疫减益
|
||||||
|
FOREVER_UNCONTROLLED = "forever_uncontrolled", -- 永久免控
|
||||||
|
ATTR_NORMAL_HURTP_ALL_ADD = "attr_normal_hurtp_all",
|
||||||
}
|
}
|
||||||
BattleConst.ATTR_NAME = ATTR_NAME
|
BattleConst.ATTR_NAME = ATTR_NAME
|
||||||
|
|
||||||
@ -578,6 +587,9 @@ BattleConst.BUFF_NAME_TO_ATTR = {
|
|||||||
[BUFF_NAME.FOREVER_DEC_DMG_PURPLE_ADD] = {ATTR_NAME.DEC_DMG_PURPLE, false},
|
[BUFF_NAME.FOREVER_DEC_DMG_PURPLE_ADD] = {ATTR_NAME.DEC_DMG_PURPLE, false},
|
||||||
[BUFF_NAME.FOREVER_DEC_DMG_ALL_ADD] = {ATTR_NAME.DEC_DMG_ALL, false},
|
[BUFF_NAME.FOREVER_DEC_DMG_ALL_ADD] = {ATTR_NAME.DEC_DMG_ALL, false},
|
||||||
[BUFF_NAME.FOREVER_THORNS] = {ATTR_NAME.THORNS, false},
|
[BUFF_NAME.FOREVER_THORNS] = {ATTR_NAME.THORNS, false},
|
||||||
|
[BUFF_NAME.FOREVER_NORMAL_ATTACK_ADD] = {ATTR_NAME.NORMAL_ATTACK_COUNT, false},
|
||||||
|
[BUFF_NAME.FOREVER_UNCONTROLLED] = {ATTR_NAME.FOREVER_UNCONTROLLED, false},
|
||||||
|
[BUFF_NAME.ATTR_NORMAL_HURTP_ALL_ADD] = {ATTR_NAME.FOREVER_UNCONTROLLED, true},
|
||||||
}
|
}
|
||||||
|
|
||||||
---- 格子类型
|
---- 格子类型
|
||||||
|
|||||||
@ -1343,6 +1343,12 @@ function BattleUnitComp:addMaxHp(percent)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BattleUnitComp:addBuff(buffEffect, conditionResult)
|
function BattleUnitComp:addBuff(buffEffect, conditionResult)
|
||||||
|
if buffEffect.buff:getIsControlType() then
|
||||||
|
local ratio = self.unitEntity:getAttrValue(BattleConst.ATTR_NAME.FOREVER_UNCONTROLLED) or 0
|
||||||
|
if math.random(1, BattleConst.DEFAULT_FACTOR) <= ratio then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
if buffEffect.buff:needShowName() and buffEffect.buff:getShowName(true) then
|
if buffEffect.buff:needShowName() and buffEffect.buff:getShowName(true) then
|
||||||
local direction = BattleConst.EFFECT_TYPE_MOVE_R
|
local direction = BattleConst.EFFECT_TYPE_MOVE_R
|
||||||
local x, y = self.team:getMainUnitLocalPosition(self)
|
local x, y = self.team:getMainUnitLocalPosition(self)
|
||||||
|
|||||||
@ -69,6 +69,36 @@ BattleBuffHandle.addAttribute = {
|
|||||||
target.unitEntity:addAttr(ATTR_NAME.ATK_PURPLE, num, true)
|
target.unitEntity:addAttr(ATTR_NAME.ATK_PURPLE, num, true)
|
||||||
return num
|
return num
|
||||||
end,
|
end,
|
||||||
|
[BUFF_NAME.HPP_RED_ADD] = function(target, num, unitComp)
|
||||||
|
local unitCompMap = unitComp.team:getUnitComp()
|
||||||
|
local targetComp = unitCompMap[BattleConst.ELEMENT_TYPE.RED]
|
||||||
|
targetComp.unitEntity:addAttr(ATTR_NAME.HP, num, true)
|
||||||
|
return num
|
||||||
|
end,
|
||||||
|
[BUFF_NAME.HPP_YELLOW_ADD] = function(target, num, unitComp)
|
||||||
|
local unitCompMap = unitComp.team:getUnitComp()
|
||||||
|
local targetComp = unitCompMap[BattleConst.ELEMENT_TYPE.YELLOW]
|
||||||
|
targetComp.unitEntity:addAttr(ATTR_NAME.HP, num, true)
|
||||||
|
return num
|
||||||
|
end,
|
||||||
|
[BUFF_NAME.HPP_GREEN_ADD] = function(target, num, unitComp)
|
||||||
|
local unitCompMap = unitComp.team:getUnitComp()
|
||||||
|
local targetComp = unitCompMap[BattleConst.ELEMENT_TYPE.GREEN]
|
||||||
|
targetComp.unitEntity:addAttr(ATTR_NAME.HP, num, true)
|
||||||
|
return num
|
||||||
|
end,
|
||||||
|
[BUFF_NAME.HPP_BLUE_ADD] = function(target, num, unitComp)
|
||||||
|
local unitCompMap = unitComp.team:getUnitComp()
|
||||||
|
local targetComp = unitCompMap[BattleConst.ELEMENT_TYPE.BLUE]
|
||||||
|
targetComp.unitEntity:addAttr(ATTR_NAME.HP, num, true)
|
||||||
|
return num
|
||||||
|
end,
|
||||||
|
[BUFF_NAME.HPP_PURPLE_ADD] = function(target, num, unitComp)
|
||||||
|
local unitCompMap = unitComp.team:getUnitComp()
|
||||||
|
local targetComp = unitCompMap[BattleConst.ELEMENT_TYPE.PURPLE]
|
||||||
|
targetComp.unitEntity:addAttr(ATTR_NAME.HP, num, true)
|
||||||
|
return num
|
||||||
|
end,
|
||||||
[BUFF_NAME.NORMAL_ATTACK_DEC] = function(target, num)
|
[BUFF_NAME.NORMAL_ATTACK_DEC] = function(target, num)
|
||||||
target.unitEntity:addAttr(ATTR_NAME.NORMAL_ATTACK_COUNT, -num, false)
|
target.unitEntity:addAttr(ATTR_NAME.NORMAL_ATTACK_COUNT, -num, false)
|
||||||
return -num
|
return -num
|
||||||
@ -134,7 +164,7 @@ local function _takeEffectAttr(unitComp, buff, target, buffEffect)
|
|||||||
else
|
else
|
||||||
local func = BattleBuffHandle.addAttribute[buffName]
|
local func = BattleBuffHandle.addAttribute[buffName]
|
||||||
if func then
|
if func then
|
||||||
return func(target, buff:getEffectNum())
|
return func(target, buff:getEffectNum(), unitComp)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@ -701,6 +701,7 @@ function BattleTeam:updateBuffState(buff, num)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--@region 特殊buff
|
||||||
function BattleTeam:hadUniversalBuff()
|
function BattleTeam:hadUniversalBuff()
|
||||||
for i,v in ipairs(self.buffList) do
|
for i,v in ipairs(self.buffList) do
|
||||||
if v.buff:getName() == BattleConst.BUFF_NAME.RANDOM_UNIVERSAL and v.buff:isActive() then
|
if v.buff:getName() == BattleConst.BUFF_NAME.RANDOM_UNIVERSAL and v.buff:isActive() then
|
||||||
@ -751,6 +752,7 @@ function BattleTeam:checkMainHeroExtAdd()
|
|||||||
return true, effectNum
|
return true, effectNum
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
--@endregion
|
||||||
|
|
||||||
function BattleTeam:getBuffCountByName(buffName)
|
function BattleTeam:getBuffCountByName(buffName)
|
||||||
return self.sameBuffCount[buffName] or 0
|
return self.sameBuffCount[buffName] or 0
|
||||||
|
|||||||
@ -4,6 +4,7 @@ local BattleBuffEntity = class("BattleBuffEntity", BaseData)
|
|||||||
|
|
||||||
local BUFF_TYPE_DIRECT_HURT = BattleConst.BUFF_TYPE.DIRECT_HURT
|
local BUFF_TYPE_DIRECT_HURT = BattleConst.BUFF_TYPE.DIRECT_HURT
|
||||||
local BUFF_TYPE_SHIELD = BattleConst.BUFF_TYPE.SHIELD
|
local BUFF_TYPE_SHIELD = BattleConst.BUFF_TYPE.SHIELD
|
||||||
|
local BUFF_TYPE_CONTROL = BattleConst.BUFF_TYPE.CONTROL
|
||||||
|
|
||||||
function BattleBuffEntity:ctor()
|
function BattleBuffEntity:ctor()
|
||||||
end
|
end
|
||||||
@ -65,6 +66,10 @@ function BattleBuffEntity:getIsHurtType()
|
|||||||
return self.buffType == BUFF_TYPE_DIRECT_HURT
|
return self.buffType == BUFF_TYPE_DIRECT_HURT
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function BattleBuffEntity:getIsControlType()
|
||||||
|
return self.buffType == BUFF_TYPE_CONTROL
|
||||||
|
end
|
||||||
|
|
||||||
function BattleBuffEntity:getEffectNum()
|
function BattleBuffEntity:getEffectNum()
|
||||||
return self.effectNum
|
return self.effectNum
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user