Projext/Assets/Scripts/Combat/WeponConfig.cs
2026-02-02 17:30:23 +09:00

39 lines
1.6 KiB
C#

using UnityEngine;
[CreateAssetMenu(fileName = "NewWeapon", menuName = "Weapons/Config")]
public class WeaponConfig : ScriptableObject
{
[Header("기본 능력치")]
[SerializeField] private float baseDamage = 10f;
[SerializeField] private int requiredStrength = 5;
public float BaseDamage => baseDamage;
public int RequiredStrength => requiredStrength;
[Header("애니메이션 설정")]
[SerializeField] private string normalAttackTrigger = "Attack";
[SerializeField] private string chargingBool = "IsCharging";
[SerializeField] private string throwTrigger = "Throw";
public string NormalAttackTrigger => normalAttackTrigger;
public string ChargingBool => chargingBool;
public string ThrowTrigger => throwTrigger;
[Header("차징 단계별 설정 (인스펙터 수정)")]
[SerializeField] private float forceLv1 = 10f;
[SerializeField] private float spreadLv1 = 25f;
[SerializeField] private float forceLv2 = 18f;
[SerializeField] private float spreadLv2 = 8f;
[SerializeField] private float forceLv3 = 28f;
// Lv3 Spread는 인스펙터에서 보이지 않게 하거나, 로직에서 무시하도록 처리합니다.
// ⭐ 힘(Force)은 단계별로 가져옵니다.
public float GetForce(int lv) => lv == 3 ? forceLv3 : (lv == 2 ? forceLv2 : forceLv1);
// ⭐ [수정] 정확도(Spread) 로직: 3단계는 무조건 0(직선) 반환!
public float GetSpread(int lv)
{
if (lv == 3) return 0f; // 풀차징은 무조건 일자로 날아감
return (lv == 2) ? spreadLv2 : spreadLv1;
}
}