using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Unity.Mathematics; using UnityEngine; public class MeleeFighterAttackAnimator : MonoBehaviour { public Player Player; protected FloatingTextSpawner TextPopUp; public Animator MeleeAnimator; public List MeleeAnimationNames; public List MeleeAttackState; private Dictionary MeleeAnimationNameDict; public void Awake() { TextPopUp = new FloatingTextSpawner(this.transform, 0.5f); MeleeAnimationNameDict = new Dictionary(); for (int i = 0; i < MeleeAttackState.Count; i++) MeleeAnimationNameDict.Add(MeleeAttackState[i], MeleeAnimationNames[i]); } public void RotateTowardsPlayerDirection() { float angle = Mathf.Atan2(Player.PrevDirection.y, Player.PrevDirection.x) * Mathf.Rad2Deg; transform.rotation = Quaternion.Euler(0, 0, angle); } public void MeleeResetKineticCharge() { //Melee.CrossFade("Blank", 0, 1); } public void Stop() { MeleeAnimator.CrossFade("Blank", 0, 0); } public void MeleeBasic(MeleeFighterClass.AttackState state) { Debug.Log(state.ToString()); if (!MeleeAnimationNameDict.ContainsKey(state)) return; RotateTowardsPlayerDirection(); MeleeAnimator.CrossFade(MeleeAnimationNameDict[state], 0, 0); } public void MeleeKineticSurge() { return; MeleeAnimator.CrossFade("KineticSurgeRelease", 0, 0); } }