Invulnerability component
This commit is contained in:
30
scripts/components/invulnerability_component.gd
Normal file
30
scripts/components/invulnerability_component.gd
Normal file
@@ -0,0 +1,30 @@
|
||||
class_name InvulnerabilityComponent
|
||||
extends Node
|
||||
|
||||
@export var duration: float = 1.0
|
||||
@export var flashing_component: FlashingComponent
|
||||
|
||||
var invulnerable: bool = false
|
||||
|
||||
|
||||
func activate() -> void:
|
||||
if invulnerable:
|
||||
return
|
||||
|
||||
invulnerable = true
|
||||
if flashing_component:
|
||||
flashing_component.start_flashing()
|
||||
|
||||
var timer = get_tree().create_timer(duration)
|
||||
timer.timeout.connect(deactivate)
|
||||
|
||||
|
||||
func deactivate() -> void:
|
||||
invulnerable = false
|
||||
if flashing_component:
|
||||
flashing_component.stop_flashing()
|
||||
|
||||
|
||||
func is_invulnerable() -> bool:
|
||||
return invulnerable
|
||||
|
Reference in New Issue
Block a user