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