diff --git a/audio/sounds/msx_come_here.ogg b/audio/sounds/msx_come_here.ogg new file mode 100644 index 0000000..cc67b80 Binary files /dev/null and b/audio/sounds/msx_come_here.ogg differ diff --git a/audio/sounds/msx_come_here.ogg.import b/audio/sounds/msx_come_here.ogg.import new file mode 100644 index 0000000..629729e --- /dev/null +++ b/audio/sounds/msx_come_here.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_come_here.ogg-10fac8d8cfd4cbcf7be954fa7cb4bb10.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_come_here.ogg" +dest_files=[ "res://.import/msx_come_here.ogg-10fac8d8cfd4cbcf7be954fa7cb4bb10.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_fuck.ogg b/audio/sounds/msx_fuck.ogg new file mode 100644 index 0000000..181ef9b Binary files /dev/null and b/audio/sounds/msx_fuck.ogg differ diff --git a/audio/sounds/msx_fuck.ogg.import b/audio/sounds/msx_fuck.ogg.import new file mode 100644 index 0000000..0fd793c --- /dev/null +++ b/audio/sounds/msx_fuck.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_fuck.ogg-b937a7a23918372fa013f112150257cc.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_fuck.ogg" +dest_files=[ "res://.import/msx_fuck.ogg-b937a7a23918372fa013f112150257cc.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_fucking_cop.ogg b/audio/sounds/msx_fucking_cop.ogg new file mode 100644 index 0000000..b4b2e75 Binary files /dev/null and b/audio/sounds/msx_fucking_cop.ogg differ diff --git a/audio/sounds/msx_fucking_cop.ogg.import b/audio/sounds/msx_fucking_cop.ogg.import new file mode 100644 index 0000000..3d67423 --- /dev/null +++ b/audio/sounds/msx_fucking_cop.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_fucking_cop.ogg-c49ee106151ffaa154ca9906a47e988e.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_fucking_cop.ogg" +dest_files=[ "res://.import/msx_fucking_cop.ogg-c49ee106151ffaa154ca9906a47e988e.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_goddammit.ogg b/audio/sounds/msx_goddammit.ogg new file mode 100644 index 0000000..455538d Binary files /dev/null and b/audio/sounds/msx_goddammit.ogg differ diff --git a/audio/sounds/msx_goddammit.ogg.import b/audio/sounds/msx_goddammit.ogg.import new file mode 100644 index 0000000..cd09e60 --- /dev/null +++ b/audio/sounds/msx_goddammit.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_goddammit.ogg-c739df3b80e1e6f3d11b4b46346a1e24.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_goddammit.ogg" +dest_files=[ "res://.import/msx_goddammit.ogg-c739df3b80e1e6f3d11b4b46346a1e24.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_help_me_get_outta_here.ogg b/audio/sounds/msx_help_me_get_outta_here.ogg new file mode 100644 index 0000000..0b57cb1 Binary files /dev/null and b/audio/sounds/msx_help_me_get_outta_here.ogg differ diff --git a/audio/sounds/msx_help_me_get_outta_here.ogg.import b/audio/sounds/msx_help_me_get_outta_here.ogg.import new file mode 100644 index 0000000..0a3829a --- /dev/null +++ b/audio/sounds/msx_help_me_get_outta_here.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_help_me_get_outta_here.ogg-270d862b9b5346afeb970c07d6c8a47b.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_help_me_get_outta_here.ogg" +dest_files=[ "res://.import/msx_help_me_get_outta_here.ogg-270d862b9b5346afeb970c07d6c8a47b.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_here_take_this.wav b/audio/sounds/msx_here_take_this.wav new file mode 100644 index 0000000..8129d20 Binary files /dev/null and b/audio/sounds/msx_here_take_this.wav differ diff --git a/audio/sounds/msx_here_take_this.wav.import b/audio/sounds/msx_here_take_this.wav.import new file mode 100644 index 0000000..89ac8a8 --- /dev/null +++ b/audio/sounds/msx_here_take_this.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/msx_here_take_this.wav-44c3d77c989b2c235758f53cf50ab9d1.sample" + +[deps] + +source_file="res://audio/sounds/msx_here_take_this.wav" +dest_files=[ "res://.import/msx_here_take_this.wav-44c3d77c989b2c235758f53cf50ab9d1.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_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/audio/sounds/msx_motherfucker.ogg b/audio/sounds/msx_motherfucker.ogg new file mode 100644 index 0000000..9282a83 Binary files /dev/null and b/audio/sounds/msx_motherfucker.ogg differ diff --git a/audio/sounds/msx_motherfucker.ogg.import b/audio/sounds/msx_motherfucker.ogg.import new file mode 100644 index 0000000..6b08d5d --- /dev/null +++ b/audio/sounds/msx_motherfucker.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_motherfucker.ogg-5f106872c86ed2489eea974b997c9324.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_motherfucker.ogg" +dest_files=[ "res://.import/msx_motherfucker.ogg-5f106872c86ed2489eea974b997c9324.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_shit.ogg b/audio/sounds/msx_shit.ogg new file mode 100644 index 0000000..858e52f Binary files /dev/null and b/audio/sounds/msx_shit.ogg differ diff --git a/audio/sounds/msx_shit.ogg.import b/audio/sounds/msx_shit.ogg.import new file mode 100644 index 0000000..b8f02c3 --- /dev/null +++ b/audio/sounds/msx_shit.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_shit.ogg-3239485c047eb643ccb45ddde6c48e74.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_shit.ogg" +dest_files=[ "res://.import/msx_shit.ogg-3239485c047eb643ccb45ddde6c48e74.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/autoloads/audio.gd b/autoloads/audio.gd index b0181bd..1ca9b47 100644 --- a/autoloads/audio.gd +++ b/autoloads/audio.gd @@ -12,6 +12,7 @@ onready var ac_shard = $ShardSound onready var ac_pause_music = $PauseMusic onready var ac_menu = $MenuSound onready var ac_land = $LandSound +onready var ac_voice = $Voice #Sounds const a_key = preload("res://audio/sounds/key.ogg") const a_arrow = preload("res://audio/sounds/arrow_collect.ogg") @@ -50,9 +51,10 @@ var loop_section = null var has_looped = false #Plays a sound -func play_sound(snd,player): - player.set_stream(snd) - player._set_playing(true) +func play_sound(snd: AudioStream, player: AudioStreamPlayer, pitch: float = 1.0): + player.stream = snd + player.pitch_scale = pitch + player.play() #Play music, if same track is already playing do nothing func play_music(song): diff --git a/autoloads/audio.tscn b/autoloads/audio.tscn index e9effd1..1186852 100644 --- a/autoloads/audio.tscn +++ b/autoloads/audio.tscn @@ -48,6 +48,8 @@ volume_db = -12.0 volume_db = -15.0 [node name="LandSound" type="AudioStreamPlayer" parent="."] -volume_db = -15.0 + +[node name="Voice" type="AudioStreamPlayer" parent="."] +volume_db = -5.0 [connection signal="finished" from="ShardSound" to="." method="_on_ShardSound_finished"] diff --git a/graphics/hud/levelselect_arrow.png b/graphics/hud/levelselect_arrow.png index 5351317..661237e 100644 Binary files a/graphics/hud/levelselect_arrow.png and b/graphics/hud/levelselect_arrow.png differ diff --git a/graphics/hud/msx_head.png b/graphics/hud/msx_head.png new file mode 100644 index 0000000..0ec7e71 Binary files /dev/null and b/graphics/hud/msx_head.png differ diff --git a/graphics/hud/msx_head.png.import b/graphics/hud/msx_head.png.import new file mode 100644 index 0000000..6f9b78f --- /dev/null +++ b/graphics/hud/msx_head.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/msx_head.png-fdcdc2eae8f1ff9e51eb57e0483b2b2f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/msx_head.png" +dest_files=[ "res://.import/msx_head.png-fdcdc2eae8f1ff9e51eb57e0483b2b2f.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/graphics/hud/team_sg_splash.png b/graphics/hud/team_sg_splash.png index 5a5072d..d19b782 100644 Binary files a/graphics/hud/team_sg_splash.png and b/graphics/hud/team_sg_splash.png differ diff --git a/graphics/hud/thankyou.png b/graphics/hud/thankyou.png index e4dff1c..adb30c9 100644 Binary files a/graphics/hud/thankyou.png and b/graphics/hud/thankyou.png differ diff --git a/maps/station.tscn b/maps/station.tscn index 6d09876..4bf20f7 100644 --- a/maps/station.tscn +++ b/maps/station.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=34 format=2] +[gd_scene load_steps=36 format=2] [ext_resource path="res://maps/station.gd" type="Script" id=1] [ext_resource path="res://objects/player/player.tscn" type="PackedScene" id=2] @@ -32,6 +32,23 @@ [ext_resource path="res://objects/lore/station/dread_pd.tscn" type="PackedScene" id=30] [ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=31] [ext_resource path="res://ui/theme.tres" type="Theme" id=32] +[ext_resource path="res://graphics/hatch/hatch.png" type="Texture" id=33] + +[sub_resource type="Animation" id=2] +resource_name = "open" +length = 0.9 +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.7, 0.8 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 1, 0 ] +} [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 4, 120 ) @@ -55,7 +72,7 @@ __meta__ = { } [node name="BackgroundTiles" type="TileMap" parent="."] -z_index = -1 +z_index = -2 tile_set = ExtResource( 3 ) cell_size = Vector2( 8, 8 ) format = 1 @@ -88,6 +105,13 @@ collision_layer = 9 format = 1 tile_data = PoolIntArray( -65485, 1, 196609, -65484, 1, 196610, -65483, 1, 196610, -65482, 1, 196611, -65480, 1, 196609, -65479, 1, 196611, -65476, 1, 196608, 63, 1, 1, 64, 1, 3, 65599, 1, 65537, 65600, 1, 65539, 131135, 1, 65537, 131136, 1, 65539, 131168, 1, 196608, 196625, 0, 131072, 196626, 0, 131073, 196627, 0, 131073, 196628, 0, 131073, 196629, 0, 131073, 196630, 0, 131073, 196631, 0, 131073, 196642, 0, 131073, 196643, 0, 131073, 196644, 0, 131073, 196645, 0, 131073, 196646, 0, 131073, 196647, 0, 131073, 196648, 0, 131073, 196649, 0, 131073, 196650, 0, 131073, 196651, 0, 131073, 196652, 0, 131073, 196653, 0, 131073, 196654, 0, 131073, 196655, 0, 131073, 196656, 0, 131073, 196657, 0, 131073, 196658, 0, 131073, 196659, 0, 131073, 196662, 0, 131073, 196663, 0, 131073, 196666, 0, 131073, 196667, 0, 131073, 196671, 1, 65537, 196672, 1, 65539, 196673, 0, 131073, 196676, 0, 131073, 196677, 0, 131073, 196678, 0, 131073, 196679, 0, 131073, 196680, 0, 131073, 196681, 0, 131073, 196682, 0, 131073, 196683, 0, 131073, 196684, 0, 131073, 196685, 0, 131073, 196686, 0, 131073, 196687, 0, 131073, 196688, 0, 131073, 196689, 0, 131073, 196690, 0, 131073, 196691, 0, 131073, 196692, 0, 131073, 196698, 0, 131073, 196699, 0, 131073, 196700, 0, 131073, 196701, 0, 131073, 196702, 0, 131073, 196703, 0, 131073, 262162, 1, 1, 262163, 1, 196610, 262164, 1, 196610, 262165, 1, 196610, 262166, 1, 196610, 262167, 1, 196611, 262178, 1, 196609, 262179, 1, 196610, 262180, 1, 196610, 262181, 1, 196610, 262182, 1, 196610, 262183, 1, 196610, 262184, 1, 196610, 262185, 1, 196610, 262186, 1, 196610, 262187, 1, 196610, 262188, 1, 196610, 262189, 1, 196610, 262190, 1, 196610, 262191, 1, 196610, 262192, 1, 196610, 262193, 1, 196610, 262194, 1, 196610, 262195, 1, 196611, 262198, 1, 196609, 262199, 1, 196611, 262202, 1, 196609, 262203, 1, 196611, 262207, 1, 131073, 262208, 1, 131074, 262209, 1, 196611, 262212, 1, 196609, 262213, 1, 196610, 262214, 1, 196610, 262215, 1, 196610, 262216, 1, 196610, 262217, 1, 196610, 262218, 1, 196610, 262219, 1, 196610, 262220, 1, 196610, 262221, 1, 196610, 262222, 1, 196610, 262223, 1, 196610, 262224, 1, 196610, 262225, 1, 196610, 262226, 1, 196610, 262227, 1, 196610, 262228, 1, 196611, 262234, 1, 196609, 262235, 1, 196610, 262236, 1, 196610, 262237, 1, 196610, 262238, 1, 196610, 262239, 1, 3, 327693, 1, 196609, 327694, 1, 196610, 327695, 1, 196611, 327698, 1, 65536, 327767, 1, 0, 327775, 1, 65536, 393234, 1, 65536, 393302, 1, 1, 393303, 1, 131075, 393311, 1, 65536, 458770, 1, 65536, 458813, 1, 196609, 458814, 1, 196610, 458815, 1, 2, 458816, 1, 196610, 458817, 1, 196610, 458818, 1, 196610, 458819, 1, 196610, 458820, 1, 3, 458830, 1, 196609, 458831, 1, 196610, 458832, 1, 196610, 458833, 1, 196610, 458834, 1, 196610, 458835, 1, 196610, 458836, 1, 2, 458837, 1, 196610, 458838, 1, 131075, 458847, 1, 65536, 524306, 1, 65537, 524307, 536870913, 196610, 524308, 536870913, 196610, 524309, 536870913, 196610, 524310, 536870913, 196610, 524311, 536870913, 196610, 524312, 536870913, 196610, 524313, 536870913, 196610, 524314, 536870913, 196610, 524315, 1, 196611, 524324, 1, 196609, 524325, 1, 196610, 524326, 1, 196610, 524327, 1, 196610, 524328, 1, 196610, 524329, 1, 196610, 524330, 1, 196610, 524331, 1, 196610, 524332, 1, 196610, 524333, 1, 196610, 524334, 1, 196610, 524335, 1, 2, 524336, 1, 196610, 524337, 1, 196610, 524338, 1, 196611, 524351, 1, 65536, 524356, 1, 65537, 524357, 1, 3, 524365, 1, 196608, 524372, 1, 131072, 524383, 1, 65536, 589842, 1, 65536, 589871, 1, 65536, 589878, 1, 196609, 589879, 1, 196611, 589881, 1, 196609, 589882, 1, 196611, 589887, 1, 65536, 589892, 1, 65537, 589893, 1, 65538, 589894, 1, 3, 589919, 1, 65536, 655368, 1, 196609, 655369, 1, 196610, 655370, 1, 196610, 655371, 1, 196610, 655372, 1, 196610, 655373, 1, 196611, 655378, 1, 65536, 655391, 1, 196609, 655392, 1, 196610, 655393, 1, 196611, 655407, 1, 65536, 655423, 1, 65536, 655428, 1, 131073, 655429, 1, 131074, 655430, 1, 65538, 655431, 1, 196610, 655432, 1, 196610, 655433, 1, 196610, 655434, 1, 196610, 655435, 1, 196610, 655436, 1, 196611, 655444, 1, 0, 655455, 1, 65536, 720914, 1, 65536, 720943, 1, 65536, 720949, 1, 1, 720950, 1, 196610, 720951, 1, 196610, 720952, 1, 196610, 720953, 1, 196610, 720954, 1, 196610, 720955, 1, 3, 720959, 1, 65536, 720966, 1, 65536, 720978, 1, 196609, 720979, 1, 196610, 720980, 1, 65539, 720991, 1, 65536, 786450, 1, 65536, 786468, 1, 196609, 786469, 1, 196611, 786475, 1, 196609, 786476, 1, 196610, 786477, 1, 196611, 786479, 1, 131072, 786485, 1, 65536, 786491, 1, 65536, 786495, 1, 65536, 786499, 1, 196608, 786502, 1, 65536, 786511, 1, 196608, 786516, 1, 65537, 786517, 1, 196611, 786520, 1, 196609, 786521, 1, 196611, 786527, 1, 65536, 851986, 1, 65537, 851987, 1, 196610, 851988, 1, 196610, 851989, 1, 196611, 852008, 1, 196608, 852017, 1, 196609, 852018, 1, 196611, 852021, 1, 131072, 852027, 1, 65536, 852030, 1, 196609, 852031, 1, 65539, 852038, 1, 131072, 852052, 1, 65536, 852059, 1, 196609, 852060, 1, 196611, 852063, 1, 65536, 917522, 1, 65536, 917563, 1, 65536, 917567, 1, 131072, 917580, 1, 0, 917583, 1, 0, 917588, 1, 65536, 917598, 1, 1, 917599, 1, 65539, 983047, 1, 196609, 983048, 1, 196610, 983049, 536870913, 196610, 983050, 536870913, 196610, 983051, 536870913, 196610, 983052, 536870913, 196610, 983053, 536870913, 196610, 983054, 536870913, 196610, 983055, 536870913, 196610, 983056, 536870913, 196610, 983057, 1, 196610, 983058, 1, 65539, 983063, 1, 196609, 983064, 1, 196610, 983065, 1, 196611, 983099, 1, 65537, 983100, 1, 196611, 983114, 1, 0, 983116, 1, 65536, 983119, 1, 65536, 983124, 1, 65536, 983134, 1, 65537, 983135, 1, 65539, 1048594, 1, 65536, 1048635, 1, 65536, 1048650, 1, 131073, 1048651, 1, 196610, 1048652, 1, 131074, 1048653, 1, 196610, 1048654, 1, 196610, 1048655, 1, 131075, 1048660, 1, 131072, 1048669, 1, 1, 1048670, 1, 65538, 1048671, 1, 65539, 1114117, 1, 196609, 1114118, 1, 196611, 1114130, 1, 131072, 1114142, 1, 1, 1114143, 1, 196610, 1114144, 1, 196610, 1114145, 1, 196610, 1114146, 1, 196610, 1114147, 1, 196610, 1114148, 1, 196610, 1114149, 1, 196610, 1114150, 1, 196610, 1114151, 1, 196610, 1114152, 1, 196610, 1114153, 1, 196611, 1114157, 1, 196609, 1114158, 1, 196610, 1114159, 1, 196610, 1114160, 1, 196610, 1114161, 1, 196610, 1114162, 1, 196611, 1114164, 1, 196609, 1114165, 1, 196610, 1114166, 1, 196610, 1114167, 1, 196610, 1114168, 1, 196610, 1114169, 1, 196610, 1114170, 1, 196610, 1114171, 1, 131074, 1114172, 1, 196610, 1114173, 1, 196610, 1114174, 1, 196610, 1114175, 1, 196610, 1114176, 1, 196610, 1114177, 1, 196610, 1114178, 1, 196610, 1114179, 1, 196610, 1114180, 1, 196610, 1114181, 1, 196610, 1114182, 1, 196611, 1114201, 1, 1, 1114202, 1, 196610, 1114203, 1, 196610, 1114204, 1, 196610, 1114205, 1, 131074, 1114206, 1, 131074, 1114207, 1, 65539, 1179676, 1, 196609, 1179677, 1, 196610, 1179678, 1, 131075, 1179737, 1, 131072, 1179743, 1, 65536, 1245184, 1, 196609, 1245185, 1, 196611, 1245279, 1, 65536, 1310815, 1, 65536, 1376269, 0, 65538, 1376270, 0, 65539, 1376271, 1, 1, 1376272, 1, 2, 1376273, 1, 2, 1376274, 1, 2, 1376275, 1, 2, 1376276, 536870913, 2, 1376277, 536870913, 2, 1376278, 536870913, 2, 1376279, 536870913, 2, 1376280, 1, 2, 1376281, 1, 2, 1376282, 536870913, 2, 1376283, 1, 2, 1376284, 1, 2, 1376285, 1, 2, 1376286, 1, 2, 1376287, 1, 2, 1376288, 1, 2, 1376289, 1, 2, 1376290, 1, 2, 1376291, 1, 2, 1376292, 1, 2, 1376293, 1, 2, 1376294, 1, 2, 1376295, 1, 2, 1376296, 1, 2, 1376297, 1, 2, 1376298, 1, 2, 1376299, 1, 2, 1376300, 1, 2, 1376301, 1, 2, 1376302, 1, 2, 1376303, 1, 2, 1376304, 1, 2, 1376305, 1, 2, 1376306, 1, 2, 1376307, 1, 2, 1376308, 1, 2, 1376309, 1, 2, 1376310, 1, 2, 1376311, 1, 2, 1376312, 1, 2, 1376313, 1, 2, 1376314, 1, 2, 1376315, 1, 2, 1376316, 1, 2, 1376317, 1, 2, 1376318, 1, 2, 1376319, 1, 2, 1376320, 1, 2, 1376321, 1, 2, 1376322, 1, 2, 1376323, 1, 2, 1376324, 1, 2, 1376325, 1, 2, 1376326, 1, 2, 1376327, 1, 2, 1376328, 1, 2, 1376329, 1, 2, 1376330, 1, 2, 1376331, 1, 2, 1376332, 1, 2, 1376333, 1, 2, 1376334, 1, 2, 1376335, 1, 2, 1376336, 1, 2, 1376337, 1, 2, 1376338, 1, 2, 1376339, 1, 2, 1376340, 1, 2, 1376341, 1, 2, 1376342, 1, 2, 1376343, 1, 2, 1376344, 1, 2, 1376345, 1, 2, 1376346, 1, 2, 1376347, 1, 2, 1376348, 1, 2, 1376349, 1, 2, 1376350, 1, 2, 1376351, 1, 65539, 1441792, 0, 0, 1441793, 0, 0, 1441794, 0, 0, 1441795, 0, 0, 1441796, 0, 0, 1441797, 0, 0, 1441798, 0, 0, 1441799, 0, 0, 1441800, 0, 0, 1441803, 0, 0, 1441804, 0, 0, 1441805, 1, 1, 1441806, 1, 2, 1441807, 1, 65538, 1441808, 1, 65538, 1441809, 1, 65538, 1441810, 1, 65538, 1441811, 1, 65538, 1441812, 536870913, 65538, 1441813, 536870913, 65538, 1441814, 536870913, 65538, 1441815, 536870913, 65538, 1441816, 1, 65538, 1441817, 1, 65538, 1441818, 536870913, 65538, 1441819, 1, 65538, 1441820, 1, 65538, 1441821, 1, 65538, 1441822, 1, 65538, 1441823, 1, 65538, 1441824, 1, 65538, 1441825, 1, 65538, 1441826, 1, 65538, 1441827, 1, 65538, 1441828, 1, 65538, 1441829, 1, 65538, 1441830, 1, 65538, 1441831, 1, 65538, 1441832, 1, 65538, 1441833, 1, 65538, 1441834, 1, 65538, 1441835, 1, 65538, 1441836, 1, 65538, 1441837, 1, 65538, 1441838, 1, 65538, 1441839, 1, 65538, 1441840, 1, 65538, 1441841, 1, 65538, 1441842, 1, 65538, 1441843, 1, 65538, 1441844, 1, 65538, 1441845, 1, 65538, 1441846, 1, 65538, 1441847, 1, 65538, 1441848, 1, 65538, 1441849, 1, 65538, 1441850, 1, 65538, 1441851, 1, 65538, 1441852, 1, 65538, 1441853, 1, 65538, 1441854, 1, 65538, 1441855, 1, 65538, 1441856, 1, 65538, 1441857, 1, 65538, 1441858, 1, 65538, 1441859, 1, 65538, 1441860, 1, 65538, 1441861, 1, 65538, 1441862, 1, 65538, 1441863, 1, 65538, 1441864, 1, 65538, 1441865, 1, 65538, 1441866, 1, 65538, 1441867, 1, 65538, 1441868, 1, 65538, 1441869, 1, 65538, 1441870, 1, 65538, 1441871, 1, 65538, 1441872, 1, 65538, 1441873, 1, 65538, 1441874, 1, 65538, 1441875, 1, 65538, 1441876, 1, 65538, 1441877, 1, 65538, 1441878, 1, 65538, 1441879, 1, 65538, 1441880, 1, 65538, 1441881, 1, 65538, 1441882, 1, 65538, 1441883, 1, 65538, 1441884, 1, 65538, 1441885, 1, 65538, 1441886, 1, 65538, 1441887, 1, 65539, 1507328, 536870913, 196609, 1507329, 536870913, 196610, 1507330, 536870913, 196610, 1507331, 536870913, 196610, 1507332, 536870913, 196610, 1507333, 536870913, 196610, 1507334, 536870913, 196610, 1507335, 536870913, 196610, 1507336, 536870913, 196610, 1507337, 536870913, 196610, 1507338, 536870913, 196610, 1507339, 536870913, 196610, 1507340, 536870913, 196610, 1507341, 536870913, 131074, 1507342, 536870913, 131074, 1507343, 1, 131074, 1507344, 1, 131074, 1507345, 1, 131074, 1507346, 1, 131074, 1507347, 536870913, 131074, 1507348, 536870913, 131074, 1507349, 536870913, 131074, 1507350, 536870913, 131074, 1507351, 536870913, 131074, 1507352, 536870913, 131074, 1507353, 536870913, 131074, 1507354, 536870913, 131074, 1507355, 536870913, 131074, 1507356, 1, 131074, 1507357, 1, 131074, 1507358, 1, 131074, 1507359, 1, 131074, 1507360, 1, 131074, 1507361, 1, 131074, 1507362, 1, 131074, 1507363, 1, 131074, 1507364, 1, 131074, 1507365, 1, 131074, 1507366, 1, 131074, 1507367, 1, 131074, 1507368, 1, 131074, 1507369, 1, 131074, 1507370, 1, 131074, 1507371, 1, 131074, 1507372, 1, 131074, 1507373, 1, 131074, 1507374, 1, 131074, 1507375, 1, 131074, 1507376, 1, 131074, 1507377, 1, 131074, 1507378, 1, 131074, 1507379, 1, 131074, 1507380, 1, 131074, 1507381, 1, 131074, 1507382, 1, 131074, 1507383, 1, 131074, 1507384, 1, 131074, 1507385, 1, 131074, 1507386, 1, 131074, 1507387, 1, 131074, 1507388, 1, 131074, 1507389, 1, 131074, 1507390, 1, 131074, 1507391, 1, 131074, 1507392, 1, 131074, 1507393, 1, 131074, 1507394, 1, 131074, 1507395, 1, 131074, 1507396, 1, 131074, 1507397, 1, 131074, 1507398, 1, 131074, 1507399, 1, 131074, 1507400, 1, 131074, 1507401, 1, 131074, 1507402, 1, 131074, 1507403, 1, 131074, 1507404, 1, 131074, 1507405, 1, 131074, 1507406, 1, 131074, 1507407, 1, 131074, 1507408, 1, 131074, 1507409, 1, 131074, 1507410, 1, 131074, 1507411, 1, 131074, 1507412, 1, 131074, 1507413, 1, 131074, 1507414, 1, 131074, 1507415, 1, 131074, 1507416, 1, 131074, 1507417, 1, 131074, 1507418, 1, 131074, 1507419, 1, 131074, 1507420, 1, 131074, 1507421, 1, 131074, 1507422, 1, 131074, 1507423, 1, 131075 ) +[node name="OccludeMsx" type="TileMap" parent="."] +z_index = 3 +tile_set = ExtResource( 3 ) +cell_size = Vector2( 8, 8 ) +format = 1 +tile_data = PoolIntArray( 1441801, 0, 0, 1441802, 0, 0 ) + [node name="Player" parent="." instance=ExtResource( 2 )] position = Vector2( 40, 176 ) @@ -267,7 +291,7 @@ position = Vector2( 712, 152 ) scale = Vector2( 1, 2 ) [node name="Button" parent="Environment" instance=ExtResource( 18 )] -position = Vector2( 728, 128 ) +position = Vector2( 736, 128 ) target_group = "cell" [node name="Button2" parent="Environment" instance=ExtResource( 18 )] @@ -275,14 +299,24 @@ position = Vector2( 312, 19 ) target_group = "yellow_star_laser" [node name="MsX" parent="Environment" groups=["cell"] instance=ExtResource( 22 )] -position = Vector2( 740, 158 ) -scale = Vector2( -1, 1 ) +position = Vector2( 744, 158 ) +z_index = -1 +hatch = NodePath("../Hatch/HatchAnim") [node name="Barrier" parent="Environment" instance=ExtResource( 23 )] position = Vector2( 424, 112 ) scale = Vector2( 1, 24 ) cost = 40 +[node name="Hatch" type="Sprite" parent="Environment"] +position = Vector2( 82, 171 ) +z_index = -2 +texture = ExtResource( 33 ) +hframes = 3 + +[node name="HatchAnim" type="AnimationPlayer" parent="Environment/Hatch"] +anims/open = SubResource( 2 ) + [node name="Collectibles" type="Node2D" parent="."] [node name="Star" parent="Collectibles" instance=ExtResource( 11 )] @@ -518,10 +552,10 @@ song_name = "♫Spine_V2" [node name="Label" type="Label" parent="."] material = ExtResource( 31 ) -margin_left = 688.0 -margin_top = 120.0 -margin_right = 849.0 -margin_bottom = 143.0 +margin_left = 636.0 +margin_top = 198.0 +margin_right = 797.0 +margin_bottom = 221.0 theme = ExtResource( 32 ) text = "Help me get outta here!" diff --git a/menus/credits.tscn b/menus/credits.tscn index d84fd37..506faa8 100644 --- a/menus/credits.tscn +++ b/menus/credits.tscn @@ -589,7 +589,8 @@ tracks/0/keys = { [sub_resource type="Animation" id=90] resource_name = "credits" -length = 81.0 +length = 90.0 +step = 1.0 tracks/0/type = "value" tracks/0/path = NodePath("Control:rect_position") tracks/0/interp = 1 @@ -597,10 +598,10 @@ tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { -"times": PoolRealArray( 0, 2, 3, 5, 6, 10, 11, 15, 16, 20, 21, 25, 26, 30, 31, 35, 36, 40, 41, 45, 46, 50, 51, 55, 56, 60, 61, 65, 66, 70, 71, 75, 76 ), -"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"times": PoolRealArray( 0, 2, 3, 5, 6, 10, 11, 15, 16, 20, 21, 25, 26, 30, 31, 35, 36, 40, 41, 45, 46, 50, 51, 55, 56, 60, 61, 65, 66, 70, 71, 75, 76, 80, 81, 85, 86 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "update": 0, -"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( -256, 0 ), Vector2( -256, 0 ), Vector2( -512, 0 ), Vector2( -512, 0 ), Vector2( -768, 0 ), Vector2( -768, 0 ), Vector2( -1024, 0 ), Vector2( -1024, 0 ), Vector2( -1280, 0 ), Vector2( -1280, 0 ), Vector2( -1536, 0 ), Vector2( -1536, 0 ), Vector2( -1792, 0 ), Vector2( -1792, 0 ), Vector2( -2048, 0 ), Vector2( -2048, 0 ), Vector2( -2304, 0 ), Vector2( -2304, 0 ), Vector2( -2560, 0 ), Vector2( -2560, 0 ), Vector2( -2816, 0 ), Vector2( -2816, 0 ), Vector2( -3072, 0 ), Vector2( -3072, 0 ), Vector2( -3328, 0 ), Vector2( -3328, 0 ), Vector2( -3584, 0 ), Vector2( -3584, 0 ), Vector2( -3840, 0 ), Vector2( -3840, 0 ), Vector2( -4096, 0 ) ] +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( -256, 0 ), Vector2( -256, 0 ), Vector2( -512, 0 ), Vector2( -512, 0 ), Vector2( -768, 0 ), Vector2( -768, 0 ), Vector2( -1024, 0 ), Vector2( -1024, 0 ), Vector2( -1280, 0 ), Vector2( -1280, 0 ), Vector2( -1536, 0 ), Vector2( -1536, 0 ), Vector2( -1792, 0 ), Vector2( -1792, 0 ), Vector2( -2048, 0 ), Vector2( -2048, 0 ), Vector2( -2304, 0 ), Vector2( -2304, 0 ), Vector2( -2560, 0 ), Vector2( -2560, 0 ), Vector2( -2816, 0 ), Vector2( -2816, 0 ), Vector2( -3072, 0 ), Vector2( -3072, 0 ), Vector2( -3328, 0 ), Vector2( -3328, 0 ), Vector2( -3584, 0 ), Vector2( -3584, 0 ), Vector2( -3840, 0 ), Vector2( -3840, 0 ), Vector2( -4096, 0 ), Vector2( -4096, 0 ), Vector2( -4352, 0 ), Vector2( -4352, 0 ), Vector2( -4608, 0 ) ] } [node name="Credits" type="Node" groups=["map"]] @@ -737,7 +738,7 @@ theme = ExtResource( 6 ) text = "-Our playtesters- Penny rigate Haze Weathers -Ivy scarlet +Ivy snyder DogJelly Wolfboy Rhidianruckus @@ -832,7 +833,7 @@ align = 1 material = SubResource( 8 ) position = Vector2( 106, 69 ) frames = SubResource( 18 ) -frame = 2 +frame = 3 playing = true [node name="Label" type="Label" parent="Control/RollCall1/MsX"] @@ -902,6 +903,7 @@ position = Vector2( 1024, 0 ) material = SubResource( 13 ) position = Vector2( 2880, 24 ) frames = SubResource( 21 ) +frame = 1 playing = true [node name="Label" type="Label" parent="Control/RollCall2/Eviscerator"] @@ -918,6 +920,7 @@ align = 1 material = SubResource( 13 ) position = Vector2( 2952, 24 ) frames = SubResource( 24 ) +frame = 1 playing = true [node name="Label" type="Label" parent="Control/RollCall2/Catbat"] @@ -933,6 +936,7 @@ align = 1 [node name="TheScrump" type="AnimatedSprite" parent="Control/RollCall2"] position = Vector2( 2992, 128 ) frames = SubResource( 27 ) +frame = 1 playing = true [node name="Label" type="Label" parent="Control/RollCall2/TheScrump"] @@ -980,7 +984,7 @@ align = 1 material = SubResource( 34 ) position = Vector2( 3024, 62 ) frames = SubResource( 43 ) -frame = 6 +frame = 3 playing = true [node name="Label" type="Label" parent="Control/RollCall2/Skelarcher"] @@ -996,6 +1000,7 @@ align = 1 [node name="SabreSpighter" type="AnimatedSprite" parent="Control/RollCall2"] position = Vector2( 2880, 62 ) frames = SubResource( 46 ) +frame = 1 playing = true [node name="Label" type="Label" parent="Control/RollCall2/SabreSpighter"] @@ -1088,7 +1093,6 @@ align = 1 [node name="Squig" type="AnimatedSprite" parent="Control/RollCall3"] position = Vector2( 200, 64 ) frames = SubResource( 65 ) -frame = 1 playing = true [node name="Label" type="Label" parent="Control/RollCall3/Squig"] @@ -1105,7 +1109,7 @@ align = 1 material = SubResource( 71 ) position = Vector2( 72, 152 ) frames = SubResource( 80 ) -frame = 7 +frame = 4 playing = true [node name="Label" type="Label" parent="Control/RollCall3/Hellarcher"] @@ -1122,7 +1126,7 @@ align = 1 material = SubResource( 66 ) position = Vector2( 68, 104 ) frames = SubResource( 70 ) -frame = 1 +frame = 2 playing = true [node name="Label" type="Label" parent="Control/RollCall3/Turchin"] @@ -1152,7 +1156,6 @@ position = Vector2( 4, 0 ) z_index = 1 frames = SubResource( 61 ) animation = "chomp" -frame = 1 playing = true [node name="Border" type="AnimatedSprite" parent="Control/RollCall3/Beel/Head/Sprite"] @@ -1160,7 +1163,6 @@ material = SubResource( 62 ) z_index = -1 frames = SubResource( 61 ) animation = "chomp" -frame = 1 playing = true [node name="ShapeTransform" type="RemoteTransform2D" parent="Control/RollCall3/Beel/Head"] @@ -1262,11 +1264,11 @@ position = Vector2( 3464, -8 ) autostart = false [node name="FootShapeFront" parent="Control/RollCall4/2600/Hitbox" index="1"] -position = Vector2( 63.7334, 154.923 ) +position = Vector2( 63.7333, 154.923 ) scale = Vector2( 1, 1 ) [node name="FootShapeBack" parent="Control/RollCall4/2600/Hitbox" index="2"] -position = Vector2( 42.7334, 154.923 ) +position = Vector2( 42.7333, 154.923 ) scale = Vector2( 1, 1 ) [node name="ExplosionRect" parent="Control/RollCall4/2600/BigExplosion" index="0"] @@ -1311,7 +1313,6 @@ align = 1 material = SubResource( 82 ) position = Vector2( 3362, 122.5 ) frames = SubResource( 87 ) -frame = 2 playing = true [node name="Label" type="Label" parent="Control/RollCall4/Famicop"] diff --git a/menus/sound_select.gd b/menus/sound_select.gd index 4020894..cc951e3 100644 --- a/menus/sound_select.gd +++ b/menus/sound_select.gd @@ -8,11 +8,11 @@ onready var body = $SoundLabel/Label func _gui_input(event): if Input.is_action_just_pressed("ui_left"): current_selection -= 1 - if Input.is_action_just_pressed("ui_right"): + elif Input.is_action_just_pressed("ui_right"): current_selection += 1 - if Input.is_action_just_pressed("ui_accept"): + elif Input.is_action_just_pressed("ui_accept"): Audio.play_sound(sounds[current_selection],Audio.ac_collectible) - if Input.is_action_just_pressed("ui_cancel"): + elif Input.is_action_just_pressed("ui_cancel"): Audio.ac_music.stop() current_selection = posmod(current_selection,sounds.size()) body.text = titles[current_selection] diff --git a/menus/sound_test.tscn b/menus/sound_test.tscn index 563c536..b7efc0c 100644 --- a/menus/sound_test.tscn +++ b/menus/sound_test.tscn @@ -48,9 +48,9 @@ shader_param/color_1 = Color( 0.501961, 1, 0.929412, 1 ) shader_param/color_2 = Color( 0, 0.713726, 0.631373, 1 ) shader_param/checker_size = Vector2( 32, 32 ) shader_param/pan_speed = Vector2( 12, 0 ) -shader_param/cycle_speed = Vector2( 8, 0 ) -shader_param/cycle_alternation = Vector2( 2, 0 ) -shader_param/uv_transform = Transform2D( 0, 3, 2, 1, 0, 0 ) +shader_param/cycle_speed = Vector2( 9, 0 ) +shader_param/cycle_alternation = Vector2( 2, 1 ) +shader_param/uv_transform = Transform2D( 0, 3, 3, 1, 0, 0 ) [sub_resource type="ShaderMaterial" id=12] shader = ExtResource( 2 ) @@ -107,7 +107,6 @@ material = SubResource( 12 ) position = Vector2( 72, 152 ) scale = Vector2( 2, 2 ) frames = SubResource( 15 ) -frame = 1 playing = true [node name="AnimatedSprite3" type="AnimatedSprite" parent="."] @@ -115,7 +114,6 @@ material = SubResource( 12 ) position = Vector2( 112, 152 ) scale = Vector2( 2, 2 ) frames = SubResource( 15 ) -frame = 1 playing = true [node name="AnimatedSprite4" type="AnimatedSprite" parent="."] @@ -123,7 +121,6 @@ material = SubResource( 12 ) position = Vector2( 152, 152 ) scale = Vector2( 2, 2 ) frames = SubResource( 15 ) -frame = 1 playing = true [node name="AnimatedSprite5" type="AnimatedSprite" parent="."] @@ -131,7 +128,6 @@ material = SubResource( 12 ) position = Vector2( 192, 152 ) scale = Vector2( 2, 2 ) frames = SubResource( 15 ) -frame = 1 playing = true [node name="Music" type="TextureButton" parent="."] diff --git a/objects/Camera2D.tscn b/objects/Camera2D.tscn index 8c66f67..560267f 100644 --- a/objects/Camera2D.tscn +++ b/objects/Camera2D.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=4 format=2] [ext_resource path="res://objects/camera.gd" type="Script" id=1] [ext_resource path="res://objects/hud/off_level_indicator.tscn" type="PackedScene" id=2] +[ext_resource path="res://objects/hud/msx_off_level_indicator.tscn" type="PackedScene" id=3] [node name="Camera2D" type="Camera2D"] offset = Vector2( 128, 96 ) @@ -12,3 +13,7 @@ script = ExtResource( 1 ) [node name="OffLevelIndicator" parent="." instance=ExtResource( 2 )] visible = false position = Vector2( 0, 12 ) + +[node name="MsxOffLevelIndicator" parent="." instance=ExtResource( 3 )] +visible = false +position = Vector2( 16, 32 ) diff --git a/objects/camera.gd b/objects/camera.gd index 8e89abd..d523494 100644 --- a/objects/camera.gd +++ b/objects/camera.gd @@ -3,14 +3,20 @@ extends Camera2D onready var player = get_tree().get_nodes_in_group("player").front() onready var last_sector = Game.get_sector(player.global_position + Vector2(0.0, -5.0)) onready var off_level_indicator = $OffLevelIndicator +onready var msx_off_level_indicator = $MsxOffLevelIndicator #Scroll direction export var scroll_h = true export var scroll_v = false export var respawn_h = true +var msx = null +var msx_exists = false func _ready(): set_as_toplevel(true) Game.current_sector = last_sector + if get_tree().get_nodes_in_group("msx").size() > 0: + msx = get_tree().get_nodes_in_group("msx").pop_front() + msx_exists = true func _process(delta): # use pop_front() instead of [0] so that will not crash without player @@ -34,3 +40,18 @@ func _process(delta): off_level_indicator.global_position.x = player.global_position.x else: off_level_indicator.visible = false + #Ms.X off level indicator + if msx_exists && is_instance_valid(msx): + if msx.get_parent().is_free: + msx_off_level_indicator.visible = true + var msx_sector = Game.get_sector(msx.global_position) + if msx_sector == current_sector: + msx_off_level_indicator.anims.play("onscreen") + if msx_sector < current_sector: + msx_off_level_indicator.position.y = msx.global_position.y + msx_off_level_indicator.position.x = 16 + msx_off_level_indicator.anims.play("left") + if msx_sector > current_sector: + msx_off_level_indicator.position.y = msx.global_position.y + msx_off_level_indicator.position.x = 240 + msx_off_level_indicator.anims.play("right") diff --git a/objects/collectibles/key.gd b/objects/collectibles/key.gd index 53857c9..fb2fde2 100644 --- a/objects/collectibles/key.gd +++ b/objects/collectibles/key.gd @@ -1,5 +1,15 @@ extends Node2D +const SEMITONE := 1.05946 +const TIMEOUT := 1000 +const MAX_PITCH := 2.0 + +const STATIC = { + pitch = -1.0, + timeout = -1, +} + + func _ready(): #Sync all coinframes $AnimatedSprite.play() @@ -10,5 +20,11 @@ func _on_Area2D_body_entered(body: Node) -> void: if body.is_in_group("player"): Game.keys += 1 Game.score += 5 - Audio.play_sound(Audio.a_key,Audio.ac_collectible) + # pitch increase + if Time.get_ticks_msec() < STATIC.timeout: + STATIC.pitch = min(STATIC.pitch + 1.0, MAX_PITCH) + else: + STATIC.pitch = -1.0 + STATIC.timeout = Time.get_ticks_msec() + TIMEOUT + Audio.play_sound(Audio.a_key,Audio.ac_collectible, pow(SEMITONE, STATIC.pitch)) queue_free() diff --git a/objects/hud/msx_off_level_indicator.gd b/objects/hud/msx_off_level_indicator.gd new file mode 100644 index 0000000..74dda07 --- /dev/null +++ b/objects/hud/msx_off_level_indicator.gd @@ -0,0 +1,3 @@ +extends Node2D + +onready var anims = $AnimationPlayer diff --git a/objects/hud/msx_off_level_indicator.tscn b/objects/hud/msx_off_level_indicator.tscn new file mode 100644 index 0000000..2fc9b4e --- /dev/null +++ b/objects/hud/msx_off_level_indicator.tscn @@ -0,0 +1,212 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://graphics/hud/off_level_indicator.png" type="Texture" id=1] +[ext_resource path="res://graphics/hud/msx_head.png" type="Texture" id=2] +[ext_resource path="res://objects/hud/msx_off_level_indicator.gd" type="Script" id=3] + +[sub_resource type="Animation" id=2] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Head:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ArrowR:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ArrowL:visible") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=3] +resource_name = "left" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Head:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ArrowL:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ArrowL:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.5, 1 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( -11, 0 ), Vector2( -13, 0 ), Vector2( -11, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ArrowR:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=1] +resource_name = "onscreen" +tracks/0/type = "value" +tracks/0/path = NodePath("Head:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ArrowR:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ArrowL:visible") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=4] +resource_name = "right" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("ArrowR:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Head:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ArrowR:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.5, 1 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 11, 1 ), Vector2( 13, 1 ), Vector2( 11, 1 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ArrowL:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[node name="MsxOffLevelIndicator" type="Node2D"] +script = ExtResource( 3 ) + +[node name="Head" type="Sprite" parent="."] +visible = false +texture = ExtResource( 2 ) + +[node name="ArrowR" type="Sprite" parent="."] +visible = false +position = Vector2( 11.336, 1 ) +rotation = 1.5708 +texture = ExtResource( 1 ) + +[node name="ArrowL" type="Sprite" parent="."] +visible = false +position = Vector2( -11.336, 0 ) +rotation = -1.5708 +texture = ExtResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 2 ) +anims/left = SubResource( 3 ) +anims/onscreen = SubResource( 1 ) +anims/right = SubResource( 4 ) diff --git a/objects/hud/off_level_indicator.tscn b/objects/hud/off_level_indicator.tscn index 48a3fad..bba10bf 100644 --- a/objects/hud/off_level_indicator.tscn +++ b/objects/hud/off_level_indicator.tscn @@ -38,7 +38,7 @@ texture = ExtResource( 4 ) script = ExtResource( 5 ) [node name="Arrow" type="Sprite" parent="."] -position = Vector2( 1, 3.9185 ) +position = Vector2( 1, 5 ) texture = ExtResource( 3 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] diff --git a/objects/npc/msx.gd b/objects/npc/msx.gd index 4ad52dc..dfbd744 100644 --- a/objects/npc/msx.gd +++ b/objects/npc/msx.gd @@ -1,9 +1,13 @@ extends KinematicBody2D +export var hatch: NodePath + var velocity = Vector2.ZERO var is_moving = false var is_holding_shard = true var has_respawned = false +var first_lead = true +var is_free = false onready var death_particles = $DeathSplatter onready var sprite = $Sprite onready var anims = $AnimationPlayer @@ -12,15 +16,29 @@ onready var respawn_raycast = $RespawnRaycast onready var shard_position = $Position2D onready var start_position = position onready var blink_timer = $BlinkTimer +onready var text_anims = $TextAnim const shard = preload("res://objects/collectibles/shard.tscn") const BloodSpray := preload("res://objects/environment/blood/blood_spray.tscn") +#DIALOGUE +const here_take_this = preload("res://audio/sounds/msx_here_take_this.wav") +const come_here = preload("res://audio/sounds/msx_come_here.ogg") +const help_me = preload("res://audio/sounds/msx_help_me_get_outta_here.ogg") +const fuck = preload("res://audio/sounds/msx_fuck.ogg") +const fucking_cop = preload("res://audio/sounds/msx_fucking_cop.ogg") +const goddammit = preload("res://audio/sounds/msx_goddammit.ogg") +const motherfucker = preload("res://audio/sounds/msx_motherfucker.ogg") +const shit = preload("res://audio/sounds/msx_shit.ogg") +var death_sounds = [ + Audio.a_msx_die, + fuck, + shit +] func _ready(): raycast.add_exception($Hitbox) blink_timer.start(rand_range(5.0,7.0)) func _physics_process(delta): - print(respawn_raycast.get_collider()) if is_moving: velocity.x = -50 #Stop when see something if raycast.is_colliding(): @@ -29,7 +47,12 @@ func _physics_process(delta): if respawn_raycast.is_colliding(): #start moving again after respawning when seeing sg if raycast.get_collider() != null: - if raycast.get_collider().is_in_group("player_hitbox"): is_moving = true + if raycast.get_collider().is_in_group("player_hitbox"): + if first_lead == true: + Audio.play_sound(help_me,Audio.ac_voice) + text_anims.play("help me") + first_lead = false + is_moving = true velocity.y += 128 * delta velocity = move_and_slide_with_snap(velocity, Vector2.DOWN, Vector2.UP, true) #Anims @@ -45,6 +68,8 @@ func _physics_process(delta): anims.play("give") func spawn_shard(): + Audio.play_sound(here_take_this,Audio.ac_voice) + text_anims.play("here take this") var ShardInstance = shard.instance() ShardInstance.global_position = Vector2(shard_position.global_position.x,shard_position.global_position.y) ShardInstance.number = 1 @@ -52,8 +77,9 @@ func spawn_shard(): is_holding_shard = false func switch_action(): - #is_moving = true - pass + Audio.play_sound(come_here,Audio.ac_voice) + text_anims.play("come here") + is_free = true func spray_blood(): for i in 16: @@ -72,7 +98,7 @@ func die(): death_particles.global_position = global_position death_particles.emitting = true spray_blood() - Audio.play_sound(Audio.a_msx_die,Audio.ac_die) + Audio.play_sound(death_sounds[randi() % death_sounds.size()],Audio.ac_voice) is_moving = false velocity.x = 0 position = start_position @@ -80,6 +106,11 @@ func die(): has_respawned = true +func _open_hatch() -> void: + get_node(hatch).play("open") + + func _on_BlinkTimer_timeout(): - anims.play("blink") - blink_timer.start(rand_range(5.0,7.0)) + if anims.current_animation != "give": + anims.play("blink") + blink_timer.start(rand_range(5.0,7.0)) diff --git a/objects/npc/msx.tscn b/objects/npc/msx.tscn index 3be88dc..46392a0 100644 --- a/objects/npc/msx.tscn +++ b/objects/npc/msx.tscn @@ -1,9 +1,11 @@ -[gd_scene load_steps=20 format=2] +[gd_scene load_steps=28 format=2] [ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=1] [ext_resource path="res://graphics/npc/msx_respawn.png" type="Texture" id=2] [ext_resource path="res://graphics/npc/msx_walk.png" type="Texture" id=3] [ext_resource path="res://graphics/npc/msx_blink.png" type="Texture" id=4] +[ext_resource path="res://ui/theme.tres" type="Theme" id=5] +[ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=6] [ext_resource path="res://graphics/npc/msx_idle.png" type="Texture" id=11] [ext_resource path="res://scripts/snap_sprite.gd" type="Script" id=12] [ext_resource path="res://objects/npc/msx.gd" type="Script" id=13] @@ -48,6 +50,102 @@ tracks/2/keys = { "update": 0, "values": [ 0 ] } +tracks/3/type = "value" +tracks/3/path = NodePath("Dialogue/HereTakeThis:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Dialogue/ComeHere:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Dialogue/HelpMe:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Sprite:region_enabled") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Sprite:offset") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Sprite:region_rect") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Rect2( 0, 0, 40, 20 ) ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("CollisionShape2D:disabled") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Hitbox/CollisionShape2D2:disabled") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} [sub_resource type="Animation" id=18] resource_name = "blink" @@ -90,10 +188,62 @@ tracks/2/keys = { "values": [ 0, 1, 2, 3, 0 ] } +[sub_resource type="Animation" id=19] +resource_name = "come here" +length = 4.0 +step = 0.06 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ ExtResource( 11 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 1 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 0 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Dialogue/ComeHere:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.06, 2.52 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + [sub_resource type="Animation" id=15] resource_name = "give" -length = 0.5 -step = 0.06 +length = 4.0 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:texture") tracks/0/interp = 1 @@ -137,13 +287,120 @@ tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { -"times": PoolRealArray( 0.18 ), -"transitions": PoolRealArray( 1 ), +"times": PoolRealArray( 0.18, 1.3, 2 ), +"transitions": PoolRealArray( 1, 1, 1 ), "values": [ { "args": [ ], "method": "spawn_shard" +}, { +"args": [ ], +"method": "_open_hatch" +}, { +"args": [ ], +"method": "queue_free" } ] } +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:offset") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1.5, 1.6, 1.8, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, -6 ), Vector2( 0, 0 ), Vector2( 0, 10 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Hitbox/CollisionShape2D2:disabled") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} + +[sub_resource type="Animation" id=20] +resource_name = "help me" +length = 3.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ ExtResource( 3 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 4 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Dialogue/ComeHere:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Dialogue/HelpMe:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.1, 2.9 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} [sub_resource type="Animation" id=4] resource_name = "idle" @@ -185,6 +442,18 @@ tracks/2/keys = { "update": 1, "values": [ 0 ] } +tracks/3/type = "value" +tracks/3/path = NodePath("Dialogue/ComeHere:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.06 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} [sub_resource type="Animation" id=17] resource_name = "respawn" @@ -284,6 +553,105 @@ height = 5.0 [sub_resource type="Curve" id=13] _data = [ Vector2( 0, 1 ), 0.0, -0.113537, 0, 0, Vector2( 1, 0 ), -3.35032, 0.0, 0, 0 ] +[sub_resource type="Animation" id=21] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Dialogue/HelpMe:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Dialogue/HereTakeThis:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Dialogue/ComeHere:visible") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=23] +resource_name = "come here" +length = 1.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Dialogue/ComeHere:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + +[sub_resource type="Animation" id=22] +resource_name = "help me" +length = 1.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Dialogue/HelpMe:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Dialogue/ComeHere:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=24] +resource_name = "here take this" +length = 1.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Dialogue/HereTakeThis:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + [node name="MsX" type="KinematicBody2D"] script = ExtResource( 13 ) @@ -291,16 +659,20 @@ script = ExtResource( 13 ) autoplay = "idle" anims/RESET = SubResource( 16 ) anims/blink = SubResource( 18 ) +"anims/come here" = SubResource( 19 ) anims/give = SubResource( 15 ) +"anims/help me" = SubResource( 20 ) anims/idle = SubResource( 4 ) anims/respawn = SubResource( 17 ) anims/walk = SubResource( 9 ) [node name="Sprite" type="Sprite" parent="."] material = SubResource( 10 ) +scale = Vector2( -1, 1 ) +z_index = -1 texture = ExtResource( 15 ) hframes = 2 -region_rect = Rect2( 0, 0, 20, 20 ) +region_rect = Rect2( 0, 0, 40, 20 ) script = ExtResource( 12 ) [node name="Hitbox" type="Area2D" parent="." groups=["enemy_hitbox", "msx", "player_hitbox"]] @@ -342,23 +714,64 @@ scale_amount_curve = SubResource( 13 ) [node name="RayCast2D" type="RayCast2D" parent="."] position = Vector2( 0, 1 ) enabled = true -cast_to = Vector2( 32, 0 ) +cast_to = Vector2( -32, 0 ) collision_mask = 3 collide_with_areas = true [node name="RespawnRaycast" type="RayCast2D" parent="."] -position = Vector2( 16, 0 ) +position = Vector2( -16, 0 ) enabled = true -cast_to = Vector2( 56, 0 ) +cast_to = Vector2( -56, 0 ) collision_mask = 8 collide_with_areas = true [node name="Position2D" type="Position2D" parent="."] -position = Vector2( 17, 2 ) +position = Vector2( -17, 2 ) __meta__ = { "_gizmo_extents_": 0.0 } [node name="BlinkTimer" type="Timer" parent="."] +[node name="TextAnim" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 21 ) +"anims/come here" = SubResource( 23 ) +"anims/help me" = SubResource( 22 ) +"anims/here take this" = SubResource( 24 ) + +[node name="Dialogue" type="Node2D" parent="."] + +[node name="HereTakeThis" type="Label" parent="Dialogue"] +visible = false +material = ExtResource( 6 ) +margin_left = -48.0 +margin_top = -22.0 +margin_right = 57.0 +margin_bottom = 1.0 +theme = ExtResource( 5 ) +text = "Here, take this" +align = 1 + +[node name="ComeHere" type="Label" parent="Dialogue"] +visible = false +material = ExtResource( 6 ) +margin_left = -96.0 +margin_top = -22.0 +margin_right = 9.0 +margin_bottom = -8.0 +theme = ExtResource( 5 ) +text = "Hey, come here!" + +[node name="HelpMe" type="Label" parent="Dialogue"] +visible = false +material = ExtResource( 6 ) +margin_left = -76.0 +margin_top = -33.0 +margin_right = 8.0 +margin_bottom = -10.0 +theme = ExtResource( 5 ) +text = "Help me get +outta here!" +align = 1 + [connection signal="timeout" from="BlinkTimer" to="." method="_on_BlinkTimer_timeout"] diff --git a/project.godot b/project.godot index 0e51b2c..ad831ff 100644 --- a/project.godot +++ b/project.godot @@ -72,6 +72,7 @@ config/name="Revolution 2083" run/main_scene="res://menus/splash_screen.tscn" config/use_custom_user_dir=true config/custom_user_dir_name="heromark2" +boot_splash/show_image=false config/icon="res://icon.png" [autoload]