伤害数字
This commit is contained in:
parent
0db618ef69
commit
1e6e99de9a
@ -30,6 +30,7 @@ BattleConst.HURT_STATE_CRIT = 1 -- 暴击
|
||||
BattleConst.EFFECT_COLOR_RED = 1
|
||||
BattleConst.EFFECT_COLOR_GREEN = 2
|
||||
BattleConst.EFFECT_COLOR_BLUE = 3
|
||||
BattleConst.EFFECT_COLOR_WHILTE = 4
|
||||
BattleConst.EFFECT_TYPE_MOVE_L = 1
|
||||
BattleConst.EFFECT_TYPE_MOVE_R = 2
|
||||
BattleConst.EFFECT_TYPE_CRIT = 3
|
||||
@ -193,6 +194,7 @@ BattleConst.EFFECT_TYPE = {
|
||||
BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE = {
|
||||
ROUND_BEGIN_HEAL = "round_begin_heal",
|
||||
KILL_MAX_ELEMENT_AND_HEAL = "kill_max_element_and_heal",
|
||||
BE_SUCKED = "be_sucked",
|
||||
}
|
||||
|
||||
BattleConst.SKILL_RECORD_DATA_NAME = {
|
||||
|
||||
@ -1407,19 +1407,34 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus, d
|
||||
if effectStatus == HURT_STATE_CRIT then
|
||||
self:showEffectNumber(BattleConst.EFFECT_COLOR_RED, BattleConst.EFFECT_TYPE_CRIT, "c" .. damage, x, y, delayTime)
|
||||
else
|
||||
if self.side == BattleConst.SIDE_ATK then
|
||||
self:showEffectNumber(BattleConst.EFFECT_COLOR_RED, BattleConst.EFFECT_TYPE_MOVE_L, damage, x, y, delayTime)
|
||||
local effectColor = BattleConst.EFFECT_COLOR_RED
|
||||
local damageStr = damage
|
||||
local direction = BattleConst.EFFECT_TYPE_MOVE_R
|
||||
local elementType = BattleHelper:getDamageOrCureType2MatchType(damageOrCureType)
|
||||
local weekNessValue = self.unitEntity:getWeakness(elementType)
|
||||
if weekNessValue > 0 then
|
||||
damageStr = "a" .. damage
|
||||
else
|
||||
self:showEffectNumber(BattleConst.EFFECT_COLOR_RED, BattleConst.EFFECT_TYPE_MOVE_R, damage, x, y, delayTime)
|
||||
local decGmgValue = self.unitEntity:getDecDmg(elementType)
|
||||
if decGmgValue > 0 then
|
||||
effectColor = BattleConst.EFFECT_COLOR_WHILTE
|
||||
damageStr = "d" .. damage
|
||||
end
|
||||
end
|
||||
|
||||
if self.side == BattleConst.SIDE_ATK then
|
||||
direction = BattleConst.EFFECT_TYPE_MOVE_L
|
||||
end
|
||||
|
||||
self:showEffectNumber(effectColor, direction, damageStr, x, y, delayTime)
|
||||
end
|
||||
end
|
||||
if effectType == EFFECT_TYPE.DIRECT then
|
||||
if hp > 0 and self.unitEntity:getShieldRebound() then -- 伤害反弹
|
||||
atker:takeDamageOrCure(self, num*self.unitEntity:getShieldRebound() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0, BattleConst.BUFF_NAME.SHIELD_REBOUND_200)
|
||||
end
|
||||
if self.unitEntity:getBeSucked() > 0 then -- 吸血
|
||||
atker:takeDamageOrCure(self, -num*self.unitEntity:getBeSucked() // DEFAULT_FACTOR, EFFECT_TYPE.HEAL, 0, BattleConst.ATTR_NAME.BE_SUCKED)
|
||||
atker:takeDamageOrCure(self, -num*self.unitEntity:getBeSucked() // DEFAULT_FACTOR, EFFECT_TYPE.HEAL, 0, BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE.BE_SUCKED)
|
||||
end
|
||||
if self.unitEntity:getIsLethargy() then -- 移除昏睡
|
||||
self:removeBuffByName(BattleConst.BUFF_NAME.LETHARGY)
|
||||
|
||||
@ -297,7 +297,8 @@ function BattleController:prepareFight()
|
||||
self.battleUI:addLoadUICompleteListener(function()
|
||||
BattleHelper:setEffectTextCache(self.battleUI:getBattleNumberRed(),
|
||||
self.battleUI:getBattleNumberGreen(),
|
||||
self.battleUI:getBattleNumberBlue())
|
||||
self.battleUI:getBattleNumberBlue(),
|
||||
self.battleUI:getBattleNumberWhite())
|
||||
self:initAtkUnits(onPreloadFinished)
|
||||
self:initDefUnits(onPreloadFinished)
|
||||
self.battleUI:refreshChessBoard(self:getChessBoardBgName())
|
||||
|
||||
@ -20,6 +20,7 @@ function BattleHelper:init()
|
||||
self.seed = tonumber(tostring(os.time()):reverse():sub(1,6))
|
||||
self.baseOrder = 0
|
||||
self.skillSoundPath = {}
|
||||
self.damageOrCureType2MatchType = {}
|
||||
end
|
||||
|
||||
function BattleHelper:setBaseOrder(baseOrder)
|
||||
@ -175,13 +176,14 @@ function BattleHelper:addSpineBoneFollowerGraphic(effectObj)
|
||||
return boneFollower
|
||||
end
|
||||
|
||||
function BattleHelper:setEffectTextCache(cache1, cache2, cache3)
|
||||
function BattleHelper:setEffectTextCache(cache1, cache2, cache3, cache4)
|
||||
if self.effectTextCacheList == nil then
|
||||
self.effectTextCacheList = {}
|
||||
end
|
||||
self.effectTextCacheList[1] = cache1
|
||||
self.effectTextCacheList[2] = cache2
|
||||
self.effectTextCacheList[3] = cache3
|
||||
self.effectTextCacheList[4] = cache4
|
||||
end
|
||||
|
||||
function BattleHelper:getEffectText(parent, colorType)
|
||||
@ -256,6 +258,30 @@ function BattleHelper:playSkillSound(name, delay)
|
||||
end
|
||||
end
|
||||
|
||||
function BattleHelper:getDamageOrCureType2MatchType(damageOrCureType)
|
||||
if not damageOrCureType then
|
||||
return GConst.BattleConst.ELEMENT_TYPE.NONE
|
||||
end
|
||||
|
||||
if not self.damageOrCureType2MatchType[damageOrCureType] then
|
||||
local elementType = GConst.BattleConst.ELEMENT_TYPE.NONE
|
||||
if string.match(damageOrCureType, "red") then
|
||||
elementType = GConst.BattleConst.ELEMENT_TYPE.RED
|
||||
elseif string.match(damageOrCureType, "yellow") then
|
||||
elementType = GConst.BattleConst.ELEMENT_TYPE.YELLOW
|
||||
elseif string.match(damageOrCureType, "green") then
|
||||
elementType = GConst.BattleConst.ELEMENT_TYPE.GREEN
|
||||
elseif string.match(damageOrCureType, "blue") then
|
||||
elementType = GConst.BattleConst.ELEMENT_TYPE.BLUE
|
||||
elseif string.match(damageOrCureType, "purple") then
|
||||
elementType = GConst.BattleConst.ELEMENT_TYPE.PURPLE
|
||||
end
|
||||
self.damageOrCureType2MatchType[damageOrCureType] = elementType
|
||||
end
|
||||
|
||||
return self.damageOrCureType2MatchType[damageOrCureType]
|
||||
end
|
||||
|
||||
function BattleHelper:performDurationDelay(delay, func)
|
||||
return BattleScheduler:performWithDelayGlobal(func, delay)
|
||||
end
|
||||
|
||||
@ -384,6 +384,7 @@ function BattleUI:initNumberNode()
|
||||
self.battleNumberRed = self.uiMap["battle_ui.cache_node.battle_number_red"]
|
||||
self.battleNumberGreen = self.uiMap["battle_ui.cache_node.battle_number_green"]
|
||||
self.battleNumberBlue = self.uiMap["battle_ui.cache_node.battle_number_blue"]
|
||||
self.battleNumberWhite = self.uiMap["battle_ui.cache_node.battle_number_white"]
|
||||
end
|
||||
|
||||
function BattleUI:getNumberNode()
|
||||
@ -402,6 +403,10 @@ function BattleUI:getBattleNumberBlue()
|
||||
return self.battleNumberBlue
|
||||
end
|
||||
|
||||
function BattleUI:getBattleNumberWhite()
|
||||
return self.battleNumberWhite
|
||||
end
|
||||
|
||||
function BattleUI:initComboNode()
|
||||
self.comboNode = self.uiMap["battle_ui.top_node.combo"]
|
||||
self.comboAnimator = self.comboNode:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user