feat(BT12-Dev): RangeTier 5단계 + aspect fallback (PD 사정거리 영역)
This commit is contained in:
parent
6a160d5f5f
commit
e7e120feef
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
|||
IFrameDuration: 0
|
||||
DebuffStackLimit: 0
|
||||
FireProbability: 1
|
||||
Range: 2
|
||||
|
|
|
|||
|
|
@ -45,3 +45,4 @@ MonoBehaviour:
|
|||
IFrameDuration: 0
|
||||
DebuffStackLimit: 0
|
||||
FireProbability: 1
|
||||
Range: 3
|
||||
|
|
|
|||
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
|||
IFrameDuration: 0
|
||||
DebuffStackLimit: 0
|
||||
FireProbability: 1
|
||||
Range: 2
|
||||
|
|
|
|||
|
|
@ -45,3 +45,4 @@ MonoBehaviour:
|
|||
IFrameDuration: 0
|
||||
DebuffStackLimit: 5
|
||||
FireProbability: 1
|
||||
Range: 1
|
||||
|
|
|
|||
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
|||
IFrameDuration: 0
|
||||
DebuffStackLimit: 0
|
||||
FireProbability: 1
|
||||
Range: 3
|
||||
|
|
|
|||
|
|
@ -44,3 +44,4 @@ MonoBehaviour:
|
|||
IFrameDuration: 0
|
||||
DebuffStackLimit: 0
|
||||
FireProbability: 1
|
||||
Range: 4
|
||||
|
|
|
|||
|
|
@ -79,8 +79,14 @@ namespace EerieVillage.Skills
|
|||
[Tooltip("확률 판정 전용 (F 카테고리). 발동 확률 0~1")]
|
||||
[Range(0f, 1f)]
|
||||
public float FireProbability = 1.0f;
|
||||
|
||||
/// <summary>BT12-Dev 2026-05-10 PD — 사정거리 5단계 (Camera width 배수)</summary>
|
||||
[Tooltip("사정거리 5단계 — Camera 가로 배수 (Short 0.2·MediumShort 0.5·Medium 0.667·MediumLong 1.0·Long 1.5)")]
|
||||
public RangeTier Range = RangeTier.Medium;
|
||||
}
|
||||
|
||||
public enum RangeTier { Short, MediumShort, Medium, MediumLong, Long }
|
||||
|
||||
/// <summary>
|
||||
/// 액티브 스킬 카테고리 (A~F). BT12-Dev v1 §2-2 정합.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -43,18 +43,17 @@ namespace EerieVillage.Skills.Effectors
|
|||
_spawnPosition = transform.position;
|
||||
_spawnTime = Time.time;
|
||||
|
||||
// 최대 거리 = Camera 영역 영역 영역 × 1.5 (PD #1 명시)
|
||||
// Camera ortho size 3.5·aspect 16:9 → height 7·width ~12.44 → maxRange ~18.66 unit
|
||||
// BT12-Dev 2026-05-10 PD — 사정거리 5단계 (Camera 가로 배수)
|
||||
float camWidth = 12.44f; // fallback (ortho size 3.5·16:9)
|
||||
var cam = Camera.main;
|
||||
if (cam != null && cam.orthographic)
|
||||
{
|
||||
float camWidth = cam.orthographicSize * 2f * cam.aspect;
|
||||
_maxRange = camWidth * 1.5f;
|
||||
}
|
||||
else
|
||||
{
|
||||
_maxRange = 20f; // fallback
|
||||
float aspect = (cam.aspect > 0.01f) ? cam.aspect : (16f / 9f);
|
||||
camWidth = cam.orthographicSize * 2f * aspect;
|
||||
}
|
||||
float[] mults = { 0.2f, 0.5f, 0.667f, 1.0f, 1.5f };
|
||||
int idx = Mathf.Clamp((int)_data.Range, 0, mults.Length - 1);
|
||||
_maxRange = camWidth * mults[idx];
|
||||
|
||||
// Phase 2-B: 풀링 미도입 — Invoke 기반 자동 소멸 (거리 제한 영역 영역 영역 영역 영역 안전망)
|
||||
Invoke(nameof(SelfDestruct), _lifetime);
|
||||
|
|
|
|||
Loading…
Reference in New Issue