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

[CreateAssetMenu(fileName = "New Statistic", menuName = "Scriptable Objects/Statistics/Statistic")]
public class Statistic : ScriptableObjectBase
{
	public StatisticType type;
	public float value = 0f;
	public float tickAmount = -0.001f;
	public float min = -1f;
	public float max = 1f;

	public override ScriptableObjectBase Clone()
	{
		Statistic clone = base.Clone() as Statistic;
		clone.type = type;
		clone.value = value;
		clone.tickAmount = tickAmount;
		clone.min = min;
		clone.max = max;

		return clone;
	}

	public override void CopyTo(ref ScriptableObjectBase scriptableObjectBase)
	{
		base.CopyTo(ref scriptableObjectBase);

		if (scriptableObjectBase is Statistic)
		{
			(scriptableObjectBase as Statistic).type = type;
			(scriptableObjectBase as Statistic).value = value;
			(scriptableObjectBase as Statistic).tickAmount = tickAmount;
			(scriptableObjectBase as Statistic).min = min;
			(scriptableObjectBase as Statistic).max = max;
		}
	}

	public virtual void Tick(float deltaTime)
	{
		value += tickAmount * deltaTime;
		value = Mathf.Clamp(value, min, max);
	}
}
