void Awake()
 {
     AnimationController = GetComponent <animationController>();
     gamePlaycont        = GetComponent <Gameplaycont>();
 }
 private void Start()
 {
     falarSeGanhaOuPerde = GameObject.FindGameObjectWithTag("Player").GetComponent <animationController>();
 }
    public IEnumerator MoveTo(int[,] moveTo)
    {
        MapMoveScript.MMS.isMove = true;
        //Debug.Log("Move started ==========================================================");
        GameObject          charSprite = GetComponent <Character>().getCharSprite();
        animationController aniCon     = charSprite.GetComponent <animationController>();

        int  Length   = moveTo.GetLength(0);
        bool MoveStop = false;

        //Debug.Log(Length);
        for (int i = 0; i < Length; i++)
        {
            aniCon.setWalking(true);

            Vector3 pos = MapCreateScript.mapChips[moveTo[i, 0], moveTo[i, 1]].getPos();

            iTween.MoveTo(gameObject, iTween.Hash(
                              "position", pos,
                              "time", MoveSpeed,
                              "easetype", iTween.EaseType.linear
                              ));

            //左右で方向転換
            if (transform.position.x < pos.x)
            {
                if (transform.localScale.x != -1)
                {
                    transform.localScale = new Vector3(-1, transform.localScale.y, transform.localScale.z);
                }
            }
            else if (transform.position.x > pos.x)
            {
                if (transform.localScale.x != 1)
                {
                    transform.localScale = new Vector3(1, transform.localScale.y, transform.localScale.z);
                }
            }

            yield return(new WaitForSeconds(MoveSpeed));

            //イベント呼び出し
            if (MapCreateScript.mapChips[moveTo[i, 0], moveTo[i, 1]].isEvent)
            {
                aniCon.setWalking(false);
                EventListScript.ELS.AddEvent(MapCreateScript.mapChips[moveTo[i, 0], moveTo[i, 1]].gameObject);

                GameObject  eventObj = MapCreateScript.mapChips[moveTo[i, 0], moveTo[i, 1]].eventType;
                EventScript ES       = eventObj.GetComponent <EventScript>();
                if (ES != null && ES.eventType == Events.Warp)
                {
                    MoveStop = true;
                }

                yield return(StartCoroutine(EventListScript.ELS.EventListCall(gameObject)));
            }

            //移動マーカーの消去
            bool isDestroy;
            isDestroy = true;
            for (int j = i + 1; j < moveTo.GetLength(0); j++)
            {
                //これからもう一度そこに移動するなら後で消去する
                if (moveTo[i, 0] == moveTo[j, 0] && moveTo[i, 1] == moveTo[j, 1])
                {
                    isDestroy = false;
                    break;
                }
            }
            if (isDestroy)
            {
                MapCreateScript.mapChips[moveTo[i, 0], moveTo[i, 1]].ArrowObj.SetActive(false);
            }

            //もしキャラクターが途中で倒れたら処理を中断する
            if (MoveStop)
            {
                Debug.Log("MoveStop");
                for (int j = 0; j < Length; j++)
                {
                    MapCreateScript.mapChips[moveTo[j, 0], moveTo[j, 1]].ArrowObj.SetActive(false);
                }
                break;
            }
        }

        MapMoveScript.MMS.isMove = false;
        charSprite.GetComponent <animationController>().setWalking(false);

        //Debug.Log("move is done ==========================================================");
    }
    // // hid detection bools
    // [HideInInspector] public bool hitDetected = false;
    // [HideInInspector] public GameObject hitTarget = null;

    // ragdoll control
    // ragdollControl ragdollControl;

    void Awake()
    {
        input = new DudeActions();
        animationController = GetComponent <animationController>();
        // ragdollControl = GetComponent<ragdollControl>();

        input.CharacterControls.ZAxis.performed += ctx =>
        {
            currentMovement.z = ctx.ReadValue <float>();
            currentMovement.Normalize();
            movementPressed = currentMovement.x != 0 || currentMovement.z != 0;

            HandleWalkMotion(currentMovement);
            // Debug.Log(currentMovement);
        };
        input.CharacterControls.XAxis.performed += ctx =>
        {
            currentMovement.x = ctx.ReadValue <float>();
            currentMovement.Normalize();
            movementPressed = currentMovement.x != 0 || currentMovement.z != 0;

            // Debug.Log("button current movement: " + currentMovement);
            HandleWalkMotion(currentMovement);
            // Debug.Log(currentMovement);
        };

        input.CharacterControls.Run.performed += ctx =>
        {
            runPressed = ctx.ReadValueAsButton();
            // Debug.Log(runPressed);
        };

        input.CharacterControls.Roll.performed += ctx =>
        {
            rollPressed = ctx.ReadValueAsButton();
            // Debug.Log(runPressed);
            // can we just set animation bools here?
            HandleRollMotion(rollPressed);
        };

        input.CharacterControls.Punch.performed += ctx =>
        {
            punchPressed = ctx.ReadValueAsButton();

            HandlePunchMotion(punchPressed);
        };

        input.CharacterControls.Jump.performed += ctx =>
        {
            jumpPressed = ctx.ReadValueAsButton();

            HandleJumpMotion(jumpPressed);
        };

        // ragdoll action
        input.CharacterControls.Ragdoll.started += ctx =>
        {
            ragdollPressed = ctx.ReadValueAsButton();

            HandleRagdollMotion(ragdollPressed);
        };

        // ragdoll action
        input.CharacterControls.Ragdoll.performed += ctx =>
        {
            ragdollPressed = ctx.ReadValueAsButton();

            if (!ragdollPressed)
            {
                HandleRagdollMotion(ragdollPressed);
            }
        };
    }