using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Ktyl.Util; using UnityEngine; [CreateAssetMenu(menuName = "KernelPanic/Traps/Settings")] public class TrapSettings : ScriptableObject { public float SafeTime => _safeTime; [Header("General")] // how long the player has currently been safe for. -1 while the player is not // in a safe zone [SerializeField] private SerialFloat _safeTime; public SerialFloat ObjectTimeScale => _objectTimeScale; [SerializeField] private SerialFloat _objectTimeScale; [Serializable] public struct FallawayFloorSettings { // how long the trap takes to reset while the player is in a safe zone public float SafeResetTime => _safeResetTime; [SerializeField] private float _safeResetTime; public string FMODEvent => _fmodEvent; [SerializeField] private string _fmodEvent; public float ShakeStrength => _shakeStrength; [Header("Animation")] [SerializeField] private float _shakeStrength; public Ease PopInEase => _popInEase; [SerializeField] private Ease _popInEase; } public FallawayFloorSettings FallawayFloor => _fallawayFloor; [SerializeField] private FallawayFloorSettings _fallawayFloor; [Serializable] public struct ArrowWallSettings { public float SafeResetTime => _safeResetTime; [SerializeField] private float _safeResetTime; public string FMODEvent => _fmodEvent; [SerializeField] private string _fmodEvent; } public ArrowWallSettings ArrowWall => _arrowWall; [SerializeField] private ArrowWallSettings _arrowWall; }