On the advice of Sophie, I adjusted the shader settings on the resource
to be local to the scene so not all CRTs flashed when one got hit.
This commit is contained in:
parent
aae3238906
commit
4f0eff986f
5 changed files with 44 additions and 41 deletions
|
|
@ -19,34 +19,33 @@ func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
|
||||||
|
|
||||||
func _on_area_entered(area: Area2D) -> void:
|
func _on_area_entered(area: Area2D) -> void:
|
||||||
|
|
||||||
var enemies = get_tree().get_nodes_in_group("enemies")
|
if area.is_in_group("enemies"):
|
||||||
|
|
||||||
#for enemy in enemies:
|
match area.enemy_type:
|
||||||
match enemies.enemy_type:
|
"crt":
|
||||||
"crt":
|
if area.is_in_group("enemies"):
|
||||||
if area.is_in_group("enemies"):
|
print("CRT hit!")
|
||||||
print("CRT hit!")
|
|
||||||
area.hit_detection()
|
|
||||||
queue_free()
|
|
||||||
|
|
||||||
|
|
||||||
"shards":
|
|
||||||
if area.is_in_group("shards"):
|
|
||||||
print("Shards hit!")
|
|
||||||
area.hit_detection()
|
|
||||||
|
|
||||||
"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()
|
area.hit_detection()
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
"shards":
|
||||||
|
if area.is_in_group("shards"):
|
||||||
|
print("Shards hit!")
|
||||||
|
area.hit_detection()
|
||||||
|
|
||||||
|
"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()
|
||||||
|
|
||||||
#func bullet_fx():
|
#func bullet_fx():
|
||||||
#shader_active = true
|
#shader_active = true
|
||||||
#bullet.material.set_shader_parameter("toggle", 1.0)
|
#bullet.material.set_shader_parameter("toggle", 1.0)
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ var enemy_type: String = "crt"
|
||||||
var bullet_scene = preload("res://scenes/enemy_bullet.tscn")
|
var bullet_scene = preload("res://scenes/enemy_bullet.tscn")
|
||||||
var start_pos = Vector2.ZERO
|
var start_pos = Vector2.ZERO
|
||||||
var move_break
|
var move_break
|
||||||
var speed = 0
|
var speed: int = 0
|
||||||
var direction = Vector2(0,1)
|
var direction = Vector2(0,1)
|
||||||
var tween_speed: float = 1.4
|
var tween_speed: float = 1
|
||||||
|
|
||||||
var exploding = false
|
var exploding = false
|
||||||
var can_shoot = true
|
var can_shoot = true
|
||||||
|
|
@ -23,25 +23,25 @@ var enemy_shoot_aggression = randf_range(4, 20)
|
||||||
const TILE = 32
|
const TILE = 32
|
||||||
|
|
||||||
@onready var screensize = get_viewport_rect().size
|
@onready var screensize = get_viewport_rect().size
|
||||||
@onready var timer = $MoveTimer
|
@onready var move_timer = $MoveTimer
|
||||||
@onready var crt = $CRT
|
@onready var crt = $CRT
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
timer.start()
|
move_timer.start()
|
||||||
|
|
||||||
func start(pos):
|
func start(pos):
|
||||||
speed = 2
|
speed = 4
|
||||||
$CRT.frame = 0
|
crt.frame = 0
|
||||||
#var pos_mod = randf_range(-TILE,TILE) #modify the start position randomly
|
#var pos_mod = randf_range(-TILE,TILE) #modify the start position randomly
|
||||||
#position = Vector2(pos.x + pos_mod, -pos.y) #add the modifier
|
#position = Vector2(pos.x + pos_mod, -pos.y) #add the modifier
|
||||||
position = Vector2(pos.x, -pos.y)
|
position = Vector2(pos.x, -pos.y)
|
||||||
start_pos = pos
|
start_pos = pos
|
||||||
await get_tree().create_timer(randf_range(0.25, 0.55)).timeout
|
await get_tree().create_timer(randf_range(0.25, 0.35)).timeout
|
||||||
var tween = create_tween().set_trans(Tween.TRANS_BACK)
|
var tween = create_tween().set_trans(Tween.TRANS_BACK)
|
||||||
tween.tween_property(self, "position:y", start_pos.y, tween_speed)
|
tween.tween_property(self, "position:y", start_pos.y, tween_speed)
|
||||||
await tween.finished
|
await tween.finished
|
||||||
$MoveTimer.wait_time = enemy_move_aggression
|
move_timer.wait_time = enemy_move_aggression
|
||||||
$MoveTimer.start()
|
move_timer.start()
|
||||||
$ShootTimer.wait_time = enemy_shoot_aggression
|
$ShootTimer.wait_time = enemy_shoot_aggression
|
||||||
$ShootTimer.start()
|
$ShootTimer.start()
|
||||||
|
|
||||||
|
|
@ -53,19 +53,19 @@ func _on_direction_timer_timeout():
|
||||||
var move_direction = int(randf_range(0,3))
|
var move_direction = int(randf_range(0,3))
|
||||||
match move_direction:
|
match move_direction:
|
||||||
0:
|
0:
|
||||||
$CRT.frame = 0
|
crt.frame = 0
|
||||||
direction = Vector2(0,1)
|
direction = Vector2(0,1)
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
vulnerable = true
|
vulnerable = true
|
||||||
#$DirectionTimer.start()
|
#$DirectionTimer.start()
|
||||||
1:
|
1:
|
||||||
$CRT.frame = 1
|
crt.frame = 1
|
||||||
direction = Vector2(1,0)
|
direction = Vector2(1,0)
|
||||||
can_shoot = false
|
can_shoot = false
|
||||||
vulnerable = false
|
vulnerable = false
|
||||||
#$DirectionTimer.start()
|
#$DirectionTimer.start()
|
||||||
2:
|
2:
|
||||||
$CRT.frame = 2
|
crt.frame = 2
|
||||||
direction = Vector2(-1,0)
|
direction = Vector2(-1,0)
|
||||||
can_shoot = false
|
can_shoot = false
|
||||||
vulnerable = false
|
vulnerable = false
|
||||||
|
|
@ -120,12 +120,16 @@ func block():
|
||||||
#if blocking: return
|
#if blocking: return
|
||||||
#blocking = true
|
#blocking = true
|
||||||
stunned = true
|
stunned = true
|
||||||
|
print("CRT Stunned!")
|
||||||
|
$DirectionTimer.stop()
|
||||||
shader_active = true
|
shader_active = true
|
||||||
crt.material.set_shader_parameter("toggle", 1.0)
|
crt.material.set_shader_parameter("toggle", 1.0)
|
||||||
await get_tree().create_timer(5).timeout
|
await get_tree().create_timer(2).timeout
|
||||||
crt.material.set_shader_parameter("toggle", 0.0)
|
crt.material.set_shader_parameter("toggle", 0.0)
|
||||||
shader_active = false
|
shader_active = false
|
||||||
stunned = false
|
stunned = false
|
||||||
|
$DirectionTimer.stop()
|
||||||
|
print("CRT Not Stunned!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ void fragment() {
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gas3w"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gas3w"]
|
||||||
|
resource_local_to_scene = true
|
||||||
shader = SubResource("Shader_emiuq")
|
shader = SubResource("Shader_emiuq")
|
||||||
shader_parameter/toggle = 0.0
|
shader_parameter/toggle = 0.0
|
||||||
|
|
||||||
|
|
@ -237,6 +238,7 @@ scale = Vector2(0.99999857, 0.99999857)
|
||||||
shape = SubResource("RectangleShape2D_4gyqm")
|
shape = SubResource("RectangleShape2D_4gyqm")
|
||||||
|
|
||||||
[node name="MoveTimer" type="Timer" parent="." unique_id=1928257014]
|
[node name="MoveTimer" type="Timer" parent="." unique_id=1928257014]
|
||||||
|
wait_time = 0.75
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
[node name="ShootTimer" type="Timer" parent="." unique_id=1985644907]
|
[node name="ShootTimer" type="Timer" parent="." unique_id=1985644907]
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,9 @@ size = Vector2(73, 100)
|
||||||
script = ExtResource("1_wf0t2")
|
script = ExtResource("1_wf0t2")
|
||||||
|
|
||||||
[node name="DapperGoose" type="Sprite2D" parent="." unique_id=1690665905]
|
[node name="DapperGoose" type="Sprite2D" parent="." unique_id=1690665905]
|
||||||
z_index = -4
|
|
||||||
texture = ExtResource("1_wo8sg")
|
texture = ExtResource("1_wo8sg")
|
||||||
|
|
||||||
[node name="Bubble" type="Sprite2D" parent="DapperGoose" unique_id=2012258473]
|
[node name="Bubble" type="Sprite2D" parent="DapperGoose" unique_id=2012258473]
|
||||||
z_index = -5
|
|
||||||
position = Vector2(-108, -21)
|
position = Vector2(-108, -21)
|
||||||
texture = ExtResource("3_g7ad0")
|
texture = ExtResource("3_g7ad0")
|
||||||
hframes = 4
|
hframes = 4
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ func _ready():
|
||||||
|
|
||||||
func spawn_enemies():
|
func spawn_enemies():
|
||||||
|
|
||||||
if wave_count == 0: #This is for CHICKENS
|
if wave_count == 1: #This is for CHICKENS
|
||||||
print("Enemy Wave: ", wave_count)
|
print("Enemy Wave: ", wave_count)
|
||||||
enemy = CHICKEN
|
enemy = CHICKEN
|
||||||
for x in range(COLS):
|
for x in range(COLS):
|
||||||
|
|
@ -37,7 +37,7 @@ func spawn_enemies():
|
||||||
await get_tree().process_frame
|
await get_tree().process_frame
|
||||||
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
|
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
|
||||||
|
|
||||||
if wave_count == 1: #This is for CRTs
|
if wave_count == 0: #This is for CRTs
|
||||||
print("Enemy Wave: ", wave_count)
|
print("Enemy Wave: ", wave_count)
|
||||||
enemy = CRT
|
enemy = CRT
|
||||||
var cols_mod = COLS - 1
|
var cols_mod = COLS - 1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue