diff --git a/Assets/ManagedResources/Effects/Animation/normalAttackFloat.anim b/Assets/ManagedResources/Effects/Animation/normalAttackFloat.anim index 5b59e04634..d41d2dba94 100644 --- a/Assets/ManagedResources/Effects/Animation/normalAttackFloat.anim +++ b/Assets/ManagedResources/Effects/Animation/normalAttackFloat.anim @@ -29,7 +29,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.16666667 + time: 0.041666668 value: {x: 0.8, y: 0.8, z: 1.3} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -38,7 +38,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: {x: 0.8, y: 0.8, z: 1} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -47,7 +47,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: {x: 0.8, y: 0.8, z: 1} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -73,7 +73,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 1 inSlope: 0 outSlope: 0 @@ -101,7 +101,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 1 inSlope: 0 outSlope: 0 @@ -129,7 +129,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 1 inSlope: 0 outSlope: 0 @@ -157,7 +157,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.041666668 value: 1 inSlope: 0 outSlope: 0 @@ -166,7 +166,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: 1 inSlope: 0 outSlope: 0 @@ -175,7 +175,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 0 inSlope: 0 outSlope: 0 @@ -203,7 +203,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 0 inSlope: 0 outSlope: 0 @@ -231,7 +231,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: 0 inSlope: 0 outSlope: 0 @@ -240,8 +240,17 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 - value: 0 + time: 0.20833333 + value: 100 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 97.23032 inSlope: 0 outSlope: 0 tangentMode: 136 @@ -256,7 +265,7 @@ AnimationClip: classID: 224 script: {fileID: 0} m_PPtrCurves: [] - m_SampleRate: 60 + m_SampleRate: 24 m_WrapMode: 0 m_Bounds: m_Center: {x: 0, y: 0, z: 0} @@ -277,6 +286,13 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 538195251 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 - serializedVersion: 2 path: 0 attribute: 2526845255 @@ -305,20 +321,13 @@ AnimationClip: typeID: 224 customType: 28 isPPtrCurve: 0 - - serializedVersion: 2 - path: 0 - attribute: 538195251 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.45 + m_StopTime: 0.7083333 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 @@ -347,7 +356,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.041666668 value: 0.8 inSlope: 0 outSlope: 0 @@ -356,7 +365,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: 0.8 inSlope: 0 outSlope: 0 @@ -365,7 +374,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 0.8 inSlope: 0 outSlope: 0 @@ -393,7 +402,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.041666668 value: 0.8 inSlope: 0 outSlope: 0 @@ -402,7 +411,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: 0.8 inSlope: 0 outSlope: 0 @@ -411,7 +420,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 0.8 inSlope: 0 outSlope: 0 @@ -439,7 +448,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.041666668 value: 1.3 inSlope: 0 outSlope: 0 @@ -448,7 +457,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: 1 inSlope: 0 outSlope: 0 @@ -457,7 +466,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 1 inSlope: 0 outSlope: 0 @@ -485,7 +494,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 1 inSlope: 0 outSlope: 0 @@ -513,7 +522,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 1 inSlope: 0 outSlope: 0 @@ -541,7 +550,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 1 inSlope: 0 outSlope: 0 @@ -569,7 +578,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.041666668 value: 1 inSlope: 0 outSlope: 0 @@ -578,7 +587,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: 1 inSlope: 0 outSlope: 0 @@ -587,7 +596,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 0 inSlope: 0 outSlope: 0 @@ -615,7 +624,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 + time: 0.7083333 value: 0 inSlope: 0 outSlope: 0 @@ -643,7 +652,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.36666667 + time: 0.125 value: 0 inSlope: 0 outSlope: 0 @@ -652,8 +661,17 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.45 - value: 0 + time: 0.20833333 + value: 100 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 97.23032 inSlope: 0 outSlope: 0 tangentMode: 136 diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/FloatNode.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/FloatNode.lua index 506cee157c..75cf037945 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/FloatNode.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/FloatNode.lua @@ -293,7 +293,7 @@ end -- end) -- end function FloatNode:ArtFloating(type, color, value,role,tarGetPos) - local trole= role and role or nil + local trole= role and role or {} local ttarGetPos=tarGetPos and tarGetPos or self.GameObject.transform.position local go = BattleManager.LoadAsset(floatingEffect) go.transform:SetParent(self.RootPanel.transform) @@ -306,7 +306,7 @@ function FloatNode:ArtFloating(type, color, value,role,tarGetPos) local index=0 - if #trole== 0 then + if #trole== 0 then trole[#trole+1]=go index=#trole else @@ -366,7 +366,7 @@ function FloatNode:ArtFloating(type, color, value,role,tarGetPos) anim:GetComponent("Canvas").sortingOrder = BattleManager.GetBattleSorting() + 100 anim:GetComponent("Animator"):Play(ArtFloatingAnim[type]) - BattleManager.AddDelayRecycleRes(floatingEffect, go, 3,function () + BattleManager.AddDelayRecycleRes(floatingEffect, go, 1,function () if trole then for key, value in pairs(trole) do if value == go then diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua index 2c08399842..9b87cc7258 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua @@ -683,20 +683,126 @@ local DotTypeTip = { [3] = Language[10244], } -- +-- function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill,isImmune) +-- if isImmune and isImmune==true then +-- return +-- end +-- if skill then +-- -- 技能配置 +-- local combatId = BattleManager.GetCombatIdBySkin(skill.id, atkRole.roleData.skinId) +-- local combat = BattleManager.GetSkillCombat(combatId) +-- -- +-- local delay = combat.DamageDelay or 0 +-- local continue = skill.continueTime or 0 +-- --local count = skill.attackCount or 1 +-- local count = type(combat.SkillNumbetTime[1][1]) == "userdata" and 1 or #combat.SkillNumbetTime + +-- local space = continue / count +-- local d = math.floor(dmg / count) +-- -- 如果平均伤害小于0 则 +-- if d == 0 then +-- d = dmg +-- count = 1 +-- end +-- if BattleManager.IsBattleTestPanel() then +-- LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s, 伤害段数:%s,每段伤害:%s", self.camp, self.role.position, dmg, count, d)) +-- end +-- -- 伤害文字延时,有些受击特效不是立刻播放文字 + +-- -- 伤害文字 +-- -- if count ~= 1 and skill.SkillNumbetTime==nil and skill.SkillNumbetTime~=0 then +-- if count ~=1 then +-- if combat.SkillNumbetTime and combat.SkillNumbetTime[1] and (type(combat.SkillNumbetTime[1][1]) ~= "userdata" and combat.SkillNumbetTime[1][1]~=0) then +-- for i = 1, #combat.SkillNumbetTime do +-- self:DelayFunc(combat.SkillNumbetTime[i][2]/1000, function() +-- local fd = dmg - d *(count - 1) +-- self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill) +-- -- 被伤害卡牌表现 +-- self:DOHitEffect(continue) +-- self:DOHitMoveMent(continue,combat) +-- end) +-- end +-- end +-- -- 多段伤害 +-- -- 后续伤害延迟打出 +-- -- self:LoopFunc(space, count - 1, function() +-- -- self:OnceDamaged(atkRole, d, bCrit, finalDmg, damageType, dotType, skill) +-- -- end) +-- -- -- 立刻打出第一次伤害 +-- -- local fd = dmg - d *(count - 1) +-- -- self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill) +-- -- -- 被伤害卡牌表现 +-- -- self:DOHitEffect(continue) + +-- else +-- self:DelayFunc(delay/1000, function() +-- self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) +-- -- 被伤害卡牌表现 +-- self:DOHitEffect() +-- self:DOHitMoveMent(nil,combat) +-- end) +-- end + +-- -- 播放特效 +-- self.SkillCaster:CheckSkillHitEffect("hit", combat, skill) +-- else +-- if BattleManager.IsBattleTestPanel() then +-- LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s", self.camp, self.role.position, dmg)) +-- end +-- -- 伤害文字 +-- self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) +-- -- 被伤害卡牌表现 +-- self:DOHitEffect() +-- end +-- end +-- -- +-- function PlayerView:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) +-- --王振兴注释,为了解决英雄死亡多段伤害显示不完整 2020/8/17 +-- --if self.isDead then return end +-- if dotType then +-- if dotType == DotType.Poison then +-- self.Floater:ArtFloating(ArtFloatingType.PoisonDamage, ArtFloatingColor.Poison, dmg,TextFloatingColor.DarkGreen,self.role) +-- elseif dotType == DotType.Burn then +-- self.Floater:ArtFloating(ArtFloatingType.FireDamage, ArtFloatingColor.Fire, dmg,self.role) +-- elseif dotType == DotType.Blooding then +-- self.Floater:ArtFloating(ArtFloatingType.BleedDamage, ArtFloatingColor.Fire, dmg,self.role) +-- else +-- self.Floater:TextBuffFloating(2, DotTypeTip[dotType]..dmg) +-- end + +-- else +-- if bCrit then -- 暴击红色并显示暴击 +-- self.Floater:ArtFloating(ArtFloatingType.CritDamage, ArtFloatingColor.Red, dmg,self.role) +-- else +-- if atkRole.isTeam then -- 异妖紫色 +-- self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.Purple, dmg,self.role) +-- else +-- if skill and skill.type == BattleSkillType.Special then -- 技能黄色 +-- self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.Yellow, dmg,self.role) +-- else -- 普攻白色 +-- self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.White, dmg,self.role) +-- end +-- end +-- end +-- end +-- -- 播放受击动画 +-- self:PlaySpineAnim(self.RoleLiveGOGraphic, 0, "hit", false) +-- end function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill,isImmune) if isImmune and isImmune==true then - return + return end + local t={} + local pos=self.GameObject.transform.position if skill then -- 技能配置 local combatId = BattleManager.GetCombatIdBySkin(skill.id, atkRole.roleData.skinId) local combat = BattleManager.GetSkillCombat(combatId) - -- + -- local delay = combat.DamageDelay or 0 - local continue = skill.continueTime or 0 - --local count = skill.attackCount or 1 + local continue = skill.continueTime or 0 local count = type(combat.SkillNumbetTime[1][1]) == "userdata" and 1 or #combat.SkillNumbetTime - + local space = continue / count local d = math.floor(dmg / count) -- 如果平均伤害小于0 则 @@ -708,15 +814,15 @@ function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s, 伤害段数:%s,每段伤害:%s", self.camp, self.role.position, dmg, count, d)) end -- 伤害文字延时,有些受击特效不是立刻播放文字 - + -- 伤害文字 - -- if count ~= 1 and skill.SkillNumbetTime==nil and skill.SkillNumbetTime~=0 then + -- if count ~= 1 and skill.SkillNumbetTime==nil and skill.SkillNumbetTime~=0 then if count ~=1 then if combat.SkillNumbetTime and combat.SkillNumbetTime[1] and (type(combat.SkillNumbetTime[1][1]) ~= "userdata" and combat.SkillNumbetTime[1][1]~=0) then for i = 1, #combat.SkillNumbetTime do self:DelayFunc(combat.SkillNumbetTime[i][2]/1000, function() local fd = dmg - d *(count - 1) - self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill) + self:OnceDamaged(atkRole, fd, bCrit, finalDmg, damageType, dotType, skill,t,pos) -- 被伤害卡牌表现 self:DOHitEffect(continue) self:DOHitMoveMent(continue,combat) @@ -736,7 +842,7 @@ function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType else self:DelayFunc(delay/1000, function() - self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) + self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill,t,pos) -- 被伤害卡牌表现 self:DOHitEffect() self:DOHitMoveMent(nil,combat) @@ -750,37 +856,37 @@ function PlayerView:OnDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType LogYellow(string.format("目标阵营:%s, 位置:%s, 总伤害:%s", self.camp, self.role.position, dmg)) end -- 伤害文字 - self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) + self:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill,t,pos) -- 被伤害卡牌表现 self:DOHitEffect() + -- self:DOHitMoveMent(nil,combat) end end -- -function PlayerView:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill) +function PlayerView:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotType, skill,t,pos) --王振兴注释,为了解决英雄死亡多段伤害显示不完整 2020/8/17 --if self.isDead then return end if dotType then if dotType == DotType.Poison then - self.Floater:ArtFloating(ArtFloatingType.PoisonDamage, ArtFloatingColor.Poison, dmg,TextFloatingColor.DarkGreen,self.role) + self.Floater:ArtFloating(ArtFloatingType.PoisonDamage, ArtFloatingColor.Poison, dmg,t,pos) elseif dotType == DotType.Burn then - self.Floater:ArtFloating(ArtFloatingType.FireDamage, ArtFloatingColor.Fire, dmg,self.role) + self.Floater:ArtFloating(ArtFloatingType.FireDamage, ArtFloatingColor.Fire, dmg,t,pos) elseif dotType == DotType.Blooding then - self.Floater:ArtFloating(ArtFloatingType.BleedDamage, ArtFloatingColor.Fire, dmg,self.role) + self.Floater:ArtFloating(ArtFloatingType.BleedDamage, ArtFloatingColor.Fire, dmg,t,pos) else self.Floater:TextBuffFloating(2, DotTypeTip[dotType]..dmg) end - else if bCrit then -- 暴击红色并显示暴击 - self.Floater:ArtFloating(ArtFloatingType.CritDamage, ArtFloatingColor.Red, dmg,self.role) + self.Floater:ArtFloating(ArtFloatingType.CritDamage, ArtFloatingColor.Red, dmg,t,pos) else if atkRole.isTeam then -- 异妖紫色 - self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.Purple, dmg,self.role) + self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.Purple, dmg,t,pos) else if skill and skill.type == BattleSkillType.Special then -- 技能黄色 - self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.Yellow, dmg,self.role) + self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.Yellow, dmg,t,pos) else -- 普攻白色 - self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.White, dmg,self.role) + self.Floater:ArtFloating(ArtFloatingType.Damage, ArtFloatingColor.White, dmg,t,pos) end end end @@ -789,7 +895,6 @@ function PlayerView:OnceDamaged(atkRole, dmg, bCrit, finalDmg, damageType, dotTy self:PlaySpineAnim(self.RoleLiveGOGraphic, 0, "hit", false) end - -- 播放卡牌受击效果 function PlayerView:DOHitEffect(time, func) -- 时间修正