【战斗】主动效果117,118添加
parent
a42f259c29
commit
4201f2d7cd
|
|
@ -2245,6 +2245,35 @@ local effectList = {
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
-- [a]%概率[b]改变[c]点怒气
|
||||||
|
-- a[float],b[改变类型],c[int]
|
||||||
|
[117] = function(caster, target, args, interval, skill)
|
||||||
|
local f1 = args[1]
|
||||||
|
local ct = args[2]
|
||||||
|
local i1 = args[3]
|
||||||
|
|
||||||
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
|
BattleUtil.RandomAction(f1, function()
|
||||||
|
target:AddRage(i1, ct)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
|
||||||
|
-- 造成[a]*[b]%的直接伤害(不会被分摊机制分摊)
|
||||||
|
-- a[属性],b[float]
|
||||||
|
[118] = function(caster, target, args, interval, skill)
|
||||||
|
local pro = args[1]
|
||||||
|
local f1 = args[2]
|
||||||
|
|
||||||
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
|
local damage = BattleUtil.ErrorCorrection(f1 * caster:GetRoleData(BattlePropList[pro]))
|
||||||
|
BattleUtil.FinalDamage(skill, caster, target, damage, nil, 0, nil, true)
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return effectList
|
return effectList
|
||||||
|
|
@ -271,3 +271,10 @@ BattleUnitType = {
|
||||||
Role = 1,
|
Role = 1,
|
||||||
Monster = 2
|
Monster = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BattleRoleElementType = {
|
||||||
|
REN = 1,
|
||||||
|
FO = 2,
|
||||||
|
YAO = 3,
|
||||||
|
DAO = 4
|
||||||
|
}
|
||||||
|
|
@ -188,7 +188,22 @@ function BattleUtil.ChooseTarget(role, chooseId)
|
||||||
end
|
end
|
||||||
arr = tempArr
|
arr = tempArr
|
||||||
end
|
end
|
||||||
|
elseif chooseLimit == 4 then -- 处于灼烧状态
|
||||||
|
local tempArr = {}
|
||||||
|
for i = 1, #arr do
|
||||||
|
if BattleLogic.BuffMgr:HasBuff(arr[i], BuffName.DOT, function (buff) return buff.damageType == DotType.Burn end) then
|
||||||
|
table.insert(tempArr, arr[i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
arr = tempArr
|
||||||
|
elseif chooseLimit == 5 then -- 人阵营
|
||||||
|
local tempArr = {}
|
||||||
|
for i = 1, #arr do
|
||||||
|
if arr[i].element == BattleRoleElementType.REN then
|
||||||
|
table.insert(tempArr, arr[i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
arr = tempArr
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 选择条件
|
-- 选择条件
|
||||||
|
|
@ -535,10 +550,8 @@ function BattleUtil.CalDamage(skill, atkRole, defRole, damageType, baseFactor, i
|
||||||
atkRole.Event:DispatchEvent(BattleEventName.RoleDamageAfter, defRole, damageFunc, fixDamage)
|
atkRole.Event:DispatchEvent(BattleEventName.RoleDamageAfter, defRole, damageFunc, fixDamage)
|
||||||
defRole.Event:DispatchEvent(BattleEventName.RoleBeDamagedAfter, atkRole, damageFunc, fixDamage)
|
defRole.Event:DispatchEvent(BattleEventName.RoleBeDamagedAfter, atkRole, damageFunc, fixDamage)
|
||||||
|
|
||||||
|
|
||||||
fixDamage = max(floor(attack * 0.1), fixDamage)
|
fixDamage = max(floor(attack * 0.1), fixDamage)
|
||||||
|
|
||||||
|
|
||||||
local finalDmg = 0 --计算实际造成的扣血
|
local finalDmg = 0 --计算实际造成的扣血
|
||||||
if not defRole:IsRealDead() then
|
if not defRole:IsRealDead() then
|
||||||
finalDmg = BattleUtil.ApplyDamage(skill, atkRole, defRole, fixDamage, bCrit, damageType, dotType)
|
finalDmg = BattleUtil.ApplyDamage(skill, atkRole, defRole, fixDamage, bCrit, damageType, dotType)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue