Made wave adjust to height and fixed boss sounds

This commit is contained in:
Florian 2025-09-19 10:32:55 +02:00
parent 0c0decb12b
commit c89fbae042
5 changed files with 17 additions and 7 deletions

View file

@ -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()

View file

@ -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"]

View file

@ -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"]

View file

@ -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:

View file

@ -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