﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using com.ootii.Input;

public class CameraControl : MonoBehaviour
{
    public Vector3 cameraOffset;

    public float cameraSizeFactor = 1.5f;
    public float cameraSizeSpeed = 3.0f;
    public float cameraSizeTarget;
    public float cameraSizeMax = 23f;

    public Snake snake;

    public Camera mainCamera;

    public GameObject cameraHelper;

    public GameObject cameraISO;
    public GameObject cameraThirdPerson;

    int cameraSelector;

    // Use this for initialization
    void Start ()
	{
        if(!PlayerPrefs.HasKey("camera")) PlayerPrefs.SetInt("camera",1);
	    cameraSelector = PlayerPrefs.GetInt("camera");
	    SetCamera();

	    mainCamera.orthographicSize = Mathf.Clamp(snake.snakeLength * cameraSizeFactor, 8, cameraSizeMax);
    }

    public void SetCamera()
    {
        if (cameraSelector == 1)
        {
            cameraISO.SetActive(true);
            cameraThirdPerson.SetActive(false);
        }
        if (cameraSelector == 2)
        {
            cameraISO.SetActive(false);
            cameraThirdPerson.SetActive(true);
        }

        PlayerPrefs.SetInt("camera", cameraSelector);
    }

    // Update is called once per frame
    void Update ()
    {
        if (InputManager.IsJustReleased("Camera"))
        {
            Debug.Log("Switch Camera");
            if (cameraSelector == 1)
            {
                cameraSelector = 2;
            }
            else if (cameraSelector == 2)
            {
                cameraSelector = 1;

            }
            SetCamera();
        }

        cameraSizeTarget = Mathf.Clamp(snake.snakeLength * (cameraSizeFactor*(snake.controls.moveSpeed/10)), 8, cameraSizeMax);

        if (cameraSizeTarget > mainCamera.orthographicSize)
        {
            mainCamera.orthographicSize += Time.deltaTime * cameraSizeSpeed;
        }

        transform.position = cameraHelper.transform.position + cameraOffset;

	}
}
