miduo_server/luafight/Modules/Battle/Logic/Buff/HOT.lua

68 lines
1.9 KiB
Lua
Raw Normal View History

2019-03-12 14:05:45 +08:00
HOT = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值
function HOT:SetData(...)
2020-04-10 14:52:41 +08:00
2019-03-26 15:11:47 +08:00
self.interval,
self.healValue = ...
2021-10-22 16:59:08 +08:00
self.hotType=1 -- 1:治愈 2.神佑
2020-04-10 14:52:41 +08:00
-- 刷新排序等级
self.sort = 1 -- 最先计算回血
2019-03-12 14:05:45 +08:00
end
2021-01-22 18:11:30 +08:00
2019-03-12 14:05:45 +08:00
--初始化后调用一次
function HOT:OnStart()
2020-04-10 14:52:41 +08:00
2019-05-07 20:01:07 +08:00
self.target.Event:DispatchEvent(BattleEventName.RoleBeHealed, self.caster)
2019-03-12 14:05:45 +08:00
end
2021-01-22 18:11:30 +08:00
--修改持续加血效果的加血值
function HOT:ChangeHealValue(newValue)
2021-10-22 16:59:08 +08:00
if newValue and self.hotType~=2 then
2021-01-22 18:11:30 +08:00
self.healValue=newValue
end
end
2019-03-12 14:05:45 +08:00
--间隔N帧触发返回true时表示继续触发返回false立刻触发OnEnd
function HOT:OnTrigger()
2020-04-10 14:52:41 +08:00
2020-05-06 16:49:24 +08:00
if not self.target.ctrl_noheal or self.target:IsDead() then --禁疗和死亡无法加血
2021-10-22 16:59:08 +08:00
if self.hotType==2 then
local value=self.target:GetRoleData(RoleDataName.MaxHp)-self.target:GetRoleData(RoleDataName.Hp)
2021-10-26 10:25:51 +08:00
if self.healValue<value then
value=self.healValue
end
2021-10-22 16:59:08 +08:00
local yujia=0
if value>0 then
BattleUtil.FinalTreat(self.caster, self.target,value,1,nil)
else
value=0
end
if self.healValue-value>0 then
if self.target.bloodShield then
self.target.bloodShield:AddValue(self.healValue-value)
else
self.target:AddBuff(Buff.Create(self.caster,BuffName.Blood,0,self.healValue-value))
end
end
else
BattleUtil.ApplyTreat(self.caster, self.target, self.healValue)
end
2019-05-07 20:01:07 +08:00
end
2019-03-12 14:05:45 +08:00
return true
end
--效果结束时调用一次
function HOT:OnEnd()
2021-01-22 18:11:30 +08:00
BattleLogic.Event:DispatchEvent(BattleEventName.HotBuffEnd, self)
2019-03-12 14:05:45 +08:00
end
--只有当cover字段为true时触发返回true则被新效果覆盖
function HOT:OnCover(newBuff)
2020-04-10 14:52:41 +08:00
2019-03-12 14:05:45 +08:00
return true
end
2020-04-10 14:52:41 +08:00
return HOT