using Cielonos.MainGame.Characters; using MoreMountains.Feedbacks; using MoreMountains.FeedbacksForThirdParty; using UnityEngine; namespace Cielonos.MainGame.Inventory { public abstract partial class MainWeaponBase : ItemBase { public BaseAnimationGroup baseAnimationGroup; } public partial class MainWeaponBase { public virtual void OnEquipped() { baseAnimationGroup.SetUp(animationSc); } public virtual void OnUnequipped() { RemoveAllRegisteredFunctions(); } } public partial class MainWeaponBase { protected Transform muzzle => viewObject.functionalParts["Muzzle"].transform; } public partial class MainWeaponBase { public bool disablePrimaryPreinput; public bool disableSecondaryPreinput; public bool disableSpecialAPreinput; public bool disableSpecialBPreinput; public virtual void OnPrimaryPress() { } public virtual void OnPrimaryHold() { } public virtual void OnPrimaryRelease() { } public virtual void OnSecondaryPress() { } public virtual void OnSecondaryHold() { } public virtual void OnSecondaryRelease() { } public virtual void OnSpecialAPress() { } public virtual void OnSpecialAHold() { } public virtual void OnSpecialARelease() { } public virtual void OnSpecialBPress() { } public virtual void OnSpecialBHold() { } public virtual void OnSpecialBRelease() { } } public partial class MainWeaponBase { protected void Swing(string swingAudio, string feedBackName) { if (!string.IsNullOrEmpty(swingAudio)) { audioContainer.PlaySoundFX(swingAudio, null, true); } feedbackSc[feedBackName].Play(); } protected void Swing(string swingAudio, string feedBackName, Vector3 swingRotation, Vector3 swingVelocity = default) { if (!string.IsNullOrEmpty(swingAudio)) { audioContainer.PlaySoundFX(swingAudio, null, true); } MMF_CinemachineRotation cinemachineRotation = feedbackSc[feedBackName].feedback.GetFeedbackOfType(); if (cinemachineRotation != null) { cinemachineRotation.RotationAmplitude = swingRotation != default ? swingRotation : Vector3.zero; } MMF_CinemachineImpulse cinemachineImpulse = feedbackSc[feedBackName].feedback.GetFeedbackOfType(); if (cinemachineImpulse != null) { cinemachineImpulse.Velocity = swingVelocity != default ? swingVelocity : Vector3.zero; } feedbackSc[feedBackName].Play(); } } }