Decreased movement and shot delay of enemies based on number of enemies

remaining; increased tween speed of enemy bounce at 25% remaining.
This commit is contained in:
Henry 2025-12-31 13:34:29 +00:00
parent 7a0ea55ff1
commit f1eec30167
8 changed files with 57 additions and 5 deletions

View file

@ -3,9 +3,13 @@ extends Area2D
var bullet_scene = preload("res://enemy_bullet.tscn")
var start_pos = Vector2.ZERO
var speed = 0
var tween_speed: float = 1.4
var exploding = false
var enemy_move_aggression = randf_range(5, 20)
var enemy_shoot_aggression = randf_range(4, 20)
@onready var screensize = get_viewport_rect().size
@ -15,11 +19,11 @@ func start(pos):
start_pos = pos
await get_tree().create_timer(randf_range(0.25, 0.55)).timeout
var tween = create_tween().set_trans(Tween.TRANS_BACK)
tween.tween_property(self, "position:y", start_pos.y, 1.4)
tween.tween_property(self, "position:y", start_pos.y, tween_speed)
await tween.finished
$MoveTimer.wait_time = randf_range(5, 20)
$MoveTimer.wait_time = enemy_move_aggression
$MoveTimer.start()
$ShootTimer.wait_time = randf_range(4, 20)
$ShootTimer.wait_time = enemy_shoot_aggression
$ShootTimer.start()

16
main.gd
View file

@ -40,12 +40,28 @@ func spawn_enemies():
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
func _on_enemy_died():
enemy_count -= 1
print_debug(enemy_count)
if enemy_count == 0:
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
win_game()
if enemy_count == ROWS * COLS / 2:
print_debug("Enemy count is 50%")
update_enemy_aggression(2,10)
if enemy_count == ROWS * COLS / 4:
print_debug("Enemy count is 25%")
update_enemy_aggression(1,1)
func update_enemy_aggression(low,high):
var nodes = get_tree().get_nodes_in_group("enemies")
for node in nodes:
if node is Area2D:
node.enemy_move_aggression = randf_range(low,high)
node.enemy_shoot_aggression = randf_range(low,high)
node.tween_speed = min(low,high) - .75
func _on_enemy_hit(value: int):
Global.score += value

View file

@ -86,6 +86,7 @@ offset_right = 196.0
offset_bottom = 36.0
[node name="Title" type="TextureRect" parent="CanvasLayer"]
self_modulate = Color(0.015236704, 0.015236706, 0.0152367065, 1)
material = SubResource("ShaderMaterial_kek77")
offset_left = 27.0
offset_top = 74.0

View file

@ -37,6 +37,7 @@ func start():
print(shield)
shader_active = false
$Ship.frame = 1
$Ship/Boosters/BoosterBurst.hide()
$Ship/Boosters.hide()
$Ship.show()
position = Vector2(screensize.x / 2, screensize.y)
@ -123,9 +124,11 @@ func _on_damage_taken():
func _on_player_victory() -> void:
print("Victory!")
# get_node("EnemyBullet").monitoring = false #TODO make sure bullets stop monitoring!
set_process(false)
$Ship.frame = 1
await get_tree().create_timer(1).timeout
$Ship/Boosters/BoosterBurst.show()
var tween = create_tween()
tween.tween_property(self, "position:y", 60 * -1, .25).set_ease(tween.EASE_IN)
await tween.finished

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=18 format=3 uid="uid://pyuorpwb7lpe"]
[gd_scene load_steps=20 format=3 uid="uid://pyuorpwb7lpe"]
[ext_resource type="Script" uid="uid://dcrnf4r6c5qaw" path="res://player.gd" id="1_sweqy"]
[ext_resource type="PackedScene" uid="uid://bwxxdrdvo3le0" path="res://bullet.tscn" id="2_1jxqw"]
@ -73,6 +73,16 @@ animations = [{
"speed": 10.0
}]
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_dw050"]
particles_animation = true
particles_anim_h_frames = 2
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_b26j0"]
particle_flag_disable_z = true
gravity = Vector3(0, 98, 0)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_op7ga"]
size = Vector2(14, 14)
@ -93,6 +103,20 @@ sprite_frames = SubResource("SpriteFrames_u1c27")
animation = &"forward"
autoplay = "forward"
[node name="BoosterBurst" type="GPUParticles2D" parent="Ship/Boosters"]
texture_repeat = 2
material = SubResource("CanvasItemMaterial_dw050")
amount = 10
texture = ExtResource("3_1jxqw")
lifetime = 0.75
interp_to_end = 1.0
preprocess = 1.83
speed_scale = 15.69
draw_order = 2
trail_lifetime = 1.8499999999999999
trail_sections = 2
process_material = SubResource("ParticleProcessMaterial_b26j0")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_op7ga")

View file

@ -26,6 +26,7 @@ window/size/viewport_height=320
window/size/window_width_override=720
window/size/window_height_override=960
window/stretch/mode="canvas_items"
window/movie_file="/Users/henryfaber/Downloads/shmup_capture.avi"
[editor]

View file

@ -18,3 +18,7 @@ func display_digits(n):
for i in 8:
get_child(i).texture.region = Rect2(digit_coords[int(s[i])],
Vector2(8, 8))
# var tween = create_tween()
# tween.tween_property(get_node("HBoxContainer/ScoreCounter/Digit0"), "scale", scale + Vector2(.5,.5), .15)
# await get_tree().create_timer(.25).timeout
# tween.tween_property(get_node("HBoxContainer/ScoreCounter/Digit0"), "scale", scale + Vector2(-.5,-.5), .15)

1
ui.gd
View file

@ -13,7 +13,6 @@ func _ready():
func update_score(value):
score_counter.display_digits(value)
func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
shield_bar.max_value = max_value
shield_bar.value = old_value