buff叠加机制和然烧buff
This commit is contained in:
parent
3cc17442b6
commit
518aabb829
@ -252,6 +252,11 @@ local buff = {
|
|||||||
["fx_disappear"]={
|
["fx_disappear"]={
|
||||||
14
|
14
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
[47]={
|
||||||
|
["name"]="burn",
|
||||||
|
["buff_type"]=4,
|
||||||
|
["formula"]=4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
local keys = {
|
local keys = {
|
||||||
@ -301,12 +306,13 @@ local keys = {
|
|||||||
["cured_add"]=buff[43],
|
["cured_add"]=buff[43],
|
||||||
["add_skill"]=buff[44],
|
["add_skill"]=buff[44],
|
||||||
["skill_fire_times"]=buff[45],
|
["skill_fire_times"]=buff[45],
|
||||||
["shield_rebound_200"]=buff[46]
|
["shield_rebound_200"]=buff[46],
|
||||||
|
["burn"]=buff[47]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
local config = {
|
local config = {
|
||||||
data=buff,
|
data=buff,
|
||||||
keys=keys,
|
keys=keys,
|
||||||
count=46
|
count=47
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
@ -96,6 +96,9 @@ local chapter = {
|
|||||||
3
|
3
|
||||||
},
|
},
|
||||||
["seal_element"]={
|
["seal_element"]={
|
||||||
|
1,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
5
|
5
|
||||||
},
|
},
|
||||||
["not_involved_skill"]={
|
["not_involved_skill"]={
|
||||||
|
|||||||
@ -336,6 +336,12 @@ local skill = {
|
|||||||
["num"]=40000,
|
["num"]=40000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
["type"]="burn",
|
||||||
|
["num"]=10000,
|
||||||
|
["ratio"]=10000,
|
||||||
|
["round"]=2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
["obj"]=2,
|
["obj"]=2,
|
||||||
|
|||||||
@ -90,6 +90,12 @@ BattleConst.BUFF_TYPE = {
|
|||||||
DIRECT_HURT = 3
|
DIRECT_HURT = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BattleConst.BUFF_STACK_TYPE = {
|
||||||
|
CANT_ADD = 0,
|
||||||
|
ADD_ROUND = 1,
|
||||||
|
ADD = 2
|
||||||
|
}
|
||||||
|
|
||||||
BattleConst.SKILL_MOVE_TYPE = {
|
BattleConst.SKILL_MOVE_TYPE = {
|
||||||
MOVE = 1, -- 移动到目标跟前使用
|
MOVE = 1, -- 移动到目标跟前使用
|
||||||
STAND = 2, -- 原地使用
|
STAND = 2, -- 原地使用
|
||||||
|
|||||||
@ -1067,7 +1067,7 @@ function BattleUnitComp:addMaxHp(percent)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BattleUnitComp:addBuff(buffEffect)
|
function BattleUnitComp:addBuff(buffEffect)
|
||||||
self.team:addBuff(buffEffect)
|
return self.team:addBuff(buffEffect)
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleUnitComp:updateBuffState(buff, num)
|
function BattleUnitComp:updateBuffState(buff, num)
|
||||||
@ -1151,7 +1151,7 @@ function BattleUnitComp:takeEffect(buff, target)
|
|||||||
buffEffect.round = round
|
buffEffect.round = round
|
||||||
buffEffect.target = target
|
buffEffect.target = target
|
||||||
buffEffect.sender = self
|
buffEffect.sender = self
|
||||||
target:addBuff(buffEffect)
|
buffEffect = target:addBuff(buffEffect)
|
||||||
end
|
end
|
||||||
local func = BattleBuffHandle.takeBuffEffect[buff:getBuffType()]
|
local func = BattleBuffHandle.takeBuffEffect[buff:getBuffType()]
|
||||||
if func then
|
if func then
|
||||||
|
|||||||
@ -39,6 +39,11 @@ BattleFormula.calculateFormula = {
|
|||||||
[3] = function(unitComp, buff, targetUnit)
|
[3] = function(unitComp, buff, targetUnit)
|
||||||
local result = unitComp.unitEntity:getAtk() * buff:getEffectNum() // DEFAULT_FACTOR * (unitComp.unitEntity:getCureAddition() + DEFAULT_FACTOR) // DEFAULT_FACTOR
|
local result = unitComp.unitEntity:getAtk() * buff:getEffectNum() // DEFAULT_FACTOR * (unitComp.unitEntity:getCureAddition() + DEFAULT_FACTOR) // DEFAULT_FACTOR
|
||||||
return result, 0
|
return result, 0
|
||||||
|
end,
|
||||||
|
-- buff释放方攻击力*技能倍率
|
||||||
|
[4] = function(unitComp, buff, targetUnit)
|
||||||
|
local result = unitComp.unitEntity:getAtk() * buff:getEffectNum() // DEFAULT_FACTOR
|
||||||
|
return result, 0
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -228,11 +228,60 @@ function BattleTeam:handleShield(reduceShield, unit)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BattleTeam:addBuff(buffEffect)
|
function BattleTeam:addBuff(buffEffect)
|
||||||
table.insert(self.buffList, buffEffect)
|
local stack = buffEffect.buff:getStack()
|
||||||
self:updateBuffState(buffEffect.buff, 1)
|
local needRecycle
|
||||||
if buffEffect.buff:getIcon() then
|
if not stack or stack == BattleConst.BUFF_STACK_TYPE.CANT_ADD then
|
||||||
self.battleController:refreshBuff(self.side, self.buffList)
|
local buffName = buffEffect.buff:getName()
|
||||||
|
local buffNum = self.sameBuffCount[buffName]
|
||||||
|
if buffNum and buffNum > 0 then
|
||||||
|
for _, bEffect in ipairs(self.buffList) do
|
||||||
|
if bEffect.buff:getName() == buffName then
|
||||||
|
if bEffect.round < buffEffect.round then
|
||||||
|
bEffect.round = buffEffect.round
|
||||||
|
for fieldName, v in pairs(bEffect) do
|
||||||
|
if fieldName ~= "buff" and fieldName ~= "round" then
|
||||||
|
bEffect[fieldName] = buffEffect[fieldName]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
needRecycle = bEffect
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif stack == BattleConst.BUFF_STACK_TYPE.ADD_ROUND then
|
||||||
|
local buffName = buffEffect.buff:getName()
|
||||||
|
local buffNum = self.sameBuffCount[buffName]
|
||||||
|
if buffNum and buffNum > 0 then
|
||||||
|
for _, bEffect in ipairs(self.buffList) do
|
||||||
|
if bEffect.buff:getName() == buffName then
|
||||||
|
bEffect.round = bEffect.round + buffEffect.round
|
||||||
|
for fieldName, v in pairs(bEffect) do
|
||||||
|
if fieldName ~= "buff" and fieldName ~= "round" then
|
||||||
|
bEffect[fieldName] = buffEffect[fieldName]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
needRecycle = bEffect
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif stack == BattleConst.BUFF_STACK_TYPE.ADD then
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if needRecycle then
|
||||||
|
BattleHelper:recycleBuffEffect(buffEffect)
|
||||||
|
else
|
||||||
|
table.insert(self.buffList, buffEffect)
|
||||||
|
self:updateBuffState(buffEffect.buff, 1)
|
||||||
|
if buffEffect.buff:getIcon() then
|
||||||
|
self.battleController:refreshBuff(self.side, self.buffList)
|
||||||
|
end
|
||||||
|
|
||||||
|
needRecycle = buffEffect
|
||||||
|
end
|
||||||
|
|
||||||
|
return needRecycle
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleTeam:removeAllBuff()
|
function BattleTeam:removeAllBuff()
|
||||||
|
|||||||
@ -81,6 +81,10 @@ function BattleBuffEntity:setTargetSide(side)
|
|||||||
self.targetSide = side
|
self.targetSide = side
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function BattleBuffEntity:getStack()
|
||||||
|
return self.buffInfo.stack
|
||||||
|
end
|
||||||
|
|
||||||
function BattleBuffEntity:getIcon()
|
function BattleBuffEntity:getIcon()
|
||||||
return self.buffInfo.icon
|
return self.buffInfo.icon
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user