|
|
|
@ -77,10 +77,10 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem
|
|
|
|
var damageResult = SettleDamage(hitInfo, entity, target); //伤害结算
|
|
|
|
var damageResult = SettleDamage(hitInfo, entity, target); //伤害结算
|
|
|
|
var hitLevel = SettleHitLevel(hitInfo, damageResult, entity, target); //命中效果等级
|
|
|
|
var hitLevel = SettleHitLevel(hitInfo, damageResult, entity, target); //命中效果等级
|
|
|
|
var flowSpeed = SettleFlowSpeed(hitInfo, hitLevel, entity, target); //强制位移(击退、击飞、击落等)
|
|
|
|
var flowSpeed = SettleFlowSpeed(hitInfo, hitLevel, entity, target); //强制位移(击退、击飞、击落等)
|
|
|
|
|
|
|
|
var pauseTime = SettlePause(hitInfo, hitLevel, entity, target); //卡帧
|
|
|
|
SettleSelfMoveForceScale(hitLevel, entity, target); //攻击者移动速度调整
|
|
|
|
SettleSelfMoveForceScale(hitLevel, entity, target); //攻击者移动速度调整
|
|
|
|
SettleBreak(flowSpeed, hitLevel, damageResult, entity, target); //打断技能/动画
|
|
|
|
SettleBreak(flowSpeed, hitLevel, damageResult, entity, target); //打断技能/动画
|
|
|
|
SettleBuff(hitLevel, entity, target); //添加硬直/击晕buff
|
|
|
|
SettleBuff(hitLevel, entity, target); //添加硬直/击晕buff
|
|
|
|
SettlePause(hitInfo, hitLevel, entity, target); //卡帧
|
|
|
|
|
|
|
|
SettleTrigger(hitInfo, entity, target); //命中触发器
|
|
|
|
SettleTrigger(hitInfo, entity, target); //命中触发器
|
|
|
|
|
|
|
|
|
|
|
|
//纯表现
|
|
|
|
//纯表现
|
|
|
|
@ -89,7 +89,7 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem
|
|
|
|
SettleFlash(hitLevel, entity, target); //闪白
|
|
|
|
SettleFlash(hitLevel, entity, target); //闪白
|
|
|
|
SettleShake(hitLevel, entity, target); //抖动
|
|
|
|
SettleShake(hitLevel, entity, target); //抖动
|
|
|
|
SettleScale(flowSpeed, entity, target); //抖动
|
|
|
|
SettleScale(flowSpeed, entity, target); //抖动
|
|
|
|
SettleGlobalEffect(hitInfo, hitLevel, damageResult, entity, target); //全局特效
|
|
|
|
SettleGlobalEffect(target, pauseTime); //全局特效
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (skill.HitInfo.Count > 0)
|
|
|
|
if (skill.HitInfo.Count > 0)
|
|
|
|
@ -321,16 +321,16 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem
|
|
|
|
return flowSpeed;
|
|
|
|
return flowSpeed;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static void SettlePause(SkillHitInfo hitInfo, EHitLevel hitLevel, GameEntity entity, GameEntity target)
|
|
|
|
private static float SettlePause(SkillHitInfo hitInfo, EHitLevel hitLevel, GameEntity entity, GameEntity target)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (target.IsMaster())
|
|
|
|
if (target.IsMaster())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//主角受击不卡帧
|
|
|
|
//主角受击不卡帧
|
|
|
|
return;
|
|
|
|
return 0f;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var param = hitInfo.SkillParam;
|
|
|
|
var param = hitInfo.SkillParam;
|
|
|
|
var pauseTime = param.pauseTime;
|
|
|
|
var pauseTime = 1f * param.pauseTime / GameConst.FPS;
|
|
|
|
|
|
|
|
|
|
|
|
if (hitLevel >= EHitLevel.ShieldBreak)
|
|
|
|
if (hitLevel >= EHitLevel.ShieldBreak)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -359,6 +359,7 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem
|
|
|
|
|
|
|
|
|
|
|
|
Util.EntityPause(entity, pauseTime);
|
|
|
|
Util.EntityPause(entity, pauseTime);
|
|
|
|
Util.EntityPause(target, pauseTime);
|
|
|
|
Util.EntityPause(target, pauseTime);
|
|
|
|
|
|
|
|
return pauseTime;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static void SettleSelfMoveForceScale(EHitLevel hitLevel, GameEntity entity, GameEntity target)
|
|
|
|
private static void SettleSelfMoveForceScale(EHitLevel hitLevel, GameEntity entity, GameEntity target)
|
|
|
|
@ -577,8 +578,7 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem
|
|
|
|
Util.EntityScale(target, dir);
|
|
|
|
Util.EntityScale(target, dir);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static void SettleGlobalEffect(SkillHitInfo hitInfo, EHitLevel hitLevel, SettleDamageResult dmgResult,
|
|
|
|
private static void SettleGlobalEffect(GameEntity target, float pauseTime)
|
|
|
|
GameEntity entity, GameEntity target)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (target.IsMaster())
|
|
|
|
if (target.IsMaster())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -589,7 +589,6 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var pauseTime = hitInfo.SkillParam.pauseTime;
|
|
|
|
|
|
|
|
if (pauseTime >= 0.1f)
|
|
|
|
if (pauseTime >= 0.1f)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Util.Shake();
|
|
|
|
Util.Shake();
|
|
|
|
|