back_recharge
jiahuiwen 2019-03-26 15:39:00 +08:00
commit 5794900e80
13 changed files with 162 additions and 133 deletions

View File

@ -662,93 +662,93 @@ int mut,float#float,2 mut,int#int,2 mut,float#float,2 float
500108 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0 500108 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0
500109 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0 500109 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0
500110 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0 500110 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0
500201 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500201 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500202 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500202 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500203 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500203 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500204 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500204 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500205 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500205 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500206 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500206 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500207 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500207 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500208 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500208 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500209 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500209 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500210 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 500210 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0
500301 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500301 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500302 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500302 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500303 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500303 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500304 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500304 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500305 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500305 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500306 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500306 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500307 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500307 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500308 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500308 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500309 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500309 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500310 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 500310 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0
500401 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500401 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500402 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500402 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500403 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500403 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500404 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500404 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500405 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500405 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500406 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500406 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500407 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500407 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500408 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500408 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500409 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500409 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500410 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 500410 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0
500501 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500501 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500502 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500502 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500503 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500503 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500504 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500504 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500505 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500505 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500506 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500506 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500507 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500507 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500508 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500508 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500509 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500509 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500510 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 500510 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0
500601 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500601 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500602 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500602 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500603 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500603 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500604 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500604 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500605 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500605 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500606 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500606 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500607 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500607 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500608 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500608 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500609 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500609 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500610 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 500610 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0
500701 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500701 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500702 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500702 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500703 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500703 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500704 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500704 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500705 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500705 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500706 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500706 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500707 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500707 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500708 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500708 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500709 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500709 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500710 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 500710 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0
500801 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500801 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500802 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500802 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500803 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500803 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500804 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500804 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500805 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500805 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500806 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500806 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500807 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500807 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500808 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500808 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500809 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500809 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500810 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 500810 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0
500901 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500901 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500902 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500902 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500903 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500903 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500904 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500904 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500905 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500905 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500906 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500906 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500907 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500907 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500908 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500908 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500909 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500909 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
500910 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 500910 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0
501001 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501001 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501002 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501002 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501003 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501003 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501004 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501004 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501005 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501005 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501006 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501006 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501007 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501007 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501008 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501008 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501009 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501009 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0
501010 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 501010 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0

View File

@ -513,6 +513,37 @@ local effectList = {
end) end)
end end
end, end,
--造成[a]%的[b]伤害,若为[c],则无视敌人[d]%的防御
--a[float],b[伤害类型,]c[控制状态],d[float]
[30] = function(caster, target, args, interval)
local f1 = args[1]
local dt = args[2]
local ct = args[3]
local f2 = args[4]
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval)
if caster.camp == 0 and target.camp == 1 then
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, target, interval)
end
BattleLogic.WaitForTrigger(interval, function ()
if target.BuffMgr:HasBuff(BuffName.Control, function (buff) return ct == 0 or buff.ctrlType == ct end) then
BattleUtil.CalDamage(caster, target, dt, f1, f2)
else
BattleUtil.CalDamage(caster, target, dt, f1)
end
end)
end,
--[a]%概率[b],持续[c]秒
--a[float],b[免疫buff],c[int]
[31] = function(caster, target, args, interval)
local f1 = args[1] * (1 + caster:GetRoleData(RoleDataName.Hit) / (1 + target:GetRoleData(RoleDataName.Dodge)))
local ib1 = args[2]
local f2 = args[3]
BattleLogic.WaitForTrigger(interval, function ()
BattleUtil.RandomAction(f1, function ()
target:AddBuff(Buff.Create(caster, BuffName.Immune, f2, ib1))
end)
end)
end,
} }
return effectList return effectList

View File

@ -4,8 +4,7 @@ Aura = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function Aura:SetData(...) function Aura:SetData(...)
--log("Aura:SetData") --log("Aura:SetData")
local args = {...} self.action = ...
self.action = args[1]
end end
--初始化后调用一次 --初始化后调用一次

View File

@ -4,8 +4,7 @@ Brand = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function Brand:SetData(...) function Brand:SetData(...)
--log("Brand:SetData") --log("Brand:SetData")
local args = {...} self.flag = ...
self.flag = args[1]
self.cover = true self.cover = true
self.layer = 1 self.layer = 1
end end

View File

@ -4,8 +4,7 @@ Control = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function Control:SetData(...) function Control:SetData(...)
--log("Control:SetData") --log("Control:SetData")
local args = {...} self.ctrlType = ...
self.ctrlType = args[1]
end end
--初始化后调用一次 --初始化后调用一次

View File

@ -4,11 +4,10 @@ DOT = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function DOT:SetData(...) function DOT:SetData(...)
--log("DOT:SetData") --log("DOT:SetData")
local args = {...} self.interval,
self.interval = args[1] self.damageType, --1 燃烧 2 中毒 3 流血
self.damageType = args[2] --1 燃烧 2 中毒 3 流血 self.damagePro, --1 物理 2 魔法
self.damagePro = args[3] --1 物理 2 魔法 self.damageFactor = ... --伤害系数
self.damageFactor = args[4] --伤害系数
self.isDeBuff = true self.isDeBuff = true
end end

View File

@ -4,9 +4,8 @@ HOT = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function HOT:SetData(...) function HOT:SetData(...)
--log("HOT:SetData") --log("HOT:SetData")
local args = {...} self.interval,
self.interval = args[1] self.healValue = ...
self.healValue = args[2]
self.isBuff = true self.isBuff = true
end end

View File

@ -4,10 +4,9 @@ PropertyChange = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function PropertyChange:SetData(...) function PropertyChange:SetData(...)
--log("PropertyChange:SetData") --log("PropertyChange:SetData")
local args = {...} self.propertyName,
self.propertyName = args[1] self.Value,
self.Value = args[2] self.changeType = ...
self.changeType = args[3]
end end
--初始化后调用一次 --初始化后调用一次

View File

@ -4,9 +4,8 @@ Shield = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值 --初始化Buff通过传入一些自定义参数控制成长相关的数值
function Shield:SetData(...) function Shield:SetData(...)
--log("Shield:SetData") --log("Shield:SetData")
local args = {...} self.shieldValue, --护盾值
self.shieldValue = args[1] --护盾值 self.dmgReboundFactor = ... --伤害反弹系数
self.dmgReboundFactor = args[2] --伤害反弹系数
self.damageSum = 0 --记录承受的伤害 self.damageSum = 0 --记录承受的伤害
end end

View File

@ -89,6 +89,7 @@ BuffName = {
Aura = "Aura", Aura = "Aura",
Brand = "Brand", Brand = "Brand",
Shield = "Shield", Shield = "Shield",
Immune = "Immune",
} }

View File

@ -27,22 +27,6 @@ function BattleUtil.CreateBuffId(skill, index)
return id return id
end end
function BattleUtil.CalBaseDamage(atkRole, defRole, baseDamage, baseFactor)
local atkData, defData = atkRole.data, defRole.data
if not baseFactor then baseFactor = 1 end
--伤害 =(基础伤害*1+己伤害加成-目标伤害减免)*1+己方属性伤害加成-目标属性伤害减免10%*己攻)
local damage = baseDamage * baseFactor *
(1 + atkData:GetData(RoleDataName.DamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DamageReduceFactor)) *
(1 + atkData:GetData(RoleDataName.FireDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.FireDamageReduceFactor)) * --火系
(1 + atkData:GetData(RoleDataName.WindDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.WindDamageReduceFactor)) * --风系
(1 + atkData:GetData(RoleDataName.IceDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.IceDamageReduceFactor)) * --冰系
(1 + atkData:GetData(RoleDataName.LandDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LandDamageReduceFactor)) * --地系
(1 + atkData:GetData(RoleDataName.LightDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LightDamageReduceFactor)) * --光系
(1 + atkData:GetData(RoleDataName.DarkDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DarkDamageReduceFactor)) --暗系
return damage
end
function BattleUtil.CalHit(atkRole, defRole) function BattleUtil.CalHit(atkRole, defRole)
--命中率 = clamp(自身命中率-敌方闪避率,0,1) --命中率 = clamp(自身命中率-敌方闪避率,0,1)
local hit = atkRole:GetRoleData(RoleDataName.Hit) local hit = atkRole:GetRoleData(RoleDataName.Hit)
@ -106,12 +90,14 @@ function BattleUtil.ApplyDamage(atkRole, defRole, damage, bCrit)
end end
--执行完整的命中,伤害,暴击计算,返回命中,暴击 --执行完整的命中,伤害,暴击计算,返回命中,暴击
function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor) function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor, ignoreDef)
if atkRole.isTeam and not defRole.isDead then if atkRole.isTeam and not defRole.isDead then
return BattleUtil.ApplyDamage(atkRole, defRole, damageType), false return BattleUtil.ApplyDamage(atkRole, defRole, damageType), false
end end
local bCrit = false local bCrit = false
local baseDamage local baseDamage
baseFactor = baseFactor or 1
ignoreDef = 1 - (ignoreDef or 0)
bCrit = BattleUtil.CalCrit(atkRole, defRole) bCrit = BattleUtil.CalCrit(atkRole, defRole)
local defence = 0 local defence = 0
if damageType == 1 then --1 物理 2 魔法 if damageType == 1 then --1 物理 2 魔法
@ -128,11 +114,20 @@ function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor)
--计算暴击 --计算暴击
if bCrit or defRole.isFlagCrit then if bCrit or defRole.isFlagCrit then
local critDamageFactor = atkRole:GetRoleData(RoleDataName.CritDamageFactor) local critDamageFactor = atkRole:GetRoleData(RoleDataName.CritDamageFactor)
baseDamage = attack * critDamageFactor - 0.5 * defence baseDamage = max(attack * critDamageFactor - 0.5 * defence * ignoreDef, 0)
else else
baseDamage = attack - 0.5 * defence baseDamage = max(attack - 0.5 * defence * ignoreDef, 0)
end end
baseDamage = BattleUtil.CalBaseDamage(atkRole, defRole, baseDamage, baseFactor) local atkData, defData = atkRole.data, defRole.data
--伤害 =(基础伤害*1+己伤害加成-目标伤害减免)*1+己方属性伤害加成-目标属性伤害减免10%*己攻)
baseDamage = baseDamage * baseFactor *
(1 + atkData:GetData(RoleDataName.DamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DamageReduceFactor)) *
(1 + atkData:GetData(RoleDataName.FireDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.FireDamageReduceFactor)) * --火系
(1 + atkData:GetData(RoleDataName.WindDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.WindDamageReduceFactor)) * --风系
(1 + atkData:GetData(RoleDataName.IceDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.IceDamageReduceFactor)) * --冰系
(1 + atkData:GetData(RoleDataName.LandDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LandDamageReduceFactor)) * --地系
(1 + atkData:GetData(RoleDataName.LightDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LightDamageReduceFactor)) * --光系
(1 + atkData:GetData(RoleDataName.DarkDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DarkDamageReduceFactor)) --暗系
baseDamage = max(baseDamage, 0.1 * attack) baseDamage = max(baseDamage, 0.1 * attack)
local func local func

View File

@ -13,7 +13,10 @@ local skillPool = BattleObjectPool.New(function ()
end) end)
function RoleLogic.New() function RoleLogic.New()
local instance = {uid=0,roleData=0,data=RoleData.New(),camp=0,name=0,roleType=0,shield=BattleList.New(),exCalDmgList=BattleList.New(), local instance = {uid=0,roleData=0,data=RoleData.New(),camp=0,name=0,roleType=0,
shield=BattleList.New(),
exCalDmgList=BattleList.New(),
buffFilter=BattleList.New(),
BuffMgr=BuffManager.New(),Event=BattleEvent:New(),passiveList=0,isDead=false,Auto=false,IsDebug=false,enable=false} BuffMgr=BuffManager.New(),Event=BattleEvent:New(),passiveList=0,isDead=false,Auto=false,IsDebug=false,enable=false}
setmetatable(instance, RoleLogic) setmetatable(instance, RoleLogic)
return instance return instance
@ -31,6 +34,7 @@ function RoleLogic:Init(uid, data)
self.shield:Clear() --护盾列表 self.shield:Clear() --护盾列表
self.exCalDmgList:Clear() --额外计算伤害列表 self.exCalDmgList:Clear() --额外计算伤害列表
self.buffFilter:Clear() --buff屏蔽列表
self.BuffMgr:Init(self) self.BuffMgr:Init(self)
self.Event:ClearEvent() self.Event:ClearEvent()
@ -67,6 +71,11 @@ function RoleLogic:GetRoleData(property)
end end
function RoleLogic:AddBuff(buff) function RoleLogic:AddBuff(buff)
for i=1, self.buffFilter.size do
if self.buffFilter.buffer[i](buff) then
return
end
end
self.BuffMgr:AddBuff(buff) self.BuffMgr:AddBuff(buff)
end end

View File

@ -51,7 +51,7 @@ public class AdventureManager extends MongoBase {
} }
public void setUpdateTime(long updateTime) { public void setUpdateTime(long updateTime) {
updateString("updateTime.",updateTime); updateString("updateTime",updateTime);
this.updateTime = updateTime; this.updateTime = updateTime;
} }