the-third-place/scenes/bullet.gd

96 lines
2.5 KiB
GDScript

extends Area2D
@onready var bullet = $Bullet
@export var speed = -250
var shader_active = false
var pause = false
var target = null
@onready var head_splat = preload("res://sprites/head_splat.png")
func start(pos):
position = pos
#func _ready():
#var target_node = get_parent().get_node("root/$EnemyShard")
#var target = target_node.is_in_group("shards")
func _process(delta):
if pause == true: return
position.y += speed * delta
#if target:
#var direction = (target.position - position).normalized()
#position += direction * speed * delta
#
#if position.distance_to(target.position) < 10:
#stick_to_target(target)
#func stick_to_target(target):
#target.add_child(bullet)
#print("Sticking to target!")
#position = Vector2.ZERO
#
# Signal checks to see if the bullet leaves the viewport then removes bullet.
func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
queue_free()
func _on_area_entered(area: Area2D) -> void:
if area.is_in_group("enemies"):
match area.enemy_type:
"crt":
if area.is_in_group("enemies"):
print("CRT hit!")
area.hit_detection()
queue_free()
"shards":
if area.is_in_group("shards"):
#print("Shards hit!")
area.hit_detection()
# stick_to_target(target)
reparent(area)
$Sprite2D.texture = head_splat
$Sprite2D.hframes = 1
position = Vector2.ZERO
pause = true
$Sprite2D/GPUParticles2D.hide()
"mirror":
if area.is_in_group("enemies"):
print("Mirror hit!")
area.hit_detection()
queue_free()
"chicken":
if area.is_in_group("enemies"):
print("Chicken hit!")
area.hit_detection()
queue_free()
_:
if area.is_in_group("enemies"):
area.hit_detection()
if area.is_in_group("heart"):
print("Heart hit!")
EventBus.ending.emit(2)
queue_free()
#area.hit_detection()
#func bullet_fx():
#shader_active = true
#bullet.material.set_shader_parameter("toggle", 1.0)
#pause = true
#await get_tree().create_timer(1).timeout
#pause = false
#shader_active = false
#bullet.material.set_shader_parameter("toggle", 0.0)