feat: 경직 면역 기반 시전 보호 및 지원 스킬 안정성 보강
- 경직 면역 이상상태와 시전 시작 효과를 추가해 철벽, 방어 태세, 치유, 광역 치유, 보호막에 데이터 기반 시전 보호를 연결 - AbnormalityManager와 HitReactionController가 경직 면역 상태를 존중하도록 보강해 일반 피격 반응으로 인한 즉시 취소를 줄임 - SkillData에 castStartEffects를 추가하고 SkillController가 시전 시작 효과를 실행하도록 확장 - 드로그전 재검증에서 철벽, 치유, 광역 치유가 실제 전투 중 취소 없이 완료되는 것을 확인하고 보호막의 후속 피격 체감을 추가 점검 대상으로 정리 - HUD/문서 반영 과정에서 필요한 TMP_MaruBuri, TMP_SuseongBatang 아틀라스 갱신을 함께 포함
This commit is contained in:
@@ -167,6 +167,8 @@ namespace Colosseum.Skills
|
||||
// 쿨타임 시작
|
||||
StartCooldown(skill);
|
||||
|
||||
TriggerCastStartEffects(skill);
|
||||
|
||||
// 스킬 애니메이션 재생
|
||||
if (skill.SkillClip != null && animator != null)
|
||||
{
|
||||
@@ -179,6 +181,29 @@ namespace Colosseum.Skills
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 시전 시작 즉시 발동하는 효과를 실행합니다.
|
||||
/// 서버 권한으로만 처리해 실제 게임플레이 효과가 한 번만 적용되게 합니다.
|
||||
/// </summary>
|
||||
private void TriggerCastStartEffects(SkillData skill)
|
||||
{
|
||||
if (skill == null || skill.CastStartEffects == null || skill.CastStartEffects.Count == 0)
|
||||
return;
|
||||
|
||||
if (NetworkManager.Singleton != null && !NetworkManager.Singleton.IsServer)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < skill.CastStartEffects.Count; i++)
|
||||
{
|
||||
SkillEffect effect = skill.CastStartEffects[i];
|
||||
if (effect == null)
|
||||
continue;
|
||||
|
||||
if (debugMode) Debug.Log($"[Skill] Cast start effect: {effect.name} (index {i})");
|
||||
effect.ExecuteOnCast(gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 애니메이션 이벤트가 없는 자기 자신 대상 효과는 시전 즉시 발동합니다.
|
||||
/// 버프/무적 같은 자기 강화 스킬이 이벤트 누락으로 동작하지 않는 상황을 막기 위한 보정입니다.
|
||||
@@ -188,6 +213,9 @@ namespace Colosseum.Skills
|
||||
if (skill == null || skill.Effects == null || skill.Effects.Count == 0)
|
||||
return;
|
||||
|
||||
if (NetworkManager.Singleton != null && !NetworkManager.Singleton.IsServer)
|
||||
return;
|
||||
|
||||
if (skill.SkillClip != null && skill.SkillClip.events != null && skill.SkillClip.events.Length > 0)
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user