diff --git a/components/Scenes/FullscreenPanels/CompilingTip.tscn b/components/Scenes/FullscreenPanels/CompilingTip.tscn
index 5268b25..8c43313 100644
--- a/components/Scenes/FullscreenPanels/CompilingTip.tscn
+++ b/components/Scenes/FullscreenPanels/CompilingTip.tscn
@@ -1,26 +1,140 @@
-[gd_scene load_steps=5 format=3 uid="uid://dxs5j0km0n2n4"]
+[gd_scene format=3 uid="uid://dxs5j0km0n2n4"]
[ext_resource type="PackedScene" uid="uid://d3qojeqa3difn" path="res://components/Abstracts/FullscreenPanelBase.tscn" id="1_vd4qa"]
[ext_resource type="Script" uid="uid://dubab2jnii6et" path="res://scripts/Contents/Panels/CompilingTip.gd" id="2_3guax"]
-[ext_resource type="Texture2D" uid="uid://bgrjcmcsg1okc" path="res://resources/comics/start.svg" id="2_64ee7"]
+[ext_resource type="Texture2D" uid="uid://b224jte54e12a" path="res://resources/comics/building.png" id="3_3guax"]
+[ext_resource type="Shader" uid="uid://csx5am14p4ai0" path="res://scripts/BottomShadow.gdshader" id="3_4yjva"]
+[ext_resource type="Texture2D" uid="uid://bvg17q1dhperq" path="res://resources/comics/vs.png" id="5_d7ld8"]
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_64ee7"]
-content_margin_top = 60.0
-content_margin_bottom = 60.0
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_d7ld8"]
+shader = ExtResource("3_4yjva")
+shader_parameter/prog = 0.5000000074506
-[node name="CompilingTip" instance=ExtResource("1_vd4qa")]
+[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_4yjva"]
+content_margin_bottom = 50.0
+
+[sub_resource type="LabelSettings" id="LabelSettings_d7ld8"]
+font_size = 40
+
+[sub_resource type="Animation" id="Animation_d7ld8"]
+length = 0.001
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:modulate:a")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/1/type = "bezier"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath(".:position:y")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0)
+}
+
+[sub_resource type="Animation" id="Animation_lyv8o"]
+resource_name = "show"
+length = 0.5
+step = 0.1
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:modulate:a")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+tracks/1/type = "bezier"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath(".:position:y")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 100, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+
+[sub_resource type="Animation" id="Animation_vyjm7"]
+resource_name = "show"
+length = 0.5
+step = 0.1
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:modulate:a")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+tracks/1/type = "bezier"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath(".:position:y")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(-500, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_ms4bw"]
+_data = {
+&"RESET": SubResource("Animation_d7ld8"),
+&"hide": SubResource("Animation_lyv8o"),
+&"show": SubResource("Animation_vyjm7")
+}
+
+[node name="CompilingTip" unique_id=2114082839 instance=ExtResource("1_vd4qa")]
offset_top = 0.0
offset_bottom = 0.0
script = ExtResource("2_3guax")
-[node name="container" type="PanelContainer" parent="content/wrapper" index="0"]
-layout_mode = 2
-size_flags_vertical = 3
-theme_override_styles/panel = SubResource("StyleBoxEmpty_64ee7")
+[node name="background" parent="content" index="0"]
+color = Color(0, 0, 0, 1)
-[node name="comic" type="TextureRect" parent="content/wrapper/container" index="0"]
+[node name="back" type="TextureRect" parent="content" index="1" unique_id=467487910]
+material = SubResource("ShaderMaterial_d7ld8")
layout_mode = 2
-size_flags_vertical = 3
-texture = ExtResource("2_64ee7")
-expand_mode = 1
+texture = ExtResource("3_3guax")
+expand_mode = 2
stretch_mode = 5
+
+[node name="wrapper" parent="content" index="2"]
+theme_override_constants/separation = 60
+alignment = 2
+
+[node name="sword" type="TextureRect" parent="content/wrapper" index="0" unique_id=486975914]
+layout_mode = 2
+texture = ExtResource("5_d7ld8")
+stretch_mode = 5
+
+[node name="wrapper" type="PanelContainer" parent="content/wrapper" index="1" unique_id=265878383]
+layout_mode = 2
+theme_override_styles/panel = SubResource("StyleBoxEmpty_4yjva")
+
+[node name="tip" type="Label" parent="content/wrapper/wrapper" index="0" unique_id=1334624287]
+layout_mode = 2
+size_flags_horizontal = 4
+text = "正在编译着色器......剑已出鞘。"
+label_settings = SubResource("LabelSettings_d7ld8")
+
+[node name="animator" parent="." index="1"]
+libraries/ = SubResource("AnimationLibrary_ms4bw")
diff --git a/components/Scenes/FullscreenPanels/SelectInitialFeed.tscn b/components/Scenes/FullscreenPanels/SelectInitialFeed.tscn
index dd3a0ae..b384e73 100644
--- a/components/Scenes/FullscreenPanels/SelectInitialFeed.tscn
+++ b/components/Scenes/FullscreenPanels/SelectInitialFeed.tscn
@@ -1,9 +1,12 @@
-[gd_scene load_steps=3 format=3 uid="uid://db6srdvtd8gfx"]
+[gd_scene format=3 uid="uid://db6srdvtd8gfx"]
[ext_resource type="PackedScene" uid="uid://d3qojeqa3difn" path="res://components/Abstracts/FullscreenPanelBase.tscn" id="1_xc345"]
[ext_resource type="Script" uid="uid://d02nijqx4oagh" path="res://scripts/Contents/Panels/SelectIntialFeed.gd" id="2_eugsq"]
-[node name="SelectInitialFeed" instance=ExtResource("1_xc345")]
+[sub_resource type="LabelSettings" id="LabelSettings_eugsq"]
+font_size = 20
+
+[node name="SelectInitialFeed" unique_id=245861480 instance=ExtResource("1_xc345")]
offset_top = 0.0
offset_bottom = 0.0
script = ExtResource("2_eugsq")
@@ -11,38 +14,45 @@ script = ExtResource("2_eugsq")
[node name="wrapper" parent="content" index="1"]
theme_override_constants/separation = 40
-[node name="container" type="ScrollContainer" parent="content/wrapper" index="0"]
-layout_mode = 2
-follow_focus = true
-vertical_scroll_mode = 0
-
-[node name="wrapper" type="VBoxContainer" parent="content/wrapper/container" index="0"]
+[node name="wrapper" type="VBoxContainer" parent="content/wrapper" index="0" unique_id=905123993]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10
alignment = 1
-[node name="title1" type="Label" parent="content/wrapper/container/wrapper" index="0"]
+[node name="title1" type="Label" parent="content/wrapper/wrapper" index="0" unique_id=637422722]
unique_name_in_owner = true
layout_mode = 2
-size_flags_horizontal = 0
+size_flags_horizontal = 4
text = "在游戏开始前,你可以选择一项初始增益。"
+label_settings = SubResource("LabelSettings_eugsq")
-[node name="initialFeedSelection" type="HBoxContainer" parent="content/wrapper/container/wrapper" index="1"]
+[node name="container" type="ScrollContainer" parent="content/wrapper/wrapper" index="1" unique_id=465067132]
+layout_mode = 2
+follow_focus = true
+vertical_scroll_mode = 0
+
+[node name="initialFeedSelection" type="HBoxContainer" parent="content/wrapper/wrapper/container" index="0" unique_id=1363721283]
unique_name_in_owner = true
layout_mode = 2
-[node name="title2" type="Label" parent="content/wrapper/container/wrapper" index="2"]
+[node name="title2" type="Label" parent="content/wrapper/wrapper" index="2" unique_id=398646662]
unique_name_in_owner = true
layout_mode = 2
-size_flags_horizontal = 0
+size_flags_horizontal = 4
text = "在游戏开始前,你可以选择一个初始武器。"
+label_settings = SubResource("LabelSettings_eugsq")
-[node name="initialWeaponSelection" type="HBoxContainer" parent="content/wrapper/container/wrapper" index="3"]
+[node name="container2" type="ScrollContainer" parent="content/wrapper/wrapper" index="3" unique_id=474299205]
+layout_mode = 2
+follow_focus = true
+vertical_scroll_mode = 0
+
+[node name="initialWeaponSelection" type="HBoxContainer" parent="content/wrapper/wrapper/container2" index="0" unique_id=1933174501]
unique_name_in_owner = true
layout_mode = 2
-[node name="startBtn" type="Button" parent="content/wrapper" index="1"]
+[node name="startBtn" type="Button" parent="content/wrapper" index="1" unique_id=298849731]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
diff --git a/components/Scenes/FullscreenPanels/Starter.tscn b/components/Scenes/FullscreenPanels/Starter.tscn
index 09293b4..f187de4 100644
--- a/components/Scenes/FullscreenPanels/Starter.tscn
+++ b/components/Scenes/FullscreenPanels/Starter.tscn
@@ -1,14 +1,34 @@
-[gd_scene load_steps=10 format=3 uid="uid://c0r1i5tdbwljj"]
+[gd_scene format=3 uid="uid://c0r1i5tdbwljj"]
[ext_resource type="PackedScene" uid="uid://d3qojeqa3difn" path="res://components/Abstracts/FullscreenPanelBase.tscn" id="1_o0yse"]
[ext_resource type="Script" uid="uid://codlmfbuyis33" path="res://scripts/Contents/Panels/Starter.gd" id="2_ic0aq"]
-[ext_resource type="FontFile" uid="uid://v3frxpuvtj5o" path="res://resources/fonts/syht-bold.ttf" id="3_sopoi"]
+[ext_resource type="Shader" uid="uid://c2kaj6mt3dj45" path="res://shaders/TopShadow.gdshader" id="3_i7qv0"]
+[ext_resource type="Texture2D" uid="uid://dtw7ljiir0ug6" path="res://resources/comics/starterBack.png" id="3_sdsu8"]
[ext_resource type="Theme" uid="uid://dhvs6urgf6jr5" path="res://themes/main.tres" id="4_lfxcn"]
+[ext_resource type="Texture2D" uid="uid://bgi4bx6bsjv48" path="res://resources/icons/logo.png" id="5_i7qv0"]
-[sub_resource type="LabelSettings" id="LabelSettings_ch0dv"]
-font = ExtResource("3_sopoi")
-font_size = 45
-outline_size = 2
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_i7qv0"]
+shader = ExtResource("3_i7qv0")
+shader_parameter/prog = 0.5000000074506
+
+[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sdsu8"]
+content_margin_right = 60.0
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_i7qv0"]
+content_margin_left = 20.0
+content_margin_top = 20.0
+content_margin_right = 20.0
+content_margin_bottom = 20.0
+bg_color = Color(0, 0, 0, 0.70000005)
+border_width_left = 10
+border_width_right = 10
+border_color = Color(1, 1, 1, 1)
+border_blend = true
+corner_radius_top_left = 15
+corner_radius_top_right = 15
+corner_radius_bottom_right = 15
+corner_radius_bottom_left = 15
+corner_detail = 1
[sub_resource type="LabelSettings" id="LabelSettings_lfxcn"]
font_size = 20
@@ -24,92 +44,234 @@ outline_size = 1
[sub_resource type="LabelSettings" id="LabelSettings_i7qv0"]
font_size = 13
-[node name="Starter" instance=ExtResource("1_o0yse")]
+[sub_resource type="Animation" id="Animation_sdsu8"]
+length = 0.001
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:modulate:a")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/1/type = "bezier"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath(".:position:y")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0)
+}
+
+[sub_resource type="Animation" id="Animation_i7qv0"]
+resource_name = "show"
+length = 0.5
+step = 0.1
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:modulate:a")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+tracks/1/type = "bezier"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath(".:position:y")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 100, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+
+[sub_resource type="Animation" id="Animation_kl3ko"]
+resource_name = "loop"
+length = 3.0
+loop_mode = 1
+step = 0.1
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("content/anchor/logo:offset_bottom")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(-50, 0, 0, 1.5, -50, -50, -1.5, 50, 0, 0),
+"times": PackedFloat32Array(0, 3)
+}
+
+[sub_resource type="Animation" id="Animation_4ekdw"]
+resource_name = "show"
+length = 0.5
+step = 0.1
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:modulate:a")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+tracks/1/type = "bezier"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath(".:position:y")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"handle_modes": PackedInt32Array(0, 0),
+"points": PackedFloat32Array(-500, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0),
+"times": PackedFloat32Array(0, 0.5)
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_oirqs"]
+_data = {
+&"RESET": SubResource("Animation_sdsu8"),
+&"hide": SubResource("Animation_i7qv0"),
+&"loop": SubResource("Animation_kl3ko"),
+&"show": SubResource("Animation_4ekdw")
+}
+
+[node name="Starter" unique_id=195097455 instance=ExtResource("1_o0yse")]
offset_top = 0.0
offset_bottom = 0.0
script = ExtResource("2_ic0aq")
-[node name="wrapper" parent="content" index="1"]
+[node name="background" parent="content" index="0"]
+color = Color(0, 0, 0, 1)
+
+[node name="back" type="TextureRect" parent="content" index="1" unique_id=286391646]
+material = SubResource("ShaderMaterial_i7qv0")
+layout_mode = 2
+texture = ExtResource("3_sdsu8")
+expand_mode = 2
+
+[node name="anchor" type="Control" parent="content" index="2" unique_id=241813381]
+layout_mode = 2
+
+[node name="logo" type="TextureRect" parent="content/anchor" index="0" unique_id=879286455]
+layout_mode = 1
+anchors_preset = -1
+offset_left = 50.0
+offset_top = 50.0
+offset_right = 850.0
+offset_bottom = 145.0
+grow_vertical = 0
+texture = ExtResource("5_i7qv0")
+stretch_mode = 5
+
+[node name="wrapper" parent="content" index="3"]
theme_override_constants/separation = 30
-[node name="title" type="Label" parent="content/wrapper" index="0"]
+[node name="wrapper" type="PanelContainer" parent="content/wrapper" index="0" unique_id=756923034]
layout_mode = 2
-size_flags_horizontal = 4
-text = "公鸡大战狗熊"
-label_settings = SubResource("LabelSettings_ch0dv")
+size_flags_horizontal = 8
+theme_override_styles/panel = SubResource("StyleBoxEmpty_sdsu8")
-[node name="starter" type="VBoxContainer" parent="content/wrapper" index="1"]
+[node name="start" type="PanelContainer" parent="content/wrapper/wrapper" index="0" unique_id=1232082966]
+layout_mode = 2
+size_flags_horizontal = 8
+theme_override_styles/panel = SubResource("StyleBoxFlat_i7qv0")
+
+[node name="starter" type="VBoxContainer" parent="content/wrapper/wrapper/start" index="0" unique_id=2056064159]
layout_mode = 2
theme_override_constants/separation = 30
-[node name="singleplayer" type="VBoxContainer" parent="content/wrapper/starter" index="0"]
+[node name="singleplayer" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter" index="0" unique_id=1117567773]
layout_mode = 2
+theme_override_constants/separation = 20
-[node name="diffs" type="HBoxContainer" parent="content/wrapper/starter/singleplayer" index="0"]
+[node name="diffs" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer" index="0" unique_id=526058063]
layout_mode = 2
alignment = 1
-[node name="tip" type="Label" parent="content/wrapper/starter/singleplayer/diffs" index="0"]
+[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/diffs" index="0" unique_id=1507689450]
layout_mode = 2
text = "选择难度:"
-[node name="diffEdit" type="HSlider" parent="content/wrapper/starter/singleplayer/diffs" index="1"]
+[node name="diffEdit" type="HSlider" parent="content/wrapper/wrapper/start/starter/singleplayer/diffs" index="1" unique_id=1308866785]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
size_flags_vertical = 4
max_value = 0.0
-[node name="levelShow" type="Label" parent="content/wrapper/starter/singleplayer/diffs" index="2"]
+[node name="levelShow" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/diffs" index="2" unique_id=1102279314]
unique_name_in_owner = true
layout_mode = 2
text = "0 ∈ [0, 0]"
-[node name="start" type="HBoxContainer" parent="content/wrapper/starter/singleplayer" index="1"]
+[node name="start" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer" index="1" unique_id=1119283819]
layout_mode = 2
+theme_override_constants/separation = 10
alignment = 1
-[node name="playerNameInput" type="LineEdit" parent="content/wrapper/starter/singleplayer/start" index="0"]
+[node name="player" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="0" unique_id=656225175]
+layout_mode = 2
+
+[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/start/player" index="0" unique_id=1899542373]
+layout_mode = 2
+text = "角色名:"
+
+[node name="playerNameInput" type="LineEdit" parent="content/wrapper/wrapper/start/starter/singleplayer/start/player" index="1" unique_id=1401004968]
unique_name_in_owner = true
layout_mode = 2
+size_flags_horizontal = 3
size_flags_vertical = 4
theme = ExtResource("4_lfxcn")
text = "公鸡"
placeholder_text = "角色名"
+alignment = 1
expand_to_text_length = true
-virtual_keyboard_type = 7
select_all_on_focus = true
+virtual_keyboard_type = 7
-[node name="startSingleplayerBtn" type="Button" parent="content/wrapper/starter/singleplayer/start" index="1"]
+[node name="startSingleplayerBtn" type="Button" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="1" unique_id=935895475]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
theme = ExtResource("4_lfxcn")
text = "单人游戏"
-[node name="startMultiplayerBtn" type="Button" parent="content/wrapper/starter/singleplayer/start" index="2"]
+[node name="startMultiplayerBtn" type="Button" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="2" unique_id=1874616219]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
theme = ExtResource("4_lfxcn")
-disabled = true
text = "多人游戏"
-[node name="multiplayer" type="VBoxContainer" parent="content/wrapper/starter" index="1"]
+[node name="multiplayer" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter" index="1" unique_id=2010516457]
+visible = false
layout_mode = 2
theme_override_constants/separation = 15
alignment = 1
-[node name="main" type="VBoxContainer" parent="content/wrapper/starter/multiplayer" index="0"]
+[node name="main" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer" index="0" unique_id=255202573]
layout_mode = 2
-[node name="title" type="Label" parent="content/wrapper/starter/multiplayer/main" index="0"]
+[node name="title" type="Label" parent="content/wrapper/wrapper/start/starter/multiplayer/main" index="0" unique_id=504003020]
layout_mode = 2
size_flags_horizontal = 4
text = "多人游戏"
label_settings = SubResource("LabelSettings_lfxcn")
-[node name="connectionState" type="Label" parent="content/wrapper/starter/multiplayer/main" index="1"]
+[node name="connectionState" type="Label" parent="content/wrapper/wrapper/start/starter/multiplayer/main" index="1" unique_id=1479839873]
unique_name_in_owner = true
modulate = Color(1, 0, 0, 1)
layout_mode = 2
@@ -117,16 +279,16 @@ size_flags_horizontal = 4
text = "状态:未连接到服务器。"
label_settings = SubResource("LabelSettings_kl3ko")
-[node name="host" type="HBoxContainer" parent="content/wrapper/starter/multiplayer/main" index="2"]
+[node name="host" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer/main" index="2" unique_id=105458555]
layout_mode = 2
alignment = 1
-[node name="tip" type="Label" parent="content/wrapper/starter/multiplayer/main/host" index="0"]
+[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/multiplayer/main/host" index="0" unique_id=871253279]
layout_mode = 2
text = "地址"
label_settings = SubResource("LabelSettings_sdsu8")
-[node name="hostInput" type="LineEdit" parent="content/wrapper/starter/multiplayer/main/host" index="1"]
+[node name="hostInput" type="LineEdit" parent="content/wrapper/wrapper/start/starter/multiplayer/main/host" index="1" unique_id=1534443919]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("4_lfxcn")
@@ -134,15 +296,15 @@ text = "127.0.0.1"
placeholder_text = "主机"
expand_to_text_length = true
emoji_menu_enabled = false
-virtual_keyboard_type = 7
clear_button_enabled = true
select_all_on_focus = true
+virtual_keyboard_type = 7
-[node name="separator" type="Label" parent="content/wrapper/starter/multiplayer/main/host" index="2"]
+[node name="separator" type="Label" parent="content/wrapper/wrapper/start/starter/multiplayer/main/host" index="2" unique_id=1728951883]
layout_mode = 2
text = ":"
-[node name="portInput" type="LineEdit" parent="content/wrapper/starter/multiplayer/main/host" index="3"]
+[node name="portInput" type="LineEdit" parent="content/wrapper/wrapper/start/starter/multiplayer/main/host" index="3" unique_id=476929474]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("4_lfxcn")
@@ -150,58 +312,58 @@ text = "1145"
placeholder_text = "端口"
expand_to_text_length = true
emoji_menu_enabled = false
-virtual_keyboard_type = 2
select_all_on_focus = true
+virtual_keyboard_type = 2
-[node name="operation" type="HBoxContainer" parent="content/wrapper/starter/multiplayer/main" index="3"]
+[node name="operation" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer/main" index="3" unique_id=720531196]
layout_mode = 2
alignment = 1
-[node name="launchBtn" type="Button" parent="content/wrapper/starter/multiplayer/main/operation" index="0"]
+[node name="launchBtn" type="Button" parent="content/wrapper/wrapper/start/starter/multiplayer/main/operation" index="0" unique_id=480209339]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
text = "启动服务器"
-[node name="connectBtn" type="Button" parent="content/wrapper/starter/multiplayer/main/operation" index="1"]
+[node name="connectBtn" type="Button" parent="content/wrapper/wrapper/start/starter/multiplayer/main/operation" index="1" unique_id=921875653]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
text = "连接服务器"
-[node name="disconnectBtn" type="Button" parent="content/wrapper/starter/multiplayer/main/operation" index="2"]
+[node name="disconnectBtn" type="Button" parent="content/wrapper/wrapper/start/starter/multiplayer/main/operation" index="2" unique_id=1179706084]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
disabled = true
text = "断开连接"
-[node name="configs" type="HBoxContainer" parent="content/wrapper/starter/multiplayer" index="1"]
+[node name="configs" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer" index="1" unique_id=332744115]
layout_mode = 2
theme_override_constants/separation = 30
alignment = 1
-[node name="serverConfig" type="VBoxContainer" parent="content/wrapper/starter/multiplayer/configs" index="0"]
+[node name="serverConfig" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer/configs" index="0" unique_id=586906646]
unique_name_in_owner = true
visible = false
layout_mode = 2
-[node name="title" type="Label" parent="content/wrapper/starter/multiplayer/configs/serverConfig" index="0"]
+[node name="title" type="Label" parent="content/wrapper/wrapper/start/starter/multiplayer/configs/serverConfig" index="0" unique_id=838895828]
layout_mode = 2
size_flags_horizontal = 4
text = "服务器配置"
-[node name="maxPlayer" type="HBoxContainer" parent="content/wrapper/starter/multiplayer/configs/serverConfig" index="1"]
+[node name="maxPlayer" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer/configs/serverConfig" index="1" unique_id=233504210]
layout_mode = 2
alignment = 1
-[node name="title" type="Label" parent="content/wrapper/starter/multiplayer/configs/serverConfig/maxPlayer" index="0"]
+[node name="title" type="Label" parent="content/wrapper/wrapper/start/starter/multiplayer/configs/serverConfig/maxPlayer" index="0" unique_id=665443104]
layout_mode = 2
size_flags_horizontal = 4
text = "最大玩家数"
label_settings = SubResource("LabelSettings_i7qv0")
-[node name="maxPlayerInput" type="LineEdit" parent="content/wrapper/starter/multiplayer/configs/serverConfig/maxPlayer" index="1"]
+[node name="maxPlayerInput" type="LineEdit" parent="content/wrapper/wrapper/start/starter/multiplayer/configs/serverConfig/maxPlayer" index="1" unique_id=237311490]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
@@ -209,20 +371,23 @@ theme = ExtResource("4_lfxcn")
text = "10"
expand_to_text_length = true
emoji_menu_enabled = false
-virtual_keyboard_type = 2
select_all_on_focus = true
+virtual_keyboard_type = 2
-[node name="players" type="VBoxContainer" parent="content/wrapper/starter/multiplayer/configs" index="1"]
+[node name="players" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer/configs" index="1" unique_id=798597277]
unique_name_in_owner = true
visible = false
layout_mode = 2
-[node name="title" type="Label" parent="content/wrapper/starter/multiplayer/configs/players" index="0"]
+[node name="title" type="Label" parent="content/wrapper/wrapper/start/starter/multiplayer/configs/players" index="0" unique_id=1095446629]
layout_mode = 2
size_flags_horizontal = 4
text = "玩家管理"
-[node name="list" type="VBoxContainer" parent="content/wrapper/starter/multiplayer/configs/players" index="1"]
+[node name="list" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/multiplayer/configs/players" index="1" unique_id=1550608733]
unique_name_in_owner = true
layout_mode = 2
alignment = 1
+
+[node name="animator" parent="." index="1"]
+libraries/ = SubResource("AnimationLibrary_oirqs")
diff --git a/components/Scenes/UI.tscn b/components/Scenes/UI.tscn
index 19dec82..064db34 100644
--- a/components/Scenes/UI.tscn
+++ b/components/Scenes/UI.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=19 format=3 uid="uid://dfwg750a47ggx"]
+[gd_scene format=3 uid="uid://dfwg750a47ggx"]
[ext_resource type="PackedScene" uid="uid://ofpg5s3j7esv" path="res://components/UI/BossBar.tscn" id="1_2pe58"]
[ext_resource type="Script" uid="uid://bph6blsdbiklk" path="res://scripts/Statemachine/UIState.gd" id="1_f00a6"]
@@ -115,11 +115,11 @@ _data = {
&"show": SubResource("Animation_2xajo")
}
-[node name="UI" type="CanvasLayer"]
+[node name="UI" type="CanvasLayer" unique_id=2081331418]
process_mode = 3
script = ExtResource("1_f00a6")
-[node name="root" type="Control" parent="."]
+[node name="root" type="Control" parent="." unique_id=2083830697]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
@@ -127,12 +127,12 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
-[node name="bossbar" parent="root" instance=ExtResource("1_2pe58")]
+[node name="bossbar" parent="root" unique_id=1188147012 instance=ExtResource("1_2pe58")]
unique_name_in_owner = true
layout_mode = 1
metadata/_edit_lock_ = true
-[node name="items" type="PanelContainer" parent="root"]
+[node name="items" type="PanelContainer" parent="root" unique_id=889148256]
z_index = 1
z_as_relative = false
layout_mode = 1
@@ -147,36 +147,36 @@ grow_horizontal = 2
theme_override_styles/panel = ExtResource("3_kep0k")
metadata/_edit_lock_ = true
-[node name="items" type="HBoxContainer" parent="root/items"]
+[node name="items" type="HBoxContainer" parent="root/items" unique_id=1102895760]
unique_name_in_owner = true
layout_mode = 2
alignment = 1
-[node name="baseball" parent="root/items/items" instance=ExtResource("3_o2oi4")]
+[node name="baseball" parent="root/items/items" unique_id=222901100 instance=ExtResource("3_o2oi4")]
unique_name_in_owner = true
layout_mode = 2
-[node name="basketball" parent="root/items/items" instance=ExtResource("3_o2oi4")]
+[node name="basketball" parent="root/items/items" unique_id=1586914104 instance=ExtResource("3_o2oi4")]
unique_name_in_owner = true
layout_mode = 2
type = 1
-[node name="apple" parent="root/items/items" instance=ExtResource("3_o2oi4")]
+[node name="apple" parent="root/items/items" unique_id=895524937 instance=ExtResource("3_o2oi4")]
unique_name_in_owner = true
layout_mode = 2
type = 2
-[node name="beachball" parent="root/items/items" instance=ExtResource("3_o2oi4")]
+[node name="beachball" parent="root/items/items" unique_id=23220525 instance=ExtResource("3_o2oi4")]
unique_name_in_owner = true
layout_mode = 2
type = 3
-[node name="soul" parent="root/items/items" instance=ExtResource("3_o2oi4")]
+[node name="soul" parent="root/items/items" unique_id=1287636941 instance=ExtResource("3_o2oi4")]
unique_name_in_owner = true
layout_mode = 2
type = 4
-[node name="energy" type="PanelContainer" parent="root"]
+[node name="energy" type="PanelContainer" parent="root" unique_id=1886165069]
z_index = 1
z_as_relative = false
layout_mode = 1
@@ -193,29 +193,29 @@ grow_horizontal = 0
grow_vertical = 2
theme_override_styles/panel = ExtResource("5_3hym1")
-[node name="wrapper" type="HBoxContainer" parent="root/energy"]
+[node name="wrapper" type="HBoxContainer" parent="root/energy" unique_id=2143098490]
layout_mode = 2
theme_override_constants/separation = 10
-[node name="skills" type="PanelContainer" parent="root/energy/wrapper"]
+[node name="skills" type="PanelContainer" parent="root/energy/wrapper" unique_id=1694782078]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_12otr")
-[node name="skillContainer" type="VBoxContainer" parent="root/energy/wrapper/skills"]
+[node name="skillContainer" type="VBoxContainer" parent="root/energy/wrapper/skills" unique_id=939257941]
unique_name_in_owner = true
layout_mode = 2
alignment = 1
-[node name="container" type="VBoxContainer" parent="root/energy/wrapper"]
+[node name="container" type="VBoxContainer" parent="root/energy/wrapper" unique_id=1760772344]
layout_mode = 2
theme_override_constants/separation = 10
alignment = 1
-[node name="energy" type="HBoxContainer" parent="root/energy/wrapper/container"]
+[node name="energy" type="HBoxContainer" parent="root/energy/wrapper/container" unique_id=1568060205]
layout_mode = 2
alignment = 1
-[node name="icon" type="TextureRect" parent="root/energy/wrapper/container/energy"]
+[node name="icon" type="TextureRect" parent="root/energy/wrapper/container/energy" unique_id=920175670]
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
size_flags_horizontal = 4
@@ -223,7 +223,7 @@ size_flags_vertical = 4
texture = ExtResource("7_2om12")
expand_mode = 1
-[node name="percent" parent="root/energy/wrapper/container" instance=ExtResource("8_f4j2b")]
+[node name="percent" parent="root/energy/wrapper/container" unique_id=936708847 instance=ExtResource("8_f4j2b")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
@@ -232,7 +232,7 @@ middleBox1 = SubResource("StyleBoxFlat_kgnwf")
middleBox2 = SubResource("StyleBoxFlat_egr4c")
frontBox = SubResource("StyleBoxFlat_1xshu")
-[node name="fields" type="PanelContainer" parent="root"]
+[node name="fields" type="PanelContainer" parent="root" unique_id=1795021225]
modulate = Color(1, 1, 1, 0)
z_index = 1
z_as_relative = false
@@ -247,22 +247,20 @@ offset_bottom = 82.5
grow_vertical = 2
theme_override_styles/panel = ExtResource("11_67ghp")
-[node name="wrapper" type="PanelContainer" parent="root/fields"]
+[node name="wrapper" type="PanelContainer" parent="root/fields" unique_id=1194361689]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ri8gw")
-[node name="fields" type="VBoxContainer" parent="root/fields/wrapper"]
+[node name="fields" type="VBoxContainer" parent="root/fields/wrapper" unique_id=638665162]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 1
-[node name="fieldsAnimator" type="AnimationPlayer" parent="root/fields"]
+[node name="fieldsAnimator" type="AnimationPlayer" parent="root/fields" unique_id=1711980469]
unique_name_in_owner = true
-libraries = {
-&"": SubResource("AnimationLibrary_37e4s")
-}
+libraries/ = SubResource("AnimationLibrary_37e4s")
-[node name="itemCollect" type="VBoxContainer" parent="root"]
+[node name="itemCollect" type="VBoxContainer" parent="root" unique_id=2025298998]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = -1
@@ -277,16 +275,7 @@ offset_bottom = 0.400024
grow_vertical = 0
theme_override_constants/separation = 10
-[node name="tips" type="VBoxContainer" parent="root"]
-unique_name_in_owner = true
-layout_mode = 1
-anchors_preset = -1
-anchor_top = 1.0
-anchor_bottom = 1.0
-offset_bottom = -100.0
-grow_vertical = 0
-
-[node name="panels" type="Control" parent="root"]
+[node name="panels" type="Control" parent="root" unique_id=968120967]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
@@ -295,3 +284,13 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
metadata/_edit_lock_ = true
+
+[node name="tips" type="VBoxContainer" parent="root" unique_id=778055256]
+unique_name_in_owner = true
+layout_mode = 1
+anchors_preset = -1
+anchor_top = 1.0
+anchor_bottom = 1.0
+offset_top = -100.0
+offset_bottom = -100.0
+grow_vertical = 0
diff --git a/project.godot b/project.godot
index c947c0d..d209fc3 100644
--- a/project.godot
+++ b/project.godot
@@ -29,10 +29,6 @@ window/size/viewport_width=1280
window/size/viewport_height=720
window/size/mode=2
-[dotnet]
-
-project/assembly_name="ChickenVSBear"
-
[gui]
theme/custom="res://themes/main.tres"
diff --git a/resources/comics/building.png b/resources/comics/building.png
new file mode 100644
index 0000000..f05118f
Binary files /dev/null and b/resources/comics/building.png differ
diff --git a/resources/comics/building.png.import b/resources/comics/building.png.import
new file mode 100644
index 0000000..a3c4462
--- /dev/null
+++ b/resources/comics/building.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b224jte54e12a"
+path="res://.godot/imported/building.png-083da3c7d2720819cc70c67bd04a2eca.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/comics/building.png"
+dest_files=["res://.godot/imported/building.png-083da3c7d2720819cc70c67bd04a2eca.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/resources/comics/starterBack.png b/resources/comics/starterBack.png
new file mode 100644
index 0000000..534bdb0
Binary files /dev/null and b/resources/comics/starterBack.png differ
diff --git a/resources/comics/starterBack.png.import b/resources/comics/starterBack.png.import
new file mode 100644
index 0000000..267cdc1
--- /dev/null
+++ b/resources/comics/starterBack.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dtw7ljiir0ug6"
+path="res://.godot/imported/starterBack.png-8b4179c9151beb502757675bea6adc1f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/comics/starterBack.png"
+dest_files=["res://.godot/imported/starterBack.png-8b4179c9151beb502757675bea6adc1f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/resources/comics/vs.png b/resources/comics/vs.png
new file mode 100644
index 0000000..5a52f94
Binary files /dev/null and b/resources/comics/vs.png differ
diff --git a/resources/comics/vs.png.import b/resources/comics/vs.png.import
new file mode 100644
index 0000000..6f4ac2a
--- /dev/null
+++ b/resources/comics/vs.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bvg17q1dhperq"
+path="res://.godot/imported/vs.png-fb565d5710d6735ac5670cc7c2ae786d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/comics/vs.png"
+dest_files=["res://.godot/imported/vs.png-fb565d5710d6735ac5670cc7c2ae786d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/resources/icons/logo.png b/resources/icons/logo.png
new file mode 100644
index 0000000..55bf13d
Binary files /dev/null and b/resources/icons/logo.png differ
diff --git a/resources/icons/logo.png.import b/resources/icons/logo.png.import
new file mode 100644
index 0000000..51fdf91
--- /dev/null
+++ b/resources/icons/logo.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bgi4bx6bsjv48"
+path="res://.godot/imported/logo.png-bae9d0761b7209df1dbe9681b9f99a65.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/icons/logo.png"
+dest_files=["res://.godot/imported/logo.png-bae9d0761b7209df1dbe9681b9f99a65.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/resources/ui/slider-disabled.svg b/resources/ui/slider-disabled.svg
new file mode 100644
index 0000000..f835115
--- /dev/null
+++ b/resources/ui/slider-disabled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/ui/slider-disabled.svg.import b/resources/ui/slider-disabled.svg.import
new file mode 100644
index 0000000..e243039
--- /dev/null
+++ b/resources/ui/slider-disabled.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cj85aq2jsrt1w"
+path="res://.godot/imported/slider-disabled.svg-085ad7017391eedc83cb9234c07f85a9.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/ui/slider-disabled.svg"
+dest_files=["res://.godot/imported/slider-disabled.svg-085ad7017391eedc83cb9234c07f85a9.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/resources/ui/slider-hover.svg b/resources/ui/slider-hover.svg
new file mode 100644
index 0000000..0d1f810
--- /dev/null
+++ b/resources/ui/slider-hover.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/ui/slider-hover.svg.import b/resources/ui/slider-hover.svg.import
new file mode 100644
index 0000000..ff85adc
--- /dev/null
+++ b/resources/ui/slider-hover.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c06cwuh1mclpn"
+path="res://.godot/imported/slider-hover.svg-453a3951ee32df8877db10b1934e01c6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/ui/slider-hover.svg"
+dest_files=["res://.godot/imported/slider-hover.svg-453a3951ee32df8877db10b1934e01c6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/resources/ui/slider.svg b/resources/ui/slider.svg
new file mode 100644
index 0000000..5551945
--- /dev/null
+++ b/resources/ui/slider.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/ui/slider.svg.import b/resources/ui/slider.svg.import
new file mode 100644
index 0000000..832f9a3
--- /dev/null
+++ b/resources/ui/slider.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bn3tjs2rqk5s2"
+path="res://.godot/imported/slider.svg-750b0b0811af4cbdc9e3061a71d6ad7a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/ui/slider.svg"
+dest_files=["res://.godot/imported/slider.svg-750b0b0811af4cbdc9e3061a71d6ad7a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/scripts/BottomShadow.gdshader b/scripts/BottomShadow.gdshader
new file mode 100644
index 0000000..25a236e
--- /dev/null
+++ b/scripts/BottomShadow.gdshader
@@ -0,0 +1,5 @@
+shader_type canvas_item;
+uniform float prog:hint_range(0.0, 1.0, 0.1)=0;
+void fragment() {
+ COLOR.a*=(1.0-UV.y)/prog;
+}
\ No newline at end of file
diff --git a/scripts/BottomShadow.gdshader.uid b/scripts/BottomShadow.gdshader.uid
new file mode 100644
index 0000000..c0c4b8b
--- /dev/null
+++ b/scripts/BottomShadow.gdshader.uid
@@ -0,0 +1 @@
+uid://csx5am14p4ai0
diff --git a/scripts/Contents/Panels/CompilingTip.gd b/scripts/Contents/Panels/CompilingTip.gd
index 91f82ba..05174d7 100644
--- a/scripts/Contents/Panels/CompilingTip.gd
+++ b/scripts/Contents/Panels/CompilingTip.gd
@@ -4,10 +4,11 @@ extends FullscreenPanelBase
func afterOpen(_args: Array = []):
if WorldManager.isRelease():
for key in ComponentManager.effects:
- var effect = EffectController.create(ComponentManager.getEffect(key), Vector2.ZERO, self)
+ var effect = EffectController.create(ComponentManager.getEffect(key), Vector2.ZERO, self )
effect.modulate.a = 0.01
(effect.sounds.get_node("spawn") as AudioStreamPlayer2D).volume_db = - INF
effect.shot()
await TickTool.millseconds(3000)
await TickTool.frame()
UIState.setPanel("SelectInitialFeed")
+ StarterPanel.buildingShader = false
diff --git a/scripts/Contents/Panels/Starter.gd b/scripts/Contents/Panels/Starter.gd
index 22a13bb..fc297ba 100644
--- a/scripts/Contents/Panels/Starter.gd
+++ b/scripts/Contents/Panels/Starter.gd
@@ -1,5 +1,6 @@
@tool
extends FullscreenPanelBase
+class_name StarterPanel
@onready var diffEdit: HSlider = $"%diffEdit"
@onready var startSingleplayerBtn: Button = $"%startSingleplayerBtn"
@@ -18,6 +19,8 @@ var historyStack
@onready var players: VBoxContainer = $"%players"
@onready var playersList: VBoxContainer = $"%list"
+static var buildingShader: bool = true
+
@rpc("any_peer")
func mutexPlayer(player: String):
if multiplayer.is_server():
@@ -63,7 +66,7 @@ func startMultiplayerGame():
func startSingleplayerGame():
MultiplayerState.isMultiplayer = false
MultiplayerState.playerName = playerNameInput.text
- EntityBase.generatePlayer(playerNameInput.text)
+ UIState.player = EntityBase.generatePlayer(playerNameInput.text)
WorldManager.rootNode.spawnWave(Vector2.ZERO)
UIState.setPanel("CompilingTip")
@@ -87,8 +90,9 @@ func _ready():
)
startMultiplayerBtn.pressed.connect(
func():
- startMultiplayerGame.rpc()
- startMultiplayerGame()
+ # startMultiplayerGame.rpc()
+ # startMultiplayerGame()
+ UIState.showTip("敬请期待!", TipBox.MessageType.ERROR)
)
maxPlayerInput.text_changed.connect(
func(text):
@@ -127,7 +131,7 @@ func setState(state: MultiplayerState.ConnectionState):
connectionState.text = "状态:%s" % MultiplayerState.stateTextMap[state]
connectionState.modulate = MultiplayerState.stateColorMap[state]
disconnectBtn.disabled = not MultiplayerState.isConnected()
- startMultiplayerBtn.disabled = not MultiplayerState.isConnected() || !multiplayer.is_server()
+ # startMultiplayerBtn.disabled = not MultiplayerState.isConnected() || !multiplayer.is_server()
serverConfig.visible = MultiplayerState.state == MultiplayerState.ConnectionState.CONNECTED_HOST
players.visible = MultiplayerState.isConnected()
func addPlayerName(playerName: String):
diff --git a/scripts/Statemachine/FullscreenPanelBase.gd b/scripts/Statemachine/FullscreenPanelBase.gd
index ac0f60c..150a562 100644
--- a/scripts/Statemachine/FullscreenPanelBase.gd
+++ b/scripts/Statemachine/FullscreenPanelBase.gd
@@ -2,7 +2,7 @@
extends Control
class_name FullscreenPanelBase
-@onready var animator = $"%animator"
+@onready var animator: AnimationPlayer = $"%animator"
func hidePanel():
beforeClose()
diff --git a/scripts/Tools/Managers/CameraManager.gd b/scripts/Tools/Managers/CameraManager.gd
index 8adc416..c4e9c53 100644
--- a/scripts/Tools/Managers/CameraManager.gd
+++ b/scripts/Tools/Managers/CameraManager.gd
@@ -19,6 +19,7 @@ func _physics_process(_delta):
offset += ((get_global_mouse_position() - UIState.player.position).clampf(-100, 100) - offset) * 0.15
static func shake(millseconds: float, intensity: float = 10, steper: Callable = func(currentValue, _totalValue, _restPercent): return currentValue):
+ if StarterPanel.buildingShader: return
var startTime = WorldManager.getTime()
instance.shakeIntensity = intensity
await TickTool.until(
diff --git a/shaders/TopShadow.gdshader b/shaders/TopShadow.gdshader
new file mode 100644
index 0000000..de0af08
--- /dev/null
+++ b/shaders/TopShadow.gdshader
@@ -0,0 +1,5 @@
+shader_type canvas_item;
+uniform float prog:hint_range(0.0, 1.0, 0.1)=0;
+void fragment() {
+ COLOR.a*=UV.y/prog;
+}
\ No newline at end of file
diff --git a/shaders/TopShadow.gdshader.uid b/shaders/TopShadow.gdshader.uid
new file mode 100644
index 0000000..e644848
--- /dev/null
+++ b/shaders/TopShadow.gdshader.uid
@@ -0,0 +1 @@
+uid://c2kaj6mt3dj45
diff --git a/themes/main.tres b/themes/main.tres
index f4ce5f2..6221a90 100644
--- a/themes/main.tres
+++ b/themes/main.tres
@@ -1,82 +1,116 @@
[gd_resource type="Theme" format=3 uid="uid://dhvs6urgf6jr5"]
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2jby4"]
-content_margin_left = 5.0
+[ext_resource type="Texture2D" uid="uid://bn3tjs2rqk5s2" path="res://resources/ui/slider.svg" id="1_0avsd"]
+[ext_resource type="Texture2D" uid="uid://cj85aq2jsrt1w" path="res://resources/ui/slider-disabled.svg" id="2_wykhr"]
+[ext_resource type="Texture2D" uid="uid://c06cwuh1mclpn" path="res://resources/ui/slider-hover.svg" id="3_78ekx"]
+[ext_resource type="FontFile" uid="uid://cidql48uspujd" path="res://resources/fonts/syht.otf" id="4_wc0q8"]
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_78ekx"]
+content_margin_left = 20.0
content_margin_top = 5.0
-content_margin_right = 5.0
+content_margin_right = 20.0
content_margin_bottom = 5.0
bg_color = Color(0, 0, 0, 0.5)
-border_color = Color(0, 0, 0, 0.5)
-corner_radius_top_left = 5
-corner_radius_top_right = 5
-corner_radius_bottom_right = 5
-corner_radius_bottom_left = 5
+border_color = Color(1, 1, 1, 1)
+border_blend = true
+corner_radius_top_left = 1000
+corner_radius_top_right = 1000
+corner_radius_bottom_right = 1000
+corner_radius_bottom_left = 1000
+corner_detail = 1
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_bpyjs"]
-
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4j7ii"]
-content_margin_left = 5.0
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1id7b"]
+content_margin_left = 20.0
content_margin_top = 5.0
-content_margin_right = 5.0
-content_margin_bottom = 5.0
-bg_color = Color(0, 0, 0, 0.3)
-border_width_left = 3
-border_width_top = 3
-border_width_right = 3
-border_width_bottom = 3
-border_color = Color(1, 1, 1, 0.5)
-corner_radius_top_left = 5
-corner_radius_top_right = 5
-corner_radius_bottom_right = 5
-corner_radius_bottom_left = 5
-
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mt3v0"]
-content_margin_left = 5.0
-content_margin_top = 5.0
-content_margin_right = 5.0
+content_margin_right = 20.0
content_margin_bottom = 5.0
bg_color = Color(0, 0, 0, 0.5)
-border_width_left = 3
-border_width_top = 3
-border_width_right = 3
-border_width_bottom = 3
-border_color = Color(1, 1, 1, 0.3)
-corner_radius_top_left = 5
-corner_radius_top_right = 5
-corner_radius_bottom_right = 5
-corner_radius_bottom_left = 5
+border_width_left = 6
+border_width_top = 5
+border_width_right = 6
+border_width_bottom = 5
+border_color = Color(1, 1, 1, 1)
+border_blend = true
+corner_radius_top_left = 1000
+corner_radius_top_right = 1000
+corner_radius_bottom_right = 1000
+corner_radius_bottom_left = 1000
+corner_detail = 1
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3nqwh"]
-content_margin_left = 5.0
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wykhr"]
+content_margin_left = 20.0
content_margin_top = 5.0
-content_margin_right = 5.0
+content_margin_right = 20.0
content_margin_bottom = 5.0
bg_color = Color(0, 0, 0, 0.5)
-border_width_left = 3
-border_width_top = 3
-border_width_right = 3
-border_width_bottom = 3
-border_color = Color(1, 1, 1, 0.3)
-corner_radius_top_left = 5
-corner_radius_top_right = 5
-corner_radius_bottom_right = 5
-corner_radius_bottom_left = 5
+border_width_left = 10
+border_width_right = 10
+border_color = Color(1, 1, 1, 1)
+border_blend = true
+corner_radius_top_left = 1000
+corner_radius_top_right = 1000
+corner_radius_bottom_right = 1000
+corner_radius_bottom_left = 1000
+corner_detail = 1
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_iekfp"]
-content_margin_left = 5.0
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0avsd"]
+content_margin_left = 20.0
content_margin_top = 5.0
-content_margin_right = 5.0
+content_margin_right = 20.0
content_margin_bottom = 5.0
-bg_color = Color(0, 0, 0, 0.5)
+bg_color = Color(0, 0, 0, 0.70000005)
border_width_left = 3
-border_width_top = 3
+border_width_top = 2
border_width_right = 3
+border_width_bottom = 2
+border_color = Color(1, 1, 1, 1)
+corner_radius_top_left = 1000
+corner_radius_top_right = 1000
+corner_radius_bottom_right = 1000
+corner_radius_bottom_left = 1000
+corner_detail = 1
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wc0q8"]
+bg_color = Color(1, 1, 1, 0.5)
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7d6gw"]
+bg_color = Color(1, 1, 1, 0.70000005)
+
+[sub_resource type="StyleBoxLine" id="StyleBoxLine_k5u3e"]
+color = Color(0, 0, 0, 0.70000005)
+grow_begin = 0.0
+grow_end = 0.0
+thickness = 10
+
+[sub_resource type="DPITexture" id="DPITexture_7d6gw"]
+_source = "
+"
+
+[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wc0q8"]
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kx4sy"]
+content_margin_left = 10.0
+content_margin_top = 2.0
+content_margin_right = 10.0
+content_margin_bottom = 5.0
+bg_color = Color(0, 0, 0, 1)
+skew = Vector2(0.4, 0)
+border_width_left = 1
+border_width_top = 1
+border_width_right = 1
border_width_bottom = 3
-border_color = Color(1, 1, 1, 0.3)
-corner_radius_top_left = 5
-corner_radius_top_right = 5
-corner_radius_bottom_right = 5
-corner_radius_bottom_left = 5
+border_color = Color(1, 1, 1, 1)
+corner_detail = 1
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_k5u3e"]
+content_margin_left = 10.0
+content_margin_top = 2.0
+content_margin_right = 10.0
+content_margin_bottom = 5.0
+bg_color = Color(0, 0, 0, 1)
+skew = Vector2(0.4, 0)
+border_color = Color(1, 1, 1, 1)
+corner_detail = 1
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a507o"]
content_margin_top = 5.0
@@ -96,12 +130,34 @@ corner_radius_bottom_left = 5
[resource]
Button/font_sizes/font_size = 14
-Button/styles/disabled = SubResource("StyleBoxFlat_2jby4")
-Button/styles/focus = SubResource("StyleBoxEmpty_bpyjs")
-Button/styles/hover = SubResource("StyleBoxFlat_4j7ii")
-Button/styles/hover_pressed = SubResource("StyleBoxFlat_mt3v0")
-Button/styles/normal = SubResource("StyleBoxFlat_3nqwh")
-Button/styles/pressed = SubResource("StyleBoxFlat_iekfp")
+Button/styles/disabled = SubResource("StyleBoxFlat_78ekx")
+Button/styles/hover = SubResource("StyleBoxFlat_1id7b")
+Button/styles/hover_pressed = SubResource("StyleBoxFlat_wykhr")
+Button/styles/normal = SubResource("StyleBoxFlat_0avsd")
+Button/styles/pressed = SubResource("StyleBoxFlat_wykhr")
+HSlider/icons/grabber = ExtResource("1_0avsd")
+HSlider/icons/grabber_disabled = ExtResource("2_wykhr")
+HSlider/icons/grabber_highlight = ExtResource("3_78ekx")
+HSlider/styles/grabber_area = SubResource("StyleBoxFlat_wc0q8")
+HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_7d6gw")
+HSlider/styles/slider = SubResource("StyleBoxLine_k5u3e")
+LineEdit/colors/caret_color = Color(0.95, 0.95, 0.95, 1)
+LineEdit/colors/clear_button_color = Color(0.875, 0.875, 0.875, 1)
+LineEdit/colors/clear_button_color_pressed = Color(1, 1, 1, 1)
+LineEdit/colors/font_color = Color(0.875, 0.875, 0.875, 1)
+LineEdit/colors/font_outline_color = Color(0, 0, 0, 1)
+LineEdit/colors/font_placeholder_color = Color(0.875, 0.875, 0.875, 0.6)
+LineEdit/colors/font_selected_color = Color(1, 1, 1, 1)
+LineEdit/colors/font_uneditable_color = Color(0.875, 0.875, 0.875, 0.5)
+LineEdit/colors/selection_color = Color(0.5, 0.5, 0.5, 1)
+LineEdit/constants/caret_width = 1
+LineEdit/constants/minimum_character_width = 4
+LineEdit/constants/outline_size = 0
LineEdit/font_sizes/font_size = 12
+LineEdit/fonts/font = ExtResource("4_wc0q8")
+LineEdit/icons/clear = SubResource("DPITexture_7d6gw")
+LineEdit/styles/focus = SubResource("StyleBoxEmpty_wc0q8")
+LineEdit/styles/normal = SubResource("StyleBoxFlat_kx4sy")
+LineEdit/styles/read_only = SubResource("StyleBoxFlat_k5u3e")
ProgressBar/styles/background = SubResource("StyleBoxFlat_a507o")
ProgressBar/styles/fill = SubResource("StyleBoxFlat_ef7vq")