﻿using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = "Unlockable", menuName = "Arugula/Unlockable")]
public class Unlockable : ScriptableObject
{
    public enum State { Hidden, Mystery, Locked, Available, Unlocked }
    [SerializeField] private State state = State.Locked;
    //[SerializeField] private State 


    [Header("Graphics")]
    public Sprite mysteryImage;
    public Sprite lockedImage;
    public Sprite availableImage;
    public Sprite unlockedImage;

    public Sprite Image
    {
        get
        {
            switch (state)
            {
                case State.Mystery:
                    return mysteryImage;
                case State.Locked:
                    return lockedImage;
                case State.Available:
                    return availableImage;
                case State.Unlocked:
                    return unlockedImage;
            }

            return null;
        }
    }

    //events
    public event Action<Unlockable, State> OnStateChanged = delegate { };


    public void SetState(State state, bool silent = false)
    {
        this.state = state;

    }

}
