StartMenu save slot improvements! (-;

now with a display to show Player colors + gems & notes!
This commit is contained in:
Harmony Honey 2024-01-12 01:41:41 -05:00
parent 7e1a59fc8f
commit a3ed3e3f45
6 changed files with 485 additions and 62 deletions

View file

@ -61,9 +61,7 @@ func _ready():
if Engine.editor_hint: return
# palette
var parts = ["hat", "skin", "suit", "eye", "shoe"]
for i in 5:
sprite_mat.set_shader_param(parts[i] + "_swap", Shared.palette[Shared.player_colors[clamp(i, 0, 3)]])
set_palette(sprite_mat)
node_sprite.flip_h = randf() > 0.5
@ -78,6 +76,12 @@ func _ready():
Shared.node_camera_game.node_target = self
Shared.node_camera_game.pos_target_offset = Vector2(4, 4)
static func set_palette(_mat, _colors := Shared.player_colors, _palette := Shared.palette):
if _mat is ShaderMaterial:
var parts = ["hat", "skin", "suit", "eye", "shoe"]
for i in 5:
_mat.set_shader_param(parts[i] + "_swap", _palette[_colors[clamp(i, 0, 3)]])
# holding pickup
func just_moved():
if is_pickup:

View file

@ -30,6 +30,7 @@ var save_path := "user://save/"
var save_filename := "box.save"
var scene_dict := {}
var replays := {}
var is_save := false
var window_scale := 1
var view_size := Vector2(228, 128)
@ -60,11 +61,6 @@ var preset_palettes = [[7, 13, 6, 3], [8, 0, 11, 13], [11, 7, 9, 0], [12, 1, 7,
func _ready():
print("Shared._ready(): ")
randomize()
# create player
player_colors = preset_palettes[randi() % preset_palettes.size()]
username = generate_username()
# ghosts
for i in ghost_count:
@ -86,7 +82,7 @@ func _ready():
for i in dir_list(map_dir):
scene_dict[map_dir + i] = load(map_dir + i)
maps.append(i.split(".")[0])
print("maps: ", maps, " ", maps.size(), " ", scene_dict)
#print("maps: ", maps, " ", maps.size(), " ", scene_dict)
# make save folders
var dir = Directory.new()
@ -148,7 +144,8 @@ func wipe_finish():
func change_map():
count_score()
save()
if is_save:
save()
if is_win:
save_replays()
@ -157,6 +154,7 @@ func change_map():
get_tree().change_scene_to(scene_dict[scene_path])
is_win = false
is_save = false
is_level_select = scene_path == level_select_path
is_in_game = scene_path.begins_with(map_dir)
map_name = "" if !is_in_game else scene_path.split("/")[-1].trim_suffix(".tscn")
@ -247,14 +245,17 @@ func load_slots():
func load_save(_slot = save_slot, _dict := {}):
save_slot = clamp(_slot, 0, 2)
var save_string = save_path + str(save_slot) + "/" + save_filename
save_data[save_slot] = {}
var s = save_data[save_slot]
save_maps = {}
if _dict.empty():
var l = load_file(save_path + str(save_slot) + "/" + save_filename)
var l = load_file(save_string)
if l: _dict = JSON.parse(l).result
else: print(save_string + " not found")
print(_slot, " / ", _dict)
if !_dict.empty():
if _dict.has("username"):
username = _dict["username"]
@ -271,8 +272,6 @@ func load_save(_slot = save_slot, _dict := {}):
count_score()
s["gems"] = count_gems
s["notes"] = count_notes
print(save_path + save_filename + " not found")
func load_replays():
replays = {}
@ -310,6 +309,7 @@ func unlock():
func win():
is_win = true
is_save = true
# map
if !save_maps.has(map_name):
@ -366,6 +366,7 @@ func die():
Leaderboard.submit_score("death", 1, map_name)
print("you died")
# look into a folder and return a list of filenames without file extension
func dir_list(path : String):
var array = []

View file

@ -22,6 +22,7 @@ var is_input := true
export var blink_on := 0.3
export var blink_off := 0.2
var blink_clock := 0.0
export var color_blink : PoolColorArray = ["ff004d", "ff77a8"]
func _ready():
# setup rows & columns
@ -99,7 +100,7 @@ func _input(event):
elif cursor_y == rows.size() - 1:
if is_jump:
is_input = false
Shared.wipe_scene(Shared.main_menu_path)
Shared.wipe_scene(Shared.level_select_path)
Shared.username = name_label.text.to_lower()
Shared.player_colors = colors.duplicate()
Audio.play("menu_bell", 0.8, 1.2)
@ -126,10 +127,7 @@ func move_cursor(_x := cursor_x, _y = cursor_y):
func set_color(_row := cursor_y - 1, _col = colors[cursor_y - 1]):
colors[_row] = wrapi(_col, 0, Shared.palette.size())
var params = [["hat"], ["skin"], ["suit"], ["eye", "shoe"]]
for i in params[_row]:
player_mat.set_shader_param(i + "_swap", Shared.palette[colors[_row]])
Player.set_palette(player_mat, colors)
func fill_swatches(_row := cursor_y -1):
var offset = [-2, -1, 0, 1, 2]
@ -141,4 +139,4 @@ func _physics_process(delta):
blink_clock -= delta
if blink_clock < -blink_off:
blink_clock = blink_on
cursors_parent.modulate = Color("ff004d" if blink_clock > 0.0 else "ff77a8")
cursors_parent.modulate = color_blink[int(blink_clock > 0.0)]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=18 format=2]
[gd_scene load_steps=24 format=2]
[ext_resource path="res://src/stage/SolidTileMap.tscn" type="PackedScene" id=1]
[ext_resource path="res://media/image/player_swap.png" type="Texture" id=2]
@ -9,8 +9,107 @@
[ext_resource path="res://media/font/QuinqueFive.ttf" type="DynamicFontData" id=7]
[ext_resource path="res://src/menu/Creator.gd" type="Script" id=8]
[ext_resource path="res://media/font/ThaleahFat.ttf" type="DynamicFontData" id=9]
[ext_resource path="res://media/image/crate_tiles.png" type="Texture" id=10]
[ext_resource path="res://media/image/bricks.png" type="Texture" id=11]
[ext_resource path="res://media/image/solid_bricks.png" type="Texture" id=12]
[ext_resource path="res://media/image/8pixel.png" type="Texture" id=13]
[sub_resource type="Shader" id=8]
[sub_resource type="TileSet" id=18]
0/name = "solid_bricks.png 0"
0/texture = ExtResource( 12 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 0.745098, 0.0705882, 0.313726, 1 )
0/region = Rect2( 0, 0, 16, 8 )
0/tile_mode = 2
0/autotile/icon_coordinate = Vector2( 0, 0 )
0/autotile/tile_size = Vector2( 8, 8 )
0/autotile/spacing = 0
0/autotile/occluder_map = [ ]
0/autotile/navpoly_map = [ ]
0/autotile/priority_map = [ ]
0/autotile/z_index_map = [ ]
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape_one_way = false
0/shape_one_way_margin = 0.0
0/shapes = [ ]
0/z_index = 0
1/name = "8pixel.png 1"
1/texture = ExtResource( 13 )
1/tex_offset = Vector2( 0, 0 )
1/modulate = Color( 1, 0, 1, 0.33 )
1/region = Rect2( 0, 0, 8, 8 )
1/tile_mode = 0
1/occluder_offset = Vector2( 0, 0 )
1/navigation_offset = Vector2( 0, 0 )
1/shape_offset = Vector2( 0, 0 )
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
1/shape_one_way = false
1/shape_one_way_margin = 0.0
1/shapes = [ ]
1/z_index = 0
[sub_resource type="TileSet" id=19]
4/name = "bricks.png 4"
4/texture = ExtResource( 11 )
4/tex_offset = Vector2( 0, 0 )
4/modulate = Color( 0.372549, 0.341176, 0.309804, 1 )
4/region = Rect2( 0, 0, 40, 8 )
4/tile_mode = 2
4/autotile/icon_coordinate = Vector2( 0, 0 )
4/autotile/tile_size = Vector2( 8, 8 )
4/autotile/spacing = 0
4/autotile/occluder_map = [ ]
4/autotile/navpoly_map = [ ]
4/autotile/priority_map = [ ]
4/autotile/z_index_map = [ ]
4/occluder_offset = Vector2( 0, 0 )
4/navigation_offset = Vector2( 0, 0 )
4/shape_offset = Vector2( 0, 0 )
4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
4/shape_one_way = false
4/shape_one_way_margin = 0.0
4/shapes = [ ]
4/z_index = 0
5/name = "crate_tiles.png 5"
5/texture = ExtResource( 10 )
5/tex_offset = Vector2( 0, 0 )
5/modulate = Color( 0, 0.529412, 0.317647, 1 )
5/region = Rect2( 0, 16, 24, 8 )
5/tile_mode = 2
5/autotile/icon_coordinate = Vector2( 0, 0 )
5/autotile/tile_size = Vector2( 8, 8 )
5/autotile/spacing = 0
5/autotile/occluder_map = [ ]
5/autotile/navpoly_map = [ ]
5/autotile/priority_map = [ ]
5/autotile/z_index_map = [ ]
5/occluder_offset = Vector2( 0, 0 )
5/navigation_offset = Vector2( 0, 0 )
5/shape_offset = Vector2( 0, 0 )
5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
5/shape_one_way = false
5/shape_one_way_margin = 0.0
5/shapes = [ ]
5/z_index = 0
6/name = "crate_tiles.png 6"
6/texture = ExtResource( 10 )
6/tex_offset = Vector2( 0, 0 )
6/modulate = Color( 0.670588, 0.321569, 0.211765, 1 )
6/region = Rect2( 0, 24, 8, 8 )
6/tile_mode = 0
6/occluder_offset = Vector2( 0, 0 )
6/navigation_offset = Vector2( 0, 0 )
6/shape_offset = Vector2( 0, 0 )
6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
6/shape_one_way = false
6/shape_one_way_margin = 0.0
6/shapes = [ ]
6/z_index = 0
[sub_resource type="Shader" id=20]
code = "shader_type canvas_item;
uniform vec4 hat : hint_color = vec4(0.0);
@ -49,7 +148,7 @@ void fragment(){
}"
[sub_resource type="ShaderMaterial" id=17]
shader = SubResource( 8 )
shader = SubResource( 20 )
shader_param/hat = Color( 1, 0, 0, 1 )
shader_param/eye = Color( 0, 1, 0, 1 )
shader_param/skin = Color( 0, 0, 1, 1 )
@ -139,10 +238,12 @@ font_data = ExtResource( 7 )
script = ExtResource( 8 )
[node name="SolidTileMap" parent="." instance=ExtResource( 1 )]
tile_set = SubResource( 18 )
tile_data = PoolIntArray( 458729, 0, 1, 458730, 0, 1, 458731, 0, 1, 458732, 0, 1, 458733, 536870912, 0, 458734, 0, 1, 458735, 0, 0, 458736, 0, 1, 458737, 536870912, 0, 458738, 536870912, 1, 524274, 0, 0, 589810, 536870912, 1, 655346, 536870912, 0 )
[node name="DetailTileMap" parent="." instance=ExtResource( 4 )]
z_index = -11
tile_set = SubResource( 19 )
tile_data = PoolIntArray( 65516, 5, 0, 65517, 5, 0, 65518, 5, 0, 65519, 5, 0, 65520, 5, 0, 131052, 5, 0, 131053, 5, 0, 131054, 5, 0, 131055, 5, 0, 131056, 5, 0, 196588, 1073741829, 2, 196589, 5, 0, 196590, 5, 0, 196591, 5, 0, 196592, 1610612741, 2, 262125, 1073741829, 2, 262126, 5, 0, 262127, 1610612741, 2, 327662, 5, 1, 393198, 5, 1, 524273, 1073741829, 2, 524275, -1610612731, 2, 589811, -1610612731, 0, 655347, -1610612731, 0 )
[node name="GameCamera" parent="." instance=ExtResource( 3 )]

View file

@ -4,6 +4,7 @@ onready var main_menu := $Control/Main
onready var quit_menu := $Control/Quit
onready var slot_menu := $Control/Slot
onready var menu_stuff := main_menu.get_children()
onready var cursor_node := $Control/Cursor
var cursor := 0 setget set_cursor
var menu_items := []
@ -15,14 +16,47 @@ var is_input = true
export var blink_on := 0.3
export var blink_off := 0.2
var blink_clock := 0.0
export var cursor_offset := Vector2.ZERO
export var cursor_expand := Vector2.ZERO
export var color_select := Color.white
export var color_deselect := Color(1,1,1, 0.7)
export var color_blink : PoolColorArray = ["ff004d", "ff77a8"]
func _enter_tree():
randomize()
Shared.player_colors = Shared.preset_palettes[randi() % Shared.preset_palettes.size()]
func _ready():
switch_menu("main", true)
Shared.load_slots()
var smc = slot_menu.get_children()
for i in smc.size():
smc[i].text = str(Shared.save_data[i]["gems"]) + " win"
var slot_items := slot_menu.get_children()
for i in 3:
var si = slot_items[i]
var sd = Shared.save_data[i]
var gem_label = si.get_node("Label0")
var note_label = si.get_node("Label1")
var note_image = si.get_node("Image1")
var player_mat = si.get_node("Player/Sprite").material
if sd.empty():
for y in si.get_children():
var is_name : bool = y.name == "Label0"
y.visible = is_name
if is_name: y.text = "new run"
else:
if sd.has("gems"):
gem_label.text = str(sd["gems"])
if sd.has("notes") and int(sd["notes"]) > 0:
note_label.text = str(sd["notes"])
else:
note_label.visible = false
note_image.visible = false
if sd.has("player_colors"):
Player.set_palette(player_mat, sd["player_colors"])
func _input(event):
if !is_input:
@ -43,11 +77,14 @@ func _physics_process(delta):
blink_clock -= delta
if blink_clock < -blink_off:
blink_clock = blink_on
menu_stuff[cursor].modulate = Color("ff004d" if blink_clock > 0.0 else "ff77a8")
cursor_node.modulate = color_blink[int(blink_clock > 0.0)]
func write_menu():
cursor_node.rect_global_position = menu_stuff[cursor].rect_global_position + cursor_offset
cursor_node.rect_size = menu_stuff[cursor].rect_size + cursor_expand
for i in menu_items.size():
menu_stuff[i].modulate = Color("ff004d") if i == cursor else Color("83769c")
menu_stuff[i].modulate = color_select if i == cursor else color_deselect
func menu_select(tag : String = menu_items[cursor].to_lower()):
match tag:
@ -76,9 +113,12 @@ func menu_select(tag : String = menu_items[cursor].to_lower()):
"no":
switch_menu("main")
"slot":
Shared.load_slot(cursor)
Shared.wipe_scene(Shared.level_select_path)
is_input = false
if Shared.save_data[cursor].empty():
Shared.wipe_scene(Shared.creator_path)
else:
Shared.load_slot(cursor)
Shared.wipe_scene(Shared.level_select_path)
Audio.play("menu_play", 0.9, 1.1)
func switch_menu(arg, silent := false):

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=25 format=2]
[gd_scene load_steps=31 format=2]
[ext_resource path="res://media/image/creator.png" type="Texture" id=1]
[ext_resource path="res://media/image/crate_tiles.png" type="Texture" id=2]
@ -18,6 +18,8 @@
[ext_resource path="res://media/image/menu.png" type="Texture" id=16]
[ext_resource path="res://media/image/solid_bricks.png" type="Texture" id=17]
[ext_resource path="res://media/image/bricks.png" type="Texture" id=18]
[ext_resource path="res://media/image/player_swap.png" type="Texture" id=19]
[ext_resource path="res://media/image/diamond8.png" type="Texture" id=20]
[ext_resource path="res://media/font/QuinqueFive.ttf" type="DynamicFontData" id=24]
[sub_resource type="DynamicFont" id=3]
@ -25,6 +27,83 @@ extra_spacing_top = -3
extra_spacing_bottom = -3
font_data = ExtResource( 6 )
[sub_resource type="Shader" id=8]
code = "shader_type canvas_item;
uniform vec4 hat : hint_color = vec4(0.0);
uniform vec4 eye : hint_color = vec4(0.0);
uniform vec4 skin : hint_color = vec4(0.0);
uniform vec4 suit : hint_color = vec4(0.0);
uniform vec4 shoe : hint_color = vec4(0.0);
uniform vec4 hat_swap : hint_color = vec4(0.0);
uniform vec4 eye_swap : hint_color = vec4(0.0);
uniform vec4 skin_swap : hint_color = vec4(0.0);
uniform vec4 suit_swap : hint_color = vec4(0.0);
uniform vec4 shoe_swap : hint_color = vec4(0.0);
void fragment(){
vec4 col = texture(TEXTURE, UV);
if (col == hat){
col = hat_swap;
}
else if (col == eye){
col = eye_swap;
}
else if (col == skin){
col = skin_swap;
}
else if (col == suit){
col = suit_swap;
}
else if (col == shoe){
col = shoe_swap;
}
COLOR = col;
}"
[sub_resource type="ShaderMaterial" id=12]
shader = SubResource( 8 )
shader_param/hat = Color( 1, 0, 0, 1 )
shader_param/eye = Color( 0, 1, 0, 1 )
shader_param/skin = Color( 0, 0, 1, 1 )
shader_param/suit = Color( 1, 1, 0, 1 )
shader_param/shoe = Color( 1, 0, 1, 1 )
shader_param/hat_swap = Color( 0.160784, 0.678431, 1, 1 )
shader_param/eye_swap = Color( 0.780392, 0, 1, 1 )
shader_param/skin_swap = Color( 0.87451, 1, 0, 1 )
shader_param/suit_swap = Color( 0, 1, 0.180392, 1 )
shader_param/shoe_swap = Color( 1, 0.117647, 0, 1 )
[sub_resource type="ShaderMaterial" id=11]
shader = SubResource( 8 )
shader_param/hat = Color( 1, 0, 0, 1 )
shader_param/eye = Color( 0, 1, 0, 1 )
shader_param/skin = Color( 0, 0, 1, 1 )
shader_param/suit = Color( 1, 1, 0, 1 )
shader_param/shoe = Color( 1, 0, 1, 1 )
shader_param/hat_swap = Color( 1, 0.92549, 0.152941, 1 )
shader_param/eye_swap = Color( 1, 0.8, 0.666667, 1 )
shader_param/skin_swap = Color( 0.670588, 0.321569, 0.211765, 1 )
shader_param/suit_swap = Color( 0.160784, 0.678431, 1, 1 )
shader_param/shoe_swap = Color( 1, 0.8, 0.666667, 1 )
[sub_resource type="ShaderMaterial" id=10]
shader = SubResource( 8 )
shader_param/hat = Color( 1, 0, 0, 1 )
shader_param/eye = Color( 0, 1, 0, 1 )
shader_param/skin = Color( 0, 0, 1, 1 )
shader_param/suit = Color( 1, 1, 0, 1 )
shader_param/shoe = Color( 1, 0, 1, 1 )
shader_param/hat_swap = Color( 0.85098, 0, 0.662745, 1 )
shader_param/eye_swap = Color( 0.0901961, 0.482353, 0.788235, 1 )
shader_param/skin_swap = Color( 1, 0.8, 0.666667, 1 )
shader_param/suit_swap = Color( 0.87451, 0.14902, 0.14902, 1 )
shader_param/shoe_swap = Color( 0.0901961, 0.482353, 0.788235, 1 )
[sub_resource type="DynamicFont" id=4]
size = 48
extra_spacing_top = -11
@ -35,7 +114,7 @@ font_data = ExtResource( 5 )
size = 5
font_data = ExtResource( 24 )
[sub_resource type="TileSet" id=6]
[sub_resource type="TileSet" id=13]
0/name = "solid_bricks.png 0"
0/texture = ExtResource( 17 )
0/tex_offset = Vector2( 0, 0 )
@ -72,7 +151,7 @@ font_data = ExtResource( 24 )
1/shapes = [ ]
1/z_index = 0
[sub_resource type="TileSet" id=7]
[sub_resource type="TileSet" id=14]
4/name = "bricks.png 4"
4/texture = ExtResource( 18 )
4/tex_offset = Vector2( 0, 0 )
@ -136,6 +215,9 @@ script = ExtResource( 3 )
__meta__ = {
"_edit_horizontal_guides_": [ ]
}
cursor_offset = Vector2( -2, 0 )
cursor_expand = Vector2( 4, 0 )
color_deselect = Color( 1, 1, 1, 0.701961 )
[node name="Control" type="Control" parent="."]
margin_left = -24.0
@ -143,7 +225,15 @@ margin_top = 12.0
margin_right = 204.0
margin_bottom = 140.0
[node name="Cursor" type="ColorRect" parent="Control"]
modulate = Color( 1, 0, 0.301961, 1 )
margin_left = 5.0
margin_top = 37.0
margin_right = 47.0
margin_bottom = 47.0
[node name="Main" type="VBoxContainer" parent="Control"]
visible = false
margin_left = 4.0
margin_top = 32.0
margin_right = 68.0
@ -153,9 +243,10 @@ alignment = 1
[node name="Item" type="HBoxContainer" parent="Control/Main"]
margin_top = 4.0
margin_right = 64.0
margin_right = 43.0
margin_bottom = 16.0
rect_min_size = Vector2( 0, 12 )
size_flags_horizontal = 0
custom_constants/separation = 2
[node name="Image" type="Control" parent="Control/Main/Item"]
@ -181,9 +272,10 @@ uppercase = true
[node name="Item4" type="HBoxContainer" parent="Control/Main"]
margin_top = 21.0
margin_right = 64.0
margin_right = 42.0
margin_bottom = 33.0
rect_min_size = Vector2( 0, 12 )
size_flags_horizontal = 0
custom_constants/separation = 2
[node name="Image" type="Control" parent="Control/Main/Item4"]
@ -209,9 +301,10 @@ uppercase = true
[node name="Item2" type="HBoxContainer" parent="Control/Main"]
margin_top = 38.0
margin_right = 64.0
margin_right = 58.0
margin_bottom = 50.0
rect_min_size = Vector2( 0, 12 )
size_flags_horizontal = 0
custom_constants/separation = 2
[node name="Image" type="Control" parent="Control/Main/Item2"]
@ -238,9 +331,10 @@ uppercase = true
[node name="Item3" type="HBoxContainer" parent="Control/Main"]
margin_top = 55.0
margin_right = 64.0
margin_right = 58.0
margin_bottom = 67.0
rect_min_size = Vector2( 0, 12 )
size_flags_horizontal = 0
custom_constants/separation = 2
[node name="Image" type="Control" parent="Control/Main/Item3"]
@ -275,51 +369,236 @@ custom_constants/separation = 9
alignment = 1
[node name="Label" type="Label" parent="Control/Quit"]
margin_top = 23.0
margin_right = 69.0
margin_bottom = 31.0
margin_top = 21.0
margin_right = 42.0
margin_bottom = 29.0
rect_min_size = Vector2( 42, 0 )
size_flags_horizontal = 0
custom_fonts/font = SubResource( 3 )
text = "quit?"
align = 1
valign = 1
uppercase = true
[node name="No" type="Label" parent="Control/Quit"]
margin_top = 40.0
margin_right = 69.0
margin_bottom = 48.0
margin_top = 38.0
margin_right = 18.0
margin_bottom = 50.0
rect_min_size = Vector2( 18, 12 )
size_flags_horizontal = 0
custom_fonts/font = SubResource( 3 )
text = "no"
align = 1
valign = 1
uppercase = true
[node name="Slot" type="VBoxContainer" parent="Control"]
margin_left = 12.0
margin_left = 4.0
margin_top = 32.0
margin_right = 81.0
margin_right = 64.0
margin_bottom = 104.0
custom_constants/separation = 9
custom_constants/separation = 5
alignment = 1
[node name="1" type="Label" parent="Control/Slot"]
margin_top = 15.0
margin_right = 69.0
margin_bottom = 23.0
[node name="0" type="HBoxContainer" parent="Control/Slot"]
margin_top = 13.0
margin_right = 60.0
margin_bottom = 25.0
rect_min_size = Vector2( 0, 12 )
size_flags_horizontal = 4
custom_constants/separation = 2
[node name="Player" type="Control" parent="Control/Slot/0"]
margin_right = 8.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 12 )
[node name="Sprite" type="Sprite" parent="Control/Slot/0/Player"]
material = SubResource( 12 )
position = Vector2( 4, 2 )
texture = ExtResource( 19 )
hframes = 7
region_rect = Rect2( 40, 0, 8, 24 )
[node name="Image0" type="Control" parent="Control/Slot/0"]
margin_left = 10.0
margin_right = 18.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 8 )
[node name="Sprite" type="Sprite" parent="Control/Slot/0/Image0"]
modulate = Color( 1, 0.92549, 0.152941, 1 )
position = Vector2( 4, 6 )
texture = ExtResource( 20 )
[node name="Label0" type="Label" parent="Control/Slot/0"]
margin_left = 20.0
margin_top = 2.0
margin_right = 34.0
margin_bottom = 10.0
custom_fonts/font = SubResource( 3 )
text = "27 win"
text = "11"
uppercase = true
[node name="2" type="Label" parent="Control/Slot"]
margin_top = 32.0
margin_right = 69.0
margin_bottom = 40.0
[node name="Image1" type="Control" parent="Control/Slot/0"]
margin_left = 36.0
margin_right = 44.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 8 )
[node name="Sprite" type="Sprite" parent="Control/Slot/0/Image1"]
modulate = Color( 0.160784, 0.678431, 1, 1 )
position = Vector2( 0, 2 )
texture = ExtResource( 16 )
centered = false
hframes = 4
vframes = 4
frame = 5
[node name="Label1" type="Label" parent="Control/Slot/0"]
margin_left = 46.0
margin_top = 2.0
margin_right = 60.0
margin_bottom = 10.0
custom_fonts/font = SubResource( 3 )
text = "3 win"
text = "22"
uppercase = true
[node name="3" type="Label" parent="Control/Slot"]
margin_top = 49.0
margin_right = 69.0
margin_bottom = 57.0
[node name="1" type="HBoxContainer" parent="Control/Slot"]
margin_top = 30.0
margin_right = 60.0
margin_bottom = 42.0
rect_min_size = Vector2( 0, 12 )
size_flags_horizontal = 4
custom_constants/separation = 2
[node name="Player" type="Control" parent="Control/Slot/1"]
margin_right = 8.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 12 )
[node name="Sprite" type="Sprite" parent="Control/Slot/1/Player"]
material = SubResource( 11 )
position = Vector2( 4, 2 )
texture = ExtResource( 19 )
hframes = 7
region_rect = Rect2( 40, 0, 8, 24 )
[node name="Image0" type="Control" parent="Control/Slot/1"]
margin_left = 10.0
margin_right = 18.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 8 )
[node name="Sprite" type="Sprite" parent="Control/Slot/1/Image0"]
modulate = Color( 1, 0.92549, 0.152941, 1 )
position = Vector2( 4, 6 )
texture = ExtResource( 20 )
[node name="Sprite2" type="Sprite" parent="Control/Slot/1/Image0"]
visible = false
position = Vector2( 0, 2 )
texture = ExtResource( 16 )
centered = false
hframes = 4
vframes = 4
frame = 6
[node name="Label0" type="Label" parent="Control/Slot/1"]
margin_left = 20.0
margin_top = 2.0
margin_right = 34.0
margin_bottom = 10.0
custom_fonts/font = SubResource( 3 )
text = "new game"
text = "51"
uppercase = true
[node name="Image1" type="Control" parent="Control/Slot/1"]
margin_left = 36.0
margin_right = 44.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 8 )
[node name="Sprite" type="Sprite" parent="Control/Slot/1/Image1"]
modulate = Color( 0.160784, 0.678431, 1, 1 )
position = Vector2( 0, 2 )
texture = ExtResource( 16 )
centered = false
hframes = 4
vframes = 4
frame = 5
[node name="Label1" type="Label" parent="Control/Slot/1"]
margin_left = 46.0
margin_top = 2.0
margin_right = 60.0
margin_bottom = 10.0
custom_fonts/font = SubResource( 3 )
text = "73"
uppercase = true
[node name="2" type="HBoxContainer" parent="Control/Slot"]
margin_top = 47.0
margin_right = 60.0
margin_bottom = 59.0
rect_min_size = Vector2( 0, 12 )
size_flags_horizontal = 4
custom_constants/separation = 2
[node name="Player" type="Control" parent="Control/Slot/2"]
margin_right = 8.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 12 )
[node name="Sprite" type="Sprite" parent="Control/Slot/2/Player"]
material = SubResource( 10 )
position = Vector2( 4, 2 )
texture = ExtResource( 19 )
hframes = 7
region_rect = Rect2( 40, 0, 8, 24 )
[node name="Image0" type="Control" parent="Control/Slot/2"]
margin_left = 10.0
margin_right = 18.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 8 )
[node name="Sprite" type="Sprite" parent="Control/Slot/2/Image0"]
modulate = Color( 1, 0.92549, 0.152941, 1 )
position = Vector2( 4, 6 )
texture = ExtResource( 20 )
[node name="Label0" type="Label" parent="Control/Slot/2"]
margin_left = 20.0
margin_top = 2.0
margin_right = 34.0
margin_bottom = 10.0
custom_fonts/font = SubResource( 3 )
text = "48"
uppercase = true
[node name="Image1" type="Control" parent="Control/Slot/2"]
margin_left = 36.0
margin_right = 44.0
margin_bottom = 12.0
rect_min_size = Vector2( 8, 8 )
[node name="Sprite" type="Sprite" parent="Control/Slot/2/Image1"]
modulate = Color( 0.160784, 0.678431, 1, 1 )
position = Vector2( 0, 2 )
texture = ExtResource( 16 )
centered = false
hframes = 4
vframes = 4
frame = 5
[node name="Label1" type="Label" parent="Control/Slot/2"]
margin_left = 46.0
margin_top = 2.0
margin_right = 60.0
margin_bottom = 10.0
custom_fonts/font = SubResource( 3 )
text = "96"
uppercase = true
[node name="Header" type="Label" parent="Control"]
@ -353,12 +632,12 @@ valign = 2
[node name="Stage" type="Node2D" parent="."]
[node name="SolidTileMap" parent="Stage" instance=ExtResource( 11 )]
tile_set = SubResource( 6 )
tile_set = SubResource( 13 )
tile_data = PoolIntArray( 393222, 0, 0, 393223, 0, 1, 393224, 0, 0, 393225, 0, 1, 393226, 536870912, 0, 458758, 0, 1, 524294, 0, 0, 589830, 0, 1, 655366, 536870912, 0, 720902, 0, 1, 786438, 0, 0, 786442, 0, 0, 786443, 0, 1, 786444, 536870912, 0, 786448, 0, 0, 786449, 0, 1, 786450, 536870912, 0, 786451, 0, 1, 786452, 0, 0, 786453, 0, 1, 786454, 536870912, 0 )
[node name="DetailTileMap" parent="Stage" instance=ExtResource( 8 )]
z_index = -11
tile_set = SubResource( 7 )
tile_set = SubResource( 14 )
tile_data = PoolIntArray( 131093, 536870916, 3, 131094, 4, 1, 131095, 4, 0, 131096, 4, 3, 196624, 5, 2, 196625, 5, 0, 196626, -1610612731, 2, 196630, 536870916, 0, 196631, 4, 1, 196632, 4, 0, 262154, 536870916, 3, 262155, 536870916, 0, 262156, 4, 3, 262159, 5, 2, 262160, 5, 0, 262161, 5, 0, 262162, 5, 0, 262163, -1610612731, 2, 262166, 4, 1, 262167, 4, 0, 262168, 4, 1, 327685, 5, 2, 327686, 5, 0, 327687, 5, 0, 327688, 5, 0, 327689, 536870917, 2, 327690, 536870916, 0, 327691, 4, 1, 327692, 4, 0, 327695, -1610612731, 0, 327696, 5, 0, 327697, 5, 0, 327698, 5, 0, 327699, -1073741819, 0, 327701, 536870916, 3, 327702, 4, 0, 327703, 4, 1, 327704, 536870916, 2, 393221, -1073741819, 0, 393227, 4, 1, 393228, 4, 0, 393229, 4, 3, 393231, -1073741819, 2, 393232, 5, 0, 393233, 5, 0, 393234, 5, 0, 393235, -536870907, 2, 393237, 536870916, 0, 393238, 4, 1, 393239, 536870916, 0, 458757, -1073741819, 2, 458759, -1610612731, 2, 458762, 4, 1, 458763, 536870916, 0, 458764, 4, 1, 458765, 4, 0, 458768, -1073741819, 2, 458769, 5, 0, 458770, 1610612741, 2, 458773, 4, 2, 458774, 4, 0, 458775, 4, 1, 458776, 4, 3, 524295, -1610612731, 0, 524298, 4, 2, 524299, 4, 1, 524300, 536870916, 0, 524301, 4, 1, 524302, 4, 3, 524305, 6, 0, 524310, 4, 2, 524311, 536870916, 0, 524312, 536870916, 2, 589831, -1610612730, 0, 589832, -1610612731, 0, 589836, 4, 2, 589837, 4, 1, 589838, 4, 0, 589839, 4, 3, 589841, 6, 0, 589842, -536870907, 2, 655367, -1610612731, 0, 655373, 536870916, 3, 655374, 4, 1, 655375, 536870916, 0, 655377, 6, 0, 720901, -2147483643, 2, 720903, -536870907, 2, 720905, 5, 2, 720906, 5, 0, 720907, 5, 0, 720908, 536870917, 2, 720909, 536870916, 3, 720910, 536870916, 0, 720911, 536870916, 2, 720912, 5, 2, 720913, 6, 0, 720914, 5, 0, 720915, 536870917, 2, 720917, 5, 2, 720918, 5, 0, 720919, 536870917, 2, 786437, -2147483643, 0, 786441, -1073741819, 0, 786455, -1610612731, 0, 851973, -1073741819, 2, 851974, 1610612741, 2, 851977, 1073741829, 2, 851978, 5, 0, 851979, 1610612741, 2, 851982, 4, 1, 851983, 4, 0, 851987, 1073741829, 2, 851988, 5, 0, 851989, 6, 0, 851990, 5, 0, 851991, -536870907, 2, 917517, 536870916, 0, 917518, 4, 1, 917519, 536870916, 2, 917525, 1610612741, 2, 983053, 4, 2, 983054, 4, 0, 983055, 536870916, 2 )
[node name="GameCamera" parent="Stage" instance=ExtResource( 13 )]