Merge branch 'dev' of git.juzugame.com:b6-client/b6-lua into dev
This commit is contained in:
commit
552e95f5f7
@ -691,7 +691,7 @@ BattleConst.SKILL_TYPE = {
|
||||
RANDOM_KILL_SKILL_GRID = 6,
|
||||
SHUFFLE_BOARD = 7,
|
||||
RANDOM_KILL_ROW_OR_COLUMN = 8,
|
||||
RANDOM_KILL_ELEMENT_AND_HEAL = 9,
|
||||
KILL_MAX_ELEMENT_AND_HEAL = 9,
|
||||
}
|
||||
|
||||
BattleConst.ATTACK_OVER_ACTIVE_SKILL_TYPE = {
|
||||
@ -700,7 +700,7 @@ BattleConst.ATTACK_OVER_ACTIVE_SKILL_TYPE = {
|
||||
[BattleConst.SKILL_TYPE.RANDOM_KILL_SKILL_GRID] = true,
|
||||
[BattleConst.SKILL_TYPE.SHUFFLE_BOARD] = true,
|
||||
[BattleConst.SKILL_TYPE.RANDOM_KILL_ROW_OR_COLUMN] = true,
|
||||
[BattleConst.SKILL_TYPE.RANDOM_KILL_ELEMENT_AND_HEAL] = true,
|
||||
[BattleConst.SKILL_TYPE.KILL_MAX_ELEMENT_AND_HEAL] = true,
|
||||
}
|
||||
|
||||
BattleConst.SKILL_METHOD_TYPE = {
|
||||
|
||||
@ -201,7 +201,7 @@ local function _takeRandomKillRowOrColumn(atkUnitComp, skillEntity, battleContro
|
||||
battleController:killRowOrColumn(infoList)
|
||||
end
|
||||
|
||||
local function _takeRandomKillElementAndHeal(atkUnitComp, skillEntity, battleController)
|
||||
local function _takeKillMaxElementAndHeal(atkUnitComp, skillEntity, battleController)
|
||||
local battleData = battleController.battleData
|
||||
if not battleData or not battleData:getGridEnties() or not skillEntity:getEliminateSkillParameter() then
|
||||
return
|
||||
@ -213,25 +213,32 @@ local function _takeRandomKillElementAndHeal(atkUnitComp, skillEntity, battleCon
|
||||
end
|
||||
|
||||
local elementMap = {}
|
||||
local list = {}
|
||||
local elementCount = {}
|
||||
for posId, entity in pairs(battleData:getGridEnties()) do
|
||||
if entity:isEmptyIdle() then
|
||||
local elementType = entity:getElementType()
|
||||
if not elementMap[elementType] then
|
||||
elementMap[elementType] = {}
|
||||
table.insert(list, elementType)
|
||||
end
|
||||
table.insert(elementMap[elementType], posId)
|
||||
elementCount[elementType] = (elementCount[elementType] or 0) + 1
|
||||
end
|
||||
end
|
||||
|
||||
if not list[1] then
|
||||
local count = 0
|
||||
local maxElement
|
||||
for elementType, num in pairs(elementCount) do
|
||||
if num > count then
|
||||
count = num
|
||||
maxElement = elementType
|
||||
end
|
||||
end
|
||||
|
||||
if not maxElement then
|
||||
return
|
||||
end
|
||||
|
||||
local elementType = list[math.random(1, #list)]
|
||||
list = elementMap[elementType]
|
||||
local count = #list
|
||||
local list = elementMap[maxElement]
|
||||
local heal = count * effectNum * atkUnitComp.unitEntity:getAtk() // GConst.BattleConst.DEFAULT_FACTOR
|
||||
atkUnitComp:takeDamageOrCure(atkUnitComp, heal, BattleConst.EFFECT_TYPE.HEAL, 0)
|
||||
|
||||
@ -250,7 +257,7 @@ BattleBoardSkillHandle._activeAttackOverSkill = {
|
||||
[SKILL_TYPE.RANDOM_KILL_SKILL_GRID] = _takeRandomKillSkillGrid,
|
||||
[SKILL_TYPE.SHUFFLE_BOARD] = _takeShuffleBoard,
|
||||
[SKILL_TYPE.RANDOM_KILL_ROW_OR_COLUMN] = _takeRandomKillRowOrColumn,
|
||||
[SKILL_TYPE.RANDOM_KILL_ELEMENT_AND_HEAL] = _takeRandomKillElementAndHeal,
|
||||
[SKILL_TYPE.KILL_MAX_ELEMENT_AND_HEAL] = _takeKillMaxElementAndHeal,
|
||||
}
|
||||
|
||||
function BattleBoardSkillHandle.activeBoardSkill(posId, skillEntity, gridEntities, sequenceEntities, battleController)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user