2
0
Fork 0

fix timeline中断问题

master
cd 2 years ago
parent 165bf1b548
commit 6b5f855b1b

@ -21,6 +21,6 @@ MonoBehaviour:
mLastUsedPackagesHash: 1177269412 mLastUsedPackagesHash: 1177269412
mLastUsedPackagesCount: 1 mLastUsedPackagesCount: 1
mLastBuildCode: 1 mLastBuildCode: 1
mLastEditorStartupTimeTicks: 638222589413001092 mLastEditorStartupTimeTicks: 638222589423104105
mNewVersionAvailable: 1 mNewVersionAvailable: 1
mLastAttachedFlowPlayerValue: 0 mLastAttachedFlowPlayerValue: 0

@ -49,7 +49,6 @@ public class ComboSystem : IExecuteSystem, IInitializeSystem
{ {
var combo = entity.combo; var combo = entity.combo;
var skill = entity.skill; var skill = entity.skill;
var move = entity.move;
var isGround = entity.move.IsGroundLogic; var isGround = entity.move.IsGroundLogic;
if (combo.Stance == EComboStance.Idle || combo.Stance == EComboStance.AirIdle) if (combo.Stance == EComboStance.Idle || combo.Stance == EComboStance.AirIdle)
{ {

@ -64,12 +64,12 @@ public class SettleSystem : IExecuteSystem, IInitializeSystem
SettleShake(hitLevel, entity, target); //抖动 SettleShake(hitLevel, entity, target); //抖动
SettleScale(flowSpeed, entity, target); //抖动 SettleScale(flowSpeed, entity, target); //抖动
SettleGlobalEffect(target, pauseTime); //全局特效 SettleGlobalEffect(target, pauseTime); //全局特效
//投技中断 //投技中断
if (!(hitInfo.SkillParam.throwTimeline is null)) if (!(hitInfo.SkillParam.throwTimeline is null))
{ {
entity.skill.ThrowTarget = target.ID(); 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; return true;
} }

@ -44,35 +44,41 @@ namespace Game
//投技 无需检测 //投技 无需检测
var targetId = Owner.skill.ThrowTarget; var targetId = Owner.skill.ThrowTarget;
var target = Util.GetEntity(targetId); var target = Util.GetEntity(targetId);
if (!(target is null)) if (target is null) return;
//排除重复命中
var hitKey = new Tuple<int, int>(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,
SkillParam = param, StunkRate = 1,
AttackRate = 1, OwnerEntity = Owner.ID(),
StunkRate = 1, HitEntity = Owner.skill.ThrowTarget,
OwnerEntity = Owner.ID(), HitDir = GetHitDir(param.hitDirType, target, castPos, castDir),
HitEntity = Owner.skill.ThrowTarget, SkillId = skill.SkillId.Value,
HitDir = GetHitDir(param.hitDirType, target, castPos, castDir), IsBreak = true,
SkillId = skill.SkillId.Value, Rank = 1,
IsBreak = true, HitIndex = 1,
Rank = 1, HitCount = 1,
HitIndex = 1, Continue = false,
HitCount = 1, };
Continue = false, if (!string.IsNullOrEmpty(skillHitInfo.SkillId))
}; {
if (!string.IsNullOrEmpty(skillHitInfo.SkillId)) var skillCfg = Util.GetSkillMasterConfigData(skillHitInfo.SkillId);
if (skillCfg != null)
{ {
var skillCfg = Util.GetSkillMasterConfigData(skillHitInfo.SkillId); var featureSkill = skillCfg.GetFeatureSkill();
if (skillCfg != null) 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; return;
} }

Loading…
Cancel
Save