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:
parent
7a0ea55ff1
commit
f1eec30167
8 changed files with 57 additions and 5 deletions
10
enemy.gd
10
enemy.gd
|
|
@ -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
16
main.gd
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
26
player.tscn
26
player.tscn
|
|
@ -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")
|
||||
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
||||
|
|
|
|||
|
|
@ -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
1
ui.gd
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue