Single fire mode
This commit is contained in:
parent
63e8211b6c
commit
566a4b4a05
2 changed files with 29 additions and 0 deletions
28
base/scripts/weapons/fire_mode/single_fire_mode.gd
Normal file
28
base/scripts/weapons/fire_mode/single_fire_mode.gd
Normal 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
|
1
base/scripts/weapons/fire_mode/single_fire_mode.gd.uid
Normal file
1
base/scripts/weapons/fire_mode/single_fire_mode.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://ckexgw71dd5jc
|
Loading…
Add table
Add a link
Reference in a new issue