using System;
using UnityEngine;
namespace WL.Player
{
///
/// 플레이어 레벨·경험치 수치의 단일 출처(SOT) (PD #727 좌상단 레벨 표기).
/// 에셋 경로: Assets/WL/Settings/PlayerProgressSettings.asset · 값은 전부 임시(밸런스 확정 전).
///
[CreateAssetMenu(fileName = "PlayerProgressSettings", menuName = "WL/Player Progress Settings")]
public class PlayerProgressSettings : ScriptableObject
{
[Header("시작값 (임시)")]
[Tooltip("시작 레벨")]
public int startLevel = 1;
[Tooltip("시작 경험치(현재 레벨 안에서 쌓인 값)")]
public long startXp = 0;
[Header("필요 경험치 곡선 (임시)")]
[Tooltip("레벨 1 → 2 에 필요한 경험치")]
public long baseXpToNext = 100;
[Tooltip("레벨이 1 오를 때마다 필요 경험치에 곱하는 배율")]
public float xpGrowth = 1.15f;
[Header("획득 (임시)")]
[Tooltip("몬스터 1마리 처치 시 경험치. 0 이면 지급하지 않는다")]
public long xpPerKill = 10;
/// 해당 레벨에서 다음 레벨까지 필요한 경험치.
public long XpToNext(int level)
{
double v = baseXpToNext * Math.Pow(Mathf.Max(xpGrowth, 1f), Mathf.Max(level - 1, 0));
return Math.Max(1L, (long)Math.Round(v));
}
}
}