public override void Act(GameObject player, GameObject npc)
    {
        if (timeBetweenJumpsLeft <= 0f && aiMovement.collisions.below)
        {
            if (turnOnNextJump)
            {
                aiMovement.DirectionX = -aiMovement.DirectionX;
                turnOnNextJump        = false;
            }

            timeBetweenJumpsLeft = timeBetweenJumps;
            velocity             = aiMovement.CalculateJumpVelocity();
            velocity             = aiMovement.CalculateVelocity();
            aiMovement.Move(velocity * Time.deltaTime);
        }

        else if (timeBetweenJumpsLeft >= 0f && aiMovement.collisions.below)
        {
            timeBetweenJumpsLeft -= Time.deltaTime;
            aiMovement.SimulateGravity();
        }

        else if (!aiMovement.collisions.below)
        {
            velocity = aiMovement.CalculateVelocity();
            aiMovement.Move(velocity * Time.deltaTime);
        }

        if (aiMovement.collisions.left || aiMovement.collisions.right)
        {
            turnOnNextJump = true;
        }

        if (aiMovement.collisions.touchedPlayerHorizontally)
        {
            player.GetComponent <Player>().HandleHit(100f);
        }
    }