using System.Collections.Generic; using Sirenix.OdinInspector; using SLSUtilities.FunctionalAnimation; using UnityEngine; using UnityEngine.Serialization; namespace Cielonos.MainGame.Characters { [CreateAssetMenu(fileName = "BaseAnimationGroup", menuName = "Cielonos/Characters/BaseAnimationGroup")] public class BaseAnimationGroup : SerializedScriptableObject { public AnimationClip landIdle; public List landIdleExtras; public AnimationClip landWalkForward, landWalkBack, landWalkLeft, landWalkRight; public AnimationClip landRunForward, landRunBack, landRunLeft, landRunRight; public AnimationClip jumpStart; [FormerlySerializedAs("jumpInAir")] public AnimationClip inAir; public AnimationClip jumpLand; public AnimationClip getHitLightFront, getHitLightBack, getHitLightLeft, getHitLightRight; public AnimationClip getHitHeavyFront, getHitHeavyBack, getHitHeavyLeft, getHitHeavyRight; public AnimationClip getHitKnockedFront, getHitKnockedBack, getHitKnockedLeft, getHitKnockedRight; public AnimationClip riseUpFront, riseUpBack, riseUpLeft, riseUpRight; public AnimationClip incapacitation, death; public FuncAnimData dash; public FuncAnimData dodge; public void SetUp(AnimationSubcontrollerBase animSc) { if (animSc is PlayerAnimationSubcontroller playerAnimSc) { AnimatorOverrideController animatorOverride = playerAnimSc.animatorOverride; animatorOverride["LandIdle"] = landIdle; animatorOverride["LandWalkForward"] = landWalkForward; animatorOverride["LandWalkBack"] = landWalkBack; animatorOverride["LandWalkLeft"] = landWalkLeft; animatorOverride["LandWalkRight"] = landWalkRight; animatorOverride["LandRunForward"] = landRunForward; animatorOverride["LandRunBack"] = landRunBack; animatorOverride["LandRunLeft"] = landRunLeft; animatorOverride["LandRunRight"] = landRunRight; animatorOverride["JumpStart"] = jumpStart; animatorOverride["InAir"] = inAir; animatorOverride["JumpLand"] = jumpLand; } animSc.fullBodyFuncAnimSm.ReSet(dash); animSc.fullBodyFuncAnimSm.ReSet(dodge); } } }