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 getHitMediumFront, getHitMediumBack, getHitMediumLeft, getHitMediumRight; public AnimationClip getHitHeavyFront, getHitHeavyBack, getHitHeavyLeft, getHitHeavyRight; public AnimationClip getHitDisruptionFront, getHitDisruptionBack, getHitDisruptionLeft, getHitDisruptionRight; 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; animatorOverride["GetHitMediumFront"] = getHitMediumFront; animatorOverride["GetHitMediumBack"] = getHitMediumBack; animatorOverride["GetHitMediumLeft"] = getHitMediumLeft; animatorOverride["GetHitMediumRight"] = getHitMediumRight; animatorOverride["GetHitHeavyFront"] = getHitHeavyFront; animatorOverride["GetHitHeavyBack"] = getHitHeavyBack; animatorOverride["GetHitHeavyLeft"] = getHitHeavyLeft; animatorOverride["GetHitHeavyRight"] = getHitHeavyRight; animatorOverride["GetHitDisruptionFront"] = getHitDisruptionFront; animatorOverride["GetHitDisruptionBack"] = getHitDisruptionBack; animatorOverride["GetHitDisruptionLeft"] = getHitDisruptionLeft; animatorOverride["GetHitDisruptionRight"] = getHitDisruptionRight; } animSc.fullBodyFuncAnimSm.ReSet(dash); animSc.fullBodyFuncAnimSm.ReSet(dodge); } } }