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

namespace GameplayIngredients.Actions
{
    public class LogAction : ActionBase
    {
        const string kHelpText = @"Wildcards:
%INSTIGATOR% : Instigator Name
%TIME% : Time (since startup)
";

        [Multiline, InfoBox(kHelpText, InfoBoxType.Normal)]
        public string LogText = "Instigator = %INSTIGATOR%";
        public LogType type = LogType.Log;

        public override void Execute(GameObject instigator = null)
        {
            Debug.unityLogger.Log(type, FormatString(instigator));            
        }

        string FormatString(GameObject instigator)
        {
            string text = LogText;
            if(text.Contains("%INSTIGATOR%"))
            {
                text = text.Replace("%INSTIGATOR%", instigator == null ? "NULL" : instigator.name);
            }
            if(text.Contains("%TIME%"))
            {
                text = text.Replace("%TIME%", Time.time.ToString());
            }

            return text;
        }
    }
}