42 lines
2.2 KiB
C#
42 lines
2.2 KiB
C#
using UnityEngine;
|
|
|
|
namespace BumpCombat.Constants
|
|
{
|
|
[CreateAssetMenu(menuName = "BumpCombat/Constants/Combat")]
|
|
public sealed class CombatConstants : ScriptableObject
|
|
{
|
|
[Header("몸통박치기 방향 판정")]
|
|
[Tooltip("적 정면으로 분류하는 방향 내적 기준"), Range(-1f, 1f)] public float FrontThreshold = 0.707f;
|
|
[Tooltip("적 후방으로 분류하는 방향 내적 기준"), Range(-1f, 1f)] public float BackThreshold = -0.5f;
|
|
[Tooltip("측면 또는 정면 비껴치기 피해 배율"), Min(0f)] public float PositionDamageMultiplier = 1.2f;
|
|
[Tooltip("후방 몸통박치기 피해 배율"), Min(0f)] public float BackDamageMultiplier = 1.5f;
|
|
|
|
[Header("몸통박치기 피해")]
|
|
[Min(0f)] public float BaseDamage = 10f;
|
|
[Tooltip("대시 아티팩트 정의가 피해량을 지정하지 않을 때 사용하는 대체 피해량"), Min(0f)]
|
|
public float DashDamage = 20f;
|
|
[Tooltip("충전 대시 아티팩트 정의가 피해량을 지정하지 않을 때 사용하는 대체 피해량"), Min(0f)]
|
|
public float StrongDashDamage = 30f;
|
|
[Min(0f)] public float MinimumAttackSpeed = 0.5f;
|
|
[Range(-1f, 1f)] public float MinimumApproachDot = 0.25f;
|
|
|
|
[Header("넉백과 반동")]
|
|
[Min(0f)] public float KnockbackForce = 1f;
|
|
[Min(0f)] public float DashKnockbackForce = 3f;
|
|
[Min(0f)] public float StrongDashKnockbackForce = 4f;
|
|
[Min(0f)] public float StrongDashLaunchHeight = 0.65f;
|
|
[Min(0.01f)] public float StrongDashLaunchDuration = 0.32f;
|
|
[Min(0f)] public float PlayerImpactRecoilDistance = 0.08f;
|
|
[Min(1f)] public float FrontKnockbackMultiplier = 1.5f;
|
|
[Min(0f)] public float FrontPlayerImpactRecoilDistance = 0.24f;
|
|
[Min(0f)] public float EventBackPlayerImpactRecoilDistance = 0.12f;
|
|
[Min(0f)] public float ShieldedPlayerImpactRecoilDistance = 0.75f;
|
|
|
|
[Header("판정 간격과 범위")]
|
|
[Min(0f)] public float MinimumOffsetDistance = 0.16f;
|
|
[Min(0f)] public float NormalHitInterval = 0.25f;
|
|
[Min(0f)] public float DashContactSkin = 0.02f;
|
|
[Min(0f)] public float DashFallbackCastRadius = 0.22f;
|
|
}
|
|
}
|