战斗逻辑修改

back_recharge
lvxinran 2019-07-16 10:59:40 +08:00
parent b4f77dd3c3
commit 43f978e9b4
2 changed files with 18 additions and 15 deletions

View File

@ -19,7 +19,7 @@ local propertyList = {
RoleDataName.CritDamageFactor,
RoleDataName.TreatFacter,
RoleDataName.MaxHp,
RoleDataName.MaxHp,
RoleDataName.Hp,
RoleDataName.CureFacter,
RoleDataName.Tenacity,
}

View File

@ -48,6 +48,11 @@ BattleLogic.TotalOrder = 0
BattleLogic.CurOrder = 0
local maxFrame --战斗最大用时,超时判负
local teamSkillCD = 40 * BattleLogic.GameFrameRate --异妖cd
local lastPlayerTeamSkillFrame
local lastEnemyTeamSkillFrame
local actionPool = BattleObjectPool.New(function ()
return { 0, 0 }
end)
@ -92,6 +97,9 @@ function BattleLogic.Init(maxTime, data, optionData)
playerSkillUsable = true
enemySkillUsable = true
lastPlayerTeamSkillFrame = 0
lastEnemyTeamSkillFrame = 0
isAuto = true
BattleLogic.Event:ClearEvent()
@ -164,8 +172,8 @@ function BattleLogic.GetMP(camp)
return camp == 0 and playerMP or enemyMP
end
function BattleLogic.GetAuto()
return isAuto
function BattleLogic.CanManualTeamSkill()
return not isAuto and playerMP == 100 and (lastPlayerTeamSkillFrame == 0 or curFrame - lastPlayerTeamSkillFrame >= teamSkillCD)
end
function BattleLogic.GenerateBuffId()
@ -307,16 +315,7 @@ function BattleLogic.ExecuteOption(option)
playerTeamSkillIndex = 1
end
playerMP = 0
end
elseif opType == 4 then --释放teamSkill
local teamSkill = playerTeamSkillList[playerTeamSkillIndex]
if teamSkill then
teamSkill:Cast()
playerTeamSkillIndex = playerTeamSkillIndex + 1
if playerTeamSkillIndex > #playerTeamSkillList then
playerTeamSkillIndex = 1
end
playerMP = 0
lastPlayerTeamSkillFrame = curFrame
end
elseif opType == 5 then --设置teamSkill自动手动
isAuto = opArg == 1
@ -417,7 +416,8 @@ function BattleLogic.Update()
end
end
if playerMP == 100 and playerSkillUsable and isAuto then
if playerMP == 100 and playerSkillUsable and isAuto and
(lastPlayerTeamSkillFrame == 0 or curFrame - lastPlayerTeamSkillFrame >= teamSkillCD) then
local teamSkill = playerTeamSkillList[playerTeamSkillIndex]
if teamSkill then
teamSkill:Cast()
@ -426,9 +426,11 @@ function BattleLogic.Update()
playerTeamSkillIndex = 1
end
playerMP = 0
lastPlayerTeamSkillFrame = curFrame
end
end
if enemyMP == 100 and enemySkillUsable then
if enemyMP == 100 and enemySkillUsable and
(lastEnemyTeamSkillFrame == 0 or curFrame - lastEnemyTeamSkillFrame >= teamSkillCD) then
local teamSkill = enemyTeamSkillList[enemyTeamSkillIndex]
if teamSkill then
teamSkill:Cast()
@ -437,6 +439,7 @@ function BattleLogic.Update()
enemyTeamSkillIndex = 1
end
enemyMP = 0
lastEnemyTeamSkillFrame = curFrame
end
end