﻿using UnityEngine;
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using DarkTonic.MasterAudio;

namespace NodeCanvas.Tasks.MasterAudioIntegration{

	[Category("MasterAudio")]
	[Icon("MasterAudio")]
	public class SetMasterMixerVolume : ActionTask {

		[SliderField(0,1)]
		public BBParameter<float> volume = 1;
		[SliderField(0,1)]
		public BBParameter<float> time = 0.2f;

		private float original;

		protected override string info{
			get {return string.Format("Master Mixer Volume = {0}", volume);}
		}

		protected override void OnExecute(){
			original = MasterAudio.MasterVolumeLevel;
		}

		protected override void OnUpdate(){
			MasterAudio.MasterVolumeLevel = Mathf.Lerp(original, volume.value, elapsedTime/time.value );
			if (elapsedTime >= time.value)
				EndAction();
		}
	}
}