using System.Collections; using UnityEngine; public class TimedTrap : TrapDamage { [Header("TimedTrap")] [SerializeField] protected float activationDelay; [SerializeField] protected float activeTime; [SerializeField] protected float offset; protected Animator animator; protected SpriteRenderer sr; protected bool triggered; protected bool active; protected bool isOffset; protected void Awake() { animator = GetComponent(); sr = GetComponent(); } private void Start() { StartCoroutine(Offset()); } protected void Update() { if (!triggered) { if(isOffset) StartCoroutine(Activate()); } } protected new void OnTriggerEnter2D(Collider2D collision) { if (active) { base.OnTriggerEnter2D(collision); } } protected new void OnTriggerStay2D(Collider2D collision) { if(active && !stay) { StartCoroutine(base.StayDamage(collision)); } } protected IEnumerator Activate() { triggered = true; yield return new WaitForSeconds(activationDelay); active = true; animator.SetBool("activated", true); yield return new WaitForSeconds(activeTime); triggered = false; active = false; animator.SetBool("activated", false); } protected IEnumerator Offset() { yield return new WaitForSeconds(offset); isOffset = true; } }