将 Weapon 攻击冷却计时器 由 Weapon 内部维护迁移到 TimerModule 维护

This commit is contained in:
2026-06-18 23:23:29 +08:00
parent 25f36d38c9
commit 846e4d6f44
26 changed files with 48 additions and 36 deletions
@@ -11,7 +11,7 @@ namespace SepCore.Entity.Weapon
public override void OnEnter()
{
_weapon._currAttackTimer = 0f;
_weapon.ResetAttackCooldown(_weapon._weaponData.Cooldown);
_weapon.Attack();
}
@@ -11,7 +11,7 @@ namespace SepCore.Entity.Weapon
public override void OnEnter()
{
if (_weapon._currAttackTimer >= _weapon._weaponData.Cooldown)
if (_weapon._canAttack)
{
_weapon.TransitionTo(WeaponStateType.Attack);
}
@@ -21,7 +21,6 @@ namespace SepCore.Entity.Weapon
{
_weapon.Check();
_weapon.RotateToTarget(elapseSeconds);
_weapon._currAttackTimer += elapseSeconds;
if (_weapon._target == null || !_weapon._target.Available)
{
@@ -35,7 +34,7 @@ namespace SepCore.Entity.Weapon
return;
}
if (_weapon._currAttackTimer >= _weapon._weaponData.Cooldown)
if (_weapon._canAttack)
{
_weapon.TransitionTo(WeaponStateType.Attack);
}
@@ -17,7 +17,6 @@ namespace SepCore.Entity.Weapon
{
_weapon.Check();
_weapon.RotateToTarget(elapseSeconds);
_weapon._currAttackTimer += elapseSeconds;
if (_weapon._target == null || !_weapon._target.Available)
{
@@ -17,7 +17,6 @@ namespace SepCore.Entity.Weapon
{
_weapon.Check();
_weapon.RotateToOrigin(elapseSeconds);
_weapon._currAttackTimer += elapseSeconds;
if (_weapon._target != null && _weapon._target.Available)
{
@@ -150,7 +150,7 @@ namespace SepCore.Entity.Weapon
if (_weaponData == null) return false;
WeaponData = _weaponData;
_currAttackTimer = 0f;
StartAttackCooldown(_weaponData.Cooldown);
_sqrRange = _weaponData.AttackRange * _weaponData.AttackRange;
_cachedRotation = CachedTransform.rotation;
@@ -183,6 +183,7 @@ namespace SepCore.Entity.Weapon
protected override void OnWeaponHide(object userData)
{
StopAttackTween(true);
CancelAttackCooldown();
_attackEffect = null;
}