miduo_client/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/BuDongSign.lua

75 lines
2.3 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

--不动明王印记
BuDongSign = Buff:New() --压制
--初始化Buff通过传入一些自定义参数控制成长相关的数值
function BuDongSign:SetData(...)
-- self.atkType, --1 物理 2.魔法
-- self.ct,
-- self.value1=...
self.f1=...
self.maxPro=0
-- 刷新排序等级
self.curDamage=0
self.sort = 4
end
--初始化后调用一次
function BuDongSign:OnStart()
self.curDamage = 0
--本回合最多能扣到多少比例的血条
self.maxPro=(self.target:GetRoleData(RoleDataName.Hp)/self.target:GetRoleData(RoleDataName.MaxHp))-self.f1
if self.maxPro<0 then
self.maxPro=0
end
local function onFinalBeDamage(damagingFunc, atkRole, damage, skill, dotType, bCrit, damageType,isDirect)
-- 非直接伤害不免除
if not skill and not isDirect then
return
end
--判断伤害是否能超出能扣除的最大伤害
local maxDamage =math.floor(self.target:GetRoleData(RoleDataName.Hp)-(self.target:GetRoleData(RoleDataName.MaxHp) * self.maxPro))
self.curDamage=damage
if self.curDamage > maxDamage then
-- 计算免除的伤害值
local md = self.curDamage - maxDamage
if md > damage then
md = damage
end
if damagingFunc then damagingFunc(md) end
end
end
self.target.Event:AddEvent(BattleEventName.CheckLiZhanZhiQu, onFinalBeDamage,nil,nil,self.target)
local function onRoundChange()
self.curDamage = 0
--本回合最多能扣到多少比例的血条
self.maxPro=(self.target:GetRoleData(RoleDataName.Hp)/self.target:GetRoleData(RoleDataName.MaxHp))-self.f1
if self.maxPro<0 then
self.maxPro=0
end
--LogError("本回合最多能扣到的比例=="..maxPro)
end
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, onRoundChange,nil,nil,self.target)
end
--间隔N帧触发返回true时表示继续触发返回false立刻触发OnEnd
function BuDongSign:OnTrigger()
return true
end
--效果结束时调用一次
function BuDongSign:OnEnd()
end
--只有当cover字段为true时触发返回true则被新效果覆盖
function BuDongSign:OnCover(newBuff)
return true
end
return BuDongSign