using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Ktyl.Util; using TMPro; using UnityEngine; [CreateAssetMenu(menuName = "KernelPanic/Traps/Settings")] public class TrapSettings : ScriptableObject { public float ObjectTimeScale => _objectTimeScale; [SerializeField] private SerialFloat _objectTimeScale; [Serializable] public struct FallawayFloorSettings { public string FMODEvent => _fmodEvent; [SerializeField] private string _fmodEvent; [Header("Platform respawning")] // how long it takes for falling platforms to respawn while the player is safe [SerializeField] private SerialFloat _respawnTime; // how long the player has currently been safe for. -1 while the player is not // in a safe zone [SerializeField] private SerialFloat _safeTime; public bool CanRespawn => _safeTime > _respawnTime; 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 delay; } public ArrowWallSettings ArrowWall => _arrowWall; [SerializeField] private ArrowWallSettings _arrowWall; }