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

/// <summary>
/// 相机管理员，主要控制游戏核心玩法中，相机向右移动和卡死死法的判定
/// </summary>
public class CameraManager : MonoBehaviour
{   
    /// <summary>
    /// 相机移动的速度
    /// </summary>
    [Header("相机移动的速度")]
    public float speed = 1f;


    private Transform killWall;

    void Start()
    {
        InitSth();
        FindSth();
        CreatSth();
    }

    
    void Update() {
        //向右移动镜头
        Move();    
    }

    public void Death(GameController.Death deathInfo)
    {
        //相机不再运动
        speed = 0;
    }

    void CreatSth()
    {
        killWall.gameObject.AddComponent<KillWall>();
    }

    void FindSth()
    {
        killWall = transform.Find("KillWall");
        //killWall = GameObject.Find("KillWall").transform;
        if(killWall == null) Debug.LogError("没找到KillWall,请检查相机是否有叫此名字的子物体");
    }

    void InitSth(){}


    /// <summary>
    /// 每帧调用，向右移动
    /// </summary>
    void Move(){
        transform.position += (Vector3.right * speed * Time.deltaTime);
    }
    class KillWall : MonoBehaviour
    {
        void OnTriggerEnter2D(Collider2D other) {
            if(other.tag == "HorseHead")
            {
                GameController.Death death;
                death.deadReason = GameController.Death.DeadReason.Camera;
                GameController.Instance.GameOver(death);
            }
        }

        void OnTriggerExit2D(Collider2D other) {
            //Debug.Log("出去了一个：" + other.name);
            switch(other.tag)
            {
                case "Fragment":
                    Destroy(other.gameObject);
                    break;
                case "Obstacle":
                    Destroy(other.gameObject);
                    break;
                case "Right" :
                    other.transform.parent.position += new Vector3(1,0,0) * 230f;
                    break;
            }

            if(other.gameObject.layer == LayerMask.NameToLayer("Fragment"))
                Destroy(other.gameObject);
        }
    }
}



