Merge branch 'main' into demo
BIN
audio/sounds/msx_come_here.ogg
Normal file
15
audio/sounds/msx_come_here.ogg.import
Normal file
|
@ -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
|
BIN
audio/sounds/msx_fuck.ogg
Normal file
15
audio/sounds/msx_fuck.ogg.import
Normal file
|
@ -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
|
BIN
audio/sounds/msx_fucking_cop.ogg
Normal file
15
audio/sounds/msx_fucking_cop.ogg.import
Normal file
|
@ -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
|
BIN
audio/sounds/msx_goddammit.ogg
Normal file
15
audio/sounds/msx_goddammit.ogg.import
Normal file
|
@ -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
|
BIN
audio/sounds/msx_help_me_get_outta_here.ogg
Normal file
15
audio/sounds/msx_help_me_get_outta_here.ogg.import
Normal file
|
@ -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
|
BIN
audio/sounds/msx_here_take_this.wav
Normal file
23
audio/sounds/msx_here_take_this.wav.import
Normal file
|
@ -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
|
BIN
audio/sounds/msx_motherfucker.ogg
Normal file
15
audio/sounds/msx_motherfucker.ogg.import
Normal file
|
@ -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
|
BIN
audio/sounds/msx_shit.ogg
Normal file
15
audio/sounds/msx_shit.ogg.import
Normal file
|
@ -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
|
|
@ -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):
|
||||
|
|
|
@ -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"]
|
||||
|
|
Before Width: | Height: | Size: 199 B After Width: | Height: | Size: 199 B |
BIN
graphics/hud/msx_head.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
35
graphics/hud/msx_head.png.import
Normal file
|
@ -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
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -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"]
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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="."]
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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()
|
||||
|
|
3
objects/hud/msx_off_level_indicator.gd
Normal file
|
@ -0,0 +1,3 @@
|
|||
extends Node2D
|
||||
|
||||
onready var anims = $AnimationPlayer
|
212
objects/hud/msx_off_level_indicator.tscn
Normal file
|
@ -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 )
|
|
@ -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="."]
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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]
|
||||
|
|