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; public AnimationClip inAir; public AnimationClip jumpLand; public FuncAnimData getHitMediumFront, getHitMediumBack, getHitMediumLeft, getHitMediumRight; public FuncAnimData getHitHeavyFront, getHitHeavyBack, getHitHeavyLeft, getHitHeavyRight; 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.animationClip; animatorOverride["GetHitMediumBack"] = getHitMediumBack.animationClip; animatorOverride["GetHitMediumLeft"] = getHitMediumLeft.animationClip; animatorOverride["GetHitMediumRight"] = getHitMediumRight.animationClip; animatorOverride["GetHitHeavyFront"] = getHitHeavyFront.animationClip; animatorOverride["GetHitHeavyBack"] = getHitHeavyBack.animationClip; animatorOverride["GetHitHeavyLeft"] = getHitHeavyLeft.animationClip; animatorOverride["GetHitHeavyRight"] = getHitHeavyRight.animationClip; animatorOverride["Dash"] = dash.animationClip; animatorOverride["Dodge"] = dodge.animationClip; } animSc.fullBodyFuncAnimSm.Reset(getHitMediumFront); animSc.fullBodyFuncAnimSm.Reset(getHitMediumBack); animSc.fullBodyFuncAnimSm.Reset(getHitMediumLeft); animSc.fullBodyFuncAnimSm.Reset(getHitMediumRight); animSc.fullBodyFuncAnimSm.Reset(getHitHeavyFront); animSc.fullBodyFuncAnimSm.Reset(getHitHeavyBack); animSc.fullBodyFuncAnimSm.Reset(getHitHeavyLeft); animSc.fullBodyFuncAnimSm.Reset(getHitHeavyRight); animSc.fullBodyFuncAnimSm.Reset(dash); animSc.fullBodyFuncAnimSm.Reset(dodge); } } }