newlon/scripts/components/controllers/plants/peashooter_controller.gd
2025-08-09 21:35:02 +05:00

33 lines
785 B
GDScript

extends Node
const projectile := preload("uid://ciqhjwh4sfe3u")
@export var projectile_transform : Marker2D
var detected : bool = false
var can_shoot : bool = true
@onready var timer := $Timer
@onready var entity : Entity = get_parent()
func is_shooting():
return detected and can_shoot and entity.disabled == false
func _on_generic_hurtbox_collision_start() -> void:
detected = true
func _on_generic_hurtbox_collision_end() -> void:
detected = false
func shoot():
if can_shoot == false:
return
can_shoot = false
timer.start()
var proj = projectile.instantiate()
get_tree().current_scene.get_node("%Projectiles").add_child(proj)
proj.global_transform = projectile_transform.global_transform
proj.source = entity
func _on_timer_timeout() -> void:
can_shoot = true