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

public class FlowsBase : MonoBehaviour
{
    [HideInInspector]
    public FlowManager flowManager;
    public int 流程序号;
    public string 流程名称;
    public 流程状态 流程状态 = 流程状态.未完成;
    public 流程类型 流程类型;
    public GameObject 提示;
    public List<ToolBase> 流程物体 = new List<ToolBase>();
    //[HideInInspector]
    public int 交互完成计数;
    public 流程对错判断 流程对错判断 = 流程对错判断.未操作;
    public float 分值;
    /// <summary>
    /// 判断是否完成
    /// </summary>
    private bool 赋分完成;
    public bool 流程完成;
    // Start is called before the first frame update
    protected virtual void Start()
    {
       // 流程物体 = new List<ToolBase>();
        流程名称 = gameObject.name;
        flowManager = GameObject.Find("GameFlowManager").GetComponent<FlowManager>();
    }
    protected virtual void Update()
    {


        步骤完成();

    }
    protected virtual void 赋分()
    {   if (流程对错判断 == 流程对错判断.正确)
        {
            flowManager.总分 += 分值;
        }
        

    }
    /// <summary>
    /// 侦测步骤是否完成
    /// </summary>
    protected virtual void 步骤完成()
    {

        if (交互完成计数 == 流程物体.Count&& 赋分完成 == false)
        {
            if (流程状态 == 流程状态.未完成)
            {
                流程状态 = 流程状态.已完成;
                赋分();
                赋分完成 = true;
            }

        }


    }
    /// <summary>
    /// 侦测步骤是否完成,如果完成则开始下一步
    /// </summary>
    protected virtual void Next() {

       
            if (flowManager.流程模式 == 流程模式.练习模式 && 流程完成 == false && 流程状态 == 流程状态.已完成)
            {
                Debug.Log("下一步");
                flowManager.index = 流程序号;

                流程完成 = true;

            }
        

    }
}