Merge branch 'main' into demo

This commit is contained in:
Haze Weathers 2023-12-29 03:05:28 -05:00
commit fc538a2d2a
36 changed files with 958 additions and 58 deletions

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

View file

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

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 199 B

Before After
Before After

BIN
graphics/hud/msx_head.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,3 @@
extends Node2D
onready var anims = $AnimationPlayer

View 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 )

View file

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

View file

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

View file

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

View file

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