using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// GAME 1303 Tier 8 — An order from a customer: what the witch has to brew.
/// Create -> GAME1303 -> Recipe. Commission Witch.
///
/// From the instructor's whiteboard notes on Sylvia's pitch:
///   1. order received  2. gather ingredients  3. mix and recipe check!
/// This asset is step 1 and the answer key for step 3.
/// </summary>
[CreateAssetMenu(menuName = "GAME1303/Recipe", fileName = "NewRecipe")]
public class Recipe : ScriptableObject
{
    [System.Serializable]
    public class Ingredient
    {
        public ItemType item;
        public int amount = 1;
    }

    [Header("The order")]
    public string potionName = "Calming Draught";
    [TextArea(2, 4)] public string customerRequest = "";
    public Sprite potionIcon;

    [Header("What it needs")]
    public List<Ingredient> required = new List<Ingredient>();

    [Header("What ruins it")]
    [Tooltip("Ingredients that spoil the brew if ANY are in the cauldron. 'are there bad ingredients?' — yes.")]
    public List<ItemType> forbidden = new List<ItemType>();

    [Tooltip("Extra ingredients beyond the recipe are tolerated up to this many. 0 = must be exact.")]
    public int extrasAllowed = 0;

    [Header("Rewards")]
    public int payment = 10;
    public string setFlagOnSuccess = "";
    public string setFlagOnFailure = "";
}