Initial commit: Tiny Tackle Heroes Unity project
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
using BumpCombat.Enemies;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BumpCombat.Constants
|
||||
{
|
||||
[CreateAssetMenu(menuName = "BumpCombat/Constants/Enemies")]
|
||||
public sealed class EnemyConstants : ScriptableObject
|
||||
{
|
||||
[Header("행동 판정")]
|
||||
[Tooltip("원뿔 공격 판정의 방향 내적 기준"), Range(0f, 1f)] public float ConeDirectionThreshold = 0.5f;
|
||||
[Tooltip("원형 범위 공격의 최소 경고시간 (초)"), Min(0f)] public float MinimumTargetCircleWarningDuration = 1.8f;
|
||||
[Tooltip("적 분리 방향을 다시 계산하는 간격 (초)"), Min(0f)] public float SeparationRefreshInterval = 0.1f;
|
||||
[Min(0f)] public float DefaultSeparationRadius = 0.55f;
|
||||
[Min(0f)] public float DefaultSeparationStrength = 0.6f;
|
||||
[Tooltip("Animator에 사망 클립이 없을 때의 대체 사망시간 (초)"), Min(0f)] public float DefaultDeathDuration = 0.5f;
|
||||
[Tooltip("사망 클립 종료 뒤 오브젝트를 정리하기 전 여유시간 (초)"), Min(0f)] public float DeathRemovalPadding = 0.05f;
|
||||
[Tooltip("몸 공격 상태에서 적이 전진하는 속도 (유닛/초)"), Min(0f)] public float BodyContactSpeed = 3f;
|
||||
[Tooltip("적 넉백 속도가 줄어드는 비율 (유닛/초)"), Min(0f)] public float KnockbackDeceleration = 8f;
|
||||
[Tooltip("군중형이 플레이어를 둘러싸며 접근하는 기준점 개수"), Min(1)] public int CrowdApproachSlotCount = 24;
|
||||
[Tooltip("군중형이 접근 기준점에 배치되는 동심원 개수"), Min(1)] public int CrowdApproachRingCount = 3;
|
||||
[Tooltip("군중형 접근 기준점의 가장 안쪽 반경 (유닛)"), Min(0f)] public float CrowdApproachBaseRadius = 0.75f;
|
||||
[Tooltip("군중형 접근 기준점 동심원 간 간격 (유닛)"), Min(0f)] public float CrowdApproachRingSpacing = 0.15f;
|
||||
[Min(0f)] public float SummonedEnemyNoAnimationLockDuration = 0.15f;
|
||||
|
||||
[Header("적과 플레이어 사이 거리")]
|
||||
[Tooltip("일반 적이 주는 플레이어 넉백 거리 (유닛)"), Min(0f)] public float NormalPlayerKnockbackDistance = 0.75f;
|
||||
[Tooltip("대형 무기 적이 주는 플레이어 넉백 거리 (유닛)"), Min(0f)] public float HeavyPlayerKnockbackDistance = 1.1f;
|
||||
[Tooltip("원거리 적 공격 허용 범위 안쪽 여백 (유닛)"), Min(0f)] public float RangedAttackArenaInset = 0.75f;
|
||||
[Tooltip("화면 안쪽에서 원거리 공격을 시작하기 위한 여백 (유닛)"), Min(0f)] public float RangedAttackCameraInset = 0.5f;
|
||||
[Tooltip("원거리 적 접근 목표의 전장 가장자리 여백 (유닛)"), Min(0f)] public float RangedApproachArenaInset = 0.8f;
|
||||
[Tooltip("원거리 적 접근 목표의 화면 여백 (유닛)"), Min(0f)] public float RangedApproachCameraInset = 0.55f;
|
||||
|
||||
[Header("엘리트 이상 그로기")]
|
||||
[Min(0f)] public float EliteGroggyDuration = 5f;
|
||||
[Min(0f)] public float MidBossGroggyDuration = 7f;
|
||||
[Min(0f)] public float FinalBossGroggyDuration = 10f;
|
||||
[Tooltip("엘리트 실드를 깰 때 필요한 일치색 적중 횟수"), Min(1)] public int EliteGroggyRequiredMatchingHits = 1;
|
||||
[Tooltip("중간보스 실드를 깰 때 필요한 일치색 적중 횟수"), Min(1)] public int MidBossGroggyRequiredMatchingHits = 2;
|
||||
[Tooltip("최종보스 실드를 깰 때 필요한 일치색 적중 횟수"), Min(1)] public int FinalBossGroggyRequiredMatchingHits = 4;
|
||||
|
||||
[Header("네크로맨서")]
|
||||
[Min(0.5f)] public float GeneralSummonCooldown = 8f;
|
||||
[Min(0.5f)] public float CrowdSummonCooldown = 12f;
|
||||
[Min(0.5f)] public float MultiAoeCooldown = 4f;
|
||||
[Tooltip("소환 예고와 소환 중 행동 잠금시간 (초)"), Min(0.5f)] public float SummonVisualDuration = 0.875f;
|
||||
[Range(0.01f, 0.2f)] public float DesperationHealthFraction = 0.05f;
|
||||
|
||||
[Header("공격 토큰")]
|
||||
[Min(1)] public int MaxMeleeAttackers = 4;
|
||||
[Min(1)] public int MaxRangedAttackers = 3;
|
||||
[Min(1)] public int MaxEarlyCrowdAttackers = 1;
|
||||
[Min(1)] public int MaxLateCrowdAttackers = 2;
|
||||
[Min(0f)] public float CrowdAttackExpansionTime = 180f;
|
||||
[Min(0f)] public float CrowdAttackGrantInterval = 0.9f;
|
||||
|
||||
[Header("적 정의")]
|
||||
[Tooltip("각 적의 능력치·공격 패턴 정의. 적 프리팹은 여기에 있는 에셋을 참조합니다.")]
|
||||
public EnemyDefinition[] Definitions = System.Array.Empty<EnemyDefinition>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user