From c89fbae04224dc8a1917690227fda9a0c9ce366a Mon Sep 17 00:00:00 2001 From: Florian Date: Fri, 19 Sep 2025 10:32:55 +0200 Subject: [PATCH] Made wave adjust to height and fixed boss sounds --- enemies/boss/boss.gd | 9 ++++++--- enemies/boss/boss.tscn | 5 ++++- main.tscn | 2 ++ utils/enemy_hurtbox.gd | 2 +- water/water.gd | 6 ++++-- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/enemies/boss/boss.gd b/enemies/boss/boss.gd index 624401b..bb927af 100644 --- a/enemies/boss/boss.gd +++ b/enemies/boss/boss.gd @@ -4,6 +4,7 @@ extends CharacterBody2D var moves = ["slam", "wave", "water_rise", "splash"] @onready var next_move = choose_next_move() @export var big_blob : PackedScene +@onready var water : Water = get_tree().get_root().get_node("main/Water") var risen = 0 var attack_ready = true @@ -79,12 +80,13 @@ func destroy_below(): func wave(): var angle = atan2(player.position.y, player.position.x) var dir = randi_range(0, 1) * 2 - 1 - get_tree().get_root().get_node("main/Water").create_tsunami(angle - dir*TAU/30, dir) + var speed = 3000/water.radius_base + water.create_tsunami(angle - speed * dir*TAU/30, dir, speed) await get_tree().create_timer(4).timeout attack_ready = true func water_rise(): - get_tree().get_root().get_node("main/Water").rise_water() + water.rise_water() await get_tree().create_timer(5).timeout attack_ready = true @@ -105,6 +107,7 @@ func die(): await $AudioStreamPlayer2D.finished queue_free() -func _on_enemy_hurtbox_damage_taken() -> void: +func _on_enemy_hurtbox_damage_taken(_damage, _dir) -> void: if dead: return + print("audio") $AudioStreamPlayer2D.play() diff --git a/enemies/boss/boss.tscn b/enemies/boss/boss.tscn index 746a261..5a3e842 100644 --- a/enemies/boss/boss.tscn +++ b/enemies/boss/boss.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=8 format=3 uid="uid://cpe4s6vsn0ujd"] +[gd_scene load_steps=9 format=3 uid="uid://cpe4s6vsn0ujd"] [ext_resource type="Texture2D" uid="uid://d3b5hmhjw2jyc" path="res://enemies/ghost/ghost animation/Ghost 1.png" id="1_6xxrv"] [ext_resource type="Script" uid="uid://uv672p8f4n6k" path="res://enemies/boss/boss.gd" id="1_skx2t"] [ext_resource type="PackedScene" uid="uid://bg2hgia0jqnqf" path="res://enemies/boss/blob_big.tscn" id="2_o1i15"] [ext_resource type="PackedScene" uid="uid://mtfsdd4cdf3a" path="res://utils/enemy_hurtbox.tscn" id="2_skx2t"] [ext_resource type="PackedScene" uid="uid://chs0u61f45nau" path="res://utils/earth_aligner.tscn" id="4_lnbgr"] +[ext_resource type="AudioStream" uid="uid://co07360hqn6fk" path="res://sounds/686321__cjspellsfish__punch-land-soft.wav" id="6_opohk"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_lnbgr"] @@ -60,6 +61,8 @@ position = Vector2(0, 200) shape = SubResource("RectangleShape2D_lnbgr") [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("6_opohk") +volume_db = 15.0 [connection signal="damage_taken" from="EnemyHurtbox" to="." method="_on_enemy_hurtbox_damage_taken"] [connection signal="died" from="EnemyHurtbox" to="." method="die"] diff --git a/main.tscn b/main.tscn index 24f9884..37da4d0 100644 --- a/main.tscn +++ b/main.tscn @@ -79,6 +79,8 @@ texture = ExtResource("3_kek77") script = ExtResource("10_efxa6") boss = ExtResource("11_efxa6") +[node name="Boss" parent="." instance=ExtResource("11_efxa6")] + [connection signal="active_item_changed" from="Player" to="UIOverlay/ItemUI" method="_on_player_active_item_changed"] [connection signal="health_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_health_changed"] [connection signal="max_hp_changed" from="Player" to="UIOverlay/Healthbar" method="_on_player_max_hp_changed"] diff --git a/utils/enemy_hurtbox.gd b/utils/enemy_hurtbox.gd index 33bd35f..f7f2a6f 100644 --- a/utils/enemy_hurtbox.gd +++ b/utils/enemy_hurtbox.gd @@ -7,7 +7,7 @@ extends Area2D @export var flashColor : Color = Color(1.5, 1.5, 1.5) var inv_time = 0; -signal damage_taken +signal damage_taken(damage, dir) signal died func _process(delta: float) -> void: diff --git a/water/water.gd b/water/water.gd index 444bb69..b6bc5d6 100644 --- a/water/water.gd +++ b/water/water.gd @@ -4,6 +4,7 @@ signal water_reached_max_height @onready var player : Player = %Player @export var animation_height : float = 0 @export var radius_base : float = 0 +var tsunami_speed : float = 1 var radius : float: set(new_radius): @@ -105,11 +106,12 @@ func _process(_delta: float) -> void: else: radius_base = lerpf(rise_from, rise_to, (time - start_unix_time) / rise_time) - tsunami_angle = tsunami_base_angle + animation_angle * direction; + tsunami_angle = tsunami_base_angle + animation_angle * direction * tsunami_speed; radius = radius_base + animation_height # direction is -1 for left, +1 for right -func create_tsunami(angle : float, dir : int): +func create_tsunami(angle : float, dir : int, speed : float): + tsunami_speed = speed if direction not in [-1, 1]: push_error("direction must be in {-1, 1}") return