Example #1
0
 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     bossScript = animator.gameObject.GetComponent <BossHandFSM>();
     bossScript.PlayReadyShootMissile();
     timer    = 0;
     readying = true;
 }
Example #2
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        bossScript = animator.gameObject.GetComponent <BossHandFSM>();

        switch (bossScript.targetDirection)
        {
        case BossHandFSM.Direction.NORTH:
            bossScript.SetTargetPosition(CommonUtils.Position(bossScript.transform) + Vector2.up * bossScript.chargeDistance);
            break;

        case BossHandFSM.Direction.EAST:
            bossScript.SetTargetPosition(CommonUtils.Position(bossScript.transform) + Vector2.right * bossScript.chargeDistance);
            break;

        case BossHandFSM.Direction.WEST:
            bossScript.SetTargetPosition(CommonUtils.Position(bossScript.transform) + Vector2.left * bossScript.chargeDistance);
            break;

        case BossHandFSM.Direction.SOUTH:
            bossScript.SetTargetPosition(CommonUtils.Position(bossScript.transform) + Vector2.down * bossScript.chargeDistance);
            break;
        }


        animator.SetBool("LeaveState", true);
    }
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        bossScript = animator.gameObject.GetComponent <BossHandFSM>();

        BossHandFSM.Direction d = bossScript.GetRandomDirection();
        bossScript.SetTargetPosition(
            CommonUtils.Position(GameManager.Instance.playerController.transform)
            - bossScript.DirectionAsVector(d)
            * bossScript.chargeDistance);
        //switch (d) {
        //	case BossHandFSM.Direction.NORTH:
        //		bossScript.SetTargetPosition(CommonUtils.Position(GameManager.Instance.playerController.transform) + Vector2.down * bossScript.chargeDistance);
        //		break;
        //	case BossHandFSM.Direction.EAST:
        //		bossScript.SetTargetPosition(CommonUtils.Position(GameManager.Instance.playerController.transform) + Vector2.left * bossScript.chargeDistance);
        //		break;
        //	case BossHandFSM.Direction.WEST:
        //		bossScript.SetTargetPosition(CommonUtils.Position(GameManager.Instance.playerController.transform) + Vector2.right * bossScript.chargeDistance);
        //		break;
        //	case BossHandFSM.Direction.SOUTH:
        //		bossScript.SetTargetPosition(CommonUtils.Position(GameManager.Instance.playerController.transform) + Vector2.up * bossScript.chargeDistance);
        //		break;
        //}


        bossScript.SetTargetDirection(d);
        animator.SetBool("LeaveState", true);
    }
Example #4
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        bossScript = animator.gameObject.GetComponent <BossHandFSM>();
        animator.SetBool("LeaveState", false);

        PlayerController pc = GameManager.Instance.playerController;

        if (bossScript.transform.position.y > pc.transform.position.y)
        {
            bossScript.SetTargetPosition(
                CommonUtils.Position(pc.transform)
                + Vector2.left
                * bossScript.chargeDistance
                + Vector2.down
                * bossScript.chargeDistance);
        }
        else
        {
            bossScript.SetTargetPosition(
                CommonUtils.Position(pc.transform)
                + Vector2.left
                * bossScript.chargeDistance
                + Vector2.up
                * bossScript.chargeDistance);
        }

        animator.SetBool("LeaveState", true);
    }
 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     bossScript = animator.gameObject.GetComponent <BossHandFSM>();
     animator.SetBool("LeaveState", false);
     length        = (bossScript.transform.position - bossScript.targetPosition).magnitude;
     projectedTime = length / speed;
     timer         = 0;
     start         = bossScript.transform.position;
     n             = CommonUtils.NormalVector(bossScript.transform.position, bossScript.targetPosition);
 }
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        bossScript = animator.gameObject.GetComponent <BossHandFSM>();
        bossScript.PlayCharge();

        projectedTime = maxDistance / speed;
        timer         = 0;
        start         = bossScript.transform.position;

        n = bossScript.DirectionAsVector(bossScript.targetDirection);

        animator.SetBool("LeaveState", false);
    }
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        bossScript = animator.gameObject.GetComponent <BossHandFSM>();
        bossScript.PlayIdle();
        animator.SetBool("LeaveState", false);
        animator.SetBool("ChargePlayer", false);
        animator.SetBool("CatchUpToPlayer", false);
        //animator.SetBool("ShootMissilesRight", false);



        PlayerController pc = GameManager.Instance.playerController;

        if (bossScript.catchUpToPlayer && pc.transform.position.y > bossScript.transform.position.y + 10)
        {
            animator.SetBool("CatchUpToPlayer", true);
        }
        else
        {
            List <int> choices = new List <int>();
            if (bossScript.chargePlayer)
            {
                choices.Add(0);
            }
            if (bossScript.shootMissilesRight)
            {
                choices.Add(1);
            }
            switch (CommonUtils.RandomChoice <int>(choices))
            {
            case 0:                     // ChargePlayer
                animator.SetBool("ChargePlayer", true);
                break;

            case 1:                     // ShootMissilesEast
                animator.SetTrigger("ShootMissilesEast");
                break;
            }
        }
    }
Example #8
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        bossScript = animator.gameObject.GetComponent <BossHandFSM>();

        startRotation = animator.transform.rotation.eulerAngles.z;
        startRotation = startRotation % 360;
        animator.transform.rotation = Quaternion.Euler(0, 0, startRotation);
        switch (bossScript.GetDirectionToTargetPosition())
        {
        case BossHandFSM.Direction.NORTH:
            targetRotation = 90;
            break;

        case BossHandFSM.Direction.EAST:
            targetRotation = 0;
            break;

        case BossHandFSM.Direction.WEST:
            targetRotation = 180;
            break;

        case BossHandFSM.Direction.SOUTH:
            targetRotation = 270;
            break;
        }
        if (startRotation > targetRotation)
        {
            targetRotation -= 360 * overRotations;
        }
        else
        {
            targetRotation += 360 * overRotations;
        }
        timer = 0;
        animator.SetBool("LeaveState", false);
    }