diff --git a/scenes/game/comet_zap.gd b/scenes/game/comet_zap.gd index 5a29d31..9a854e9 100644 --- a/scenes/game/comet_zap.gd +++ b/scenes/game/comet_zap.gd @@ -36,9 +36,11 @@ var comets_processed = 0.0 var total_comets = 0.0 # ui init +var on_top var hp_label var acc_label var miss_label +var damage_overlay # objects var comet_source = preload("res://scenes/objects/game/comet.tscn") @@ -49,14 +51,17 @@ var pause_menu func _ready() -> void: # ready ui viewport_size = get_viewport_rect().size - hp_label = self.get_node("OnTop").get_node("HUD").get_node("Stack").get_node("Health") - acc_label = self.get_node("OnTop").get_node("HUD").get_node("Stack").get_node("Accuracy") - miss_label = self.get_node("OnTop").get_node("HUD").get_node("Stack").get_node("MissCount") + on_top = self.get_node("OnTop") + + hp_label = on_top.get_node("HUD").get_node("Stack").get_node("Health") + acc_label = on_top.get_node("HUD").get_node("Stack").get_node("Accuracy") + miss_label = on_top.get_node("HUD").get_node("Stack").get_node("MissCount") + damage_overlay = on_top.get_node("Damage") active = true - pause_menu = self.get_node("OnTop").get_node("Pause") - fade = self.get_node("OnTop").get_node("Fade") + pause_menu = on_top.get_node("Pause") + fade = on_top.get_node("Fade") fade.visible = true var tween := create_tween() tween.parallel().tween_property(fade, "modulate:a", 0, 1).set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT) @@ -131,11 +136,19 @@ func miss(comet): calculate_accuracy() comets.erase(comet) comet.queue_free() + + var tween1 := create_tween() + tween1.parallel().tween_property(damage_overlay, "modulate:a", .5, .125).set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT) + + await tween1.finished + + var tween2 := create_tween() + tween2.parallel().tween_property(damage_overlay, "modulate:a", 0, .125).set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT) func game_over(): active = false $BackgroundMusic.stop() - self.get_node("OnTop").get_node("GameOver").visible = true + on_top.get_node("GameOver").visible = true $Lose.play() await $Lose.finished $Sad.play() @@ -147,6 +160,7 @@ func _input(event): if len(comets) > 0: var comet = comets[0] if event.as_text() == comet.get_node("Sprite").get_node("Label").text: + comets.erase(comet) comets_processed += 1 hit_count += 1 calculate_accuracy() @@ -155,7 +169,6 @@ func _input(event): laser.default_color = Color.RED laser.points = PackedVector2Array([$Tux.position,comet.position]) add_child(laser) - comets.erase(comet) comet.get_node("Sprite").play("cometbreak") $CometBreakSound.play() await comet.get_node("Sprite").animation_finished diff --git a/scenes/game/comet_zap.tscn b/scenes/game/comet_zap.tscn index 0d29505..4498697 100644 --- a/scenes/game/comet_zap.tscn +++ b/scenes/game/comet_zap.tscn @@ -198,6 +198,16 @@ offset_bottom = 1185.0 texture = ExtResource("12_rlh21") stretch_mode = 4 +[node name="Damage" type="ColorRect" parent="OnTop" unique_id=1042791592] +modulate = Color(1, 1, 1, 0) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(0.7764706, 0, 0, 1) + [node name="Fade" type="ColorRect" parent="OnTop" unique_id=1872046404] visible = false anchors_preset = 15 diff --git a/scenes/objects/game/comet.tscn b/scenes/objects/game/comet.tscn index ed8e054..3ace070 100644 --- a/scenes/objects/game/comet.tscn +++ b/scenes/objects/game/comet.tscn @@ -21,7 +21,7 @@ animations = [{ }], "loop": true, "name": &"comet", -"speed": 5.0 +"speed": 10.0 }, { "frames": [{ "duration": 1.0, @@ -32,7 +32,7 @@ animations = [{ }], "loop": false, "name": &"cometbreak", -"speed": 10.0 +"speed": 20.0 }] [sub_resource type="LabelSettings" id="LabelSettings_3d2ho"] @@ -47,6 +47,7 @@ script = ExtResource("1_0gpin") position = Vector2(0, -1) sprite_frames = SubResource("SpriteFrames_ggplc") animation = &"comet" +autoplay = "comet" [node name="Label" type="Label" parent="Sprite" unique_id=494320078] anchors_preset = 15