Single fire mode

This commit is contained in:
Rendo 2025-07-14 21:31:39 +05:00
commit 566a4b4a05
2 changed files with 29 additions and 0 deletions

View file

@ -0,0 +1,28 @@
extends BaseFireMode
## Firemode that fires single time [br]
## Has optional fire delay
class_name SingleFireMode
## Delay between shots [br]
## Values equal or less than 0 remove delay completely
@export var fire_delay : float
## Is fire mode on delay?
var cooldown : bool = false
func _on_fire_begin(tree) -> void:
if cooldown:
return
if _fire() == false or fire_delay <= 0:
return
cooldown = true
tree.create_timer(fire_delay).timeout.connect(on_cooldown_timeout)
## Invoked when cooldown has ended
func on_cooldown_timeout() -> void:
cooldown = false

View file

@ -0,0 +1 @@
uid://ckexgw71dd5jc