public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo)
    {
        // get Control script component attached to our gameObject
        control = characterStateBase.getController(animator);


        // attack kicked off, now disable
        animator.SetBool(AnimationTags.LEFT_SWING, false);
        animator.SetBool(AnimationTags.RIGHT_SWING, false);
        animator.SetBool(AnimationTags.END, false);


        // Load prefab empty object that contains the attack info script
        // We can use this object as a way to broadcast information on attacks
        GameObject obj        = Instantiate(Resources.Load("AttackInfo", typeof(GameObject))) as GameObject;
        AttackInfo attackInfo = obj.GetComponent <AttackInfo>();

        attackInfo.resetAttackInfo(this);

        // Add object containing attack info into the attack manager
        if (!AttackManager.Instance.currentAttacks.Contains(attackInfo))
        {
            AttackManager.Instance.currentAttacks.Add(attackInfo);
        }
    }
 public override void updateAbility(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo)
 {
     // after elapsed time, switch animator held in Control
     if (stateInfo.normalizedTime >= switchTiming)
     {
         characterStateBase.getController(animator).GetComponent <Animator>().runtimeAnimatorController = targetAnimator;
     }
 }
    public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo)
    {
        TimerRecalling = 0f;
        canRecall      = false;

        control = characterStateBase.getController(animator);
        Hammer  = control.Hammer.GetComponent <Hammer>();

        // reset previous animation values
        animator.SetBool(AnimationTags.FORCE_TRANSITION, false);
        animator.SetInteger(AnimationTags.TRANSITION_INDEX, 0);
        animator.SetBool(AnimationTags.END, false);
    }
Ejemplo n.º 4
0
    // Idle is a StateData; which is an item from a list of abilities.
    // CharacterStateBase, which is attached to the object, will call updateAbility from all StateData
    public override void updateAbility(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo)
    {
        // get control component
        control = characterStateBase.getController(animator);


        // move left
        if (control.moveLeft || control.moveRight)
        {
            animator.SetBool(AnimationTags.WALK, true);
        }
        else
        {
            animator.SetBool(AnimationTags.WALK, false);
        }


        // attack
        if (control.attack)
        {
            // different arm jab triggered depending on forward position
            if (control.transform.forward.x > 1)
            {
                animator.SetBool(AnimationTags.RIGHT_SWING, true);
            }
            else
            {
                animator.SetBool(AnimationTags.LEFT_SWING, true);
            }
        }


        // Hammer recall
        if (control.recall && !control.hammerEquipped)
        {
            animator.SetBool(AnimationTags.RECALL, true);
        }

        // Hammer throw
        if (control.throwHammer && control.hammerEquipped)
        {
            animator.SetBool(AnimationTags.THROW, true);
        }


        // Death
        if (control.dead)
        {
            animator.SetBool(AnimationTags.DEAD, true);
        }
    }
Ejemplo n.º 5
0
    // MoveForward is a StateData; which is an item from a list of abilities.
    // CharacterStateBase, which is attached to the object, will call updateAbility from all StateData
    public override void updateAbility(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo)
    {
        // get control script component
        control = characterStateBase.getController(animator);


        // if moving left
        if (control.moveLeft)
        {
            // animate walk
            animator.SetBool(AnimationTags.WALK, true);

            // move left
            control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime);

            // rotate left
            control.transform.rotation = Quaternion.Euler(0f, -90f, 0f);
        }



        // if moving right
        if (control.moveRight)
        {
            animator.SetBool(AnimationTags.WALK, true);

            control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime);

            control.transform.rotation = Quaternion.Euler(0f, 90f, 0f);
        }



        // not moving
        if (!control.moving)
        {
            animator.SetBool(AnimationTags.WALK, false);
        }



        // move forward regarless of input. Uses include moving forward with a punch
        if (constant)
        {
            control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime);
        }
    }
Ejemplo n.º 6
0
 public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo)
 {
     control      = characterStateBase.getController(animator);
     Hammer       = control.Hammer;
     HammerScript = Hammer.GetComponent <Hammer>();
 }
Ejemplo n.º 7
0
 public override void OnEnter(CharacterStateBase characterStateBase, Animator animator, AnimatorStateInfo stateInfo)
 {
     control = characterStateBase.getController(animator);
 }