战斗逻辑

back_recharge
lvxinran 2019-10-31 14:49:48 +08:00
parent 8b8a89cd73
commit 7f9e88d0e3
3 changed files with 20 additions and 14 deletions

View File

@ -1111,13 +1111,12 @@ local effectList = {
end end
end) end)
end, end,
--造成[a]%的[b]伤害,自身每种/每层增益状态会提高此技能[c]%的伤害。 --造成[a]%的[b]伤害,自身每种/每层增益状态会提高此技能[c]%的伤害。【aoe】
--a[float],b[伤害类型],c[float] --a[float],b[伤害类型],c[float]
[64] = function(caster, target, args, interval) [64] = function(caster, target, args, interval)
local f1 = args[1] local f1 = args[1]
local dt = args[2] local dt = args[2]
local f2 = args[3] local f2 = args[3]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
local factor = 0 local factor = 0
BattleLogic.BuffMgr:QueryBuff(caster, function (buff) BattleLogic.BuffMgr:QueryBuff(caster, function (buff)
@ -1163,7 +1162,7 @@ local effectList = {
end end
end) end)
end, end,
--造成[a]%的[b]伤害,[c]的概率附加一层增伤印记,最大[d]层。目标身上每层印记增加此技能[e]%的伤害。 --造成[a]%的[b]伤害,[c]的概率附加一层增伤印记,最大[d]层。目标身上每层印记增加此技能[e]%的伤害。【aoe】
--a[float],b[伤害类型],c[float],d[int],e[float] --a[float],b[伤害类型],c[float],d[int],e[float]
[66] = function(caster, target, args, interval) [66] = function(caster, target, args, interval)
local f1 = args[1] local f1 = args[1]
@ -1171,7 +1170,6 @@ local effectList = {
local f2 = args[3] local f2 = args[3]
local i1 = args[4] local i1 = args[4]
local f3 = args[5] local f3 = args[5]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
local brand = Buff.Create(caster, BuffName.Brand, 0, "zengshang") local brand = Buff.Create(caster, BuffName.Brand, 0, "zengshang")
brand.maxLayer = i1 brand.maxLayer = i1
@ -1222,14 +1220,13 @@ local effectList = {
end) end)
end end
end, end,
--造成[a]%的[b]伤害,附带持续伤害,每秒造成目标最大生命值[c]%的真实伤害,持续[d]秒。目标最大生命值伤害总上限为施法者2.5倍攻击) --造成[a]%的[b]伤害,附带持续伤害,每秒造成目标最大生命值[c]%的真实伤害,持续[d]秒。目标最大生命值伤害总上限为施法者2.5倍攻击)【aoe】
--a[float],b[伤害类型],c[float],d[int] --a[float],b[伤害类型],c[float],d[int]
[68] = function(caster, target, args, interval) [68] = function(caster, target, args, interval)
local f1 = args[1] local f1 = args[1]
local dt = args[2] local dt = args[2]
local f2 = args[3] local f2 = args[3]
local f3 = args[4] local f3 = args[4]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
BattleUtil.CalDamage(caster, target, dt, f1) BattleUtil.CalDamage(caster, target, dt, f1)
local dot = Buff.Create(caster, BuffName.DOT, f3, 1, 0, min(floor(target:GetRoleData(RoleDataName.MaxHp)*f2), floor(caster:GetRoleData(RoleDataName.Attack)*2.5)), 1) local dot = Buff.Create(caster, BuffName.DOT, f3, 1, 0, min(floor(target:GetRoleData(RoleDataName.MaxHp)*f2), floor(caster:GetRoleData(RoleDataName.Attack)*2.5)), 1)
@ -1247,13 +1244,12 @@ local effectList = {
target.data:SubValue(RoleDataName.Hp, hp) target.data:SubValue(RoleDataName.Hp, hp)
end) end)
end, end,
--造成[a]%的[b]伤害,每损失[c]%的生命,增加本技能[d]%的伤害。 --造成[a]%的[b]伤害,每损失[c]%的生命,增加本技能[d]%的伤害。【aoe】
--a[float],b[伤害类型],c[float],d[float] --a[float],b[伤害类型],c[float],d[float]
[70] = function(caster, target, args, interval) [70] = function(caster, target, args, interval)
local f1 = args[1] local f1 = args[1]
local dt = args[2] local dt = args[2]
local f2 = args[3] local f2 = args[3]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
local factor = 1 - BattleUtil.GetHPPencent(caster) local factor = 1 - BattleUtil.GetHPPencent(caster)
local OnPassiveDamaging = function(damagingFunc, defRole, damage) local OnPassiveDamaging = function(damagingFunc, defRole, damage)
@ -1306,12 +1302,11 @@ local effectList = {
buffRandomAction(f3, target, Buff.Create(caster, BuffName.DOT, f2, 1, d1, dt, f1)) buffRandomAction(f3, target, Buff.Create(caster, BuffName.DOT, f2, 1, d1, dt, f1))
end) end)
end, end,
--造成[a]%的[b]伤害立即结算目标身上所有dot的剩余伤害。 --造成[a]%的[b]伤害立即结算目标身上所有dot的剩余伤害。【aoe】
--a[float],b[伤害类型] --a[float],b[伤害类型]
[73] = function(caster, target, args, interval) [73] = function(caster, target, args, interval)
local f1 = args[1] local f1 = args[1]
local dt = args[2] local dt = args[2]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
BattleUtil.CalDamage(caster, target, dt, f1) BattleUtil.CalDamage(caster, target, dt, f1)
BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff) BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff)
@ -1752,7 +1747,7 @@ local effectList = {
end end
end) end)
end, end,
--造成[a]%的[b]伤害,若暴击,[c]概率驱散[d]个0表示所有[e]状态。 --造成[a]%的[b]伤害,若暴击,[c]概率驱散[d]个0表示所有[e]状态。【aoe】
--a[float],b[伤害类型],c[float],d[int],e[状态类型] --a[float],b[伤害类型],c[float],d[int],e[状态类型]
[93] = function(caster, target, args, interval) [93] = function(caster, target, args, interval)
local f1 = args[1] local f1 = args[1]
@ -1760,7 +1755,6 @@ local effectList = {
local f2 = args[3] local f2 = args[3]
local i1 = args[4] local i1 = args[4]
local ct = args[5] local ct = args[5]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
BattleLogic.WaitForTrigger(interval, function () BattleLogic.WaitForTrigger(interval, function ()
local dmg, crit = BattleUtil.CalDamage(caster, target, dt, f1) local dmg, crit = BattleUtil.CalDamage(caster, target, dt, f1)
if crit then if crit then

View File

@ -1281,7 +1281,6 @@ local passivityList = {
end end
role.Event:AddEvent(BattleEventName.RoleKill, OnKill) role.Event:AddEvent(BattleEventName.RoleKill, OnKill)
end, end,
--受击后,[a]对攻击者造成自身[c]%的[d]伤害。 --受击后,[a]对攻击者造成自身[c]%的[d]伤害。
--a[float],c[float],d[伤害类型] --a[float],c[float],d[伤害类型]
[71] = function(role, args) [71] = function(role, args)
@ -1305,5 +1304,18 @@ local passivityList = {
end end
role.Event:AddEvent(BattleEventName.RoleBeHit, OnBeHit) role.Event:AddEvent(BattleEventName.RoleBeHit, OnBeHit)
end, end,
--造成的伤害暴击时,有[a]概率在计算伤害时额外计算[b]的暴击伤害。
--a[float],b[float]
[72] = function(role, args)
local f1 = args[1]
local f2 = args[2]
local OnPassiveCriting = function(crit)
BattleUtil.RandomAction(f1, function ()
crit(role:GetRoleData(RoleDataName.CritDamageFactor)+f2)
end)
end
role.Event:AddEvent(BattleEventName.PassiveCriting, OnPassiveCriting)
end,
} }
return passivityList return passivityList

View File

@ -28,7 +28,7 @@ local record
local optionRecord local optionRecord
--是否开启战斗日志 --是否开启战斗日志
BattleLogic.IsOpenBattleRecord = true BattleLogic.IsOpenBattleRecord = false
--逻辑帧频 --逻辑帧频
BattleLogic.GameFrameRate = 30 BattleLogic.GameFrameRate = 30
BattleLogic.GameDeltaTime = 1 / BattleLogic.GameFrameRate BattleLogic.GameDeltaTime = 1 / BattleLogic.GameFrameRate