Files
BlueArchiveMiniGame/Assets/ThirdParty/DestroyIt/Scripts/Runtime/Behaviors/AutoDamage.cs

47 lines
1.2 KiB
C#
Raw Normal View History

2025-09-17 18:56:28 +08:00
using UnityEngine;
namespace DestroyIt
{
public class AutoDamage : MonoBehaviour
{
public int startAtHitPoints = 30;
public float damageIntervalSeconds = 0.5f;
public int damagePerInterval = 5;
private bool _isInitialized;
private Destructible _destructible;
private bool _autoDamageStarted;
void Start()
{
_destructible = gameObject.GetComponent<Destructible>();
if (_destructible == null)
{
Debug.LogWarning("No Destructible object found! AutoDamage removed.");
Destroy(this);
}
_isInitialized = true;
}
void Update()
{
if (!_isInitialized) return;
if (_destructible == null) return;
if (_autoDamageStarted) return;
if (_destructible.CurrentHitPoints <= startAtHitPoints)
{
InvokeRepeating("ApplyDamage", 0f, damageIntervalSeconds);
_autoDamageStarted = true;
}
}
void ApplyDamage()
{
if (_destructible == null) return;
_destructible.ApplyDamage(damagePerInterval);
}
}
}