using System; using UnityEngine; using Random = UnityEngine.Random; namespace AibisDream.FixSystem { [CreateAssetMenu(fileName = "WhackMoldData", menuName = AibisAssetMenus.FixWhackMoleData)] public class WhackMoleData : ScriptableObject { [Header("基本参数")] public float moleExistTime = 1f; public int flickerFreq = 10; public Vector2 batchDuration = new(2f, 3f); public int totalBatchNum = 5; [Header("批次序列")] public WhackMoleBatch[] batches; [Header("流水线数据")] [Tooltip("置空则停止流水线游戏")] public CheckRule[] checkRules; public CheckData[] checkDatas; [Header("是否加入验证码")] public bool isAddVerifyCode; public WhackMoleBatch GetBatch(int index) { return index >= batches.Length ? batches[^1] : batches[index]; } public float GetBatchGap() { return Random.Range(batchDuration.x, batchDuration.y); } public bool HasPipeline() { return checkRules is { Length: > 0 }; } } [Serializable] public struct WhackMoleBatch { public int moleNum; public Vector2 durationRange; } }