Pro_Unit

Refactored Animations

Aug 27th, 2019
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.34 KB | None | 0 0
  1. AnimationClip[] CombatHitAnimations => new AnimationClip[] { _ai.CombatHit1Animation, _ai.CombatHit2Animation, _ai.CombatHit3Animation };
  2.         AnimationClip[] EmoteAnimations => new AnimationClip[] { _ai.Emote1Animation, _ai.Emote2Animation, _ai.Emote3Animation };
  3.         AnimationClip[] AttackAnimation => new AnimationClip[] { _ai.Attack1Animation, _ai.Attack2Animation, _ai.Attack3Animation };
  4.         AnimationClip[] HitAnimations => new AnimationClip[] { _ai.Hit1Animation, _ai.Hit2Animation, _ai.Hit3Animation };
  5.         /// <summary>
  6.         /// Keeps track of whether or not certain animations are currently playing
  7.         /// </summary>
  8.         public void CheckAnimationStates ()
  9.         {
  10.             if (_ai.CombatStateRef == EmeraldAISystem.CombatState.Active)
  11.                 CheckCurrentAnimation (AttackStateReslove, AttackAnimation);
  12.  
  13.             if (_ai.CombatStateRef == EmeraldAISystem.CombatState.NotActive)
  14.             {
  15.                 CheckCurrentAnimation (getttingHit => _ai.GettingHit = getttingHit, HitAnimations);
  16.                 CheckCurrentAnimation (isEmote => _ai.EmoteAnimationActive = isEmote, EmoteAnimations);
  17.             }
  18.             else if (_ai.CombatStateRef == EmeraldAISystem.CombatState.Active)
  19.             {
  20.                 CheckCurrentAnimation (GetHitReslove, CombatHitAnimations);
  21.             }
  22.         }
  23.  
  24.         private void GetHitReslove (bool gettingHit)
  25.         {
  26.             _ai.GettingHit = gettingHit;
  27.             if (gettingHit)
  28.             {
  29.                 _ai.CurrentBlockingState = EmeraldAISystem.BlockingState.NotBlocking;
  30.                 _ai.AIAnimator.SetBool ("Blocking", false);
  31.             }
  32.         }
  33.  
  34.         private void AttackStateReslove (bool isAttacking)
  35.         {
  36.             _ai.Attacking = isAttacking;
  37.  
  38.             if (isAttacking && _ai.CurrentBlockingState == EmeraldAISystem.BlockingState.Blocking)
  39.             {
  40.                 _ai.CurrentBlockingState = EmeraldAISystem.BlockingState.NotBlocking;
  41.                 _ai.AIAnimator.SetBool ("Blocking", false);
  42.                 _ai.AIAnimator.ResetTrigger ("Hit");
  43.             }
  44.         }
  45.  
  46.         public void CheckCurrentAnimation (System.Action<bool> onChecked, params AnimationClip[] clips)
  47.         {
  48.             onChecked (clips.ToList ().Any (clip => clip.Equals (_ai.CurrentAnimationClip)));
  49.         }
Add Comment
Please, Sign In to add comment