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

public class Harvest : MonoBehaviour
{
	public float value = 0f;
	public float turnDuration = 0.25f;
	public float speed = 10f;
	public Vector3 destination = Vector3.up * 18;
	public float radius = 2f;

	private void Start()
	{
		StartCoroutine(Turn());
	}

	private void Update()
	{
		if (radius * radius >= Vector3.SqrMagnitude(destination - transform.position))
		{
			GameManager.Reap(value);
			Destroy(gameObject);
		}

		transform.position += transform.forward * speed * Time.deltaTime;
	}

	private IEnumerator Turn()
	{
		float currentDuration = 0;
		float progress = 0;
		transform.LookAt(destination);
		Vector3 target = transform.forward;

		while (progress <= 1)
		{
			transform.forward = Vector3.Lerp(transform.forward, target, progress);
			yield return null;
			currentDuration += Time.deltaTime;
			progress = Mathf.Clamp(currentDuration / turnDuration, 0, 1);
		}
	}
}
