using System.Collections; using System.Collections.Generic; using UnityEngine; using BITKit; namespace BITFALL.Guns { /// /// 射击模式的接口 /// public interface IFireMode { float FireRate { get; } } /// /// 射击模式的基类 /// public record FireMode : IFireMode { [SerializeField]protected float fireRate; public float FireRate => fireRate; } /// /// 自动开火模式 /// [System.Serializable] public record AutoFireMode : FireMode { } /// /// 半自动开火模式 /// [System.Serializable] public record SemiFireMode : FireMode { } /// /// 爆炸射击模式 BurstRound为爆炸开火时一次发射的子弹数量 /// /// [System.Serializable] public record BurstFireMode : FireMode { [SerializeField] protected int brustRound; [SerializeField] protected float burstFireInterval; public int BurstRound=> brustRound; public float BurstFireInterval => burstFireInterval; } /// /// 资产化武器配置 /// [System.Serializable] public record ArrowFireMode : FireMode { } public class AssetableGun : AssetableEquip { [Header("GunSettings")] [SerializeField, SerializeReference, SubclassSelector] protected IFireMode fireMode; public IFireMode FireMode => fireMode; } }