using System.Collections; using System.Collections.Generic; using BITKit; using BITKit.FPS; using Net.Project.B.FPS; using Project.B.Item; using UnityEngine; namespace Net.Project.B.Item { public class ScriptableGun : ScriptableWeapon { [Header(nameof(ScriptableGun))] [SerializeField] private int fireRate = 10; [SerializeField] private int defaultAmmoCapacity = 30; [SerializeField] private float defaultZoomFactor = 1.2f; [SerializeField] private int fireMode; [SerializeField] private Vector3 aimOffset; [SerializeField] private ScriptableItem defaultAmmoType; [SerializeField] private PlayerAnimationClips holsteredDrawClip; [SerializeField] private PlayerAnimationClips runClip; [SerializeField] private PlayerAnimationClips sprintClip; [SerializeField] private PlayerAnimationClips climbClip; [SerializeField] private PlayerAnimationClips reloadClip; [SerializeField] private PlayerAnimationClips aimClip; [SerializeField] private PlayerAnimationClips fireClip; [SerializeField] private PlayerAnimationClips aimFireClip; [SerializeField] private PlayerAnimationClips slidingClip; [SerializeField] private ScriptableSprint3 recoil; public int FireRate =>fireRate<=0 ? 1 : fireRate; public int DefaultAmmoCapacity => defaultAmmoCapacity<=0 ? 1 : defaultAmmoCapacity; public float DefaultZoomFactor => defaultZoomFactor; public int FireMode => fireMode; public ScriptableItem DefaultAmmoType => defaultAmmoType; public PlayerAnimationClips HolsteredDrawClip => holsteredDrawClip?holsteredDrawClip:clipBase.holsteredDrawClip; public PlayerAnimationClips RunClip => runClip?runClip:clipBase.RunClip; public PlayerAnimationClips SprintClip => sprintClip?sprintClip:clipBase.SprintClip; public PlayerAnimationClips ClimbClip => climbClip?climbClip:clipBase.ClimbClip; public PlayerAnimationClips ReloadClip => reloadClip?reloadClip:clipBase.ReloadClip; public PlayerAnimationClips AimClip => aimClip?aimClip:clipBase.AimClip; public PlayerAnimationClips FireClip => fireClip?fireClip:clipBase.FireClip; public PlayerAnimationClips AimFireClip => aimFireClip?aimFireClip:clipBase.AimFireClip; public PlayerAnimationClips SlidingClip => slidingClip?slidingClip:clipBase.SlidingClip; public ISprint3 Recoil => recoil; public Vector3 AimOffset => aimOffset; public override IRuntimeItem CreateRuntimeItem() { var item = base.CreateRuntimeItem(); item.Amount = defaultAmmoCapacity; return item; } } }