HOT = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function HOT:SetData(...) self.interval, self.healValue = ... self.hotType=1 -- 1:治愈 2.神佑 -- 刷新排序等级 self.sort = 1 -- 最先计算回血 end --初始化后调用一次 function HOT:OnStart() self.target.Event:DispatchEvent(BattleEventName.RoleBeHealed, self.caster) end --修改持续加血效果的加血值 function HOT:ChangeHealValue(newValue) if newValue and self.hotType~=2 then self.healValue=newValue end end --间隔N帧触发,返回true时表示继续触发,返回false立刻触发OnEnd function HOT:OnTrigger() if not self.target.ctrl_noheal or self.target:IsDead() then --禁疗和死亡无法加血 if self.hotType==2 then local value=self.target:GetRoleData(RoleDataName.MaxHp)-self.target:GetRoleData(RoleDataName.Hp) if self.healValue0 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 end return true end --效果结束时调用一次 function HOT:OnEnd() BattleLogic.Event:DispatchEvent(BattleEventName.HotBuffEnd, self) end --只有当cover字段为true时触发,返回true则被新效果覆盖 function HOT:OnCover(newBuff) return true end return HOT