using UnityEngine;

[RequireComponent(typeof(Rigidbody2D))]
public class PlayerProgress : MonoBehaviour
{
    // Player가 계속 보관할 수집 상태
    [SerializeField, Min(1)] private int requiredCollectibles = 3;
    [SerializeField] private int collectedCount;

    private Rigidbody2D body;
    private Vector2 startPosition;

    private void Awake()
    {
        body = GetComponent<Rigidbody2D>();
    }
    
    private void Start()
    {
        startPosition = body.position;
    }
    // 보석이 호출하면 이 Player의 개수를 늘립니다.
    public void AddCollectible()
    {
        collectedCount++;
        Debug.Log("수집: " + collectedCount + " / " + requiredCollectibles);
    }
    
    public void ResetToStart()
    {
        body.linearVelocity = Vector2.zero;
        body.position = startPosition;
        Debug.Log("시작점 복귀 / 수집: " + collectedCount);
    }

    // Week 7 HUD reads the existing count without owning another score.
    public int GetCollectedCount() => collectedCount;
    public int GetRequiredCollectibles() => requiredCollectibles;

    public bool HasAllCollectibles()
    {
        return collectedCount >= requiredCollectibles;
    }
}
