diff --git a/Globals.gd b/Globals.gd index 2fca6cc..abc0923 100644 --- a/Globals.gd +++ b/Globals.gd @@ -15,7 +15,7 @@ var DebugLabel = null var hex_size = 128 var debug_nav = false -var draw_grid = false +var draw_grid = true # Called when the node enters the scene tree for the first time. func _ready(): diff --git a/audio/effects/hauruck.mp3 b/audio/effects/hauruck.mp3 new file mode 100644 index 0000000..20f168e Binary files /dev/null and b/audio/effects/hauruck.mp3 differ diff --git a/audio/effects/hauruck.mp3.import b/audio/effects/hauruck.mp3.import new file mode 100644 index 0000000..4a4457f --- /dev/null +++ b/audio/effects/hauruck.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/hauruck.mp3-126c13d0c4e966cb60459eb15346cc20.mp3str" + +[deps] + +source_file="res://audio/effects/hauruck.mp3" +dest_files=[ "res://.import/hauruck.mp3-126c13d0c4e966cb60459eb15346cc20.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/effects/hier_ist_er_nicht.mp3 b/audio/effects/hier_ist_er_nicht.mp3 new file mode 100644 index 0000000..ec64b71 Binary files /dev/null and b/audio/effects/hier_ist_er_nicht.mp3 differ diff --git a/audio/effects/hier_ist_er_nicht.mp3.import b/audio/effects/hier_ist_er_nicht.mp3.import new file mode 100644 index 0000000..7798f20 --- /dev/null +++ b/audio/effects/hier_ist_er_nicht.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/hier_ist_er_nicht.mp3-528b3c9fbc5bfbeb9eb03dabb60e9514.mp3str" + +[deps] + +source_file="res://audio/effects/hier_ist_er_nicht.mp3" +dest_files=[ "res://.import/hier_ist_er_nicht.mp3-528b3c9fbc5bfbeb9eb03dabb60e9514.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/effects/hilf_mir_papagei.mp3 b/audio/effects/hilf_mir_papagei.mp3 new file mode 100644 index 0000000..2167ffd Binary files /dev/null and b/audio/effects/hilf_mir_papagei.mp3 differ diff --git a/audio/effects/hilf_mir_papagei.mp3.import b/audio/effects/hilf_mir_papagei.mp3.import new file mode 100644 index 0000000..8b53d25 --- /dev/null +++ b/audio/effects/hilf_mir_papagei.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/hilf_mir_papagei.mp3-9b2d4bcf46843ac4b62fecac52f5880c.mp3str" + +[deps] + +source_file="res://audio/effects/hilf_mir_papagei.mp3" +dest_files=[ "res://.import/hilf_mir_papagei.mp3-9b2d4bcf46843ac4b62fecac52f5880c.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/effects/juhuu_gefunden.mp3 b/audio/effects/juhuu_gefunden.mp3 new file mode 100644 index 0000000..5e99e53 Binary files /dev/null and b/audio/effects/juhuu_gefunden.mp3 differ diff --git a/audio/effects/juhuu_gefunden.mp3.import b/audio/effects/juhuu_gefunden.mp3.import new file mode 100644 index 0000000..21d6beb --- /dev/null +++ b/audio/effects/juhuu_gefunden.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/juhuu_gefunden.mp3-d09b438b198abe9ddf317dab4a829662.mp3str" + +[deps] + +source_file="res://audio/effects/juhuu_gefunden.mp3" +dest_files=[ "res://.import/juhuu_gefunden.mp3-d09b438b198abe9ddf317dab4a829662.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/effects/noch_einen_schatz_finden.mp3 b/audio/effects/noch_einen_schatz_finden.mp3 new file mode 100644 index 0000000..15ed069 Binary files /dev/null and b/audio/effects/noch_einen_schatz_finden.mp3 differ diff --git a/audio/effects/noch_einen_schatz_finden.mp3.import b/audio/effects/noch_einen_schatz_finden.mp3.import new file mode 100644 index 0000000..79275f1 --- /dev/null +++ b/audio/effects/noch_einen_schatz_finden.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/noch_einen_schatz_finden.mp3-7c3e7f84760b8dd45443a9c17487750e.mp3str" + +[deps] + +source_file="res://audio/effects/noch_einen_schatz_finden.mp3" +dest_files=[ "res://.import/noch_einen_schatz_finden.mp3-7c3e7f84760b8dd45443a9c17487750e.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/effects/wheee.mp3 b/audio/effects/wheee.mp3 new file mode 100644 index 0000000..f74a1d3 Binary files /dev/null and b/audio/effects/wheee.mp3 differ diff --git a/audio/effects/wheee.mp3.import b/audio/effects/wheee.mp3.import new file mode 100644 index 0000000..0076897 --- /dev/null +++ b/audio/effects/wheee.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/wheee.mp3-114481cbf7c46661183c3d201e121939.mp3str" + +[deps] + +source_file="res://audio/effects/wheee.mp3" +dest_files=[ "res://.import/wheee.mp3-114481cbf7c46661183c3d201e121939.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/effects/wheee_data/eff/d1f/eff1f0b9.au b/audio/effects/wheee_data/eff/d1f/eff1f0b9.au new file mode 100644 index 0000000..a048ada Binary files /dev/null and b/audio/effects/wheee_data/eff/d1f/eff1f0b9.au differ diff --git a/audio/effects/wheee_data/eff/d1f/eff1f4c8.au b/audio/effects/wheee_data/eff/d1f/eff1f4c8.au new file mode 100644 index 0000000..9935ae5 Binary files /dev/null and b/audio/effects/wheee_data/eff/d1f/eff1f4c8.au differ diff --git a/audio/effects/wheee_data/eff/d1f/eff1f6c0.au b/audio/effects/wheee_data/eff/d1f/eff1f6c0.au new file mode 100644 index 0000000..fd8189c Binary files /dev/null and b/audio/effects/wheee_data/eff/d1f/eff1f6c0.au differ diff --git a/audio/effects/wheee_data/eff/d1f/eff1f6f0.au b/audio/effects/wheee_data/eff/d1f/eff1f6f0.au new file mode 100644 index 0000000..f303933 Binary files /dev/null and b/audio/effects/wheee_data/eff/d1f/eff1f6f0.au differ diff --git a/audio/effects/wheee_data/eff/d1f/eff1fa97.au b/audio/effects/wheee_data/eff/d1f/eff1fa97.au new file mode 100644 index 0000000..fa9d938 Binary files /dev/null and b/audio/effects/wheee_data/eff/d1f/eff1fa97.au differ diff --git a/audio/effects/wheee_data/eff/d1f/eff1fb6d.au b/audio/effects/wheee_data/eff/d1f/eff1fb6d.au new file mode 100644 index 0000000..e8ce421 Binary files /dev/null and b/audio/effects/wheee_data/eff/d1f/eff1fb6d.au differ diff --git a/audio/effects/wheee_data/eff/d1f/eff1fea3.au b/audio/effects/wheee_data/eff/d1f/eff1fea3.au new file mode 100644 index 0000000..ded2834 Binary files /dev/null and b/audio/effects/wheee_data/eff/d1f/eff1fea3.au differ diff --git a/audio/effects/wo_war_nochmal_der_schatz.mp3 b/audio/effects/wo_war_nochmal_der_schatz.mp3 new file mode 100644 index 0000000..fdde33f Binary files /dev/null and b/audio/effects/wo_war_nochmal_der_schatz.mp3 differ diff --git a/audio/effects/wo_war_nochmal_der_schatz.mp3.import b/audio/effects/wo_war_nochmal_der_schatz.mp3.import new file mode 100644 index 0000000..770482e --- /dev/null +++ b/audio/effects/wo_war_nochmal_der_schatz.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/wo_war_nochmal_der_schatz.mp3-33340d1382b5235694d3645775d65afb.mp3str" + +[deps] + +source_file="res://audio/effects/wo_war_nochmal_der_schatz.mp3" +dest_files=[ "res://.import/wo_war_nochmal_der_schatz.mp3-33340d1382b5235694d3645775d65afb.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3 b/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3 new file mode 100644 index 0000000..14f255c Binary files /dev/null and b/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3 differ diff --git a/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3.import b/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3.import new file mode 100644 index 0000000..74e45de --- /dev/null +++ b/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3-addf6a44c60d5349e357a73df59d2f6e.mp3str" + +[deps] + +source_file="res://audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3" +dest_files=[ "res://.import/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.mp3-addf6a44c60d5349e357a73df59d2f6e.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.wav.import b/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.wav.import new file mode 100644 index 0000000..f657797 --- /dev/null +++ b/audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.wav-1db12a8cec1c474148650c1bddcc1e91.sample" + +[deps] + +source_file="res://audio/music/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.wav" +dest_files=[ "res://.import/looperman-l-2353443-0126764-yungkimchi-adventure-synthwave-arp.wav-1db12a8cec1c474148650c1bddcc1e91.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/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3 b/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3 new file mode 100644 index 0000000..9cd6afc Binary files /dev/null and b/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3 differ diff --git a/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3.import b/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3.import new file mode 100644 index 0000000..11e7c42 --- /dev/null +++ b/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/looperman-l-2550509-0151182-goin-on-an-adventure.mp3-98542903c1b049edcff8ef66a7b3e7c4.mp3str" + +[deps] + +source_file="res://audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3" +dest_files=[ "res://.import/looperman-l-2550509-0151182-goin-on-an-adventure.mp3-98542903c1b049edcff8ef66a7b3e7c4.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.wav.import b/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.wav.import new file mode 100644 index 0000000..c5f1603 --- /dev/null +++ b/audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/looperman-l-2550509-0151182-goin-on-an-adventure.wav-164c13a935cb6b863bc6166c4afdf271.sample" + +[deps] + +source_file="res://audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.wav" +dest_files=[ "res://.import/looperman-l-2550509-0151182-goin-on-an-adventure.wav-164c13a935cb6b863bc6166c4afdf271.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/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.mp3 b/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.mp3 new file mode 100644 index 0000000..4b701b0 Binary files /dev/null and b/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.mp3 differ diff --git a/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.mp3.import b/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.mp3.import new file mode 100644 index 0000000..d883db1 --- /dev/null +++ b/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/looperman-l-2648038-0125430-imthewizzy-adventure.mp3-77d12c5a8191e0995c347435d5a08d32.mp3str" + +[deps] + +source_file="res://audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.mp3" +dest_files=[ "res://.import/looperman-l-2648038-0125430-imthewizzy-adventure.mp3-77d12c5a8191e0995c347435d5a08d32.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.wav.import b/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.wav.import new file mode 100644 index 0000000..fbf87af --- /dev/null +++ b/audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/looperman-l-2648038-0125430-imthewizzy-adventure.wav-fbe07fb77581d1abb3ea8845407840ec.sample" + +[deps] + +source_file="res://audio/music/looperman-l-2648038-0125430-imthewizzy-adventure.wav" +dest_files=[ "res://.import/looperman-l-2648038-0125430-imthewizzy-adventure.wav-fbe07fb77581d1abb3ea8845407840ec.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/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3 b/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3 new file mode 100644 index 0000000..921d4b0 Binary files /dev/null and b/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3 differ diff --git a/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3.import b/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3.import new file mode 100644 index 0000000..a562fe4 --- /dev/null +++ b/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3-d7c5438cde05bb54b09e12f548c7cc30.mp3str" + +[deps] + +source_file="res://audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3" +dest_files=[ "res://.import/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.mp3-d7c5438cde05bb54b09e12f548c7cc30.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.wav.import b/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.wav.import new file mode 100644 index 0000000..3ab017a --- /dev/null +++ b/audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.wav-5d849cbafd3780327785fa958a2c3be9.sample" + +[deps] + +source_file="res://audio/music/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.wav" +dest_files=[ "res://.import/looperman-l-2762820-0244446-nick-mira-type-8bit-adventure.wav-5d849cbafd3780327785fa958a2c3be9.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/scenes/Game.tscn b/scenes/Game.tscn index b416739..e396c94 100644 --- a/scenes/Game.tscn +++ b/scenes/Game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=18 format=2] [ext_resource path="res://scenes/World.gd" type="Script" id=1] [ext_resource path="res://scenes/Grid.gd" type="Script" id=2] @@ -11,6 +11,8 @@ [ext_resource path="res://assets/boat.svg" type="Texture" id=9] [ext_resource path="res://assets/shovel.svg" type="Texture" id=10] [ext_resource path="res://assets/Yeah.png" type="Texture" id=11] +[ext_resource path="res://audio/music/looperman-l-2550509-0151182-goin-on-an-adventure.mp3" type="AudioStream" id=12] +[ext_resource path="res://scenes/SoundEffectsPlayer.gd" type="Script" id=13] [sub_resource type="DynamicFont" id=1] size = 27 @@ -114,6 +116,7 @@ text = "Grass" script = ExtResource( 1 ) [node name="Grid" type="Node2D" parent="World"] +visible = false script = ExtResource( 2 ) [node name="Islands" type="Node2D" parent="World"] @@ -324,6 +327,7 @@ margin_top = -20.0 margin_right = 20.0 margin_bottom = 20.0 rect_scale = Vector2( 0.5, 0.5 ) +mouse_filter = 1 __meta__ = { "_edit_use_anchors_": false } @@ -345,15 +349,13 @@ __meta__ = { [node name="DigSites" type="Node2D" parent="World"] -[node name="PlayerChar" type="KinematicBody2D" parent="World"] +[node name="PlayerChar" type="Node2D" parent="World"] script = ExtResource( 5 ) [node name="Pirate" type="Sprite" parent="World/PlayerChar"] scale = Vector2( 0.45498, 0.45498 ) texture = ExtResource( 3 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="World/PlayerChar"] - [node name="Shovel" type="Sprite" parent="World/PlayerChar"] visible = false scale = Vector2( 0.455, 0.455 ) @@ -385,12 +387,26 @@ render_target_update_mode = 1 [node name="Camera2D" type="Camera2D" parent="IslandMapRenderer"] +[node name="MusicPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 12 ) +volume_db = -16.124 +autoplay = true + +[node name="SoundEffectsPlayer" type="AudioStreamPlayer" parent="."] +script = ExtResource( 13 ) + [connection signal="value_changed" from="Editor/UI/Editor/IslandIndex" to="Editor" method="_on_IslandIndex_value_changed"] [connection signal="pressed" from="Editor/UI/Editor/ClearWorldButton" to="Editor" method="_on_ClearWorldButton_pressed"] [connection signal="pressed" from="Editor/UI/Editor/LoadWorldButton" to="Editor" method="_on_LoadWorldButton_pressed"] [connection signal="pressed" from="Editor/UI/Editor/SaveWorldButton" to="Editor" method="_on_SaveWorldButton_pressed"] +[connection signal="bird_flight_start" from="World" to="SoundEffectsPlayer" method="_on_World_bird_flight_start"] +[connection signal="map_opened" from="World" to="SoundEffectsPlayer" method="_on_World_map_opened"] +[connection signal="treasure_found" from="World" to="SoundEffectsPlayer" method="_on_World_treasure_found"] +[connection signal="world_generation_triggered" from="World" to="SoundEffectsPlayer" method="_on_World_world_generation_triggered"] +[connection signal="wrong_digsite" from="World" to="SoundEffectsPlayer" method="_on_World_wrong_digsite"] [connection signal="pressed" from="World/UI/TopContainer/GenerateButton" to="World" method="_on_generate_button_pressed"] [connection signal="toggled" from="World/UI/TopContainer/EditIslandButton" to="Editor" method="_on_EditIslandButton_toggled"] +[connection signal="visibility_changed" from="World/UI/IslandMap" to="World" method="_on_IslandMap_visibility_changed"] [connection signal="pressed" from="World/UI/VBoxContainer/MapButton" to="World" method="_on_MapButton_pressed"] [connection signal="pressed" from="World/UI/VBoxContainer/BirdyButton" to="World" method="_on_BirdyButton_pressed"] [connection signal="pressed" from="World/UI/VBoxContainer/DigButton" to="World" method="_on_DigButton_pressed"] diff --git a/scenes/Island.gd b/scenes/Island.gd index fd2f372..086433a 100644 --- a/scenes/Island.gd +++ b/scenes/Island.gd @@ -5,6 +5,7 @@ var offset_world = Vector2.ZERO var center_coord = Vector2.ZERO var center_world_coord = Vector2.ZERO var rect_local = Rect2() +var rect_world = Rect2() var radius_world = 0.0 var is_active = false var landing_site_local_coord = null @@ -31,6 +32,8 @@ func set_tile(coord: Vector2, value: String): func set_offset_world(value: Vector2): offset_world = value + rect_world.position = rect_local.position + value + rect_world.size = rect_local.size func clear_island(): @@ -171,7 +174,6 @@ func _draw(): draw_set_transform (treasure_local_coords + offset_world, 0, Vector2.ONE) draw_polygon(HexTileDrawer.HexPoints, HexTileDrawer.create_color_array("#922")) - draw_set_transform(transform.origin + offset_world, transform.get_rotation(), transform.get_scale()) + draw_set_transform(transform.origin, transform.get_rotation(), transform.get_scale()) - if Globals.debug_nav and is_active: - draw_rect(rect_local, Color.red, false) + draw_rect(rect_world, Color.red, false) diff --git a/scenes/SoundEffectsPlayer.gd b/scenes/SoundEffectsPlayer.gd new file mode 100644 index 0000000..173bc20 --- /dev/null +++ b/scenes/SoundEffectsPlayer.gd @@ -0,0 +1,52 @@ +extends AudioStreamPlayer + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +var hauruck = preload("res://audio/effects/hauruck.mp3") +var hilf_mir_papagei = preload("res://audio/effects/hilf_mir_papagei.mp3") +var hier_ist_er_nicht = preload("res://audio/effects/hier_ist_er_nicht.mp3") +var juhuu_gefunden = preload("res://audio/effects/juhuu_gefunden.mp3") +var noch_einen_schatz_finden = preload("res://audio/effects/noch_einen_schatz_finden.mp3") +var wheee = preload("res://audio/effects/wheee.mp3") +var wo_war_nochmal_der_schatz = preload("res://audio/effects/wo_war_nochmal_der_schatz.mp3") + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + hauruck.loop = false + hilf_mir_papagei.loop = false + hier_ist_er_nicht.loop = false + juhuu_gefunden.loop = false + wheee.loop = false + wo_war_nochmal_der_schatz.loop = false + noch_einen_schatz_finden.loop = false + + +func _on_World_treasure_found(): + stream = juhuu_gefunden + play() + + +func _on_World_map_opened(): + stream = wo_war_nochmal_der_schatz + play() + + +func _on_World_bird_flight_start(): + stream = hilf_mir_papagei + play() + + +func _on_World_wrong_digsite(): + stream = hier_ist_er_nicht + play() + + +func _on_World_world_generation_triggered(): + stream = noch_einen_schatz_finden + play() diff --git a/scenes/World.gd b/scenes/World.gd index f6b32a4..6fe4b87 100644 --- a/scenes/World.gd +++ b/scenes/World.gd @@ -22,6 +22,10 @@ onready var FPSValueLabel = get_node("UI/TopContainer/FPSValue") onready var IslandMap = get_node("UI/IslandMap") onready var IslandMapRenderer = get_node("../IslandMapRenderer") +onready var MapButton = get_node("UI/VBoxContainer/MapButton") +onready var BirdyButton = get_node("UI/VBoxContainer/BirdyButton") +onready var DigButton = get_node("UI/VBoxContainer/DigButton") + onready var BirdyTimer = get_node("Birdy/Timer") var Island = preload("Island.gd") @@ -46,6 +50,7 @@ var player_path_plan_end = null var hex_line_path = [] var treasure_island = null var treasure_map_rendered = false +var bird_flying = false var birdy_spring = null var birdy_spring_x = Vector2.ONE @@ -53,7 +58,13 @@ var birdy_spring_v = Vector2.ZERO var birdy_spring_xt = Vector2.ONE var birdy_duration = 4.0 +signal world_generation_triggered +signal wrong_digsite signal treasure_found +signal bird_flight_start +signal bird_flight_end +signal map_opened +signal map_closed # # Godot Functions @@ -71,6 +82,11 @@ func _ready(): PlayerChar.connect("dig_stopped", self, "on_dig_stopped") self.connect("treasure_found", self, "on_treasure_found") + self.connect("bird_flight_start", self, "on_bird_flight_started") + self.connect("bird_flight_end", self, "on_bird_flight_ended") + + self.connect("map_opened", self, "on_map_opened") + self.connect("map_closed", self, "on_map_closed") func _process(delta): if is_editor_active(): @@ -99,6 +115,15 @@ func _process(delta): if BirdyTimer.time_left == 0: birdy_spring_xt = Vector2.ONE + if birdy_spring_x.x > 1.2: + if bird_flying == false: + bird_flying = true + emit_signal("bird_flight_start") + elif birdy_spring_x.x < 1.1: + if bird_flying == true: + bird_flying = false + emit_signal("bird_flight_end") + func draw_hex_path (path: Array, color: Color): var path_len = len(path) @@ -159,7 +184,7 @@ func get_tile_type(world_coord: Vector2): func add_island_at(file_name, offset_world: Vector2): var island = Island.new() island.load_island(file_name) - island.offset_world = offset_world + island.set_offset_world(offset_world) Islands.add_child(island) @@ -268,7 +293,7 @@ func generate(): island.load_island(file_name) var rand_coord = Vector2(rng.randi_range(-radius, radius), rng.randi_range(-radius, radius)) - island.offset_world = Globals.WorldToHexCenter(rand_coord) + island.set_offset_world(Globals.WorldToHexCenter(rand_coord)) var location_valid = check_island_location_valid(island) var overlap_retry_num = 0 @@ -279,7 +304,7 @@ func generate(): overlap_retry_num = overlap_retry_num + 1 rand_coord = Vector2(rng.randi_range(-radius, radius), rng.randi_range(-radius, radius)) - island.offset_world = Globals.WorldToHexCenter(rand_coord) + island.set_offset_world(Globals.WorldToHexCenter(rand_coord)) location_valid = check_island_location_valid(island) if !location_valid: @@ -387,6 +412,7 @@ func on_dig_stopped(): on_treasure_found() dig_site.texture = DigSiteTreasureSprite else: + emit_signal("wrong_digsite") dig_site.texture = DigSiteSprite DigSites.add_child(dig_site) @@ -396,6 +422,28 @@ func on_treasure_found(): SuccessMessage.visible = true +func on_map_opened(): + BirdyButton.disabled = true + DigButton.disabled = true + + +func on_map_closed(): + BirdyButton.disabled = false + DigButton.disabled = false + + +func on_bird_flight_started(): + print ("flight started") + DigButton.disabled = true + MapButton.disabled = true + + +func on_bird_flight_ended(): + print ("flight ended") + DigButton.disabled = false + MapButton.disabled = false + + func check_player_near_anchor(): if current_island == null: return false @@ -500,6 +548,7 @@ func update_player_navigation_target(target_world: Vector2): # Input & Events # func _on_generate_button_pressed(): + emit_signal("world_generation_triggered") generate() @@ -507,6 +556,9 @@ func handle_game_event(event): if Editor and Editor.is_active(): return false + if bird_flying: + return false + if event is InputEventMouseButton: # Move main character if event.pressed and event.button_index == BUTTON_LEFT: @@ -580,3 +632,10 @@ func _on_DigButton_pressed(): print ("dig pressed") if PlayerChar.state == PlayerChar.State.Walking: PlayerChar.on_dig_start() + + +func _on_IslandMap_visibility_changed(): + if IslandMap.visible: + emit_signal("map_opened") + else: + emit_signal("map_closed") diff --git a/scenes/pirate.gd b/scenes/pirate.gd index 4c6c2e2..d1a7fae 100644 --- a/scenes/pirate.gd +++ b/scenes/pirate.gd @@ -1,4 +1,4 @@ -extends KinematicBody2D +extends Node2D export (int) var speed = 200 @@ -36,10 +36,17 @@ func get_input(): velocity = velocity.normalized() * speed -func _physics_process(_delta): - velocity = position.direction_to(target) * speed - if position.distance_to(target) > 5: - velocity = move_and_slide(velocity) +func _physics_process(delta): + var r_to_target = target - position + var dist = r_to_target.length() + + if delta > 0.0001 and dist < speed * delta: + position = target + velocity = Vector2.ZERO + else: + velocity = r_to_target.normalized() * speed + + position = position + velocity * delta var tile = Globals.WorldToHex(position) if tile != cur_tile: