luafight
parent
b9b8eaba39
commit
53821ad34c
|
@ -1722,6 +1722,60 @@ local effectList = {
|
||||||
buffRandomAction(f4, target, Buff.Create(caster, BuffName.DOT, f2, f2/f3, d1, dt, f1))
|
buffRandomAction(f4, target, Buff.Create(caster, BuffName.DOT, f2, f2/f3, d1, dt, f1))
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
|
--造成[a]%的[b]伤害,若暴击,[g][c]%概率改变我方随机1人[d]属性[e]%,持续[f]秒。
|
||||||
|
--a[float],b[伤害类型],c[float],d[属性],e[float],f[int],g[改变类型]
|
||||||
|
[92] = function(caster, target, args, interval)
|
||||||
|
local f4 = args[1]
|
||||||
|
local dt = args[2]
|
||||||
|
local f3 = args[3]
|
||||||
|
local pro1 = args[4]
|
||||||
|
local f1 = args[5]
|
||||||
|
local f2 = args[6]
|
||||||
|
local ct = args[7]
|
||||||
|
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
||||||
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
|
local dmg, crit = BattleUtil.CalDamage(caster, target, dt, f4)
|
||||||
|
if crit then
|
||||||
|
buffRandomAction(f3, target, Buff.Create(caster, BuffName.PropertyChange, f2, propertyList[pro1], f1, ct))
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
--造成[a]%的[b]伤害,若暴击,[c]概率驱散[d]个(0表示所有)[e]状态。
|
||||||
|
--a[float],b[伤害类型],c[float],d[int],e[状态类型]
|
||||||
|
[93] = function(caster, target, args, interval)
|
||||||
|
local f1 = args[1]
|
||||||
|
local dt = args[2]
|
||||||
|
local f2 = args[3]
|
||||||
|
local i1 = args[4]
|
||||||
|
local ct = args[5]
|
||||||
|
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
||||||
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
|
local dmg, crit = BattleUtil.CalDamage(caster, target, dt, f1)
|
||||||
|
if crit then
|
||||||
|
BattleUtil.RandomAction(f2, function ()
|
||||||
|
local count = 0
|
||||||
|
BattleLogic.BuffMgr:ClearBuff(target, function (buff)
|
||||||
|
local flag = false
|
||||||
|
if ct == 1 then --持续恢复
|
||||||
|
flag = buff.type == BuffName.HOT
|
||||||
|
elseif ct == 2 then --护盾
|
||||||
|
flag = buff.type == BuffName.Shield
|
||||||
|
elseif ct == 3 then --增益状态
|
||||||
|
flag = buff.isBuff == true
|
||||||
|
elseif ct == 4 then --减益状态
|
||||||
|
flag = buff.isDeBuff == true
|
||||||
|
elseif ct == 5 then --持续伤害
|
||||||
|
flag = buff.type == BuffName.DOT
|
||||||
|
end
|
||||||
|
if flag then
|
||||||
|
count = count + 1
|
||||||
|
end
|
||||||
|
return (i1 == 0 or count <= i1) and flag
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
return effectList
|
return effectList
|
|
@ -25,7 +25,7 @@ end
|
||||||
function Skill:Init(role, effectData, type) --type 0 异妖 1 点技 2 滑技
|
function Skill:Init(role, effectData, type) --type 0 异妖 1 点技 2 滑技
|
||||||
local isTeamSkill = type == 0
|
local isTeamSkill = type == 0
|
||||||
if type == 0 then --异妖
|
if type == 0 then --异妖
|
||||||
self.cd = effectData[1] % 100 --异妖技能的cd数据为:类型*100 + cd
|
self.cd = effectData[1] % 100 --异妖技能的cd数据为:类型*100 + 站位
|
||||||
self.randomInStage2 = 0
|
self.randomInStage2 = 0
|
||||||
elseif type == 1 then --点技
|
elseif type == 1 then --点技
|
||||||
self.cd = 0 --点技 cd为0
|
self.cd = 0 --点技 cd为0
|
||||||
|
|
|
@ -25,8 +25,6 @@ local playerTeamDummyRole = {camp = 0, Event = BattleEvent.New(), isTeam = true,
|
||||||
local enemyTeamDummyRole = {camp = 1, Event = BattleEvent.New(), isTeam = true, curSkill = nil, isDebug = false}
|
local enemyTeamDummyRole = {camp = 1, Event = BattleEvent.New(), isTeam = true, curSkill = nil, isDebug = false}
|
||||||
local playerTeamSkillList = {}
|
local playerTeamSkillList = {}
|
||||||
local enemyTeamSkillList = {}
|
local enemyTeamSkillList = {}
|
||||||
local playerTeamSkillIndex
|
|
||||||
local enemyTeamSkillIndex
|
|
||||||
|
|
||||||
local fightData
|
local fightData
|
||||||
local record
|
local record
|
||||||
|
@ -88,8 +86,6 @@ function BattleLogic.Init(maxTime, data, optionData)
|
||||||
curBuffId = 0
|
curBuffId = 0
|
||||||
curFrame = 0
|
curFrame = 0
|
||||||
|
|
||||||
playerMP = 0
|
|
||||||
enemyMP = 0
|
|
||||||
stage = 0
|
stage = 0
|
||||||
|
|
||||||
playerTeamDummyRole.isDebug = false
|
playerTeamDummyRole.isDebug = false
|
||||||
|
@ -110,10 +106,7 @@ function BattleLogic.StartOrder()
|
||||||
BattleLogic.CurOrder = BattleLogic.CurOrder + 1
|
BattleLogic.CurOrder = BattleLogic.CurOrder + 1
|
||||||
stage = 0
|
stage = 0
|
||||||
curStageFrame = 0
|
curStageFrame = 0
|
||||||
|
|
||||||
teamSkillCastIndex = 1
|
teamSkillCastIndex = 1
|
||||||
playerTeamSkillIndex = 1
|
|
||||||
enemyTeamSkillIndex = 1
|
|
||||||
|
|
||||||
if BattleLogic.CurOrder == 1 then
|
if BattleLogic.CurOrder == 1 then
|
||||||
for i=1, #fightData.playerData do
|
for i=1, #fightData.playerData do
|
||||||
|
@ -123,13 +116,16 @@ function BattleLogic.StartOrder()
|
||||||
BattleLogic.AddRole(fightData.enemyData[BattleLogic.CurOrder][i], i)
|
BattleLogic.AddRole(fightData.enemyData[BattleLogic.CurOrder][i], i)
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1, #playerTeamSkillList do
|
for i=1,3 do
|
||||||
skillPool:Put(playerTeamSkillList[i])
|
if playerTeamSkillList[i] then
|
||||||
playerTeamSkillList[i]=nil
|
skillPool:Put(playerTeamSkillList[i])
|
||||||
|
playerTeamSkillList[i]=nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
for i=1, #fightData.playerData.teamSkill do
|
for i=1, #fightData.playerData.teamSkill do
|
||||||
playerTeamSkillList[i] = skillPool:Get()
|
local skill = skillPool:Get()
|
||||||
playerTeamSkillList[i]:Init(playerTeamDummyRole, fightData.playerData.teamSkill[i], 0)
|
skill:Init(playerTeamDummyRole, fightData.playerData.teamSkill[i], 0)
|
||||||
|
playerTeamSkillList[skill.cd] = skill
|
||||||
end
|
end
|
||||||
for i=1, #fightData.playerData.teamPassive do
|
for i=1, #fightData.playerData.teamPassive do
|
||||||
for j=1, #fightData.playerData.teamPassive[i] do
|
for j=1, #fightData.playerData.teamPassive[i] do
|
||||||
|
@ -143,13 +139,16 @@ function BattleLogic.StartOrder()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1, #enemyTeamSkillList do
|
for i=1,3 do
|
||||||
skillPool:Put(enemyTeamSkillList[i])
|
if enemyTeamSkillList[i] then
|
||||||
enemyTeamSkillList[i]=nil
|
skillPool:Put(enemyTeamSkillList[i])
|
||||||
|
enemyTeamSkillList[i]=nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
for i=1, #fightData.enemyData[BattleLogic.CurOrder].teamSkill do
|
for i=1, #fightData.enemyData[BattleLogic.CurOrder].teamSkill do
|
||||||
enemyTeamSkillList[i] = skillPool:Get()
|
local skill = skillPool:Get()
|
||||||
enemyTeamSkillList[i]:Init(enemyTeamDummyRole, fightData.enemyData[BattleLogic.CurOrder].teamSkill[i], 0)
|
skill:Init(enemyTeamDummyRole, fightData.enemyData[BattleLogic.CurOrder].teamSkill[i], 0)
|
||||||
|
enemyTeamSkillList[skill.cd] = skill
|
||||||
end
|
end
|
||||||
for i=1, #fightData.enemyData[BattleLogic.CurOrder].teamPassive do
|
for i=1, #fightData.enemyData[BattleLogic.CurOrder].teamPassive do
|
||||||
for j=1, #fightData.enemyData[BattleLogic.CurOrder].teamPassive[i] do
|
for j=1, #fightData.enemyData[BattleLogic.CurOrder].teamPassive[i] do
|
||||||
|
@ -190,6 +189,10 @@ function BattleLogic.StartOrder()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function BattleLogic.GetTeamSkill(camp, pos)
|
||||||
|
return camp == 0 and playerTeamSkillList[pos] or enemyTeamSkillList[pos]
|
||||||
|
end
|
||||||
|
|
||||||
function BattleLogic.GetTeamSkillCastSlider()
|
function BattleLogic.GetTeamSkillCastSlider()
|
||||||
if playerTeamDummyRole.isDebug then
|
if playerTeamDummyRole.isDebug then
|
||||||
return 0
|
return 0
|
||||||
|
@ -372,22 +375,15 @@ function BattleLogic.Update()
|
||||||
end
|
end
|
||||||
|
|
||||||
if teamSkillCastIndex <= #teamSkillCastTime and curStageFrame > teamSkillCastTime[teamSkillCastIndex] then
|
if teamSkillCastIndex <= #teamSkillCastTime and curStageFrame > teamSkillCastTime[teamSkillCastIndex] then
|
||||||
|
if not playerTeamDummyRole.isDebug and playerTeamSkillList[teamSkillCastIndex] then
|
||||||
|
playerTeamSkillList[teamSkillCastIndex]:Cast()
|
||||||
|
end
|
||||||
|
if not enemyTeamDummyRole.isDebug and enemyTeamSkillList[teamSkillCastIndex] then
|
||||||
|
enemyTeamSkillList[teamSkillCastIndex]:Cast()
|
||||||
|
end
|
||||||
teamSkillCastIndex = teamSkillCastIndex + 1
|
teamSkillCastIndex = teamSkillCastIndex + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if playerTeamSkillIndex < teamSkillCastIndex then
|
|
||||||
if not playerTeamDummyRole.isDebug and playerTeamSkillList[playerTeamSkillIndex] then
|
|
||||||
playerTeamSkillList[playerTeamSkillIndex]:Cast()
|
|
||||||
playerTeamSkillIndex = playerTeamSkillIndex + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if enemyTeamSkillIndex < teamSkillCastIndex then
|
|
||||||
if not enemyTeamDummyRole.isDebug and enemyTeamSkillList[enemyTeamSkillIndex] then
|
|
||||||
enemyTeamSkillList[enemyTeamSkillIndex]:Cast()
|
|
||||||
enemyTeamSkillIndex = enemyTeamSkillIndex + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local index = 1
|
local index = 1
|
||||||
while index <= tbActionList.size do
|
while index <= tbActionList.size do
|
||||||
local action = tbActionList.buffer[index]
|
local action = tbActionList.buffer[index]
|
||||||
|
@ -479,26 +475,14 @@ end
|
||||||
|
|
||||||
function BattleLogic.CastTeamSkill(camp)
|
function BattleLogic.CastTeamSkill(camp)
|
||||||
if camp == 0 then
|
if camp == 0 then
|
||||||
local teamSkill = playerTeamSkillList[playerTeamSkillIndex]
|
local teamSkill = playerTeamSkillList[teamSkillCastIndex]
|
||||||
if teamSkill then
|
if teamSkill then
|
||||||
teamSkill:Cast()
|
teamSkill:Cast()
|
||||||
if playerTeamSkillIndex == #playerTeamSkillList then
|
|
||||||
playerTeamSkillIndex = 1
|
|
||||||
else
|
|
||||||
playerTeamSkillIndex = playerTeamSkillIndex + 1
|
|
||||||
end
|
|
||||||
playerMP = 0
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local teamSkill = enemyTeamSkillList[enemyTeamSkillIndex]
|
local teamSkill = enemyTeamSkillList[teamSkillCastIndex]
|
||||||
if teamSkill then
|
if teamSkill then
|
||||||
teamSkill:Cast()
|
teamSkill:Cast()
|
||||||
if enemyTeamSkillIndex == #enemyTeamSkillList then
|
|
||||||
enemyTeamSkillIndex = 1
|
|
||||||
else
|
|
||||||
enemyTeamSkillIndex = enemyTeamSkillIndex + 1
|
|
||||||
end
|
|
||||||
enemyMP = 0
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue