55 lines
1.5 KiB
Lua
55 lines
1.5 KiB
Lua
local BattleConst = require "app/module/battle/battle_const"
|
|
|
|
local BattleBuffSpecial = {}
|
|
|
|
local BUFF_NAME = BattleConst.BUFF_NAME
|
|
local ATTR_NAME = BattleConst.ATTR_NAM
|
|
|
|
local function _addSkillOn(unitComp, buff, target, buffEffect)
|
|
return target:addSkill(buff:getEffectNum())
|
|
end
|
|
|
|
local function _addSkillOff(buffSender, target, buff, buffEffect)
|
|
if buffEffect and buffEffect.result > 0 then
|
|
target:removeSkill(buff:getEffectNum(), buffEffect.result)
|
|
end
|
|
end
|
|
|
|
local function _skillFireTimesOn(unitComp, buff, target, buffEffect)
|
|
target.unitEntity:addSkillExtraUseTimes(buff:getEffectNum(), 1)
|
|
return 1
|
|
end
|
|
|
|
local function _skillFireTimesOff(buffSender, target, buff, buffEffect)
|
|
target.unitEntity:addSkillExtraUseTimes(buff:getEffectNum(), -1)
|
|
return 1
|
|
end
|
|
|
|
local _handleOn = {
|
|
[BUFF_NAME.ADD_SKILL] = _addSkillOn, -- 添加技能
|
|
[BUFF_NAME.SKILL_FIRE_TIMES] = _skillFireTimesOn, -- 技能额外使用次数
|
|
}
|
|
|
|
local _handleOff = {
|
|
[BUFF_NAME.ADD_SKILL] = _addSkillOff, -- 添加技能
|
|
[BUFF_NAME.SKILL_FIRE_TIMES] = _skillFireTimesOff, -- 技能额外使用次数
|
|
}
|
|
|
|
-- 特殊buff添加时
|
|
function BattleBuffSpecial.specialBuffOn(unitComp, buff, target, buffEffect)
|
|
local func = _handleOn[buff:getName()]
|
|
if func then
|
|
return func(unitComp, buff, target, buffEffect)
|
|
end
|
|
return 0
|
|
end
|
|
|
|
-- 特殊buff移除时
|
|
function BattleBuffSpecial.specialBuffOff(buffSender, target, buff, buffEffect)
|
|
local func = _handleOff[buff:getName()]
|
|
if func then
|
|
func(buffSender, target, buff, buffEffect)
|
|
end
|
|
end
|
|
|
|
return BattleBuffSpecial |