Passion & UI

This commit is contained in:
SoulliesOfficial
2026-06-12 17:11:39 -04:00
parent 7bc1e1722c
commit 6d7ebc5825
3444 changed files with 865284 additions and 463132 deletions

View File

@@ -37,7 +37,8 @@ namespace Cielonos.MainGame
public override void HitCharacter(Collider characterCollider, Vector3 hitPosition)
{
if (!isEnabling)
// 既不在伤害阶段也不在反应窗口,直接跳过
if (!isEnabling && !isReactionActive)
{
return;
}
@@ -46,13 +47,31 @@ namespace Cielonos.MainGame
if (!IsValidTarget(targetCharacter)) return;
// 已在 grace window 期间成功反应的目标不再处理
if (reactedTargets.Contains(targetCharacter.gameObject))
{
return;
}
if (hitSm.checkedObjects.Contains(targetCharacter.gameObject))
{
return;
}
// 仅在反应窗口内enable 阶段之前或之后),只做反应检测
if (!isEnabling && isReactionActive)
{
HitOnTarget(characterCollider, hitPosition, out Attack.Result graceResult, onlyCheckReaction: true);
if (graceResult.isBlocked || graceResult.isDodged)
{
reactedTargets.Add(targetCharacter.gameObject);
hitSm.AddCheckedObject(targetCharacter.gameObject);
}
return;
}
// 正常 enable 阶段:造成伤害
hitSm.AddCheckedObject(targetCharacter.gameObject);
HitOnTarget(characterCollider, hitPosition, out _);
}
@@ -81,9 +100,12 @@ namespace Cielonos.MainGame
public partial class Projectile
{
protected override void HitOnTarget(Collider hitCollider, Vector3 hitPosition, out Attack.Result result)
protected override void HitOnTarget(Collider hitCollider, Vector3 hitPosition, out Attack.Result result,
bool onlyCheckReaction = false)
{
base.HitOnTarget(hitCollider, hitPosition, out result);
base.HitOnTarget(hitCollider, hitPosition, out result, onlyCheckReaction);
if (onlyCheckReaction) return;
if (!result.isReflected && ++currentPenetrateCount >= maximumPenetrateCount)
{