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

public class PhraseConfigurationManager : SingletonBase<PhraseConfigurationManager>
{
	private static PhraseConfigurationManager phraseManager;
	[SerializeField] private int maxProcessingDepth = 5;
	[SerializeField] private string hardWord = "bark";
	[SerializeField] private string substitutionPattern = "<%(.+?)%>";
	[SerializeField] private List<PhrasingPair> phrasingConfiguration = new List<PhrasingPair>();

	public static int MaxProcessingDepth
	{
		get
		{
			return phraseManager.maxProcessingDepth;
		}
	}

	public static string HardWord
	{
		get
		{
			return phraseManager.hardWord;
		}
	}

	public static string SubstitutionPattern
	{
		get
		{
			return phraseManager.substitutionPattern;
		}
	}

	public static void TeachPhrasing(DogPhrasingHandler dog)
	{
		foreach (PhrasingPair phrasingPair in (instance as PhraseConfigurationManager).phrasingConfiguration)
		{
			dog.LearnPhrase(
				phrasingPair.key,
				phrasingPair.value
			);
		}

		/*
		foreach (PhrasingPair phrasingPair in (instance as PhraseConfigurationManager).phrasingConfiguration)
		{
			Debug.Log(dog.GetPhrase(phrasingPair.key));
		}
		*/
	}

	protected override void Awake()
	{
		base.Awake();

		phraseManager = instance as PhraseConfigurationManager;
	}
}

[System.Serializable]
public struct PhrasingPair
{
	public string key;
	public string value;
}
