fix(BT12-Dev): 투사체 damage 5 하한 + Schedule<EnemyDeath> 추가 — 적 처치·경험치·레벨업 정합
PD 지시 (2026-05-10): - "여전히 내 투사체에 적이 죽지 않고, 경험치를 제공하지 않아" - "혹시 투사체 공격력이 없어서 그렇다면 기본 공격력을 5로 고정해(임시)" - "적이 죽으면 죽는 모션과 함께 소멸되어야 해" - "적이 죽으면 경험치를 제공해야 하고, 레벨업이 가능해야 해" 본 PM MCP 자율 진단: - Console 영역 [Health@Enemy] Decrement(damage=4) hp 4→0 정합 - 그러나 [ExperienceSystem] X·[PlayerProgression] X·[EnemyDeath] X - → Projectile.cs 영역 Schedule<EnemyDeath> 호출 누락 확정 근본 fix 2종: 1. damage 5 하한 강제 (임시·PD 지시) — `int damage = Mathf.Max(_runtime.CalculateEffectiveDamage(), 5);` → balance-designer 정식 수치 영역 임시 영역 2. Schedule<EnemyDeath> 추가 (근본·AttackHitbox.cs:70~76 패턴 정합) → Enemy hp 0 도달 시 EnemyDeath 체인 발동 → ExperienceSystem.OnEnemyKilled → 경험치·레벨업 검증 (MCP Play): - damage=5 hp 4→0 (1hit kill) ✅ - ExperienceSystem.OnEnemyKilled → GainXP +1 ✅ - PlayerProgression Lv.1→2→3→4 ✅ - SkillSelectionUI Show + 카드 확정 (파이어볼·추적 화염구) ✅ PD 지시 3가지 전부 정합.
This commit is contained in:
parent
f50196056b
commit
6a825fc9b7
|
|
@ -1,6 +1,8 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Platformer.Mechanics;
|
||||
using Platformer.Gameplay;
|
||||
using static Platformer.Core.Simulation;
|
||||
|
||||
namespace EerieVillage.Skills.Effectors
|
||||
{
|
||||
|
|
@ -62,7 +64,8 @@ namespace EerieVillage.Skills.Effectors
|
|||
_hitTargets.Add(other);
|
||||
|
||||
// 유효 대미지 산출 (balance/01 v0.2 §3 공식 — ActiveSkillRuntime.CalculateEffectiveDamage())
|
||||
int damage = _runtime.CalculateEffectiveDamage();
|
||||
// BT12-Dev 2026-05-10 임시 (PD 지시): 기본 공격력 5 하한 강제. balance-designer 정식 수치 영역 임시 영역.
|
||||
int damage = Mathf.Max(_runtime.CalculateEffectiveDamage(), 5);
|
||||
|
||||
// 피해 적용
|
||||
health.Decrement(damage);
|
||||
|
|
@ -74,6 +77,13 @@ namespace EerieVillage.Skills.Effectors
|
|||
StatusApplier.Apply(_data, enemy);
|
||||
}
|
||||
|
||||
// BT12-Dev 2026-05-10 근본 fix — Enemy 즉사 시 EnemyDeath 체인 발동 (AttackHitbox.cs:70~76 패턴 정합).
|
||||
// 누락 시 Enemy hp 0 도달 영역 시각 사망 X·Destroy X·ExperienceSystem.OnEnemyKilled X (경험치 X·레벨업 X).
|
||||
if (!health.IsAlive && enemy != null)
|
||||
{
|
||||
Schedule<EnemyDeath>().enemy = enemy;
|
||||
}
|
||||
|
||||
// 단일 적 타격 후 소멸 (관통 미지원 — Phase 2 범위 내)
|
||||
SelfDestruct();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue