diff --git a/client/Assets/ArticyImporter/Content/Generated/ArticyEditorSettings.asset b/client/Assets/ArticyImporter/Content/Generated/ArticyEditorSettings.asset index 502d868..9966bd1 100644 --- a/client/Assets/ArticyImporter/Content/Generated/ArticyEditorSettings.asset +++ b/client/Assets/ArticyImporter/Content/Generated/ArticyEditorSettings.asset @@ -21,6 +21,6 @@ MonoBehaviour: mLastUsedPackagesHash: 1177269412 mLastUsedPackagesCount: 1 mLastBuildCode: 1 - mLastEditorStartupTimeTicks: 638222589413001092 + mLastEditorStartupTimeTicks: 638222589423104105 mNewVersionAvailable: 1 mLastAttachedFlowPlayerValue: 0 diff --git a/client/Assets/Game/Scripts/ECS/System/ComboSystem.cs b/client/Assets/Game/Scripts/ECS/System/ComboSystem.cs index 1814182..4feeac2 100644 --- a/client/Assets/Game/Scripts/ECS/System/ComboSystem.cs +++ b/client/Assets/Game/Scripts/ECS/System/ComboSystem.cs @@ -49,7 +49,6 @@ public class ComboSystem : IExecuteSystem, IInitializeSystem { var combo = entity.combo; var skill = entity.skill; - var move = entity.move; var isGround = entity.move.IsGroundLogic; if (combo.Stance == EComboStance.Idle || combo.Stance == EComboStance.AirIdle) { diff --git a/client/Assets/Game/Scripts/ECS/System/SettleSystem.cs b/client/Assets/Game/Scripts/ECS/System/SettleSystem.cs index 1202590..315df68 100644 --- a/client/Assets/Game/Scripts/ECS/System/SettleSystem.cs +++ b/client/Assets/Game/Scripts/ECS/System/SettleSystem.cs @@ -64,12 +64,12 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem SettleShake(hitLevel, entity, target); //抖动 SettleScale(flowSpeed, entity, target); //抖动 SettleGlobalEffect(target, pauseTime); //全局特效 - + //投技中断 if (!(hitInfo.SkillParam.throwTimeline is null)) { entity.skill.ThrowTarget = target.ID(); - TimelineManager.Instance.RunSkillTimeline(entity, hitInfo.SkillParam.throwTimeline.name); + Util.CastSkill(entity, hitInfo.SkillId, hitInfo.SkillParam.throwTimeline.name, entity.skill.CastDir); return true; } diff --git a/client/Assets/Game/Scripts/Timeline/TimelineClip/ClipAttack.cs b/client/Assets/Game/Scripts/Timeline/TimelineClip/ClipAttack.cs index 2a07695..b3652fa 100644 --- a/client/Assets/Game/Scripts/Timeline/TimelineClip/ClipAttack.cs +++ b/client/Assets/Game/Scripts/Timeline/TimelineClip/ClipAttack.cs @@ -44,35 +44,41 @@ namespace Game //投技 无需检测 var targetId = Owner.skill.ThrowTarget; var target = Util.GetEntity(targetId); - if (!(target is null)) + if (target is null) return; + + //排除重复命中 + var hitKey = new Tuple(target.ID(), param.hitId); + if (skill.HitSet.Contains(hitKey)) return; + skill.HitSet.Add(hitKey); + + var skillHitInfo = new SkillHitInfo { - var skillHitInfo = new SkillHitInfo - { - SkillParam = param, - AttackRate = 1, - StunkRate = 1, - OwnerEntity = Owner.ID(), - HitEntity = Owner.skill.ThrowTarget, - HitDir = GetHitDir(param.hitDirType, target, castPos, castDir), - SkillId = skill.SkillId.Value, - IsBreak = true, - Rank = 1, - HitIndex = 1, - HitCount = 1, - Continue = false, - }; - if (!string.IsNullOrEmpty(skillHitInfo.SkillId)) + SkillParam = param, + AttackRate = 1, + StunkRate = 1, + OwnerEntity = Owner.ID(), + HitEntity = Owner.skill.ThrowTarget, + HitDir = GetHitDir(param.hitDirType, target, castPos, castDir), + SkillId = skill.SkillId.Value, + IsBreak = true, + Rank = 1, + HitIndex = 1, + HitCount = 1, + Continue = false, + }; + if (!string.IsNullOrEmpty(skillHitInfo.SkillId)) + { + var skillCfg = Util.GetSkillMasterConfigData(skillHitInfo.SkillId); + if (skillCfg != null) { - var skillCfg = Util.GetSkillMasterConfigData(skillHitInfo.SkillId); - if (skillCfg != null) - { - var featureSkill = skillCfg.GetFeatureSkill(); - skillHitInfo.AttackRate = featureSkill.AttackRate; - skillHitInfo.StunkRate = featureSkill.StunRate; - } + var featureSkill = skillCfg.GetFeatureSkill(); + skillHitInfo.AttackRate = featureSkill.AttackRate; + skillHitInfo.StunkRate = featureSkill.StunRate; } - skill.HitInfo.Enqueue(skillHitInfo); } + + skill.HitInfo.Enqueue(skillHitInfo); + return; }