diff --git a/src/Boss/SlimeBoss/Music/Evillaughwithoutslime.wav b/src/Boss/SlimeBoss/Music/Evillaughwithoutslime.wav new file mode 100644 index 0000000..c64c9fe Binary files /dev/null and b/src/Boss/SlimeBoss/Music/Evillaughwithoutslime.wav differ diff --git a/src/Boss/SlimeBoss/Music/Evillaughwithoutslime.wav.import b/src/Boss/SlimeBoss/Music/Evillaughwithoutslime.wav.import new file mode 100644 index 0000000..c964bcc --- /dev/null +++ b/src/Boss/SlimeBoss/Music/Evillaughwithoutslime.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/Evillaughwithoutslime.wav-2465178cb0e3049fa3a46f0df9ab50c2.sample" + +[deps] + +source_file="res://Boss/SlimeBoss/Music/Evillaughwithoutslime.wav" +dest_files=[ "res://.import/Evillaughwithoutslime.wav-2465178cb0e3049fa3a46f0df9ab50c2.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/Boss/SlimeBoss/Music/Hurt.wav b/src/Boss/SlimeBoss/Music/Hurt.wav new file mode 100644 index 0000000..80bd3d5 Binary files /dev/null and b/src/Boss/SlimeBoss/Music/Hurt.wav differ diff --git a/src/Boss/SlimeBoss/Music/Hurt.wav.import b/src/Boss/SlimeBoss/Music/Hurt.wav.import new file mode 100644 index 0000000..d3f3441 --- /dev/null +++ b/src/Boss/SlimeBoss/Music/Hurt.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/Hurt.wav-a6829ddecff2027e68a7c8da8045d01d.sample" + +[deps] + +source_file="res://Boss/SlimeBoss/Music/Hurt.wav" +dest_files=[ "res://.import/Hurt.wav-a6829ddecff2027e68a7c8da8045d01d.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/Boss/SlimeBoss/Music/Hurt2.wav b/src/Boss/SlimeBoss/Music/Hurt2.wav new file mode 100644 index 0000000..0f14ad4 Binary files /dev/null and b/src/Boss/SlimeBoss/Music/Hurt2.wav differ diff --git a/src/Boss/SlimeBoss/Music/Hurt2.wav.import b/src/Boss/SlimeBoss/Music/Hurt2.wav.import new file mode 100644 index 0000000..e3021a2 --- /dev/null +++ b/src/Boss/SlimeBoss/Music/Hurt2.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/Hurt2.wav-e53e7893ad773f4c41d9905d1d7d5547.sample" + +[deps] + +source_file="res://Boss/SlimeBoss/Music/Hurt2.wav" +dest_files=[ "res://.import/Hurt2.wav-e53e7893ad773f4c41d9905d1d7d5547.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/Boss/SlimeBoss/Music/SchleimSplit.wav b/src/Boss/SlimeBoss/Music/SchleimSplit.wav new file mode 100644 index 0000000..8fe4184 Binary files /dev/null and b/src/Boss/SlimeBoss/Music/SchleimSplit.wav differ diff --git a/src/Boss/SlimeBoss/Music/SchleimSplit.wav.import b/src/Boss/SlimeBoss/Music/SchleimSplit.wav.import new file mode 100644 index 0000000..0496ae2 --- /dev/null +++ b/src/Boss/SlimeBoss/Music/SchleimSplit.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/SchleimSplit.wav-be06d1d82dcd0736628fc69a484d4027.sample" + +[deps] + +source_file="res://Boss/SlimeBoss/Music/SchleimSplit.wav" +dest_files=[ "res://.import/SchleimSplit.wav-be06d1d82dcd0736628fc69a484d4027.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/Boss/SlimeBoss/Music/SchleimSplit3.wav b/src/Boss/SlimeBoss/Music/SchleimSplit3.wav new file mode 100644 index 0000000..694d8c3 Binary files /dev/null and b/src/Boss/SlimeBoss/Music/SchleimSplit3.wav differ diff --git a/src/Boss/SlimeBoss/Music/SchleimSplit3.wav.import b/src/Boss/SlimeBoss/Music/SchleimSplit3.wav.import new file mode 100644 index 0000000..71f9887 --- /dev/null +++ b/src/Boss/SlimeBoss/Music/SchleimSplit3.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/SchleimSplit3.wav-46eba16174f46af2c746acf029a39ace.sample" + +[deps] + +source_file="res://Boss/SlimeBoss/Music/SchleimSplit3.wav" +dest_files=[ "res://.import/SchleimSplit3.wav-46eba16174f46af2c746acf029a39ace.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/Boss/SlimeBoss/Music/slimy.wav b/src/Boss/SlimeBoss/Music/slimy.wav new file mode 100644 index 0000000..713bf7b Binary files /dev/null and b/src/Boss/SlimeBoss/Music/slimy.wav differ diff --git a/src/Boss/SlimeBoss/Music/slimy.wav.import b/src/Boss/SlimeBoss/Music/slimy.wav.import new file mode 100644 index 0000000..93a4b1c --- /dev/null +++ b/src/Boss/SlimeBoss/Music/slimy.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/slimy.wav-2f26e413d39d2e92be768830f3f5770a.sample" + +[deps] + +source_file="res://Boss/SlimeBoss/Music/slimy.wav" +dest_files=[ "res://.import/slimy.wav-2f26e413d39d2e92be768830f3f5770a.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/Boss/SlimeBoss/States/BossState.gd b/src/Boss/SlimeBoss/States/BossState.gd index 4486d0d..57f889a 100644 --- a/src/Boss/SlimeBoss/States/BossState.gd +++ b/src/Boss/SlimeBoss/States/BossState.gd @@ -4,7 +4,6 @@ onready var animation_player = owner.get_node("AnimationPlayer") func play_directional_animation(name, vec): var anim_name = name + get_nearest_diretion(vec) - if animation_player.current_animation != anim_name: animation_player.play(anim_name) @@ -38,5 +37,3 @@ func get_nearest_diretion(vec): return nearest_direction - - diff --git a/src/Boss/SlimeBoss/States/Die.gd b/src/Boss/SlimeBoss/States/Die.gd index 697ab47..c536ebe 100644 --- a/src/Boss/SlimeBoss/States/Die.gd +++ b/src/Boss/SlimeBoss/States/Die.gd @@ -1,7 +1,9 @@ extends "res://Boss/SlimeBoss/States/BossState.gd" func enter(): + SoundControler.pub_play_effect("res://Player/Sounds/hero_laugh1.ogg",10) animation_player.play("Die") -func _on_animation_finished(anim_name): +func _on_animation_finished(anim_name): emit_signal("finished") + diff --git a/src/Boss/SlimeBoss/States/ReturnToCenter.gd b/src/Boss/SlimeBoss/States/ReturnToCenter.gd index df2e5a4..f4dc0a7 100644 --- a/src/Boss/SlimeBoss/States/ReturnToCenter.gd +++ b/src/Boss/SlimeBoss/States/ReturnToCenter.gd @@ -7,6 +7,8 @@ export(float) var ARRIVE_DISTANCE = 6.0 var velocity = Vector2.ZERO + + func update(delta): velocity = Steering.arrive_to(velocity, owner.global_position, @@ -15,6 +17,7 @@ func update(delta): SLOW_RADIUS, MAX_SPEED) play_directional_animation("Move", velocity) + SoundControler.pub_play_effect("res://Boss/SlimeBoss/Music/slimy.wav",10) owner.move_and_slide(velocity) if owner.global_position.distance_to(owner.start_global_position) < ARRIVE_DISTANCE: emit_signal('finished') diff --git a/src/Boss/SlimeBoss/States/Stomp.gd b/src/Boss/SlimeBoss/States/Stomp.gd index 922878f..59e5c8f 100644 --- a/src/Boss/SlimeBoss/States/Stomp.gd +++ b/src/Boss/SlimeBoss/States/Stomp.gd @@ -6,6 +6,7 @@ onready var stomp_effect = owner.get_node("Effects/StompEffect") func enter(): stomp_hitbox.disabled = false stomp_effect.stomp() + SoundControler.pub_play_effect("res://Boss/SlimeBoss/Music/SchleimSplit.wav",10) func exit(): stomp_hitbox.disabled = true @@ -15,3 +16,4 @@ func update(delta): func _on_StompEffect_animation_finished(): emit_signal("finished") + diff --git a/src/Objects/Slime/Schleim.wav b/src/Objects/Slime/Schleim.wav new file mode 100644 index 0000000..dfab5c1 Binary files /dev/null and b/src/Objects/Slime/Schleim.wav differ diff --git a/src/Objects/Slime/Schleim.wav.import b/src/Objects/Slime/Schleim.wav.import new file mode 100644 index 0000000..e3ca478 --- /dev/null +++ b/src/Objects/Slime/Schleim.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/Schleim.wav-452a296a5f1cec9e04f1397b705aa9c4.sample" + +[deps] + +source_file="res://Objects/Slime/Schleim.wav" +dest_files=[ "res://.import/Schleim.wav-452a296a5f1cec9e04f1397b705aa9c4.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/Objects/Slime/Slime.gd b/src/Objects/Slime/Slime.gd new file mode 100644 index 0000000..325d7be --- /dev/null +++ b/src/Objects/Slime/Slime.gd @@ -0,0 +1,5 @@ +extends Node2D + + +func _on_Hurtbox_area_entered(area): + SoundControler.pub_play_effect("res://Objects/Slime/Schleim.wav",3) diff --git a/src/Objects/Slime/Slime.tscn b/src/Objects/Slime/Slime.tscn index 939f227..01bee0f 100644 --- a/src/Objects/Slime/Slime.tscn +++ b/src/Objects/Slime/Slime.tscn @@ -1,13 +1,15 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://testSprites/slime.png" type="Texture" id=1] [ext_resource path="res://Overlap/HurtHit_Box/Hurtbox.tscn" type="PackedScene" id=2] [ext_resource path="res://Overlap/Kind.tscn" type="PackedScene" id=3] +[ext_resource path="res://Objects/Slime/Slime.gd" type="Script" id=4] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 16, 16 ) [node name="Slime" type="Node2D"] +script = ExtResource( 4 ) [node name="Kind" parent="." instance=ExtResource( 3 )] general = 2 diff --git a/src/Overlap/StateMachine/SequenceState.gd b/src/Overlap/StateMachine/SequenceState.gd index 37cb924..8992761 100644 --- a/src/Overlap/StateMachine/SequenceState.gd +++ b/src/Overlap/StateMachine/SequenceState.gd @@ -4,6 +4,7 @@ var state_active = null func _ready(): + SoundControler.pub_play_effect("res://Boss/SlimeBoss/Music/SchleimSplit3.wav",10) for child in get_children(): child.connect('finished', self, '_on_state_active_finished') @@ -38,3 +39,6 @@ func go_to_next_state_in_sequence(): state_active = get_child(new_state_index) state_active.enter() + + + diff --git a/src/Player/Player.gd b/src/Player/Player.gd index 3c0176d..578345a 100644 --- a/src/Player/Player.gd +++ b/src/Player/Player.gd @@ -6,6 +6,9 @@ This is an example player controller script created by Paul var velocity := Vector2.ZERO var rollvector := Vector2(-1,0) +#one sound will be chosen at random +export var SoundLibary :PoolStringArray=[] + # This is how you export variables with ranges to the editor window export(bool) var debug := false export(int, 0, 500) var ROLL_SPEED := 150 @@ -172,9 +175,12 @@ func _on_Hurtbox_area_entered(area): if area.damage > 0: damage_per_second += area.damage + SoundControler.pub_play_effect("res://Player/Sounds/Hurt.wav",1) pass else: heal_per_second += abs(area.damage) + var sound = SoundLibary[rand_range(0,SoundLibary.size())] + SoundControler.pub_play_effect(sound,1) pass func _on_Hurtbox_area_exited(area): @@ -187,6 +193,7 @@ func _on_Hurtbox_area_exited(area): func _on_Stats_no_health(): + SoundControler.pub_play_effect("res://Boss/SlimeBoss/Music/Evillaughwithoutslime.wav",1) queue_free() get_tree().get_root().get_node("World").hero_has_died() #get_tree().change_scene("res://Menus/TitleScreen/TitleScreen.tscn") diff --git a/src/Player/Player.tscn b/src/Player/Player.tscn index 33e4678..85f8fd3 100644 --- a/src/Player/Player.tscn +++ b/src/Player/Player.tscn @@ -632,6 +632,7 @@ font_data = ExtResource( 6 ) scale = Vector2( 2, 2 ) collision_mask = 14 script = ExtResource( 1 ) +SoundLibary = PoolStringArray( "res://Objects/Heart/Sounds/Heart2.wav", "res://Objects/Heart/Sounds/Heart3.wav", "res://Objects/Heart/Sounds/Heart4.wav", "res://Objects/Heart/Sounds/Heart5.wav", "res://Objects/Heart/Sounds/Heart.wav" ) ROLL_SPEED = 120 FRICTION = 270 diff --git a/src/Player/Sounds/Hurt.wav b/src/Player/Sounds/Hurt.wav new file mode 100644 index 0000000..80bd3d5 Binary files /dev/null and b/src/Player/Sounds/Hurt.wav differ diff --git a/src/Player/Sounds/Hurt.wav.import b/src/Player/Sounds/Hurt.wav.import new file mode 100644 index 0000000..7d10f29 --- /dev/null +++ b/src/Player/Sounds/Hurt.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/Hurt.wav-7259cfd30bcd9a0eb4363f17c23fd6bd.sample" + +[deps] + +source_file="res://Player/Sounds/Hurt.wav" +dest_files=[ "res://.import/Hurt.wav-7259cfd30bcd9a0eb4363f17c23fd6bd.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/src/World.tscn b/src/World.tscn index 6cfaa31..920c486 100644 --- a/src/World.tscn +++ b/src/World.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=24 format=2] +[gd_scene load_steps=25 format=2] [ext_resource path="res://Player/Player.tscn" type="PackedScene" id=1] [ext_resource path="res://World.gd" type="Script" id=2] @@ -13,6 +13,7 @@ [ext_resource path="res://Debug/BossStateDisplay.gd" type="Script" id=11] [ext_resource path="res://Maps/Tilesets/Edge/tileset_edge.png" type="Texture" id=12] [ext_resource path="res://Boss/Minion.tscn" type="PackedScene" id=13] +[ext_resource path="res://Objects/Slime/Slime.tscn" type="PackedScene" id=14] [ext_resource path="res://Maps/Grid.tscn" type="PackedScene" id=18] [sub_resource type="ConvexPolygonShape2D" id=1] @@ -347,6 +348,21 @@ anchor_right = 1.0 margin_left = -42.0 margin_bottom = 24.0 text = "Win" + +[node name="Slime" parent="." instance=ExtResource( 14 )] +position = Vector2( 136, 160 ) + +[node name="Slime2" parent="." instance=ExtResource( 14 )] +position = Vector2( 136, 128 ) + +[node name="Slime3" parent="." instance=ExtResource( 14 )] +position = Vector2( 136, 96 ) + +[node name="Slime4" parent="." instance=ExtResource( 14 )] +position = Vector2( 136, 64 ) + +[node name="Slime5" parent="." instance=ExtResource( 14 )] +position = Vector2( 136, 32 ) [connection signal="phase_changed" from="YSort/SlimeBoss" to="CanvasLayer/DebugLabel/BossStateDisplay" method="_on_SlimeBoss_phase_changed"] [connection signal="state_changed" from="YSort/SlimeBoss" to="CanvasLayer/DebugLabel/BossStateDisplay" method="_on_SlimeBoss_state_changed"] [connection signal="pressed" from="CanvasLayer/Win" to="." method="_on_Win_pressed"]