diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b27f0b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# Godot 4+ specific ignores +.godot/ +/android/ +assets/ +.vs/ \ No newline at end of file diff --git a/FunGame-Godot.csproj b/FunGame-Godot.csproj new file mode 100644 index 0000000..6b84f69 --- /dev/null +++ b/FunGame-Godot.csproj @@ -0,0 +1,28 @@ + + + net9.0 + net8.0 + net8.0 + true + Milimoe.GodotGame + + + 1701;1702;IDE0130 + + + 1701;1702;IDE0130 + + + 1701;1702;IDE0130 + + + + + + + + + + + + \ No newline at end of file diff --git a/FunGame-Godot.sln b/FunGame-Godot.sln new file mode 100644 index 0000000..d2d043c --- /dev/null +++ b/FunGame-Godot.sln @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35527.113 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FunGame-Godot", "FunGame-Godot.csproj", "{11453713-5BCC-49E5-829F-10A8AD8438AA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FunGame.Core", "..\FunGame.Core\FunGame.Core.csproj", "{3566E2B2-160C-435E-871D-A9B9C158096C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + ExportDebug|Any CPU = ExportDebug|Any CPU + ExportRelease|Any CPU = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {11453713-5BCC-49E5-829F-10A8AD8438AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11453713-5BCC-49E5-829F-10A8AD8438AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11453713-5BCC-49E5-829F-10A8AD8438AA}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {11453713-5BCC-49E5-829F-10A8AD8438AA}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {11453713-5BCC-49E5-829F-10A8AD8438AA}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {11453713-5BCC-49E5-829F-10A8AD8438AA}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + {3566E2B2-160C-435E-871D-A9B9C158096C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3566E2B2-160C-435E-871D-A9B9C158096C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3566E2B2-160C-435E-871D-A9B9C158096C}.ExportDebug|Any CPU.ActiveCfg = Debug|Any CPU + {3566E2B2-160C-435E-871D-A9B9C158096C}.ExportDebug|Any CPU.Build.0 = Debug|Any CPU + {3566E2B2-160C-435E-871D-A9B9C158096C}.ExportRelease|Any CPU.ActiveCfg = Release|Any CPU + {3566E2B2-160C-435E-871D-A9B9C158096C}.ExportRelease|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/README.md b/README.md index f31dda6..8092458 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -# FunGame.Godot \ No newline at end of file +# FunGame.Godot + +FunGame Godot Դ룬زİļ \ No newline at end of file diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..b700f16 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,278 @@ +[preset.0] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../Build-Release/FunGame-Godot.exe" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=true +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=false +application/icon="res://icon.svg" +application/console_wrapper_icon="" +application/icon_interpolation=4 +application/file_version="" +application/product_version="" +application/company_name="Milimoe" +application/product_name="FunGame" +application/file_description="" +application/copyright="Milimoe" +application/trademarks="" +application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true +dotnet/embed_build_outputs=false + +[preset.1] + +name="Android" +platform="Android" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../Build-Release/FunGame-Godot.apk" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +gradle_build/use_gradle_build=false +gradle_build/gradle_build_directory="" +gradle_build/android_source_template="" +gradle_build/compress_native_libraries=false +gradle_build/export_format=0 +gradle_build/min_sdk="" +gradle_build/target_sdk="" +architectures/armeabi-v7a=false +architectures/arm64-v8a=true +architectures/x86=false +architectures/x86_64=false +version/code=1 +version/name="FunGame" +package/unique_name="com.milimoe.fungame" +package/name="FunGameGodot" +package/signed=true +package/app_category=2 +package/retain_data_on_uninstall=false +package/exclude_from_recents=false +package/show_in_android_tv=false +package/show_in_app_library=true +package/show_as_launcher_app=false +launcher_icons/main_192x192="" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +graphics/opengl_debug=false +xr_features/xr_mode=0 +screen/immersive_mode=true +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +user_data_backup/allow=false +command_line/extra_args="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +permissions/custom_permissions=PackedStringArray() +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=false +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/manage_external_storage=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/post_notifications=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true +dotnet/embed_build_outputs=false diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..c0597cc --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bt3hbaeylmp4w" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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/project.godot b/project.godot new file mode 100644 index 0000000..1257d9d --- /dev/null +++ b/project.godot @@ -0,0 +1,47 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="FunGame-Godot" +run/main_scene="res://scenes/SplashScreen.tscn" +config/features=PackedStringArray("4.4", "C#", "GL Compatibility") +boot_splash/bg_color=Color(1, 1, 1, 1) +boot_splash/show_image=false +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/size/resizable=false +window/size/borderless=true +window/stretch/mode="viewport" +window/stretch/scale_mode="integer" + +[dotnet] + +project/assembly_name="FunGame-Godot" + +[editor] + +movie_writer/movie_file="C:/milimoe/GameRecords/GodotGame.avi" + +[importer_defaults] + +animation_library={ +"animation/fps": 60.0 +} + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" +textures/vram_compression/import_etc2_astc=true diff --git a/resources/novels/第一章/场景一.json b/resources/novels/第一章/场景一.json new file mode 100644 index 0000000..0b0afdd --- /dev/null +++ b/resources/novels/第一章/场景一.json @@ -0,0 +1,240 @@ +{ + "1": { + "Key": "1", + "Priority": 0, + "NextNodes": [], + "Options": [ + { + "Key": "1-1", + "Name": "我是弗利伯格·cy1·推斯特贼贼·NiKoの趣事·device·玩机器。", + "Targets": [ + "2" + ] + }, + { + "Key": "1-2", + "Name": "我是雷恩。", + "Targets": [ + "3" + ] + } + ], + "Name": "艾琳", + "Content": "你是谁?", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "2": { + "Key": "2", + "Priority": 0, + "NextNodes": [ + "3" + ], + "Name": "艾琳", + "Content": "喔 是吗?我不认可。\n请告诉我你的真实名字。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "3": { + "Key": "3", + "Priority": 0, + "NextNodes": [ + "4" + ], + "Name": "艾琳", + "Content": "雷恩啊……很高兴认识你。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "4": { + "Key": "4", + "Priority": 0, + "NextNodes": [ + "5" + ], + "Name": "艾琳", + "Content": "谢谢你救了我。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "5": { + "Key": "5", + "Priority": 0, + "NextNodes": [ + "6" + ], + "Name": "雷恩", + "Content": "为什么……你会被那些魔物追杀?", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "6": { + "Key": "6", + "Priority": 0, + "NextNodes": [ + "7" + ], + "Name": "", + "Content": "……艾琳告诉了你事情的经过。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "7": { + "Key": "7", + "Priority": 0, + "NextNodes": [ + "8" + ], + "Name": "艾琳", + "Content": "我……我来自一个遥远的村庄,\n那里的人们拥有特殊的力量,但也被魔物觊觎。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "8": { + "Key": "8", + "Priority": 0, + "NextNodes": [ + "9" + ], + "Name": "雷恩", + "Content": "特殊的力量?什么样的力量?", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "9": { + "Key": "9", + "Priority": 0, + "NextNodes": [ + "10" + ], + "Name": "艾琳", + "Content": "我们能够与自然沟通,操控元素。\n而魔物被力量吸引,想要夺取我们的力量。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "10": { + "Key": "10", + "Priority": 0, + "NextNodes": [ + "11" + ], + "Name": "雷恩", + "Content": "所以你逃了出来?", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "11": { + "Key": "11", + "Priority": 0, + "NextNodes": [ + "12" + ], + "Name": "艾琳", + "Content": "是的,我逃了出来。但我的村庄……", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "12": { + "Key": "12", + "Priority": 0, + "NextNodes": [ + "13" + ], + "Name": "雷恩", + "Content": "你的村庄怎么了?", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "13": { + "Key": "13", + "Priority": 0, + "NextNodes": [], + "Options": [ + { + "Key": "13-1", + "Name": "安慰她。", + "Targets": [ + "14" + ] + }, + { + "Key": "13-2", + "Name": "询问更多细节。", + "Targets": [ + "15" + ] + } + ], + "Name": "艾琳", + "Content": "……我不知道。我只希望他们还安全。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "14": { + "Key": "14", + "Priority": 0, + "NextNodes": [ + "18" + ], + "Name": "雷恩", + "Content": "别担心,我会帮助你找到你的村庄,并确保他们安全。", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "15": { + "Key": "15", + "Priority": 0, + "NextNodes": [ + "16" + ], + "Name": "雷恩", + "Content": "你能告诉我更多关于你村庄的信息吗?\n例如,它在哪里,或者有什么特别的标志?", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "16": { + "Key": "16", + "Priority": 0, + "NextNodes": [ + "17" + ], + "Name": "艾琳", + "Content": "我的村庄位于森林深处。\n那里有一棵古树,树上刻着村庄的图腾。", + "PortraitImagePath": "res://assets/character/艾琳.png" + }, + "17": { + "Key": "17", + "Priority": 0, + "NextNodes": [ + "18" + ], + "Name": "雷恩", + "Content": "古老的森林……\n我知道一个地方,也许那就是你说的森林。", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "18": { + "Key": "18", + "Priority": 0, + "NextNodes": [], + "Options": [ + { + "Key": "18-1", + "Name": "我们现在就出发。", + "Targets": [ + "19" + ] + }, + { + "Key": "18-2", + "Name": "先休息一下再出发。", + "Targets": [ + "20" + ] + } + ], + "Name": "雷恩", + "Content": "我们现在怎么办?", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "19": { + "Key": "19", + "Priority": 0, + "NextNodes": [], + "Name": "雷恩", + "Content": "好吧,我们现在就出发!", + "PortraitImagePath": "res://assets/character/雷恩.png" + }, + "20": { + "Key": "20", + "Priority": 0, + "NextNodes": [], + "Name": "雷恩", + "Content": "我们先休息一下,明天再出发吧。", + "PortraitImagePath": "res://assets/character/雷恩.png" + } +} diff --git a/resources/themes/Label.tres b/resources/themes/Label.tres new file mode 100644 index 0000000..93c5f4a --- /dev/null +++ b/resources/themes/Label.tres @@ -0,0 +1,7 @@ +[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://b3h4w1jmyijkt"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_my4h2"] + +[resource] +font = ExtResource("1_my4h2") +font_size = 24 diff --git a/resources/themes/button.tres b/resources/themes/button.tres new file mode 100644 index 0000000..22ca31d --- /dev/null +++ b/resources/themes/button.tres @@ -0,0 +1,16 @@ +[gd_resource type="Theme" load_steps=3 format=3 uid="uid://d1gp4l4cwgtw4"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_qn7vl"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ig2yt"] +bg_color = Color(0.6, 0.6, 0.6, 0) +border_color = Color(0.8, 0.8, 0.8, 0) + +[resource] +default_font = ExtResource("1_qn7vl") +default_font_size = 32 +Button/colors/font_color = Color(0.219588, 0.0827059, 0.254825, 1) +Button/colors/font_focus_color = Color(0.219608, 0.0823529, 0.254902, 1) +Button/colors/font_hover_color = Color(0.491785, 0.118317, 0.344885, 1) +Button/colors/font_pressed_color = Color(0.560784, 0.2, 0.568627, 1) +Button/styles/focus = SubResource("StyleBoxFlat_ig2yt") diff --git a/resources/themes/dialog.tres b/resources/themes/dialog.tres new file mode 100644 index 0000000..1af302b --- /dev/null +++ b/resources/themes/dialog.tres @@ -0,0 +1,7 @@ +[gd_resource type="Theme" load_steps=2 format=3 uid="uid://d0pi6io7y7tky"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_x2o6a"] + +[resource] +default_font = ExtResource("1_x2o6a") +default_font_size = 24 diff --git a/resources/themes/menubutton.tres b/resources/themes/menubutton.tres new file mode 100644 index 0000000..91552e9 --- /dev/null +++ b/resources/themes/menubutton.tres @@ -0,0 +1,28 @@ +[gd_resource type="Theme" load_steps=6 format=3 uid="uid://bi5n6j6qn74xi"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_74oji"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g0ilb"] +bg_color = Color(0.619608, 0.556863, 0.784314, 0.317647) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_74oji"] +bg_color = Color(0.619608, 0.556863, 0.784314, 0.317647) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0ue46"] +bg_color = Color(0.619608, 0.556863, 0.784314, 0.317647) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f01gi"] +bg_color = Color(0.621262, 0.558113, 0.782392, 0.317647) + +[resource] +default_font = ExtResource("1_74oji") +default_font_size = 36 +Button/colors/font_color = Color(0.219608, 0.0823529, 0.254902, 1) +Button/colors/font_focus_color = Color(0.219608, 0.0823529, 0.254902, 1) +Button/colors/font_hover_color = Color(0.962767, 0.668492, 1, 1) +Button/colors/font_hover_pressed_color = Color(0.962767, 0.668492, 1, 1) +Button/colors/font_pressed_color = Color(0.219608, 0.0823529, 0.254902, 1) +Button/styles/focus = SubResource("StyleBoxFlat_g0ilb") +Button/styles/hover = SubResource("StyleBoxFlat_74oji") +Button/styles/hover_pressed = SubResource("StyleBoxFlat_0ue46") +Button/styles/normal = SubResource("StyleBoxFlat_f01gi") diff --git a/resources/themes/novelbutton.tres b/resources/themes/novelbutton.tres new file mode 100644 index 0000000..74d3f2e --- /dev/null +++ b/resources/themes/novelbutton.tres @@ -0,0 +1,16 @@ +[gd_resource type="Theme" load_steps=3 format=3 uid="uid://cc3c0kkawa67y"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_f2lmy"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f2lmy"] +bg_color = Color(0.979537, 0.857103, 0.86027, 0.784314) + +[resource] +default_font = ExtResource("1_f2lmy") +default_font_size = 16 +Button/colors/font_color = Color(0.978118, 0.835541, 0.839506, 1) +Button/colors/font_focus_color = Color(0.930652, 0.271242, 0.578928, 1) +Button/colors/font_hover_color = Color(0.917647, 0.521569, 0.639216, 1) +Button/colors/font_hover_pressed_color = Color(0.917647, 0.521569, 0.639216, 1) +Button/colors/font_pressed_color = Color(0.930652, 0.271242, 0.578928, 1) +Button/styles/pressed = SubResource("StyleBoxFlat_f2lmy") diff --git a/resources/themes/noveldialog.tres b/resources/themes/noveldialog.tres new file mode 100644 index 0000000..d947029 --- /dev/null +++ b/resources/themes/noveldialog.tres @@ -0,0 +1,7 @@ +[gd_resource type="Theme" load_steps=2 format=3 uid="uid://dtn33cy1yub47"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_5i6gt"] + +[resource] +default_font = ExtResource("1_5i6gt") +default_font_size = 48 diff --git a/resources/themes/option.tres b/resources/themes/option.tres new file mode 100644 index 0000000..2c3617d --- /dev/null +++ b/resources/themes/option.tres @@ -0,0 +1,81 @@ +[gd_resource type="Theme" load_steps=7 format=3 uid="uid://clwk8wh5003m8"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_ul7ps"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jibf8"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.1, 0.1, 0.1, 0.3) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1n1tr"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_evjqp"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.225, 0.225, 0.225, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6tvex"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.1, 0.1, 0.1, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_034k8"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[resource] +default_font = ExtResource("1_ul7ps") +default_font_size = 32 +Button/styles/disabled = SubResource("StyleBoxFlat_jibf8") +Button/styles/focus = SubResource("StyleBoxFlat_1n1tr") +Button/styles/hover = SubResource("StyleBoxFlat_evjqp") +Button/styles/normal = SubResource("StyleBoxFlat_6tvex") +Button/styles/pressed = SubResource("StyleBoxFlat_034k8") diff --git a/resources/themes/panel.tres b/resources/themes/panel.tres new file mode 100644 index 0000000..1dc3277 --- /dev/null +++ b/resources/themes/panel.tres @@ -0,0 +1,27 @@ +[gd_resource type="Theme" load_steps=4 format=3 uid="uid://bs3813xiv8ivn"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_edkmk"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mjtl5"] +bg_color = Color(0.6, 0.6, 0.6, 0.588235) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.219608, 0.0823529, 0.254902, 1) +border_blend = true + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_j4r45"] +bg_color = Color(0.6, 0.6, 0.6, 0.666667) +border_width_left = 8 +border_width_top = 8 +border_width_right = 8 +border_width_bottom = 8 +border_color = Color(0.219608, 0.0823529, 0.254902, 1) +border_blend = true + +[resource] +default_font = ExtResource("1_edkmk") +default_font_size = 24 +Panel/styles/panel = SubResource("StyleBoxFlat_mjtl5") +PanelContainer/styles/panel = SubResource("StyleBoxFlat_j4r45") diff --git a/resources/ui/CharacterStatus.tscn b/resources/ui/CharacterStatus.tscn new file mode 100644 index 0000000..b949721 --- /dev/null +++ b/resources/ui/CharacterStatus.tscn @@ -0,0 +1,100 @@ +[gd_scene load_steps=7 format=3 uid="uid://boa4gvdodn6is"] + +[ext_resource type="Theme" uid="uid://d0pi6io7y7tky" path="res://resources/themes/dialog.tres" id="1_21m4e"] +[ext_resource type="Theme" uid="uid://d1gp4l4cwgtw4" path="res://resources/themes/button.tres" id="2_jet3t"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dugby"] +bg_color = Color(0.6, 0.6, 0.6, 0) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jet3t"] +bg_color = Color(0, 0.715563, 0.406543, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cnh2t"] +bg_color = Color(0.360998, 0.609236, 0.919164, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_arpqe"] +bg_color = Color(0.879745, 0.48415, 7.70092e-07, 1) + +[node name="CharacterStatus" type="Panel"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = -88.0 +offset_bottom = -368.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_dugby") + +[node name="Image" type="TextureRect" parent="."] +layout_mode = 1 +offset_right = 320.0 +offset_bottom = 320.0 + +[node name="HPBar" type="ProgressBar" parent="."] +layout_mode = 1 +offset_left = 352.0 +offset_top = 64.0 +offset_right = 1152.0 +offset_bottom = 128.0 +theme = ExtResource("1_21m4e") +theme_override_styles/fill = SubResource("StyleBoxFlat_jet3t") +value = 70.0 +show_percentage = false + +[node name="MPBar" type="ProgressBar" parent="."] +layout_mode = 1 +offset_left = 352.0 +offset_top = 160.0 +offset_right = 1152.0 +offset_bottom = 224.0 +theme = ExtResource("1_21m4e") +theme_override_styles/fill = SubResource("StyleBoxFlat_cnh2t") +value = 30.0 +show_percentage = false + +[node name="EPBar" type="ProgressBar" parent="."] +layout_mode = 1 +offset_left = 352.0 +offset_top = 256.0 +offset_right = 1152.0 +offset_bottom = 320.0 +theme = ExtResource("1_21m4e") +theme_override_styles/fill = SubResource("StyleBoxFlat_arpqe") +value = 10.0 +show_percentage = false + +[node name="HP" type="Label" parent="."] +layout_mode = 1 +offset_left = 352.0 +offset_top = 64.0 +offset_right = 1152.0 +offset_bottom = 128.0 +theme = ExtResource("2_jet3t") +theme_override_colors/font_color = Color(0, 0.715563, 0.406543, 1) +text = "17110" +horizontal_alignment = 2 +vertical_alignment = 1 + +[node name="MP" type="Label" parent="."] +layout_mode = 1 +offset_left = 352.0 +offset_top = 160.0 +offset_right = 1152.0 +offset_bottom = 224.0 +theme = ExtResource("2_jet3t") +theme_override_colors/font_color = Color(0.360998, 0.609236, 0.919164, 1) +text = "7945" +horizontal_alignment = 2 +vertical_alignment = 1 + +[node name="EP" type="Label" parent="."] +layout_mode = 1 +offset_left = 352.0 +offset_top = 256.0 +offset_right = 1152.0 +offset_bottom = 320.0 +theme = ExtResource("2_jet3t") +theme_override_colors/font_color = Color(0.879745, 0.48415, 7.70092e-07, 1) +text = "15" +horizontal_alignment = 2 +vertical_alignment = 1 diff --git a/resources/ui/Novel.tscn b/resources/ui/Novel.tscn new file mode 100644 index 0000000..589ac08 --- /dev/null +++ b/resources/ui/Novel.tscn @@ -0,0 +1,203 @@ +[gd_scene load_steps=11 format=3 uid="uid://exqgca0e7vay"] + +[ext_resource type="Script" uid="uid://cgcdu4cg7u28g" path="res://scripts/NovelController.cs" id="1_0tl37"] +[ext_resource type="Texture2D" uid="uid://0dkwmsresstm" path="res://assets/character/艾琳.png" id="1_af382"] +[ext_resource type="Theme" uid="uid://d1gp4l4cwgtw4" path="res://resources/themes/button.tres" id="1_df34q"] +[ext_resource type="Theme" uid="uid://bs3813xiv8ivn" path="res://resources/themes/panel.tres" id="1_fmroo"] +[ext_resource type="Texture2D" uid="uid://biooen7y20ks8" path="res://assets/character/雷恩.png" id="1_u842g"] +[ext_resource type="Theme" uid="uid://dtn33cy1yub47" path="res://resources/themes/noveldialog.tres" id="4_o8h6h"] +[ext_resource type="Theme" uid="uid://clwk8wh5003m8" path="res://resources/themes/option.tres" id="5_b05s4"] +[ext_resource type="Script" uid="uid://c4ny5p54lotj0" path="res://scripts/AnimatedRichTextLabel.cs" id="7_vvt2q"] +[ext_resource type="Theme" uid="uid://cc3c0kkawa67y" path="res://resources/themes/novelbutton.tres" id="9_bp2jl"] +[ext_resource type="PackedScene" uid="uid://b25umg4d0y13" path="res://resources/ui/SavedSelection.tscn" id="10_sk065"] + +[node name="Novel" type="CanvasLayer" node_paths=PackedStringArray("SavedSelection")] +script = ExtResource("1_0tl37") +SavedSelection = NodePath("SavedSelection") + +[node name="立绘1" type="TextureRect" parent="."] +offset_left = 451.0 +offset_right = 899.0 +offset_bottom = 720.0 +metadata/_edit_lock_ = true + +[node name="Image" type="TextureRect" parent="立绘1"] +visible = false +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -360.0 +offset_top = -360.0 +offset_right = 360.0 +offset_bottom = 360.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("1_u842g") +expand_mode = 2 + +[node name="立绘2左" type="TextureRect" parent="."] +offset_left = 131.0 +offset_right = 579.0 +offset_bottom = 720.0 +metadata/_edit_lock_ = true + +[node name="Image" type="TextureRect" parent="立绘2左"] +visible = false +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -360.0 +offset_top = -360.0 +offset_right = 360.0 +offset_bottom = 360.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("1_u842g") +expand_mode = 2 + +[node name="立绘2右" type="TextureRect" parent="."] +offset_left = 707.0 +offset_right = 1155.0 +offset_bottom = 720.0 +metadata/_edit_lock_ = true + +[node name="Image" type="TextureRect" parent="立绘2右"] +visible = false +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -360.0 +offset_top = -360.0 +offset_right = 360.0 +offset_bottom = 360.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("1_af382") +expand_mode = 2 + +[node name="Panel" type="Panel" parent="."] +offset_top = 512.0 +offset_right = 1280.0 +offset_bottom = 720.0 +theme = ExtResource("1_fmroo") +metadata/_edit_lock_ = true + +[node name="NamePanel" type="Panel" parent="Panel"] +layout_mode = 0 +offset_top = -64.0 +offset_right = 256.0 +theme = ExtResource("1_fmroo") +metadata/_edit_lock_ = true + +[node name="Name" type="Label" parent="Panel/NamePanel"] +layout_mode = 0 +offset_right = 256.0 +offset_bottom = 64.0 +theme = ExtResource("1_df34q") +text = "说话的人名" +horizontal_alignment = 1 +vertical_alignment = 1 +metadata/_edit_lock_ = true + +[node name="Content" type="RichTextLabel" parent="Panel"] +layout_mode = 0 +offset_left = 64.0 +offset_top = 24.0 +offset_right = 1216.0 +offset_bottom = 176.0 +theme = ExtResource("4_o8h6h") +bbcode_enabled = true +text = "这是说话的内容。。。 +行2测试。 " +scroll_active = false +autowrap_mode = 0 +script = ExtResource("7_vvt2q") +metadata/_edit_lock_ = true + +[node name="Timer" type="Timer" parent="Panel/Content"] + +[node name="透明挡板" type="ColorRect" parent="."] +offset_right = 1280.0 +offset_bottom = 720.0 +color = Color(1, 1, 1, 0) +metadata/_edit_lock_ = true + +[node name="选项框" type="VBoxContainer" parent="."] +anchors_preset = -1 +anchor_left = 1.0 +anchor_top = 0.704 +anchor_right = 1.0 +anchor_bottom = 0.704 +offset_left = -384.0 +offset_top = -319.88 +offset_bottom = 0.119965 +grow_horizontal = 0 +grow_vertical = 0 +size_flags_horizontal = 8 +alignment = 2 +metadata/_edit_use_anchors_ = true +metadata/_edit_lock_ = true + +[node name="Button3" type="Button" parent="选项框"] +layout_mode = 2 +theme = ExtResource("5_b05s4") +text = "选项三" +icon_alignment = 1 + +[node name="Button2" type="Button" parent="选项框"] +layout_mode = 2 +theme = ExtResource("5_b05s4") +text = "选项二" +icon_alignment = 1 + +[node name="Button1" type="Button" parent="选项框"] +layout_mode = 2 +theme = ExtResource("5_b05s4") +text = "选项一" +icon_alignment = 1 + +[node name="自动播放" type="Button" parent="."] +offset_left = 1208.0 +offset_top = 528.0 +offset_right = 1256.0 +offset_bottom = 560.0 +theme = ExtResource("9_bp2jl") +toggle_mode = true +text = "自动" + +[node name="读取存档" type="Button" parent="."] +offset_left = 1208.0 +offset_top = 576.0 +offset_right = 1256.0 +offset_bottom = 608.0 +theme = ExtResource("9_bp2jl") +text = "读档" + +[node name="保存存档" type="Button" parent="."] +offset_left = 1208.0 +offset_top = 624.0 +offset_right = 1256.0 +offset_bottom = 656.0 +theme = ExtResource("9_bp2jl") +text = "存档" + +[node name="游戏菜单" type="Button" parent="."] +offset_left = 1208.0 +offset_top = 672.0 +offset_right = 1256.0 +offset_bottom = 704.0 +theme = ExtResource("9_bp2jl") +text = "菜单" + +[node name="SavedSelection" parent="." node_paths=PackedStringArray("Parent") instance=ExtResource("10_sk065")] +visible = false +Parent = NodePath("..") diff --git a/resources/ui/Rayne.tscn b/resources/ui/Rayne.tscn new file mode 100644 index 0000000..68da875 --- /dev/null +++ b/resources/ui/Rayne.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=4 format=3 uid="uid://dj16n8yvwwgr7"] + +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_dg3fm"] +[ext_resource type="Texture2D" uid="uid://dbyovpk0xc6jo" path="res://assets/character/2D雷恩.png" id="2_xfrxc"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s5ben"] +bg_color = Color(0, 0.701961, 0.54902, 0.784314) + +[node name="Rayne" type="CharacterBody2D"] + +[node name="ProgressBar" type="ProgressBar" parent="."] +visible = false +offset_left = -592.0 +offset_top = -728.0 +offset_right = 618.0 +offset_bottom = -576.0 +theme_override_fonts/font = ExtResource("1_dg3fm") +theme_override_font_sizes/font_size = 48 +theme_override_styles/fill = SubResource("StyleBoxFlat_s5ben") +value = 100.0 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PackedVector2Array(0, 0, 0, 440, 160, 440, 320, 360, 320, 160, 280, 40, 200, 0, 240, -80, 280, -80, 320, -120, 320, -280, 280, -400, 160, -520, -40, -520, -160, -440, -240, -320, -240, -160, -360, 0, -360, 200, -280, 240, -240, 360, -200, 440, 0, 440) + +[node name="Sprite2D" type="Sprite2D" parent="CollisionPolygon2D"] +texture = ExtResource("2_xfrxc") diff --git a/resources/ui/SavedNode.tscn b/resources/ui/SavedNode.tscn new file mode 100644 index 0000000..fb8f103 --- /dev/null +++ b/resources/ui/SavedNode.tscn @@ -0,0 +1,79 @@ +[gd_scene load_steps=5 format=3 uid="uid://bds4gw3kdxsa1"] + +[ext_resource type="LabelSettings" uid="uid://b3h4w1jmyijkt" path="res://resources/themes/Label.tres" id="1_ckjip"] +[ext_resource type="Theme" uid="uid://bs3813xiv8ivn" path="res://resources/themes/panel.tres" id="1_yor01"] +[ext_resource type="Script" uid="uid://yb8nssj7d04f" path="res://scripts/SavedSelection/SavedNode.cs" id="2_fj806"] +[ext_resource type="Theme" uid="uid://d0pi6io7y7tky" path="res://resources/themes/dialog.tres" id="4_bsuih"] + +[node name="SavedNode" type="PanelContainer" node_paths=PackedStringArray("Button", "SaveDialog", "LoadDialog", "SavedName", "SavedTime", "ChapterInGame", "AreaInGame")] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -316.0 +offset_top = -45.5 +offset_right = 316.0 +offset_bottom = 45.5 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme = ExtResource("1_yor01") +script = ExtResource("2_fj806") +Button = NodePath("Button") +SaveDialog = NodePath("Save?") +LoadDialog = NodePath("Load?") +SavedName = NodePath("MarginContainer/SavedName") +SavedTime = NodePath("MarginContainer/SavedTime") +ChapterInGame = NodePath("MarginContainer/ChapterInGame") +AreaInGame = NodePath("MarginContainer/AreaInGame") + +[node name="MarginContainer" type="GridContainer" parent="."] +layout_mode = 2 +theme = ExtResource("1_yor01") +columns = 2 + +[node name="SavedName" type="Label" parent="MarginContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "存档名" +label_settings = ExtResource("1_ckjip") +vertical_alignment = 1 + +[node name="SavedTime" type="Label" parent="MarginContainer"] +layout_mode = 2 +text = "保存时间:2025年2月23日19:57:27" +label_settings = ExtResource("1_ckjip") +vertical_alignment = 1 + +[node name="ChapterInGame" type="Label" parent="MarginContainer"] +layout_mode = 2 +text = "章节" +label_settings = ExtResource("1_ckjip") +vertical_alignment = 1 + +[node name="AreaInGame" type="Label" parent="MarginContainer"] +layout_mode = 2 +text = "存档地点" +label_settings = ExtResource("1_ckjip") +vertical_alignment = 1 + +[node name="Button" type="Button" parent="."] +layout_mode = 2 +flat = true + +[node name="Load?" type="ConfirmationDialog" parent="."] +title = "加载存档" +theme = ExtResource("4_bsuih") +ok_button_text = "是" +dialog_text = "加载这个存档?" +cancel_button_text = "否" + +[node name="Save?" type="ConfirmationDialog" parent="."] +auto_translate_mode = 1 +title = "保存存档" +theme = ExtResource("4_bsuih") +ok_button_text = "是" +dialog_text = "保存到这个位置吗?" +cancel_button_text = "否" diff --git a/resources/ui/SavedSelection.tscn b/resources/ui/SavedSelection.tscn new file mode 100644 index 0000000..9186164 --- /dev/null +++ b/resources/ui/SavedSelection.tscn @@ -0,0 +1,166 @@ +[gd_scene load_steps=9 format=3 uid="uid://b25umg4d0y13"] + +[ext_resource type="Script" uid="uid://djcq2jgoaism" path="res://scripts/SavedSelection/SavedSelection.cs" id="1_3af8h"] +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="1_h4xw3"] +[ext_resource type="PackedScene" uid="uid://bds4gw3kdxsa1" path="res://resources/ui/SavedNode.tscn" id="2_pb2kw"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ub0h0"] +bg_color = Color(1, 1, 1, 0.470588) +shadow_color = Color(0.917647, 0.521569, 0.639216, 0.470588) +shadow_size = 5 + +[sub_resource type="Animation" id="Animation_keguw"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, -936)] +} + +[sub_resource type="Animation" id="Animation_02gau"] +resource_name = "flyin" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(0, -936), Vector2(0, 0)] +} + +[sub_resource type="Animation" id="Animation_d4ukt"] +resource_name = "flyout" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(0, -936)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_p1rrd"] +_data = { +&"RESET": SubResource("Animation_keguw"), +&"flyin": SubResource("Animation_02gau"), +&"flyout": SubResource("Animation_d4ukt") +} + +[node name="SavedSelection" type="CanvasLayer"] +script = ExtResource("1_3af8h") + +[node name="ColorRect" type="ColorRect" parent="."] +offset_right = 1280.0 +offset_bottom = 720.0 +color = Color(1, 1, 1, 0) +metadata/_edit_lock_ = true + +[node name="Label" type="Label" parent="ColorRect"] +layout_mode = 0 +offset_left = 128.0 +offset_right = 1152.0 +offset_bottom = 92.0 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_outline_size = 3 +theme_override_fonts/font = ExtResource("1_h4xw3") +theme_override_font_sizes/font_size = 56 +text = "选择一个存档" +horizontal_alignment = 1 +vertical_alignment = 1 +metadata/_edit_lock_ = true + +[node name="Panel" type="Panel" parent="ColorRect"] +layout_mode = 0 +offset_left = 128.0 +offset_top = 92.0 +offset_right = 1152.0 +offset_bottom = 704.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_ub0h0") +metadata/_edit_lock_ = true + +[node name="ScrollContainer" type="ScrollContainer" parent="ColorRect"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -512.0 +offset_top = -268.0 +offset_right = 524.0 +offset_bottom = 343.0 +grow_horizontal = 2 +grow_vertical = 2 +metadata/_edit_lock_ = true + +[node name="VBoxContainer" type="VBoxContainer" parent="ColorRect/ScrollContainer"] +clip_contents = true +custom_minimum_size = Vector2(1024, 576) +layout_mode = 2 +metadata/_edit_lock_ = true + +[node name="AutoSavedNode" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 0 +IsAuto = true + +[node name="SavedNode1" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 + +[node name="SavedNode2" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 2 + +[node name="SavedNode3" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 3 + +[node name="SavedNode4" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 4 + +[node name="SavedNode5" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 5 + +[node name="SavedNode6" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 6 + +[node name="SavedNode7" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 7 + +[node name="SavedNode8" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 8 + +[node name="SavedNode9" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 9 + +[node name="SavedNode10" parent="ColorRect/ScrollContainer/VBoxContainer" instance=ExtResource("2_pb2kw")] +layout_mode = 2 +Index = 10 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="ColorRect"] +libraries = { +&"": SubResource("AnimationLibrary_p1rrd") +} diff --git a/resources/ui/UserInterface.tscn b/resources/ui/UserInterface.tscn new file mode 100644 index 0000000..456f326 --- /dev/null +++ b/resources/ui/UserInterface.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=4 format=3 uid="uid://dewev77kmbwre"] + +[ext_resource type="Theme" uid="uid://d1gp4l4cwgtw4" path="res://resources/themes/button.tres" id="1_r31ah"] +[ext_resource type="PackedScene" uid="uid://boa4gvdodn6is" path="res://resources/ui/CharacterStatus.tscn" id="2_infd8"] +[ext_resource type="Script" uid="uid://bc5cucvklcmrd" path="res://scripts/UserInterface.cs" id="3_mwlxn"] + +[node name="UserInterface" type="Control" node_paths=PackedStringArray("CharacterStatus1", "CharacterStatus2")] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("3_mwlxn") +CharacterStatus1 = NodePath("CharacterStatus") +CharacterStatus2 = NodePath("CharacterStatus2") +metadata/_edit_lock_ = true + +[node name="Label" type="Label" parent="."] +layout_mode = 0 +offset_right = 448.0 +offset_bottom = 72.0 +theme = ExtResource("1_r31ah") +text = "当前位置" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CharacterStatus" parent="." instance=ExtResource("2_infd8")] +visible = false +layout_mode = 1 +offset_top = 648.0 +offset_right = -85.0 +offset_bottom = 269.0 +scale = Vector2(0.2, 0.2) + +[node name="CharacterStatus2" parent="." instance=ExtResource("2_infd8")] +visible = false +layout_mode = 1 +offset_left = 240.0 +offset_top = 648.0 +offset_right = 155.0 +offset_bottom = 269.0 +scale = Vector2(0.2, 0.2) diff --git a/resources/ui/menu.tscn b/resources/ui/menu.tscn new file mode 100644 index 0000000..252a68e --- /dev/null +++ b/resources/ui/menu.tscn @@ -0,0 +1,111 @@ +[gd_scene load_steps=5 format=3 uid="uid://l0twf4e20yas"] + +[ext_resource type="Texture2D" uid="uid://cy8hsxd2nn0i8" path="res://assets/EclipticSonataLogo.png" id="1_82ouh"] +[ext_resource type="Script" uid="uid://c0hp2amidehe0" path="res://scripts/MenuController.cs" id="1_f01gi"] +[ext_resource type="Theme" uid="uid://bi5n6j6qn74xi" path="res://resources/themes/menubutton.tres" id="2_82ouh"] +[ext_resource type="Theme" uid="uid://d0pi6io7y7tky" path="res://resources/themes/dialog.tres" id="4_w85t6"] + +[node name="Menu" type="ColorRect" node_paths=PackedStringArray("ContinueGame", "GameSettings", "BackToTitle", "ExitGame", "ExitConfirmationDialog", "BackToTitleConfirmationDialog")] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(1, 1, 1, 0.392157) +script = ExtResource("1_f01gi") +ContinueGame = NodePath("继续游戏") +GameSettings = NodePath("游戏设置") +BackToTitle = NodePath("返回标题") +ExitGame = NodePath("结束游戏") +ExitConfirmationDialog = NodePath("ExitGame?") +BackToTitleConfirmationDialog = NodePath("BackToTitle?") +metadata/_edit_lock_ = true + +[node name="TextureRect" type="TextureRect" parent="."] +layout_mode = 0 +offset_left = 203.0 +offset_top = 8.0 +offset_right = 1079.0 +offset_bottom = 338.0 +texture = ExtResource("1_82ouh") +metadata/_edit_lock_ = true + +[node name="继续游戏" type="Button" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -86.0 +offset_top = 48.5 +offset_right = 86.0 +offset_bottom = 101.5 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("2_82ouh") +text = "继续游戏" + +[node name="游戏设置" type="Button" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -86.0 +offset_top = 111.5 +offset_right = 86.0 +offset_bottom = 164.5 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("2_82ouh") +text = "游戏设置" + +[node name="返回标题" type="Button" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -86.0 +offset_top = 176.5 +offset_right = 86.0 +offset_bottom = 229.5 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("2_82ouh") +text = "返回标题" + +[node name="结束游戏" type="Button" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -86.0 +offset_top = 240.5 +offset_right = 86.0 +offset_bottom = 293.5 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("2_82ouh") +text = "结束游戏" + +[node name="ExitGame?" type="ConfirmationDialog" parent="."] +auto_translate_mode = 1 +title = "提示" +theme = ExtResource("4_w85t6") +ok_button_text = "是" +dialog_text = "是否退出游戏?未保存的内容将丢失。" +cancel_button_text = "否" + +[node name="BackToTitle?" type="ConfirmationDialog" parent="."] +auto_translate_mode = 1 +title = "提示" +theme = ExtResource("4_w85t6") +ok_button_text = "是" +dialog_text = "返回标题界面?未保存的内容将丢失。" +cancel_button_text = "否" diff --git a/scenes/SplashScreen.tscn b/scenes/SplashScreen.tscn new file mode 100644 index 0000000..d162c8e --- /dev/null +++ b/scenes/SplashScreen.tscn @@ -0,0 +1,73 @@ +[gd_scene load_steps=5 format=3 uid="uid://dhvw4k0vyu1aa"] + +[ext_resource type="Texture2D" uid="uid://dsuuk4kdoevn3" path="res://assets/raincandy.png" id="1_8ukic"] +[ext_resource type="Script" uid="uid://dbyq6vgnnib7w" path="res://scripts/SplashScreen.cs" id="1_v5ida"] +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="3_jobkp"] +[ext_resource type="Texture2D" uid="uid://b7mtjukcndwbc" path="res://assets/logo_large_color_light.png" id="5_s88rl"] + +[node name="SplashScreen" type="CanvasLayer" node_paths=PackedStringArray("GodotLogo", "Logo", "Label")] +script = ExtResource("1_v5ida") +GodotLogo = NodePath("Godot") +Logo = NodePath("Raincandy") +Label = NodePath("Raincandy/Milimoe") + +[node name="ColorRect" type="ColorRect" parent="."] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -640.0 +offset_top = -360.0 +offset_right = 640.0 +offset_bottom = 360.0 +grow_horizontal = 2 +grow_vertical = 2 +metadata/_edit_lock_ = true + +[node name="Raincandy" type="TextureRect" parent="."] +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -290.5 +offset_right = 290.5 +offset_bottom = 581.0 +grow_horizontal = 2 +size_flags_horizontal = 4 +texture = ExtResource("1_8ukic") +metadata/_edit_lock_ = true + +[node name="Milimoe" type="Label" parent="Raincandy"] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -313.0 +offset_top = -102.0 +offset_right = 335.0 +offset_bottom = 26.0 +grow_horizontal = 2 +grow_vertical = 0 +theme_override_colors/font_color = Color(0.940591, 0.290397, 0.55787, 1) +theme_override_fonts/font = ExtResource("3_jobkp") +theme_override_font_sizes/font_size = 50 +text = "Milimoe Presents" +horizontal_alignment = 1 +vertical_alignment = 1 +metadata/_edit_lock_ = true + +[node name="Godot" type="TextureRect" parent="."] +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -509.0 +offset_top = 160.0 +offset_right = 2024.0 +offset_bottom = 1184.0 +grow_horizontal = 2 +scale = Vector2(0.4, 0.4) +size_flags_horizontal = 4 +texture = ExtResource("5_s88rl") +metadata/_edit_lock_ = true diff --git a/scenes/TitleScreen.tscn b/scenes/TitleScreen.tscn new file mode 100644 index 0000000..9850ea0 --- /dev/null +++ b/scenes/TitleScreen.tscn @@ -0,0 +1,208 @@ +[gd_scene load_steps=15 format=3 uid="uid://b8tj5ccjo6lqe"] + +[ext_resource type="Script" uid="uid://cyi0j3meewtyt" path="res://scripts/TitleScreen.cs" id="1_mgv04"] +[ext_resource type="Texture2D" uid="uid://ghgridyqby8w" path="res://assets/backgrounds/EclipticSonata.png" id="2_t3h42"] +[ext_resource type="Theme" uid="uid://d1gp4l4cwgtw4" path="res://resources/themes/button.tres" id="2_xbc5l"] +[ext_resource type="FontFile" uid="uid://ch6s7n1ri81gt" path="res://assets/fonts/思源宋体.TTF" id="4_xoekp"] +[ext_resource type="Theme" uid="uid://d0pi6io7y7tky" path="res://resources/themes/dialog.tres" id="6_bdtiy"] +[ext_resource type="Texture2D" uid="uid://cy8hsxd2nn0i8" path="res://assets/EclipticSonataLogo.png" id="6_nf1md"] +[ext_resource type="AudioStream" uid="uid://l6k3d3408tj" path="res://assets/music/Wolfgang Amadeus Mozart - 莫扎特 摇篮曲.mp3" id="7_68hpm"] +[ext_resource type="PackedScene" uid="uid://b25umg4d0y13" path="res://resources/ui/SavedSelection.tscn" id="8_88cje"] + +[sub_resource type="Animation" id="Animation_yw73o"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(64, -300)] +} + +[sub_resource type="Animation" id="Animation_gm0ka"] +resource_name = "flyin" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(64, -300), Vector2(64, 33)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_csld4"] +_data = { +&"RESET": SubResource("Animation_yw73o"), +&"flyin": SubResource("Animation_gm0ka") +} + +[sub_resource type="Animation" id="Animation_4v6qd"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1520, 470)] +} + +[sub_resource type="Animation" id="Animation_86lmj"] +resource_name = "flyin" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(1520, 470), Vector2(1056, 470)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_5laux"] +_data = { +&"RESET": SubResource("Animation_4v6qd"), +&"flyin": SubResource("Animation_86lmj") +} + +[node name="TitleScreen" type="Node2D" node_paths=PackedStringArray("StartGameButton", "LoadGameButton", "GameSettingsButton", "ExitGameButton", "StartConfirmationDialog", "ExitConfirmationDialog", "SavedSelection")] +script = ExtResource("1_mgv04") +StartGameButton = NodePath("VBoxContainer/新的开始") +LoadGameButton = NodePath("VBoxContainer/载入游戏") +GameSettingsButton = NodePath("VBoxContainer/游戏设置") +ExitGameButton = NodePath("VBoxContainer/退出游戏") +StartConfirmationDialog = NodePath("StartNew?") +ExitConfirmationDialog = NodePath("ExitGame?") +SavedSelection = NodePath("SavedSelection") + +[node name="bg" type="Sprite2D" parent="."] +position = Vector2(640, 360) +texture = ExtResource("2_t3h42") +metadata/_edit_lock_ = true + +[node name="CopyRight" type="Label" parent="."] +offset_left = 8.0 +offset_top = 688.0 +offset_right = 272.0 +offset_bottom = 717.0 +theme_override_colors/font_color = Color(0.219608, 0.0823529, 0.254902, 1) +theme_override_colors/font_shadow_color = Color(0.983899, 0.825836, 0.867247, 0.458824) +theme_override_fonts/font = ExtResource("4_xoekp") +theme_override_font_sizes/font_size = 18 +text = "©2025 Milimoe. 米粒的糖果屋" +horizontal_alignment = 1 +vertical_alignment = 1 +metadata/_edit_lock_ = true + +[node name="ExitGame?" type="ConfirmationDialog" parent="."] +title = "提示" +theme = ExtResource("6_bdtiy") +ok_button_text = "是" +dialog_text = "是否退出游戏?" +cancel_button_text = "否" + +[node name="StartNew?" type="ConfirmationDialog" parent="."] +auto_translate_mode = 1 +title = "提示" +theme = ExtResource("6_bdtiy") +ok_button_text = "是" +dialog_text = "开始新的游戏吗?" +cancel_button_text = "否" + +[node name="EclipticSonataLogo" type="TextureRect" parent="."] +offset_left = 64.0 +offset_top = -300.0 +offset_right = 940.0 +offset_bottom = 30.0 +scale = Vector2(0.7, 0.7) +texture = ExtResource("6_nf1md") +metadata/_edit_lock_ = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="EclipticSonataLogo"] +libraries = { +&"": SubResource("AnimationLibrary_csld4") +} +autoplay = "flyin" +playback_auto_capture = false +playback_default_blend_time = 0.3 + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +offset_left = 1520.0 +offset_top = 470.0 +offset_right = 1656.0 +offset_bottom = 702.0 +metadata/_edit_lock_ = true + +[node name="新的开始" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme = ExtResource("2_xbc5l") +text = "新的开始" +flat = true +icon_alignment = 1 +metadata/_edit_lock_ = true + +[node name="载入游戏" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme = ExtResource("2_xbc5l") +text = "载入游戏" +flat = true +icon_alignment = 1 +metadata/_edit_lock_ = true + +[node name="游戏设置" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme = ExtResource("2_xbc5l") +text = "游戏设置" +flat = true +icon_alignment = 1 +metadata/_edit_lock_ = true + +[node name="退出游戏" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme = ExtResource("2_xbc5l") +text = "退出游戏" +flat = true +icon_alignment = 1 +metadata/_edit_lock_ = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="VBoxContainer"] +callback_mode_method = 1 +libraries = { +&"": SubResource("AnimationLibrary_5laux") +} +autoplay = "flyin" +playback_auto_capture = false +playback_default_blend_time = 0.3 + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource("7_68hpm") +volume_db = -8.0 +autoplay = true +parameters/looping = true + +[node name="SavedSelection" parent="." node_paths=PackedStringArray("Parent") instance=ExtResource("8_88cje")] +visible = false +Parent = NodePath("..") + +[node name="ColorRect" type="ColorRect" parent="."] +visible = false +offset_right = 1280.0 +offset_bottom = 720.0 +color = Color(0, 0, 0, 1) +metadata/_edit_lock_ = true diff --git a/scenes/main.tscn b/scenes/main.tscn new file mode 100644 index 0000000..31969c9 --- /dev/null +++ b/scenes/main.tscn @@ -0,0 +1,4 @@ +[gd_scene format=3 uid="uid://cxg1hupyc68hw"] + +[node name="Main" type="Node2D"] +metadata/_edit_lock_ = true diff --git a/scenes/第一章.tres b/scenes/第一章.tres new file mode 100644 index 0000000..79d9ec5 --- /dev/null +++ b/scenes/第一章.tres @@ -0,0 +1,1806 @@ +[gd_resource type="TileSet" load_steps=9 format=3 uid="uid://bgpctug81w5n3"] + +[ext_resource type="Texture2D" uid="uid://bxk7lljpqml15" path="res://assets/kenney_1-bit-pack/Tilemap/tileset_legacy.png" id="1_2ipr8"] +[ext_resource type="Texture2D" uid="uid://bhvyfmyt8dkch" path="res://assets/kenney_monochrome-rpg/Default/Tilemap/tilemap.png" id="2_npjt2"] +[ext_resource type="Texture2D" uid="uid://caws1nopk6ka8" path="res://assets/kenney_tiny-dungeon/Tilemap/tilemap.png" id="3_2vnky"] +[ext_resource type="Texture2D" uid="uid://qoabg46a4b4g" path="res://assets/kenney_rpg-urban-pack/Tilemap/tilemap.png" id="4_xfnij"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_0netd"] +texture = ExtResource("1_2ipr8") +separation = Vector2i(1, 1) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +4:0/0 = 0 +5:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +8:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +12:0/0 = 0 +13:0/0 = 0 +14:0/0 = 0 +15:0/0 = 0 +16:0/0 = 0 +17:0/0 = 0 +18:0/0 = 0 +19:0/0 = 0 +20:0/0 = 0 +21:0/0 = 0 +22:0/0 = 0 +23:0/0 = 0 +24:0/0 = 0 +25:0/0 = 0 +26:0/0 = 0 +27:0/0 = 0 +28:0/0 = 0 +29:0/0 = 0 +30:0/0 = 0 +31:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +5:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +12:1/0 = 0 +13:1/0 = 0 +14:1/0 = 0 +15:1/0 = 0 +16:1/0 = 0 +17:1/0 = 0 +18:1/0 = 0 +19:1/0 = 0 +20:1/0 = 0 +21:1/0 = 0 +22:1/0 = 0 +23:1/0 = 0 +24:1/0 = 0 +25:1/0 = 0 +26:1/0 = 0 +27:1/0 = 0 +28:1/0 = 0 +29:1/0 = 0 +30:1/0 = 0 +31:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +3:2/0 = 0 +4:2/0 = 0 +5:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +8:2/0 = 0 +9:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +12:2/0 = 0 +13:2/0 = 0 +14:2/0 = 0 +15:2/0 = 0 +16:2/0 = 0 +17:2/0 = 0 +18:2/0 = 0 +19:2/0 = 0 +20:2/0 = 0 +21:2/0 = 0 +22:2/0 = 0 +23:2/0 = 0 +24:2/0 = 0 +25:2/0 = 0 +26:2/0 = 0 +27:2/0 = 0 +28:2/0 = 0 +29:2/0 = 0 +30:2/0 = 0 +31:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +8:3/0 = 0 +9:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +12:3/0 = 0 +13:3/0 = 0 +14:3/0 = 0 +15:3/0 = 0 +16:3/0 = 0 +17:3/0 = 0 +18:3/0 = 0 +19:3/0 = 0 +20:3/0 = 0 +21:3/0 = 0 +22:3/0 = 0 +23:3/0 = 0 +24:3/0 = 0 +25:3/0 = 0 +26:3/0 = 0 +27:3/0 = 0 +28:3/0 = 0 +29:3/0 = 0 +30:3/0 = 0 +31:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +12:4/0 = 0 +13:4/0 = 0 +14:4/0 = 0 +15:4/0 = 0 +16:4/0 = 0 +17:4/0 = 0 +18:4/0 = 0 +19:4/0 = 0 +20:4/0 = 0 +21:4/0 = 0 +22:4/0 = 0 +23:4/0 = 0 +24:4/0 = 0 +25:4/0 = 0 +26:4/0 = 0 +27:4/0 = 0 +28:4/0 = 0 +29:4/0 = 0 +30:4/0 = 0 +31:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 +12:5/0 = 0 +13:5/0 = 0 +14:5/0 = 0 +15:5/0 = 0 +16:5/0 = 0 +17:5/0 = 0 +18:5/0 = 0 +19:5/0 = 0 +20:5/0 = 0 +21:5/0 = 0 +22:5/0 = 0 +23:5/0 = 0 +24:5/0 = 0 +25:5/0 = 0 +26:5/0 = 0 +27:5/0 = 0 +28:5/0 = 0 +29:5/0 = 0 +30:5/0 = 0 +31:5/0 = 0 +0:6/0 = 0 +1:6/0 = 0 +2:6/0 = 0 +3:6/0 = 0 +4:6/0 = 0 +5:6/0 = 0 +6:6/0 = 0 +7:6/0 = 0 +8:6/0 = 0 +9:6/0 = 0 +10:6/0 = 0 +11:6/0 = 0 +12:6/0 = 0 +13:6/0 = 0 +14:6/0 = 0 +15:6/0 = 0 +16:6/0 = 0 +17:6/0 = 0 +18:6/0 = 0 +19:6/0 = 0 +20:6/0 = 0 +21:6/0 = 0 +22:6/0 = 0 +23:6/0 = 0 +24:6/0 = 0 +25:6/0 = 0 +26:6/0 = 0 +27:6/0 = 0 +28:6/0 = 0 +29:6/0 = 0 +30:6/0 = 0 +31:6/0 = 0 +0:7/0 = 0 +1:7/0 = 0 +2:7/0 = 0 +3:7/0 = 0 +4:7/0 = 0 +5:7/0 = 0 +6:7/0 = 0 +7:7/0 = 0 +8:7/0 = 0 +9:7/0 = 0 +10:7/0 = 0 +11:7/0 = 0 +12:7/0 = 0 +13:7/0 = 0 +14:7/0 = 0 +15:7/0 = 0 +16:7/0 = 0 +17:7/0 = 0 +18:7/0 = 0 +19:7/0 = 0 +20:7/0 = 0 +21:7/0 = 0 +22:7/0 = 0 +23:7/0 = 0 +24:7/0 = 0 +25:7/0 = 0 +26:7/0 = 0 +27:7/0 = 0 +28:7/0 = 0 +29:7/0 = 0 +30:7/0 = 0 +31:7/0 = 0 +0:8/0 = 0 +1:8/0 = 0 +2:8/0 = 0 +3:8/0 = 0 +4:8/0 = 0 +5:8/0 = 0 +6:8/0 = 0 +7:8/0 = 0 +8:8/0 = 0 +9:8/0 = 0 +10:8/0 = 0 +11:8/0 = 0 +12:8/0 = 0 +13:8/0 = 0 +14:8/0 = 0 +15:8/0 = 0 +16:8/0 = 0 +17:8/0 = 0 +18:8/0 = 0 +19:8/0 = 0 +20:8/0 = 0 +21:8/0 = 0 +22:8/0 = 0 +23:8/0 = 0 +24:8/0 = 0 +25:8/0 = 0 +26:8/0 = 0 +27:8/0 = 0 +28:8/0 = 0 +29:8/0 = 0 +30:8/0 = 0 +31:8/0 = 0 +0:9/0 = 0 +1:9/0 = 0 +2:9/0 = 0 +3:9/0 = 0 +4:9/0 = 0 +5:9/0 = 0 +6:9/0 = 0 +7:9/0 = 0 +8:9/0 = 0 +9:9/0 = 0 +10:9/0 = 0 +11:9/0 = 0 +12:9/0 = 0 +13:9/0 = 0 +14:9/0 = 0 +15:9/0 = 0 +16:9/0 = 0 +17:9/0 = 0 +18:9/0 = 0 +19:9/0 = 0 +20:9/0 = 0 +21:9/0 = 0 +22:9/0 = 0 +23:9/0 = 0 +24:9/0 = 0 +25:9/0 = 0 +26:9/0 = 0 +27:9/0 = 0 +28:9/0 = 0 +29:9/0 = 0 +30:9/0 = 0 +31:9/0 = 0 +0:10/0 = 0 +1:10/0 = 0 +2:10/0 = 0 +3:10/0 = 0 +4:10/0 = 0 +5:10/0 = 0 +6:10/0 = 0 +7:10/0 = 0 +8:10/0 = 0 +9:10/0 = 0 +10:10/0 = 0 +11:10/0 = 0 +12:10/0 = 0 +13:10/0 = 0 +14:10/0 = 0 +15:10/0 = 0 +16:10/0 = 0 +17:10/0 = 0 +18:10/0 = 0 +19:10/0 = 0 +20:10/0 = 0 +21:10/0 = 0 +22:10/0 = 0 +23:10/0 = 0 +24:10/0 = 0 +25:10/0 = 0 +26:10/0 = 0 +27:10/0 = 0 +28:10/0 = 0 +29:10/0 = 0 +30:10/0 = 0 +31:10/0 = 0 +0:11/0 = 0 +1:11/0 = 0 +2:11/0 = 0 +3:11/0 = 0 +4:11/0 = 0 +5:11/0 = 0 +6:11/0 = 0 +7:11/0 = 0 +8:11/0 = 0 +9:11/0 = 0 +10:11/0 = 0 +11:11/0 = 0 +12:11/0 = 0 +13:11/0 = 0 +14:11/0 = 0 +15:11/0 = 0 +16:11/0 = 0 +17:11/0 = 0 +18:11/0 = 0 +19:11/0 = 0 +20:11/0 = 0 +21:11/0 = 0 +22:11/0 = 0 +23:11/0 = 0 +24:11/0 = 0 +25:11/0 = 0 +26:11/0 = 0 +27:11/0 = 0 +28:11/0 = 0 +29:11/0 = 0 +30:11/0 = 0 +31:11/0 = 0 +0:12/0 = 0 +1:12/0 = 0 +2:12/0 = 0 +3:12/0 = 0 +4:12/0 = 0 +5:12/0 = 0 +6:12/0 = 0 +7:12/0 = 0 +8:12/0 = 0 +9:12/0 = 0 +10:12/0 = 0 +11:12/0 = 0 +12:12/0 = 0 +13:12/0 = 0 +14:12/0 = 0 +15:12/0 = 0 +16:12/0 = 0 +17:12/0 = 0 +18:12/0 = 0 +19:12/0 = 0 +20:12/0 = 0 +21:12/0 = 0 +22:12/0 = 0 +23:12/0 = 0 +24:12/0 = 0 +25:12/0 = 0 +26:12/0 = 0 +27:12/0 = 0 +28:12/0 = 0 +29:12/0 = 0 +30:12/0 = 0 +31:12/0 = 0 +0:13/0 = 0 +1:13/0 = 0 +2:13/0 = 0 +3:13/0 = 0 +4:13/0 = 0 +5:13/0 = 0 +6:13/0 = 0 +7:13/0 = 0 +8:13/0 = 0 +9:13/0 = 0 +10:13/0 = 0 +11:13/0 = 0 +12:13/0 = 0 +13:13/0 = 0 +14:13/0 = 0 +15:13/0 = 0 +16:13/0 = 0 +17:13/0 = 0 +18:13/0 = 0 +19:13/0 = 0 +20:13/0 = 0 +21:13/0 = 0 +22:13/0 = 0 +23:13/0 = 0 +24:13/0 = 0 +25:13/0 = 0 +26:13/0 = 0 +27:13/0 = 0 +28:13/0 = 0 +29:13/0 = 0 +30:13/0 = 0 +31:13/0 = 0 +0:14/0 = 0 +1:14/0 = 0 +2:14/0 = 0 +3:14/0 = 0 +4:14/0 = 0 +5:14/0 = 0 +6:14/0 = 0 +7:14/0 = 0 +8:14/0 = 0 +9:14/0 = 0 +10:14/0 = 0 +11:14/0 = 0 +12:14/0 = 0 +13:14/0 = 0 +14:14/0 = 0 +15:14/0 = 0 +16:14/0 = 0 +17:14/0 = 0 +18:14/0 = 0 +19:14/0 = 0 +20:14/0 = 0 +21:14/0 = 0 +22:14/0 = 0 +23:14/0 = 0 +24:14/0 = 0 +25:14/0 = 0 +26:14/0 = 0 +27:14/0 = 0 +28:14/0 = 0 +29:14/0 = 0 +30:14/0 = 0 +31:14/0 = 0 +0:15/0 = 0 +1:15/0 = 0 +2:15/0 = 0 +3:15/0 = 0 +4:15/0 = 0 +5:15/0 = 0 +6:15/0 = 0 +7:15/0 = 0 +8:15/0 = 0 +9:15/0 = 0 +10:15/0 = 0 +11:15/0 = 0 +12:15/0 = 0 +13:15/0 = 0 +14:15/0 = 0 +15:15/0 = 0 +16:15/0 = 0 +17:15/0 = 0 +18:15/0 = 0 +19:15/0 = 0 +20:15/0 = 0 +21:15/0 = 0 +22:15/0 = 0 +23:15/0 = 0 +24:15/0 = 0 +25:15/0 = 0 +26:15/0 = 0 +27:15/0 = 0 +28:15/0 = 0 +29:15/0 = 0 +30:15/0 = 0 +31:15/0 = 0 +0:16/0 = 0 +1:16/0 = 0 +2:16/0 = 0 +3:16/0 = 0 +4:16/0 = 0 +5:16/0 = 0 +6:16/0 = 0 +7:16/0 = 0 +8:16/0 = 0 +9:16/0 = 0 +10:16/0 = 0 +11:16/0 = 0 +12:16/0 = 0 +13:16/0 = 0 +14:16/0 = 0 +15:16/0 = 0 +16:16/0 = 0 +17:16/0 = 0 +18:16/0 = 0 +19:16/0 = 0 +20:16/0 = 0 +21:16/0 = 0 +22:16/0 = 0 +23:16/0 = 0 +24:16/0 = 0 +25:16/0 = 0 +26:16/0 = 0 +27:16/0 = 0 +28:16/0 = 0 +29:16/0 = 0 +30:16/0 = 0 +31:16/0 = 0 +0:17/0 = 0 +1:17/0 = 0 +2:17/0 = 0 +3:17/0 = 0 +4:17/0 = 0 +5:17/0 = 0 +6:17/0 = 0 +7:17/0 = 0 +8:17/0 = 0 +9:17/0 = 0 +10:17/0 = 0 +11:17/0 = 0 +12:17/0 = 0 +13:17/0 = 0 +14:17/0 = 0 +15:17/0 = 0 +16:17/0 = 0 +17:17/0 = 0 +18:17/0 = 0 +19:17/0 = 0 +20:17/0 = 0 +21:17/0 = 0 +22:17/0 = 0 +23:17/0 = 0 +24:17/0 = 0 +25:17/0 = 0 +26:17/0 = 0 +27:17/0 = 0 +28:17/0 = 0 +29:17/0 = 0 +30:17/0 = 0 +31:17/0 = 0 +0:18/0 = 0 +1:18/0 = 0 +2:18/0 = 0 +3:18/0 = 0 +4:18/0 = 0 +5:18/0 = 0 +6:18/0 = 0 +7:18/0 = 0 +8:18/0 = 0 +9:18/0 = 0 +10:18/0 = 0 +11:18/0 = 0 +12:18/0 = 0 +13:18/0 = 0 +14:18/0 = 0 +15:18/0 = 0 +16:18/0 = 0 +17:18/0 = 0 +18:18/0 = 0 +19:18/0 = 0 +20:18/0 = 0 +21:18/0 = 0 +22:18/0 = 0 +23:18/0 = 0 +24:18/0 = 0 +25:18/0 = 0 +26:18/0 = 0 +27:18/0 = 0 +28:18/0 = 0 +29:18/0 = 0 +30:18/0 = 0 +31:18/0 = 0 +0:19/0 = 0 +1:19/0 = 0 +2:19/0 = 0 +3:19/0 = 0 +4:19/0 = 0 +5:19/0 = 0 +6:19/0 = 0 +7:19/0 = 0 +8:19/0 = 0 +9:19/0 = 0 +10:19/0 = 0 +11:19/0 = 0 +12:19/0 = 0 +13:19/0 = 0 +14:19/0 = 0 +15:19/0 = 0 +16:19/0 = 0 +17:19/0 = 0 +18:19/0 = 0 +19:19/0 = 0 +20:19/0 = 0 +21:19/0 = 0 +22:19/0 = 0 +23:19/0 = 0 +24:19/0 = 0 +25:19/0 = 0 +26:19/0 = 0 +27:19/0 = 0 +28:19/0 = 0 +29:19/0 = 0 +30:19/0 = 0 +31:19/0 = 0 +0:20/0 = 0 +1:20/0 = 0 +2:20/0 = 0 +3:20/0 = 0 +4:20/0 = 0 +5:20/0 = 0 +6:20/0 = 0 +7:20/0 = 0 +8:20/0 = 0 +9:20/0 = 0 +10:20/0 = 0 +11:20/0 = 0 +12:20/0 = 0 +13:20/0 = 0 +14:20/0 = 0 +15:20/0 = 0 +16:20/0 = 0 +17:20/0 = 0 +18:20/0 = 0 +19:20/0 = 0 +20:20/0 = 0 +21:20/0 = 0 +22:20/0 = 0 +23:20/0 = 0 +24:20/0 = 0 +25:20/0 = 0 +26:20/0 = 0 +27:20/0 = 0 +28:20/0 = 0 +29:20/0 = 0 +30:20/0 = 0 +31:20/0 = 0 +0:21/0 = 0 +1:21/0 = 0 +2:21/0 = 0 +3:21/0 = 0 +4:21/0 = 0 +5:21/0 = 0 +6:21/0 = 0 +7:21/0 = 0 +8:21/0 = 0 +9:21/0 = 0 +10:21/0 = 0 +11:21/0 = 0 +12:21/0 = 0 +13:21/0 = 0 +14:21/0 = 0 +15:21/0 = 0 +16:21/0 = 0 +17:21/0 = 0 +18:21/0 = 0 +19:21/0 = 0 +20:21/0 = 0 +21:21/0 = 0 +22:21/0 = 0 +23:21/0 = 0 +24:21/0 = 0 +25:21/0 = 0 +26:21/0 = 0 +27:21/0 = 0 +28:21/0 = 0 +29:21/0 = 0 +30:21/0 = 0 +31:21/0 = 0 +0:22/0 = 0 +1:22/0 = 0 +2:22/0 = 0 +3:22/0 = 0 +4:22/0 = 0 +5:22/0 = 0 +6:22/0 = 0 +7:22/0 = 0 +8:22/0 = 0 +9:22/0 = 0 +10:22/0 = 0 +11:22/0 = 0 +12:22/0 = 0 +13:22/0 = 0 +14:22/0 = 0 +15:22/0 = 0 +16:22/0 = 0 +17:22/0 = 0 +18:22/0 = 0 +19:22/0 = 0 +20:22/0 = 0 +21:22/0 = 0 +22:22/0 = 0 +23:22/0 = 0 +24:22/0 = 0 +25:22/0 = 0 +26:22/0 = 0 +27:22/0 = 0 +28:22/0 = 0 +29:22/0 = 0 +30:22/0 = 0 +31:22/0 = 0 +0:23/0 = 0 +1:23/0 = 0 +2:23/0 = 0 +3:23/0 = 0 +4:23/0 = 0 +5:23/0 = 0 +6:23/0 = 0 +7:23/0 = 0 +8:23/0 = 0 +9:23/0 = 0 +10:23/0 = 0 +11:23/0 = 0 +12:23/0 = 0 +13:23/0 = 0 +14:23/0 = 0 +15:23/0 = 0 +16:23/0 = 0 +17:23/0 = 0 +18:23/0 = 0 +19:23/0 = 0 +20:23/0 = 0 +21:23/0 = 0 +22:23/0 = 0 +23:23/0 = 0 +24:23/0 = 0 +25:23/0 = 0 +26:23/0 = 0 +27:23/0 = 0 +28:23/0 = 0 +29:23/0 = 0 +30:23/0 = 0 +31:23/0 = 0 +0:24/0 = 0 +1:24/0 = 0 +2:24/0 = 0 +3:24/0 = 0 +4:24/0 = 0 +5:24/0 = 0 +6:24/0 = 0 +7:24/0 = 0 +8:24/0 = 0 +9:24/0 = 0 +10:24/0 = 0 +11:24/0 = 0 +12:24/0 = 0 +13:24/0 = 0 +14:24/0 = 0 +15:24/0 = 0 +16:24/0 = 0 +17:24/0 = 0 +18:24/0 = 0 +19:24/0 = 0 +20:24/0 = 0 +21:24/0 = 0 +22:24/0 = 0 +23:24/0 = 0 +24:24/0 = 0 +25:24/0 = 0 +26:24/0 = 0 +27:24/0 = 0 +28:24/0 = 0 +29:24/0 = 0 +30:24/0 = 0 +31:24/0 = 0 +0:25/0 = 0 +1:25/0 = 0 +2:25/0 = 0 +3:25/0 = 0 +4:25/0 = 0 +5:25/0 = 0 +6:25/0 = 0 +7:25/0 = 0 +8:25/0 = 0 +9:25/0 = 0 +10:25/0 = 0 +11:25/0 = 0 +12:25/0 = 0 +13:25/0 = 0 +14:25/0 = 0 +15:25/0 = 0 +16:25/0 = 0 +17:25/0 = 0 +18:25/0 = 0 +19:25/0 = 0 +20:25/0 = 0 +21:25/0 = 0 +22:25/0 = 0 +23:25/0 = 0 +24:25/0 = 0 +25:25/0 = 0 +26:25/0 = 0 +27:25/0 = 0 +28:25/0 = 0 +29:25/0 = 0 +30:25/0 = 0 +31:25/0 = 0 +0:26/0 = 0 +1:26/0 = 0 +2:26/0 = 0 +3:26/0 = 0 +4:26/0 = 0 +5:26/0 = 0 +6:26/0 = 0 +7:26/0 = 0 +8:26/0 = 0 +9:26/0 = 0 +10:26/0 = 0 +11:26/0 = 0 +12:26/0 = 0 +13:26/0 = 0 +14:26/0 = 0 +15:26/0 = 0 +16:26/0 = 0 +17:26/0 = 0 +18:26/0 = 0 +19:26/0 = 0 +20:26/0 = 0 +21:26/0 = 0 +22:26/0 = 0 +23:26/0 = 0 +24:26/0 = 0 +25:26/0 = 0 +26:26/0 = 0 +27:26/0 = 0 +28:26/0 = 0 +29:26/0 = 0 +30:26/0 = 0 +31:26/0 = 0 +0:27/0 = 0 +1:27/0 = 0 +2:27/0 = 0 +3:27/0 = 0 +4:27/0 = 0 +5:27/0 = 0 +6:27/0 = 0 +7:27/0 = 0 +8:27/0 = 0 +9:27/0 = 0 +10:27/0 = 0 +11:27/0 = 0 +12:27/0 = 0 +13:27/0 = 0 +14:27/0 = 0 +15:27/0 = 0 +16:27/0 = 0 +17:27/0 = 0 +18:27/0 = 0 +19:27/0 = 0 +20:27/0 = 0 +21:27/0 = 0 +22:27/0 = 0 +23:27/0 = 0 +24:27/0 = 0 +25:27/0 = 0 +26:27/0 = 0 +27:27/0 = 0 +28:27/0 = 0 +29:27/0 = 0 +30:27/0 = 0 +31:27/0 = 0 +0:28/0 = 0 +1:28/0 = 0 +2:28/0 = 0 +3:28/0 = 0 +4:28/0 = 0 +5:28/0 = 0 +6:28/0 = 0 +7:28/0 = 0 +8:28/0 = 0 +9:28/0 = 0 +10:28/0 = 0 +11:28/0 = 0 +12:28/0 = 0 +13:28/0 = 0 +14:28/0 = 0 +15:28/0 = 0 +16:28/0 = 0 +17:28/0 = 0 +18:28/0 = 0 +19:28/0 = 0 +20:28/0 = 0 +21:28/0 = 0 +22:28/0 = 0 +23:28/0 = 0 +24:28/0 = 0 +25:28/0 = 0 +26:28/0 = 0 +27:28/0 = 0 +28:28/0 = 0 +29:28/0 = 0 +30:28/0 = 0 +31:28/0 = 0 +0:29/0 = 0 +1:29/0 = 0 +2:29/0 = 0 +3:29/0 = 0 +4:29/0 = 0 +5:29/0 = 0 +6:29/0 = 0 +7:29/0 = 0 +8:29/0 = 0 +9:29/0 = 0 +10:29/0 = 0 +11:29/0 = 0 +12:29/0 = 0 +13:29/0 = 0 +14:29/0 = 0 +15:29/0 = 0 +16:29/0 = 0 +17:29/0 = 0 +18:29/0 = 0 +19:29/0 = 0 +20:29/0 = 0 +21:29/0 = 0 +22:29/0 = 0 +23:29/0 = 0 +24:29/0 = 0 +25:29/0 = 0 +26:29/0 = 0 +27:29/0 = 0 +28:29/0 = 0 +29:29/0 = 0 +30:29/0 = 0 +31:29/0 = 0 +0:30/0 = 0 +1:30/0 = 0 +2:30/0 = 0 +3:30/0 = 0 +4:30/0 = 0 +5:30/0 = 0 +6:30/0 = 0 +7:30/0 = 0 +8:30/0 = 0 +9:30/0 = 0 +10:30/0 = 0 +11:30/0 = 0 +12:30/0 = 0 +13:30/0 = 0 +14:30/0 = 0 +15:30/0 = 0 +16:30/0 = 0 +17:30/0 = 0 +18:30/0 = 0 +19:30/0 = 0 +20:30/0 = 0 +21:30/0 = 0 +22:30/0 = 0 +23:30/0 = 0 +24:30/0 = 0 +25:30/0 = 0 +26:30/0 = 0 +27:30/0 = 0 +28:30/0 = 0 +29:30/0 = 0 +30:30/0 = 0 +31:30/0 = 0 +0:31/0 = 0 +1:31/0 = 0 +2:31/0 = 0 +3:31/0 = 0 +4:31/0 = 0 +5:31/0 = 0 +6:31/0 = 0 +7:31/0 = 0 +8:31/0 = 0 +9:31/0 = 0 +10:31/0 = 0 +11:31/0 = 0 +12:31/0 = 0 +13:31/0 = 0 +14:31/0 = 0 +15:31/0 = 0 +16:31/0 = 0 +17:31/0 = 0 +18:31/0 = 0 +19:31/0 = 0 +20:31/0 = 0 +21:31/0 = 0 +22:31/0 = 0 +23:31/0 = 0 +24:31/0 = 0 +25:31/0 = 0 +26:31/0 = 0 +27:31/0 = 0 +28:31/0 = 0 +29:31/0 = 0 +30:31/0 = 0 +31:31/0 = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2cwrk"] +texture = ExtResource("2_npjt2") +separation = Vector2i(1, 1) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +4:0/0 = 0 +5:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +8:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +12:0/0 = 0 +13:0/0 = 0 +14:0/0 = 0 +15:0/0 = 0 +16:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +5:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +12:1/0 = 0 +13:1/0 = 0 +14:1/0 = 0 +15:1/0 = 0 +16:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +3:2/0 = 0 +4:2/0 = 0 +5:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +8:2/0 = 0 +9:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +12:2/0 = 0 +13:2/0 = 0 +14:2/0 = 0 +15:2/0 = 0 +16:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +8:3/0 = 0 +9:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +12:3/0 = 0 +13:3/0 = 0 +14:3/0 = 0 +15:3/0 = 0 +16:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +12:4/0 = 0 +13:4/0 = 0 +14:4/0 = 0 +15:4/0 = 0 +16:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 +12:5/0 = 0 +13:5/0 = 0 +14:5/0 = 0 +15:5/0 = 0 +16:5/0 = 0 +0:6/0 = 0 +1:6/0 = 0 +2:6/0 = 0 +3:6/0 = 0 +4:6/0 = 0 +5:6/0 = 0 +6:6/0 = 0 +7:6/0 = 0 +8:6/0 = 0 +9:6/0 = 0 +10:6/0 = 0 +11:6/0 = 0 +12:6/0 = 0 +13:6/0 = 0 +14:6/0 = 0 +15:6/0 = 0 +16:6/0 = 0 +0:7/0 = 0 +1:7/0 = 0 +2:7/0 = 0 +3:7/0 = 0 +4:7/0 = 0 +5:7/0 = 0 +6:7/0 = 0 +7:7/0 = 0 +8:7/0 = 0 +9:7/0 = 0 +10:7/0 = 0 +11:7/0 = 0 +12:7/0 = 0 +13:7/0 = 0 +14:7/0 = 0 +15:7/0 = 0 +16:7/0 = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_bqb68"] +texture = ExtResource("3_2vnky") +separation = Vector2i(1, 1) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +4:0/0 = 0 +5:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +8:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +5:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +3:2/0 = 0 +4:2/0 = 0 +5:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +8:2/0 = 0 +9:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +8:3/0 = 0 +9:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 +0:6/0 = 0 +1:6/0 = 0 +2:6/0 = 0 +3:6/0 = 0 +4:6/0 = 0 +5:6/0 = 0 +6:6/0 = 0 +7:6/0 = 0 +8:6/0 = 0 +9:6/0 = 0 +10:6/0 = 0 +11:6/0 = 0 +0:7/0 = 0 +1:7/0 = 0 +2:7/0 = 0 +3:7/0 = 0 +4:7/0 = 0 +5:7/0 = 0 +6:7/0 = 0 +7:7/0 = 0 +8:7/0 = 0 +9:7/0 = 0 +10:7/0 = 0 +11:7/0 = 0 +0:8/0 = 0 +1:8/0 = 0 +2:8/0 = 0 +3:8/0 = 0 +4:8/0 = 0 +5:8/0 = 0 +6:8/0 = 0 +7:8/0 = 0 +8:8/0 = 0 +9:8/0 = 0 +10:8/0 = 0 +11:8/0 = 0 +0:9/0 = 0 +1:9/0 = 0 +2:9/0 = 0 +3:9/0 = 0 +4:9/0 = 0 +5:9/0 = 0 +6:9/0 = 0 +7:9/0 = 0 +8:9/0 = 0 +9:9/0 = 0 +10:9/0 = 0 +11:9/0 = 0 +0:10/0 = 0 +1:10/0 = 0 +2:10/0 = 0 +3:10/0 = 0 +4:10/0 = 0 +5:10/0 = 0 +6:10/0 = 0 +7:10/0 = 0 +8:10/0 = 0 +9:10/0 = 0 +10:10/0 = 0 +11:10/0 = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_06fw3"] +texture = ExtResource("4_xfnij") +separation = Vector2i(1, 1) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +4:0/0 = 0 +5:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +8:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +12:0/0 = 0 +13:0/0 = 0 +14:0/0 = 0 +15:0/0 = 0 +16:0/0 = 0 +17:0/0 = 0 +18:0/0 = 0 +19:0/0 = 0 +20:0/0 = 0 +21:0/0 = 0 +22:0/0 = 0 +23:0/0 = 0 +24:0/0 = 0 +25:0/0 = 0 +26:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +5:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +12:1/0 = 0 +13:1/0 = 0 +14:1/0 = 0 +15:1/0 = 0 +16:1/0 = 0 +17:1/0 = 0 +18:1/0 = 0 +19:1/0 = 0 +20:1/0 = 0 +21:1/0 = 0 +22:1/0 = 0 +23:1/0 = 0 +24:1/0 = 0 +25:1/0 = 0 +26:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +3:2/0 = 0 +4:2/0 = 0 +5:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +8:2/0 = 0 +9:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +12:2/0 = 0 +13:2/0 = 0 +14:2/0 = 0 +15:2/0 = 0 +16:2/0 = 0 +17:2/0 = 0 +18:2/0 = 0 +19:2/0 = 0 +20:2/0 = 0 +21:2/0 = 0 +22:2/0 = 0 +23:2/0 = 0 +24:2/0 = 0 +25:2/0 = 0 +26:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +8:3/0 = 0 +9:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +12:3/0 = 0 +13:3/0 = 0 +14:3/0 = 0 +15:3/0 = 0 +16:3/0 = 0 +17:3/0 = 0 +18:3/0 = 0 +19:3/0 = 0 +20:3/0 = 0 +21:3/0 = 0 +22:3/0 = 0 +23:3/0 = 0 +24:3/0 = 0 +25:3/0 = 0 +26:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +12:4/0 = 0 +13:4/0 = 0 +14:4/0 = 0 +15:4/0 = 0 +16:4/0 = 0 +17:4/0 = 0 +18:4/0 = 0 +19:4/0 = 0 +20:4/0 = 0 +21:4/0 = 0 +22:4/0 = 0 +23:4/0 = 0 +24:4/0 = 0 +25:4/0 = 0 +26:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 +12:5/0 = 0 +13:5/0 = 0 +14:5/0 = 0 +15:5/0 = 0 +16:5/0 = 0 +17:5/0 = 0 +18:5/0 = 0 +19:5/0 = 0 +20:5/0 = 0 +21:5/0 = 0 +22:5/0 = 0 +23:5/0 = 0 +24:5/0 = 0 +25:5/0 = 0 +26:5/0 = 0 +0:6/0 = 0 +1:6/0 = 0 +2:6/0 = 0 +3:6/0 = 0 +4:6/0 = 0 +5:6/0 = 0 +6:6/0 = 0 +7:6/0 = 0 +8:6/0 = 0 +9:6/0 = 0 +10:6/0 = 0 +11:6/0 = 0 +12:6/0 = 0 +13:6/0 = 0 +14:6/0 = 0 +15:6/0 = 0 +16:6/0 = 0 +17:6/0 = 0 +18:6/0 = 0 +19:6/0 = 0 +20:6/0 = 0 +21:6/0 = 0 +22:6/0 = 0 +23:6/0 = 0 +24:6/0 = 0 +25:6/0 = 0 +26:6/0 = 0 +0:7/0 = 0 +1:7/0 = 0 +2:7/0 = 0 +3:7/0 = 0 +4:7/0 = 0 +5:7/0 = 0 +6:7/0 = 0 +7:7/0 = 0 +8:7/0 = 0 +9:7/0 = 0 +10:7/0 = 0 +11:7/0 = 0 +12:7/0 = 0 +13:7/0 = 0 +14:7/0 = 0 +15:7/0 = 0 +16:7/0 = 0 +17:7/0 = 0 +18:7/0 = 0 +19:7/0 = 0 +20:7/0 = 0 +21:7/0 = 0 +22:7/0 = 0 +23:7/0 = 0 +24:7/0 = 0 +25:7/0 = 0 +26:7/0 = 0 +0:8/0 = 0 +1:8/0 = 0 +2:8/0 = 0 +3:8/0 = 0 +4:8/0 = 0 +5:8/0 = 0 +6:8/0 = 0 +7:8/0 = 0 +8:8/0 = 0 +9:8/0 = 0 +10:8/0 = 0 +11:8/0 = 0 +12:8/0 = 0 +13:8/0 = 0 +14:8/0 = 0 +15:8/0 = 0 +16:8/0 = 0 +17:8/0 = 0 +18:8/0 = 0 +19:8/0 = 0 +20:8/0 = 0 +21:8/0 = 0 +22:8/0 = 0 +23:8/0 = 0 +24:8/0 = 0 +25:8/0 = 0 +26:8/0 = 0 +0:9/0 = 0 +1:9/0 = 0 +2:9/0 = 0 +3:9/0 = 0 +4:9/0 = 0 +5:9/0 = 0 +6:9/0 = 0 +7:9/0 = 0 +8:9/0 = 0 +9:9/0 = 0 +10:9/0 = 0 +11:9/0 = 0 +12:9/0 = 0 +13:9/0 = 0 +14:9/0 = 0 +15:9/0 = 0 +16:9/0 = 0 +17:9/0 = 0 +18:9/0 = 0 +19:9/0 = 0 +20:9/0 = 0 +21:9/0 = 0 +22:9/0 = 0 +23:9/0 = 0 +24:9/0 = 0 +25:9/0 = 0 +26:9/0 = 0 +0:10/0 = 0 +1:10/0 = 0 +2:10/0 = 0 +3:10/0 = 0 +4:10/0 = 0 +5:10/0 = 0 +6:10/0 = 0 +7:10/0 = 0 +8:10/0 = 0 +9:10/0 = 0 +10:10/0 = 0 +11:10/0 = 0 +12:10/0 = 0 +13:10/0 = 0 +14:10/0 = 0 +15:10/0 = 0 +16:10/0 = 0 +17:10/0 = 0 +18:10/0 = 0 +19:10/0 = 0 +20:10/0 = 0 +21:10/0 = 0 +22:10/0 = 0 +23:10/0 = 0 +24:10/0 = 0 +25:10/0 = 0 +26:10/0 = 0 +0:11/0 = 0 +1:11/0 = 0 +2:11/0 = 0 +3:11/0 = 0 +4:11/0 = 0 +5:11/0 = 0 +6:11/0 = 0 +7:11/0 = 0 +8:11/0 = 0 +9:11/0 = 0 +10:11/0 = 0 +11:11/0 = 0 +12:11/0 = 0 +13:11/0 = 0 +14:11/0 = 0 +15:11/0 = 0 +16:11/0 = 0 +17:11/0 = 0 +18:11/0 = 0 +19:11/0 = 0 +20:11/0 = 0 +21:11/0 = 0 +22:11/0 = 0 +23:11/0 = 0 +24:11/0 = 0 +25:11/0 = 0 +26:11/0 = 0 +0:12/0 = 0 +1:12/0 = 0 +2:12/0 = 0 +3:12/0 = 0 +4:12/0 = 0 +5:12/0 = 0 +6:12/0 = 0 +7:12/0 = 0 +8:12/0 = 0 +9:12/0 = 0 +10:12/0 = 0 +11:12/0 = 0 +12:12/0 = 0 +13:12/0 = 0 +14:12/0 = 0 +15:12/0 = 0 +16:12/0 = 0 +17:12/0 = 0 +18:12/0 = 0 +19:12/0 = 0 +20:12/0 = 0 +21:12/0 = 0 +22:12/0 = 0 +23:12/0 = 0 +24:12/0 = 0 +25:12/0 = 0 +26:12/0 = 0 +0:13/0 = 0 +1:13/0 = 0 +2:13/0 = 0 +3:13/0 = 0 +4:13/0 = 0 +5:13/0 = 0 +6:13/0 = 0 +7:13/0 = 0 +8:13/0 = 0 +9:13/0 = 0 +10:13/0 = 0 +11:13/0 = 0 +12:13/0 = 0 +13:13/0 = 0 +14:13/0 = 0 +15:13/0 = 0 +16:13/0 = 0 +17:13/0 = 0 +18:13/0 = 0 +19:13/0 = 0 +20:13/0 = 0 +21:13/0 = 0 +22:13/0 = 0 +23:13/0 = 0 +24:13/0 = 0 +25:13/0 = 0 +26:13/0 = 0 +0:14/0 = 0 +1:14/0 = 0 +2:14/0 = 0 +3:14/0 = 0 +4:14/0 = 0 +5:14/0 = 0 +6:14/0 = 0 +7:14/0 = 0 +8:14/0 = 0 +9:14/0 = 0 +10:14/0 = 0 +11:14/0 = 0 +12:14/0 = 0 +13:14/0 = 0 +14:14/0 = 0 +15:14/0 = 0 +16:14/0 = 0 +17:14/0 = 0 +18:14/0 = 0 +19:14/0 = 0 +20:14/0 = 0 +21:14/0 = 0 +22:14/0 = 0 +23:14/0 = 0 +24:14/0 = 0 +25:14/0 = 0 +26:14/0 = 0 +0:15/0 = 0 +1:15/0 = 0 +2:15/0 = 0 +3:15/0 = 0 +4:15/0 = 0 +5:15/0 = 0 +6:15/0 = 0 +7:15/0 = 0 +8:15/0 = 0 +9:15/0 = 0 +10:15/0 = 0 +11:15/0 = 0 +12:15/0 = 0 +13:15/0 = 0 +14:15/0 = 0 +15:15/0 = 0 +16:15/0 = 0 +17:15/0 = 0 +18:15/0 = 0 +19:15/0 = 0 +20:15/0 = 0 +21:15/0 = 0 +22:15/0 = 0 +23:15/0 = 0 +24:15/0 = 0 +25:15/0 = 0 +26:15/0 = 0 +0:16/0 = 0 +1:16/0 = 0 +2:16/0 = 0 +3:16/0 = 0 +4:16/0 = 0 +5:16/0 = 0 +6:16/0 = 0 +7:16/0 = 0 +8:16/0 = 0 +9:16/0 = 0 +10:16/0 = 0 +11:16/0 = 0 +12:16/0 = 0 +13:16/0 = 0 +14:16/0 = 0 +15:16/0 = 0 +16:16/0 = 0 +17:16/0 = 0 +18:16/0 = 0 +19:16/0 = 0 +20:16/0 = 0 +21:16/0 = 0 +22:16/0 = 0 +23:16/0 = 0 +24:16/0 = 0 +25:16/0 = 0 +26:16/0 = 0 +0:17/0 = 0 +1:17/0 = 0 +2:17/0 = 0 +3:17/0 = 0 +4:17/0 = 0 +5:17/0 = 0 +6:17/0 = 0 +7:17/0 = 0 +8:17/0 = 0 +9:17/0 = 0 +10:17/0 = 0 +11:17/0 = 0 +12:17/0 = 0 +13:17/0 = 0 +14:17/0 = 0 +15:17/0 = 0 +16:17/0 = 0 +17:17/0 = 0 +18:17/0 = 0 +19:17/0 = 0 +20:17/0 = 0 +21:17/0 = 0 +22:17/0 = 0 +23:17/0 = 0 +24:17/0 = 0 +25:17/0 = 0 +26:17/0 = 0 + +[resource] +sources/0 = SubResource("TileSetAtlasSource_0netd") +sources/4 = SubResource("TileSetAtlasSource_06fw3") +sources/1 = SubResource("TileSetAtlasSource_2cwrk") +sources/2 = SubResource("TileSetAtlasSource_bqb68") diff --git a/scenes/第一章.tscn b/scenes/第一章.tscn new file mode 100644 index 0000000..40d71fa --- /dev/null +++ b/scenes/第一章.tscn @@ -0,0 +1,79 @@ +[gd_scene load_steps=7 format=4 uid="uid://d0vuv0c2ls6jh"] + +[ext_resource type="TileSet" uid="uid://bgpctug81w5n3" path="res://scenes/第一章.tres" id="1_rk237"] +[ext_resource type="PackedScene" uid="uid://exqgca0e7vay" path="res://resources/ui/Novel.tscn" id="2_iyl4s"] +[ext_resource type="Script" uid="uid://q16vfxvc5i54" path="res://scripts/Chapter/ChapterScene.cs" id="2_xld2f"] +[ext_resource type="PackedScene" uid="uid://l0twf4e20yas" path="res://resources/ui/menu.tscn" id="5_84oip"] +[ext_resource type="PackedScene" uid="uid://dj16n8yvwwgr7" path="res://resources/ui/Rayne.tscn" id="5_qtv8d"] +[ext_resource type="PackedScene" uid="uid://dewev77kmbwre" path="res://resources/ui/UserInterface.tscn" id="6_qtv8d"] + +[node name="第一章" type="TileMapLayer" node_paths=PackedStringArray("UI")] +tile_set = ExtResource("1_rk237") +script = ExtResource("2_xld2f") +NovelScene = ExtResource("2_iyl4s") +MenuScene = ExtResource("5_84oip") +UI = NodePath("UI") +ChapterInGame = "第一章" +AreaInGame = "霜语城废墟" +NovelName = "第一章" +SceneName = "场景一" + +[node name="UI" type="CanvasLayer" parent="."] +visible = false + +[node name="UserInterface" parent="UI" instance=ExtResource("6_qtv8d")] + +[node name="TileMapLayer" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAjAAkAAQAFAAEAAAAjAAoAAQAFAAEAAAAAAAAAAQAPAAAAAAAAAAEAAQAQAAAAAAAAAAIAAQAPAAAAAAAAAAMAAQAOAAAAAAAAAAQAAQANAAAAAAAAAAUAAQAPAAAAAAAAAAYAAQANAAAAAAAAAAcAAQAKAAEAAAAAAAgAAQAPAAAAAAAAAAkAAQANAAEAAAAAAAoAAQANAAEAAAAAAAsAAQAKAAEAAAAAAAwAAQANAAAAAAAAAA0AAQAOAAAAAAAAAA4AAQANAAEAAAAAAA8AAQANAAAAAAAAABAAAQAPAAAAAAAAABEAAQANAAAAAAABAAAAAQAPAAAAAAABAAEAAQAPAAAAAAABAAIAAQANAAEAAAABAAMAAQANAAAAAAABAAQAAQANAAAAAAABAAUAAQAOAAAAAAABAAYAAQALAAAAAAABAAcAAQALAAEAAAABAAgAAQALAAIAAAABAAkAAQAOAAAAAAABAAoAAQALAAAAAAABAAsAAQALAAEAAAABAAwAAQALAAIAAAABAA0AAQAPAAAAAAABAA4AAQAKAAEAAAABAA8AAQANAAEAAAABABAAAQAOAAAAAAABABEAAQANAAAAAAACAAAAAQAQAAAAAAACAAEAAQAPAAAAAAACAAIAAQAPAAAAAAACAAMAAQANAAEAAAACAAQAAQANAAAAAAACAAUAAQANAAEAAAACAAYAAQAQAAAAAAACAAcAAQAMAAEAAAACAAgAAQAOAAAAAAACAAkAAQAOAAAAAAACAAoAAQAQAAAAAAACAAsAAQAMAAEAAAACAAwAAQANAAEAAAACAA0AAQALAAAAAAACAA4AAQALAAEAAAACAA8AAQALAAIAAAACABAAAQAOAAAAAAACABEAAQAOAAAAAAADAAAAAQANAAEAAAADAAEAAQAQAAAAAAADAAIAAQAKAAEAAAADAAMAAQANAAAAAAADAAQAAQANAAAAAAADAAUAAQANAAAAAAADAAYAAQAQAAAAAAADAAcAAQAOAAAAAAADAAgAAQAQAAAAAAADAAkAAQANAAAAAAADAAoAAQAOAAAAAAADAAsAAQANAAEAAAADAAwAAQAPAAAAAAADAA0AAQANAAEAAAADAA4AAQAMAAEAAAADAA8AAQAQAAAAAAADABAAAQANAAEAAAADABEAAQALAAAAAAAEAAAAAQAQAAAAAAAEAAEAAQALAAAAAAAEAAIAAQALAAEAAAAEAAMAAQALAAIAAAAEAAQAAQANAAAAAAAEAAUAAQANAAEAAAAEAAYAAQANAAAAAAAEAAcAAQAKAAEAAAAEAAgAAQANAAAAAAAEAAkAAQAPAAAAAAAEAAoAAQAPAAAAAAAEAAsAAQAKAAEAAAAEAAwAAQAPAAAAAAAEAA0AAQANAAEAAAAEAA4AAQANAAEAAAAEAA8AAQAKAAEAAAAEABAAAQAQAAAAAAAEABEAAQAQAAAAAAAFAAAAAQANAAEAAAAFAAEAAQAOAAAAAAAFAAIAAQAMAAEAAAAFAAMAAQANAAEAAAAFAAQAAQANAAAAAAAFAAUAAQAQAAAAAAAFAAYAAQALAAAAAAAFAAcAAQALAAEAAAAFAAgAAQALAAIAAAAFAAkAAQANAAAAAAAFAAoAAQALAAAAAAAFAAsAAQALAAEAAAAFAAwAAQALAAIAAAAFAA0AAQAQAAAAAAAFAA4AAQALAAAAAAAFAA8AAQALAAEAAAAFABAAAQALAAIAAAAFABEAAQANAAAAAAAGAAAAAQAOAAAAAAAGAAEAAQAQAAAAAAAGAAIAAQANAAAAAAAGAAMAAQAPAAAAAAAGAAQAAQAPAAAAAAAGAAUAAQANAAAAAAAGAAYAAQAQAAAAAAAGAAcAAQAMAAEAAAAGAAgAAQANAAEAAAAGAAkAAQANAAAAAAAGAAoAAQAOAAAAAAAGAAsAAQAMAAEAAAAGAAwAAQAOAAAAAAAGAA0AAQAQAAAAAAAGAA4AAQANAAAAAAAGAA8AAQAMAAEAAAAGABAAAQAQAAAAAAAGABEAAQAOAAAAAAAHAAAAAQAQAAAAAAAHAAEAAQAOAAAAAAAHAAIAAQAOAAAAAAAHAAMAAQAQAAAAAAAHAAQAAQAQAAAAAAAHAAUAAQAOAAAAAAAHAAYAAQANAAEAAAAHAAcAAQAOAAAAAAAHAAgAAQANAAAAAAAHAAkAAQAPAAAAAAAHAAoAAQAQAAAAAAAHAAsAAQANAAAAAAAHAAwAAQAOAAAAAAAHAA0AAQAQAAAAAAAHAA4AAQAPAAAAAAAHAA8AAQANAAEAAAAHABAAAQAOAAAAAAAHABEAAQAPAAAAAAAIAAAAAQANAAEAAAAIAAEAAQAPAAAAAAAIAAIAAQANAAEAAAAIAAMAAQANAAAAAAAIAAQAAQAAAAUAAAAIAAUAAQACAAYAAAAIAAYAAQACAAYAAAAIAAcAAQACAAYAAAAIAAgAAQACAAYAAAAIAAkAAQACAAYAAAAIAAoAAQACAAYAAAAIAAsAAQADAAUAAAAIAAwAAQACAAYAAAAIAA0AAQACAAYAAAAIAA4AAQACAAYAAAAIAA8AAQAAAAYAAAAIABAAAQANAAAAAAAIABEAAQAQAAAAAAAJAAAAAQANAAAAAAAJAAEAAQAPAAAAAAAJAAIAAQANAAEAAAAJAAMAAQANAAAAAAAJAAQAAQACAAUAAAAJAAUAAQANAAAAAAAJAAYAAQANAAAAAAAJAAcAAQANAAEAAAAJAAgAAQAKAAEAAAAJAAkAAQANAAEAAAAJAAoAAQANAAEAAAAJAAsAAQAEAAUAAAAJAAwAAQAOAAAAAAAJAA0AAQAPAAAAAAAJAA4AAQAPAAAAAAAJAA8AAQACAAUAAAAJABAAAQANAAAAAAAJABEAAQANAAAAAAAKAAAAAQAPAAAAAAAKAAEAAQAOAAAAAAAKAAIAAQAOAAAAAAAKAAMAAQANAAEAAAAKAAQAAQACAAUAAAAKAAUAAQANAAEAAAAKAAYAAQANAAEAAAAKAAcAAQALAAAAAAAKAAgAAQALAAEAAAAKAAkAAQALAAIAAAAKAAoAAQANAAAAAAAKAAsAAQAEAAUAAAAKAAwAAQANAAAAAAAKAA0AAQANAAAAAAAKAA4AAQANAAAAAAAKAA8AAQACAAUAAAAKABAAAQAOAAAAAAAKABEAAQAOAAAAAAALAAAAAQAPAAAAAAALAAEAAQAKAAEAAAALAAIAAQAOAAAAAAALAAMAAQANAAEAAAALAAQAAQACAAUAAAALAAUAAQANAAEAAAALAAYAAQAQAAAAAAALAAcAAQANAAEAAAALAAgAAQAMAAEAAAALAAkAAQAOAAAAAAALAAoAAQAOAAAAAAALAAsAAQAEAAUAAAALAAwAAQANAAAAAAALAA0AAQAKAAEAAAALAA4AAQAQAAAAAAALAA8AAQACAAUAAAALABAAAQAQAAAAAAALABEAAQAPAAAAAAAMAAAAAQALAAAAAAAMAAEAAQALAAEAAAAMAAIAAQALAAIAAAAMAAMAAQAOAAAAAAAMAAQAAQAEAAUAAAAMAAUAAQACAAYAAAAMAAYAAQACAAYAAAAMAAcAAQACAAYAAAAMAAgAAQACAAYAAAAMAAkAAQACAAYAAAAMAAoAAQACAAYAAAAMAAsAAQAEAAYAAAAMAAwAAQALAAAAAAAMAA0AAQALAAEAAAAMAA4AAQALAAIAAAAMAA8AAQACAAUAAAAMABAAAQAPAAAAAAAMABEAAQAQAAAAAAANAAAAAQANAAEAAAANAAEAAQAMAAEAAAANAAIAAQANAAAAAAANAAMAAQANAAAAAAANAAQAAQACAAUAAAANAAUAAQANAAAAAAANAAYAAQANAAAAAAANAAcAAQAQAAAAAAANAAgAAQANAAEAAAANAAkAAQANAAAAAAANAAoAAQAPAAAAAAANAAsAAQAEAAUAAAANAAwAAQAQAAAAAAANAA0AAQAMAAEAAAANAA4AAQAQAAAAAAANAA8AAQACAAUAAAANABAAAQANAAAAAAANABEAAQANAAAAAAAOAAAAAQANAAEAAAAOAAEAAQAPAAAAAAAOAAIAAQAPAAAAAAAOAAMAAQAOAAAAAAAOAAQAAQACAAUAAAAOAAUAAQAPAAAAAAAOAAYAAQAOAAAAAAAOAAcAAQAOAAAAAAAOAAgAAQANAAAAAAAOAAkAAQAOAAAAAAAOAAoAAQANAAEAAAAOAAsAAQAEAAUAAAAOAAwAAQANAAEAAAAOAA0AAQANAAAAAAAOAA4AAQANAAEAAAAOAA8AAQACAAUAAAAOABAAAQAQAAAAAAAOABEAAQAOAAAAAAAPAAAAAQAQAAAAAAAPAAEAAQAQAAAAAAAPAAIAAQAQAAAAAAAPAAMAAQANAAAAAAAPAAQAAQACAAUAAAAPAAUAAQANAAEAAAAPAAYAAQABAAAAAAAPAAcAAQABAAEAAAAPAAgAAQABAAEAAAAPAAkAAQABAAEAAAAPAAoAAQABAAIAAAAPAAsAAQAEAAUAAAAPAAwAAQAQAAAAAAAPAA0AAQAQAAAAAAAPAA4AAQAOAAAAAAAPAA8AAQACAAUAAAAPABAAAQANAAEAAAAPABEAAQAPAAAAAAAQAAAAAQANAAAAAAAQAAEAAQANAAAAAAAQAAIAAQAPAAAAAAAQAAMAAQANAAEAAAAQAAQAAQACAAUAAAAQAAUAAQAPAAAAAAAQAAYAAQACAAAAAAAQAAcAAQAAAAEAAAAQAAgAAQAAAAEAAAAQAAkAAQACAAEAAAAQAAoAAQACAAIAAAAQAAsAAQAEAAUAAAAQAAwAAQANAAAAAAAQAA0AAQAPAAAAAAAQAA4AAQAQAAAAAAAQAA8AAQACAAUAAAAQABAAAQANAAEAAAAQABEAAQAQAAAAAAARAAAAAQAQAAAAAAARAAEAAQAQAAAAAAARAAIAAQAPAAAAAAARAAMAAQAOAAAAAAARAAQAAQACAAUAAAARAAUAAQAOAAAAAAARAAYAAQACAAAAAAARAAcAAQAAAAEAAAARAAgAAQAAAAEAAAARAAkAAQACAAEAAAARAAoAAQACAAIAAAARAAsAAQAEAAUAAAARAAwAAQABAAAAAAARAA0AAQABAAEAAAARAA4AAQABAAIAAAARAA8AAQACAAUAAAARABAAAQANAAEAAAARABEAAQANAAAAAAASAAAAAQANAAEAAAASAAEAAQAKAAEAAAASAAIAAQAPAAAAAAASAAMAAQAPAAAAAAASAAQAAQACAAUAAAASAAUAAQAOAAAAAAASAAYAAQACAAAAAAASAAcAAQAAAAEAAAASAAgAAQAAAAEAAAASAAkAAQACAAEAAAASAAoAAQACAAIAAAASAAsAAQAEAAUAAAASAAwAAQACAAAAAAASAA0AAQACAAEAAAASAA4AAQACAAIAAAASAA8AAQACAAUAAAASABAAAQANAAAAAAASABEAAQAOAAAAAAATAAAAAQALAAAAAAATAAEAAQALAAEAAAATAAIAAQALAAIAAAATAAMAAQAPAAAAAAATAAQAAQACAAUAAAATAAUAAQAQAAAAAAATAAYAAQACAAAAAAATAAcAAQACAAEAAAATAAgAAQAAAAEAAAATAAkAAQAAAAEAAAATAAoAAQACAAIAAAATAAsAAQAEAAUAAAATAAwAAQADAAAAAAATAA0AAQADAAEAAAATAA4AAQADAAIAAAATAA8AAQACAAUAAAATABAAAQAQAAAAAAATABEAAQANAAEAAAAUAAAAAQANAAEAAAAUAAEAAQAMAAEAAAAUAAIAAQAPAAAAAAAUAAMAAQAPAAAAAAAUAAQAAQACAAUAAAAUAAUAAQANAAEAAAAUAAYAAQADAAAAAAAUAAcAAQADAAEAAAAUAAgAAQADAAEAAAAUAAkAAQADAAEAAAAUAAoAAQADAAIAAAAUAAsAAQAEAAUAAAAUAAwAAQAGAAUAAAAUAA0AAQAGAAUAAAAUAA4AAQAGAAUAAAAUAA8AAQACAAUAAAAUABAAAQAQAAAAAAAUABEAAQAQAAAAAAAVAAAAAQAOAAAAAAAVAAEAAQANAAEAAAAVAAIAAQAPAAAAAAAVAAMAAQANAAAAAAAVAAQAAQACAAUAAAAVAAUAAQANAAEAAAAVAAYAAQANAAAAAAAVAAcAAQAPAAAAAAAVAAgAAQAOAAAAAAAVAAkAAQAPAAAAAAAVAAoAAQAOAAAAAAAVAAsAAQAEAAUAAAAVAAwAAQABAAAAAAAVAA0AAQABAAEAAAAVAA4AAQABAAIAAAAVAA8AAQACAAUAAAAVABAAAQANAAEAAAAVABEAAQANAAAAAAAWAAAAAQANAAEAAAAWAAEAAQANAAAAAAAWAAIAAQAOAAAAAAAWAAMAAQAPAAAAAAAWAAQAAQACAAUAAAAWAAUAAQABAAAAAAAWAAYAAQABAAEAAAAWAAcAAQABAAIAAAAWAAgAAQABAAAAAAAWAAkAAQABAAEAAAAWAAoAAQABAAIAAAAWAAsAAQAEAAUAAAAWAAwAAQACAAAAAAAWAA0AAQACAAEAAAAWAA4AAQACAAIAAAAWAA8AAQACAAUAAAAWABAAAQAOAAEAAAAWABEAAQAOAAAAAAAXAAAAAQAOAAAAAAAXAAEAAQAKAAEAAAAXAAIAAQAOAAAAAAAXAAMAAQAQAAAAAAAXAAQAAQACAAUAAAAXAAUAAQACAAAAAAAXAAYAAQACAAEAAAAXAAcAAQACAAIAAAAXAAgAAQACAAAAAAAXAAkAAQACAAEAAAAXAAoAAQACAAIAAAAXAAsAAQAEAAUAAAAXAAwAAQADAAAAAAAXAA0AAQADAAEAAAAXAA4AAQADAAIAAAAXAA8AAQACAAUAAAAXABAAAQAOAAAAAAAXABEAAQAPAAAAAAAYAAAAAQALAAAAAAAYAAEAAQALAAEAAAAYAAIAAQALAAIAAAAYAAMAAQAPAAAAAAAYAAQAAQACAAUAAAAYAAUAAQADAAAAAAAYAAYAAQADAAEAAAAYAAcAAQADAAIAAAAYAAgAAQADAAAAAAAYAAkAAQADAAEAAAAYAAoAAQADAAIAAAAYAAsAAQAEAAUAAAAYAAwAAQAFAAUAAAAYAA0AAQAFAAUAAAAYAA4AAQAFAAUAAAAYAA8AAQAEAAYAAAAYABAAAQANAAAAAAAYABEAAQALAAAAAAAZAAAAAQAOAAAAAAAZAAEAAQAMAAEAAAAZAAIAAQAOAAAAAAAZAAMAAQAQAAAAAAAZAAQAAQAEAAUAAAAZAAUAAQADAAUAAAAZAAYAAQADAAUAAAAZAAcAAQADAAUAAAAZAAgAAQADAAUAAAAZAAkAAQADAAUAAAAZAAoAAQADAAUAAAAZAAsAAQAEAAUAAAAZAAwAAQAFAAUAAAAZAA0AAQAFAAUAAAAZAA4AAQAFAAUAAAAZAA8AAQAEAAYAAAAZABAAAQAOAAAAAAAZABEAAQANAAAAAAAaAAAAAQANAAAAAAAaAAEAAQANAAEAAAAaAAIAAQAQAAAAAAAaAAMAAQANAAAAAAAaAAQAAQACAAUAAAAaAAUAAQABAAAAAAAaAAYAAQABAAEAAAAaAAcAAQABAAIAAAAaAAgAAQABAAAAAAAaAAkAAQABAAEAAAAaAAoAAQABAAIAAAAaAAsAAQAEAAUAAAAaAAwAAQABAAAAAAAaAA0AAQABAAEAAAAaAA4AAQABAAIAAAAaAA8AAQACAAUAAAAaABAAAQAPAAAAAAAaABEAAQANAAAAAAAbAAAAAQAQAAAAAAAbAAEAAQAQAAAAAAAbAAIAAQANAAAAAAAbAAMAAQAOAAAAAAAbAAQAAQACAAUAAAAbAAUAAQACAAAAAAAbAAYAAQACAAEAAAAbAAcAAQACAAIAAAAbAAgAAQACAAAAAAAbAAkAAQACAAEAAAAbAAoAAQACAAIAAAAbAAsAAQAEAAUAAAAbAAwAAQACAAAAAAAbAA0AAQACAAEAAAAbAA4AAQACAAIAAAAbAA8AAQACAAUAAAAbABAAAQAOAAAAAAAbABEAAQAPAAAAAAAcAAAAAQAOAAAAAAAcAAEAAQAPAAAAAAAcAAIAAQAQAAAAAAAcAAMAAQANAAEAAAAcAAQAAQACAAUAAAAcAAUAAQADAAAAAAAcAAYAAQADAAEAAAAcAAcAAQADAAIAAAAcAAgAAQADAAAAAAAcAAkAAQADAAEAAAAcAAoAAQADAAIAAAAcAAsAAQAEAAUAAAAcAAwAAQADAAAAAAAcAA0AAQADAAEAAAAcAA4AAQADAAIAAAAcAA8AAQACAAUAAAAcABAAAQAPAAAAAAAcABEAAQAOAAAAAAAdAAAAAQAOAAAAAAAdAAEAAQAKAAEAAAAdAAIAAQANAAEAAAAdAAMAAQAQAAAAAAAdAAQAAQACAAUAAAAdAAUAAQAOAAAAAAAdAAYAAQANAAAAAAAdAAcAAQANAAAAAAAdAAgAAQANAAAAAAAdAAkAAQAOAAAAAAAdAAoAAQANAAEAAAAdAAsAAQAEAAUAAAAdAAwAAQANAAAAAAAdAA0AAQAPAAAAAAAdAA4AAQAPAAAAAAAdAA8AAQACAAUAAAAdABAAAQANAAAAAAAdABEAAQANAAAAAAAeAAAAAQALAAAAAAAeAAEAAQALAAEAAAAeAAIAAQALAAIAAAAeAAMAAQANAAAAAAAeAAQAAQACAAUAAAAeAAUAAQAOAAAAAAAeAAYAAQANAAAAAAAeAAcAAQAPAAAAAAAeAAgAAQAOAAAAAAAeAAkAAQAOAAAAAAAeAAoAAQANAAEAAAAeAAsAAQAEAAUAAAAeAAwAAQANAAEAAAAeAA0AAQAOAAAAAAAeAA4AAQAPAAAAAAAeAA8AAQACAAUAAAAeABAAAQAQAAAAAAAeABEAAQAOAAAAAAAfAAAAAQANAAAAAAAfAAEAAQAMAAEAAAAfAAIAAQANAAEAAAAfAAMAAQAQAAAAAAAfAAQAAQABAAUAAAAfAAUAAQACAAYAAAAfAAYAAQACAAYAAAAfAAcAAQACAAYAAAAfAAgAAQACAAYAAAAfAAkAAQADAAUAAAAfAAoAAQADAAUAAAAfAAsAAQADAAYAAAAfAAwAAQACAAYAAAAfAA0AAQACAAYAAAAfAA4AAQACAAYAAAAfAA8AAQABAAYAAAAfABAAAQANAAEAAAAfABEAAQAPAAAAAAAgAAAAAQANAAAAAAAgAAEAAQAQAAAAAAAgAAIAAQAKAAEAAAAgAAMAAQANAAEAAAAgAAQAAQAPAAAAAAAgAAUAAQAPAAAAAAAgAAYAAQAPAAAAAAAgAAcAAQAQAAAAAAAgAAgAAQAPAAAAAAAgAAkAAQAFAAEAAAAgAAoAAQAFAAEAAAAgAAsAAQANAAAAAAAgAAwAAQAKAAEAAAAgAA0AAQANAAAAAAAgAA4AAQANAAAAAAAgAA8AAQANAAAAAAAgABAAAQANAAAAAAAgABEAAQAQAAAAAAAhAAAAAQAOAAAAAAAhAAEAAQALAAAAAAAhAAIAAQALAAEAAAAhAAMAAQALAAIAAAAhAAQAAQAOAAAAAAAhAAUAAQAOAAAAAAAhAAYAAQAKAAEAAAAhAAcAAQAOAAAAAAAhAAgAAQAQAAAAAAAhAAkAAQAFAAEAAAAhAAoAAQAFAAEAAAAhAAsAAQALAAAAAAAhAAwAAQALAAEAAAAhAA0AAQALAAIAAAAhAA4AAQAKAAEAAAAhAA8AAQALAAAAAAAhABAAAQALAAEAAAAhABEAAQANAAAAAAAiAAAAAQAOAAAAAAAiAAEAAQAOAAAAAAAiAAIAAQAMAAEAAAAiAAMAAQANAAEAAAAiAAQAAQANAAAAAAAiAAUAAQALAAAAAAAiAAYAAQALAAEAAAAiAAcAAQALAAIAAAAiAAgAAQAPAAAAAAAiAAkAAQAFAAEAAAAiAAoAAQAFAAEAAAAiAAsAAQANAAAAAAAiAAwAAQAMAAEAAAAiAA0AAQALAAAAAAAiAA4AAQALAAEAAAAiAA8AAQALAAIAAAAiABAAAQAMAAEAAAAiABEAAQAOAAAAAAAjAAAAAQAPAAAAAAAjAAEAAQANAAAAAAAjAAIAAQANAAAAAAAjAAMAAQANAAAAAAAjAAQAAQANAAEAAAAjAAUAAQANAAAAAAAjAAYAAQAMAAEAAAAjAAcAAQAQAAAAAAAjAAgAAQANAAEAAAAjAAsAAQANAAAAAAAjAAwAAQANAAAAAAAjAA0AAQANAAAAAAAjAA4AAQAMAAEAAAAjAA8AAQANAAEAAAAjABAAAQANAAEAAAAjABEAAQAQAAAAAAAkAAAAAQAQAAAAAAAkAAEAAQANAAEAAAAkAAIAAQAOAAAAAAAkAAMAAQAPAAAAAAAkAAQAAQANAAEAAAAkAAUAAQANAAAAAAAkAAYAAQAQAAAAAAAkAAcAAQAPAAAAAAAkAAgABAAIAAQAAAAkAAkABAAIAAQAAAAkAAoABAAIAAQAAAAkAAsABAAIAAQAAAAkAAwAAQAPAAAAAAAkAA0AAQANAAAAAAAkAA4AAQAQAAAAAAAkAA8AAQANAAEAAAAkABAAAQANAAEAAAAkABEAAQANAAAAAAAkABIAAQANAAEAAAAkABMAAQAPAAAAAAAkABQAAQAOAAAAAAAkABUAAQANAAAAAAAkABYAAQAOAAAAAAAkABcAAQANAAAAAAAlAAAAAQANAAAAAAAlAAEAAQAQAAAAAAAlAAIAAQAPAAAAAAAlAAMAAQAOAAAAAAAlAAQAAQAPAAAAAAAlAAUAAQAOAAAAAAAlAAYAAQANAAEAAAAlAAcAAQAPAAAAAAAlAAgABAAJAAQAAAAlAAkABAAJAAQAAAAlAAoABAAJAAQAAAAlAAsABAAJAAQAAAAlAAwAAQANAAEAAAAlAA0AAQAOAAAAAAAlAA4AAQAOAAAAAAAlAA8AAQANAAAAAAAlABAAAQANAAAAAAAlABEAAQAQAAAAAAAlABIAAQAPAAAAAAAlABMAAQAPAAAAAAAlABQAAQAPAAAAAAAlABUAAQAPAAAAAAAlABYAAQAOAAEAAAAlABcAAQANAAAAAAAmAAAAAQAOAAAAAAAmAAEAAQAOAAAAAAAmAAIAAQAOAAAAAAAmAAMABAAJAAQAAAAmAAQABAAJAAQAAAAmAAUABAAJAAQAAAAmAAYABAAJAAQAAAAmAAcABAAJAAQAAAAmAAgABAAJAAQAAAAmAAkABAAJAAQAAAAmAAoABAAJAAQAAAAmAAsABAAJAAQAAAAmAAwABAAJAAQAAAAmAA0ABAAJAAQAAAAmAA4ABAAJAAQAAAAmAA8ABAAJAAQAAAAmABAABAAJAAQAAAAmABEAAQAOAAAAAAAmABIAAQANAAAAAAAmABMAAQAOAAAAAAAmABQAAQANAAEAAAAmABUAAQAKAAEAAAAmABYAAQAPAAAAAAAmABcAAQANAAEAAAAnAAAAAQAOAAAAAAAnAAEAAQAPAAAAAAAnAAIAAQAQAAAAAAAnAAMABAAJAAQAAAAnAAQABAAJAAQAAAAnAAUABAAJAAQAAAAnAAYABAAJAAQAAAAnAAgABAAJAAQAAAAnAAkABAAJAAQAAAAnAAoABAAJAAQAAAAnAAsABAAJAAQAAAAnAAwABAAJAAQAAAAnAA0ABAAJAAQAAAAnAA4ABAAJAAQAAAAnAA8ABAAJAAQAAAAnABAABAAJAAQAAAAnABEAAQANAAAAAAAnABIAAQAQAAAAAAAnABMAAQANAAAAAAAnABQAAQALAAAAAAAnABUAAQALAAEAAAAnABYAAQALAAIAAAAnABcAAQAPAAAAAAAoAAAAAQAOAAAAAAAoAAEAAQANAAAAAAAoAAIAAQAPAAAAAAAoAAMABAAJAAQAAAAoAAQABAAJAAQAAAAoAAUABAAJAAQAAAAoAAYABAAJAAQAAAAoAAcABAAJAAQAAAAoAAgABAAJAAQAAAAoAAkABAAJAAQAAAAoAAoABAAJAAQAAAAoAAsABAAJAAQAAAAoAAwABAAJAAQAAAAoAA0ABAAJAAQAAAAoAA4ABAAJAAQAAAAoAA8ABAAJAAQAAAAoABAABAAJAAQAAAAoABEAAQANAAAAAAAoABIAAQAQAAAAAAAoABMAAQANAAEAAAAoABQAAQANAAAAAAAoABUAAQAMAAEAAAAoABYAAQANAAAAAAAoABcAAQANAAEAAAApAAAAAQAPAAAAAAApAAEAAQAKAAEAAAApAAIAAQAQAAAAAAApAAMABAAJAAQAAAApAAQABAAJAAQAAAApAAUABAAJAAQAAAApAAYABAAJAAQAAAApAAcABAAJAAQAAAApAAgABAAJAAQAAAApAAkABAAJAAQAAAApAAoABAAJAAQAAAApAAsABAAJAAQAAAApAAwABAAJAAQAAAApAA0ABAAJAAQAAAApAA4ABAAJAAQAAAApAA8ABAAJAAQAAAApABAABAAJAAQAAAApABEAAQAQAAAAAAApABIAAQANAAEAAAApABMAAQAOAAAAAAApABQAAQANAAAAAAApABUAAQANAAAAAAApABYAAQAOAAAAAAApABcAAQAPAAAAAAAqAAAAAQALAAAAAAAqAAEAAQALAAEAAAAqAAIAAQALAAIAAAAqAAMABAAJAAQAAAAqAAQABAAJAAQAAAAqAAUABAAJAAQAAAAqAAYABAAJAAQAAAAqAAcABAAJAAQAAAAqAAgABAAJAAQAAAAqAAkABAAJAAQAAAAqAAoABAAJAAQAAAAqAAsABAAJAAQAAAAqAAwABAAJAAQAAAAqAA0ABAAJAAQAAAAqAA4ABAAJAAQAAAAqAA8ABAAJAAQAAAAqABAABAAJAAQAAAAqABEAAQAOAAAAAAAqABIAAQANAAAAAAAqABMAAQAKAAEAAAAqABQAAQAPAAAAAAAqABUAAQANAAEAAAAqABYAAQAPAAAAAAAqABcAAQANAAAAAAArAAAAAQAPAAAAAAArAAEAAQAMAAEAAAArAAIAAQANAAAAAAArAAMABAAJAAQAAAArAAQABAAJAAQAAAArAAUABAAJAAQAAAArAAYABAAJAAQAAAArAAcABAAJAAQAAAArAAgABAAJAAQAAAArAAkABAAJAAQAAAArAAoABAAJAAQAAAArAAsABAAJAAQAAAArAAwABAAJAAQAAAArAA0ABAAJAAQAAAArAA4ABAAJAAQAAAArAA8ABAAJAAQAAAArABAABAAJAAQAAAArABEAAQAPAAAAAAArABIAAQALAAAAAAArABMAAQALAAEAAAArABQAAQALAAIAAAArABUAAQAQAAAAAAArABYAAQAQAAAAAAArABcAAQAQAAAAAAAsAAAAAQAOAAAAAAAsAAEAAQANAAAAAAAsAAIAAQANAAAAAAAsAAMABAAJAAQAAAAsAAQABAAJAAQAAAAsAAUABAAJAAQAAAAsAAYABAAJAAQAAAAsAAcABAAJAAQAAAAsAAgABAAJAAQAAAAsAAkABAAJAAQAAAAsAAoABAAJAAQAAAAsAAsABAAJAAQAAAAsAAwABAAJAAQAAAAsAA0ABAAJAAQAAAAsAA4ABAAJAAQAAAAsAA8ABAAJAAQAAAAsABAABAAJAAQAAAAsABEAAQANAAEAAAAsABIAAQANAAAAAAAsABMAAQAMAAEAAAAsABQAAQAOAAAAAAAsABUAAQAPAAAAAAAsABYAAQAKAAEAAAAsABcAAQAQAAAAAAAtAAAAAQAOAAAAAAAtAAEAAQAPAAAAAAAtAAIAAQAQAAAAAAAtAAMABAAJAAQAAAAtAAQABAAJAAQAAAAtAAUABAAJAAQAAAAtAAYABAAJAAQAAAAtAAcABAAJAAQAAAAtAAgABAAJAAQAAAAtAAkABAAJAAQAAAAtAAoABAAJAAQAAAAtAAsABAAJAAQAAAAtAAwABAAJAAQAAAAtAA0ABAAJAAQAAAAtAA4ABAAJAAQAAAAtAA8ABAAJAAQAAAAtABAABAAJAAQAAAAtABEAAQAQAAAAAAAtABIAAQAQAAAAAAAtABMAAQANAAAAAAAtABQAAQANAAEAAAAtABUAAQALAAAAAAAtABYAAQALAAEAAAAtABcAAQALAAIAAAAuAAAAAQAPAAAAAAAuAAEAAQAQAAAAAAAuAAIAAQAOAAAAAAAuAAMABAAJAAQAAAAuAAQABAAJAAQAAAAuAAUABAAJAAQAAAAuAAYABAAJAAQAAAAuAAcABAAJAAQAAAAuAAgABAAJAAQAAAAuAAkABAAJAAQAAAAuAAoABAAJAAQAAAAuAAsABAAJAAQAAAAuAAwABAAJAAQAAAAuAA0ABAAJAAQAAAAuAA4ABAAJAAQAAAAuAA8ABAAJAAQAAAAuABAABAAJAAQAAAAuABEAAQANAAAAAAAuABIAAQAQAAAAAAAuABMAAQAPAAAAAAAuABQAAQANAAAAAAAuABUAAQAQAAAAAAAuABYAAQAMAAEAAAAuABcAAQAPAAAAAAAvAAAAAQANAAAAAAAvAAEAAQAKAAEAAAAvAAIAAQANAAEAAAAvAAMABAAJAAQAAAAvAAQABAAJAAQAAAAvAAUABAAJAAQAAAAvAAYABAAJAAQAAAAvAAcABAAJAAQAAAAvAAgABAAJAAQAAAAvAAkABAAJAAQAAAAvAAoABAAJAAQAAAAvAAsABAAJAAQAAAAvAAwABAAJAAQAAAAvAA0ABAAJAAQAAAAvAA4ABAAJAAQAAAAvAA8ABAAJAAQAAAAvABAABAAJAAQAAAAvABEABAAJAAQAAAAvABIAAQANAAAAAAAvABMAAQAOAAAAAAAvABQAAQAOAAAAAAAvABUAAQAPAAAAAAAvABYAAQANAAAAAAAvABcAAQAQAAAAAAAwAAAAAQALAAAAAAAwAAEAAQALAAEAAAAwAAIAAQALAAIAAAAwAAMABAAJAAQAAAAwAAQABAAJAAQAAAAwAAUABAAJAAQAAAAwAAYABAAJAAQAAAAwAAcABAAJAAQAAAAwAAgABAAJAAQAAAAwAAkABAAJAAQAAAAwAAoABAAJAAQAAAAwAAsABAAJAAQAAAAwAAwABAAJAAQAAAAwAA0ABAAJAAQAAAAwAA4ABAAJAAQAAAAwAA8ABAAJAAQAAAAwABAABAAJAAQAAAAwABEABAAJAAQAAAAwABIABAAJAAQAAAAwABMABAAJAAQAAAAwABUAAQAQAAMAAAAwABYAAQAFAAEAAAAwABcAAQAFAAEAAAAxAAAAAQANAAAAAAAxAAEAAQAMAAEAAAAxAAIAAQANAAEAAAAxAAMABAAJAAQAAAAxAAQABAAJAAQAAAAxAAUABAAJAAQAAAAxAAYABAAJAAQAAAAxAAcABAAJAAQAAAAxAAgABAAJAAQAAAAxAAkABAAJAAQAAAAxAAoABAAJAAQAAAAxAAsABAAJAAQAAAAxAAwABAAJAAQAAAAxAA0ABAAJAAQAAAAxAA4ABAAJAAQAAAAxAA8ABAAJAAQAAAAxABAABAAJAAQAAAAxABEABAAJAAQAAAAxABIABAAJAAQAAAAxABMABAAJAAQAAAAxABQABAAJAA8AAAAxABUAAQAFAAEAAAAxABYAAQAFAAEAAAAxABcAAQAFAAEAAAAyAAAAAQAQAAAAAAAyAAEAAQAQAAAAAAAyAAIAAQANAAEAAAAyAAMABAAJAAQAAAAyAAQABAAJAAQAAAAyAAUABAAJAAQAAAAyAAYABAAJAAQAAAAyAAcABAAJAAQAAAAyAAgABAAJAAQAAAAyAAkABAAJAAQAAAAyAAoABAAJAAQAAAAyAAsABAAJAAQAAAAyAAwABAAJAAQAAAAyAA0ABAAJAAQAAAAyAA4ABAAJAAQAAAAyAA8ABAAJAAQAAAAyABAABAAJAAQAAAAyABEABAAJAAQAAAAyABIABAAJAAQAAAAyABMABAAJAAQAAAAyABQABAAKAA8AAAAyABUAAQAFAAEAAAAyABYAAQAFAAEAAAAyABcAAQAFAAEAAAAzAAAAAQANAAAAAAAzAAEAAQAQAAAAAAAzAAIAAQANAAEAAAAzAAMABAAJAAQAAAAzAAQABAAJAAQAAAAzAAUABAAJAAQAAAAzAAYABAAJAAQAAAAzAAcABAAJAAQAAAAzAAgABAAJAAQAAAAzAAkABAAJAAQAAAAzAAoABAAJAAQAAAAzAAsABAAJAAQAAAAzAAwABAAJAAQAAAAzAA0ABAAJAAQAAAAzAA4ABAAJAAQAAAAzAA8ABAAJAAQAAAAzABAABAAJAAQAAAAzABEABAAJAAQAAAAzABIABAAJAAQAAAAzABMABAAJAAQAAAAzABUAAQAQAAMAAAAzABYAAQAFAAEAAAAzABcAAQAFAAEAAAA0AAAAAQAQAAAAAAA0AAEAAQANAAEAAAA0AAIAAQANAAAAAAA0AAMABAAJAAQAAAA0AAQABAAJAAQAAAA0AAUABAAJAAQAAAA0AAYABAAJAAQAAAA0AAcABAAJAAQAAAA0AAgABAAJAAQAAAA0AAkABAAJAAQAAAA0AAoABAAJAAQAAAA0AAsABAAJAAQAAAA0AAwABAAJAAQAAAA0AA0ABAAJAAQAAAA0AA4ABAAJAAQAAAA0AA8ABAAJAAQAAAA0ABAABAAJAAQAAAA0ABEAAQAPAAAAAAA0ABIAAQAQAAAAAAA0ABMAAQANAAAAAAA0ABQAAQANAAEAAAA0ABUAAQANAAEAAAA0ABYAAQANAAAAAAA0ABcAAQAQAAAAAAA1AAAAAQAOAAAAAAA1AAEAAQAKAAEAAAA1AAIAAQANAAEAAAA1AAMABAAJAAQAAAA1AAQABAAJAAQAAAA1AAUABAAJAAQAAAA1AAYABAAJAAQAAAA1AAcABAAJAAQAAAA1AAgABAAJAAQAAAA1AAkABAAJAAQAAAA1AAoABAAJAAQAAAA1AAsABAAJAAQAAAA1AAwABAAJAAQAAAA1AA0ABAAJAAQAAAA1AA4ABAAJAAQAAAA1AA8ABAAJAAQAAAA1ABAABAAJAAQAAAA1ABEAAQAQAAAAAAA1ABIAAQAPAAAAAAA1ABMAAQAPAAAAAAA1ABQAAQAQAAAAAAA1ABUAAQAPAAAAAAA1ABYAAQAKAAEAAAA1ABcAAQAPAAAAAAA2AAAAAQALAAAAAAA2AAEAAQALAAEAAAA2AAIAAQALAAIAAAA2AAMABAAJAAQAAAA2AAQABAAJAAQAAAA2AAUABAAJAAQAAAA2AAYABAAJAAQAAAA2AAcABAAJAAQAAAA2AAgABAAJAAQAAAA2AAkABAAJAAQAAAA2AAoABAAJAAQAAAA2AAsABAAJAAQAAAA2AAwABAAJAAQAAAA2AA0ABAAJAAQAAAA2AA4ABAAJAAQAAAA2AA8ABAAJAAQAAAA2ABAABAAJAAQAAAA2ABEAAQANAAAAAAA2ABIAAQAQAAAAAAA2ABMAAQAOAAAAAAA2ABQAAQANAAAAAAA2ABUAAQALAAAAAAA2ABYAAQALAAEAAAA2ABcAAQALAAIAAAA3AAAAAQANAAAAAAA3AAEAAQAMAAEAAAA3AAIAAQAOAAAAAAA3AAMABAAJAAQAAAA3AAQABAAJAAQAAAA3AAUABAAJAAQAAAA3AAYABAAJAAQAAAA3AAcABAAJAAQAAAA3AAgABAAJAAQAAAA3AAkABAAJAAQAAAA3AAoABAAJAAQAAAA3AAsABAAJAAQAAAA3AAwABAAJAAQAAAA3AA0ABAAJAAQAAAA3AA4ABAAJAAQAAAA3AA8ABAAJAAQAAAA3ABAABAAJAAQAAAA3ABEAAQAQAAAAAAA3ABIAAQANAAEAAAA3ABMAAQAOAAAAAAA3ABQAAQAKAAEAAAA3ABUAAQAPAAAAAAA3ABYAAQAMAAEAAAA3ABcAAQAPAAAAAAA4AAAAAQANAAAAAAA4AAEAAQAOAAAAAAA4AAIAAQAQAAAAAAA4AAMABAAJAAQAAAA4AAQABAAJAAQAAAA4AAUABAAJAAQAAAA4AAYABAAJAAQAAAA4AAcABAAJAAQAAAA4AAgABAAJAAQAAAA4AAkABAAJAAQAAAA4AAoABAAJAAQAAAA4AAsABAAJAAQAAAA4AAwABAAJAAQAAAA4AA0ABAAJAAQAAAA4AA4ABAAJAAQAAAA4AA8ABAAJAAQAAAA4ABAABAAJAAQAAAA4ABEAAQANAAAAAAA4ABIAAQAOAAAAAAA4ABMAAQALAAAAAAA4ABQAAQALAAEAAAA4ABUAAQALAAIAAAA4ABYAAQANAAAAAAA4ABcAAQAPAAAAAAA5AAAAAQANAAEAAAA5AAEAAQANAAEAAAA5AAIAAQAQAAAAAAA5AAMABAAJAAQAAAA5AAQABAAJAAQAAAA5AAUABAAJAAQAAAA5AAYABAAJAAQAAAA5AAcABAAJAAQAAAA5AAgABAAJAAQAAAA5AAkABAAJAAQAAAA5AAoABAAJAAQAAAA5AAsABAAJAAQAAAA5AAwABAAJAAQAAAA5AA0ABAAJAAQAAAA5AA4ABAAJAAQAAAA5AA8ABAAJAAQAAAA5ABAABAAJAAQAAAA5ABEAAQAQAAAAAAA5ABIAAQAOAAAAAAA5ABMAAQAQAAAAAAA5ABQAAQAMAAEAAAA5ABUAAQAOAAAAAAA5ABYAAQANAAAAAAA5ABcAAQANAAAAAAA6AAAAAQANAAEAAAA6AAEAAQANAAEAAAA6AAIAAQAPAAAAAAA6AAMABAAJAAQAAAA6AAQABAAJAAQAAAA6AAUABAAJAAQAAAA6AAYABAAJAAQAAAA6AAcABAAJAAQAAAA6AAgABAAJAAQAAAA6AAkABAAJAAQAAAA6AAoABAAJAAQAAAA6AAsABAAJAAQAAAA6AAwABAAJAAQAAAA6AA0ABAAJAAQAAAA6AA4ABAAJAAQAAAA6AA8ABAAJAAQAAAA6ABAABAAJAAQAAAA6ABEAAQAQAAAAAAA6ABIAAQANAAEAAAA6ABMAAQAPAAAAAAA6ABQAAQANAAAAAAA6ABUAAQANAAEAAAA6ABYAAQAQAAAAAAA6ABcAAQAQAAAAAAA7AAAAAQAQAAAAAAA7AAEAAQAQAAAAAAA7AAIAAQANAAEAAAA7AAMABAAJAAQAAAA7AAQABAAJAAQAAAA7AAUABAAJAAQAAAA7AAYABAAJAAQAAAA7AAcABAAJAAQAAAA7AAgABAAJAAQAAAA7AAkABAAJAAQAAAA7AAoABAAJAAQAAAA7AAsABAAJAAQAAAA7AAwABAAJAAQAAAA7AA0ABAAJAAQAAAA7AA4ABAAJAAQAAAA7AA8ABAAJAAQAAAA7ABAABAAJAAQAAAA7ABEAAQAPAAAAAAA7ABIAAQAQAAAAAAA7ABMAAQAPAAAAAAA7ABQAAQAPAAAAAAA7ABUAAQAKAAEAAAA7ABYAAQAQAAAAAAA7ABcAAQAPAAAAAAA8AAAAAQAQAAAAAAA8AAEAAQAKAAEAAAA8AAIAAQAOAAAAAAA8AAMAAQAPAAAAAAA8AAQAAQANAAAAAAA8AAUAAQAKAAEAAAA8AAYAAQANAAAAAAA8AAcAAQAQAAAAAAA8AAgAAQANAAEAAAA8AAkAAQAOAAAAAAA8AAoAAQANAAEAAAA8AAsAAQANAAEAAAA8AAwAAQAKAAEAAAA8AA0AAQANAAEAAAA8AA4AAQAPAAAAAAA8AA8AAQANAAEAAAA8ABAAAQAPAAAAAAA8ABEAAQAQAAAAAAA8ABIAAQAQAAAAAAA8ABMAAQANAAAAAAA8ABQAAQALAAAAAAA8ABUAAQALAAEAAAA8ABYAAQALAAIAAAA8ABcAAQAQAAAAAAA9AAAAAQALAAAAAAA9AAEAAQALAAEAAAA9AAIAAQALAAIAAAA9AAMAAQANAAEAAAA9AAQAAQALAAAAAAA9AAUAAQALAAEAAAA9AAYAAQALAAIAAAA9AAcAAQAOAAAAAAA9AAgAAQAQAAAAAAA9AAkAAQANAAEAAAA9AAoAAQAQAAAAAAA9AAsAAQALAAAAAAA9AAwAAQALAAEAAAA9AA0AAQALAAIAAAA9AA4AAQAPAAAAAAA9AA8AAQAOAAAAAAA9ABAAAQAOAAAAAAA9ABEAAQAOAAAAAAA9ABIAAQAOAAAAAAA9ABMAAQANAAAAAAA9ABQAAQAPAAAAAAA9ABUAAQAMAAEAAAA9ABYAAQAQAAAAAAA9ABcAAQANAAEAAAA+AAAAAQANAAAAAAA+AAEAAQAMAAEAAAA+AAIAAQAQAAAAAAA+AAMAAQAOAAAAAAA+AAQAAQANAAAAAAA+AAUAAQAMAAEAAAA+AAYAAQANAAEAAAA+AAcAAQAOAAAAAAA+AAgAAQAPAAAAAAA+AAkAAQAPAAAAAAA+AAoAAQAPAAAAAAA+AAsAAQANAAEAAAA+AAwAAQAMAAEAAAA+AA0AAQANAAEAAAA+AA4AAQAPAAAAAAA+AA8AAQANAAAAAAA+ABAAAQAOAAAAAAA+ABEAAQAOAAAAAAA+ABIAAQAPAAAAAAA+ABMAAQAQAAAAAAA+ABQAAQANAAAAAAA+ABUAAQANAAAAAAA+ABYAAQAOAAAAAAA+ABcAAQAPAAAAAAABABMAAQANAAAAAAABABUAAQANAAAAAAACABQAAQAOAAEAAAADABUAAQAPAAAAAAAFABUAAQANAAAAAAAGABQAAQAOAAEAAAAHABIAAQAQAAAAAAAIABcAAQAPAAAAAAAJABUAAQANAAAAAAAKABcAAQAOAAAAAAALABYAAQAQAAAAAAAMABUAAQAQAAAAAAAPABQAAQAQAAAAAAAPABYAAQAMAAEAAAAQABMAAQAKAAEAAAATABIAAQANAAAAAAAVABYAAQAMAAEAAAAVABcAAQAOAAEAAAAXABIAAQAKAAEAAAAZABYAAQANAAEAAAAbABMAAQAPAAAAAAAbABQAAQAQAAAAAAAcABUAAQAOAAAAAAAcABYAAQANAAAAAAAdABQAAQALAAIAAAAeABIAAQAOAAEAAAAeABYAAQAOAAEAAAAgABUAAQAQAAAAAAAgABcAAQAQAAAAAAAiABcAAQAOAAAAAAAAABIAAQANAAEAAAAAABMAAQANAAEAAAABABIAAQANAAEAAAACABIAAQAKAAEAAAADABIAAQALAAEAAAAAABQAAQANAAAAAAAAABUAAQANAAEAAAABABQAAQANAAEAAAADABQAAQAQAAAAAAAAABYAAQANAAAAAAAAABcAAQANAAEAAAABABYAAQAKAAEAAAABABcAAQANAAAAAAACABYAAQALAAEAAAADABYAAQAMAAEAAAAEABIAAQAMAAEAAAAEABMAAQAQAAAAAAAFABIAAQAOAAEAAAAFABMAAQANAAAAAAAGABIAAQAOAAEAAAAEABQAAQANAAAAAAAEABUAAQAQAAAAAAAFABQAAQANAAEAAAAHABQAAQAQAAAAAAAEABYAAQANAAAAAAAEABcAAQAQAAAAAAAFABYAAQAKAAEAAAAFABcAAQANAAAAAAAGABYAAQALAAEAAAAHABYAAQAMAAEAAAAIABIAAQANAAAAAAAIABMAAQAKAAEAAAAJABIAAQALAAAAAAAJABMAAQALAAEAAAAKABIAAQAOAAEAAAALABIAAQAQAAAAAAAIABQAAQANAAAAAAAIABUAAQAQAAAAAAAJABQAAQALAAIAAAAKABQAAQAOAAEAAAALABQAAQAQAAAAAAAIABYAAQANAAAAAAAJABYAAQANAAEAAAAJABcAAQANAAAAAAAKABYAAQAOAAEAAAAMABIAAQANAAAAAAAMABMAAQAOAAAAAAANABIAAQANAAEAAAANABMAAQANAAAAAAAOABIAAQAOAAEAAAAPABIAAQAQAAAAAAAMABQAAQANAAAAAAANABQAAQAPAAAAAAANABUAAQANAAAAAAAOABQAAQAOAAEAAAAMABYAAQANAAAAAAAMABcAAQAQAAAAAAANABYAAQAKAAEAAAANABcAAQANAAAAAAAOABYAAQALAAEAAAAQABIAAQANAAAAAAARABIAAQALAAAAAAARABMAAQALAAEAAAASABIAAQAOAAEAAAAQABQAAQANAAAAAAAQABUAAQAQAAAAAAARABQAAQALAAIAAAARABUAAQANAAAAAAASABQAAQAOAAEAAAATABQAAQAQAAAAAAAQABYAAQANAAAAAAAQABcAAQAQAAAAAAARABYAAQANAAEAAAARABcAAQANAAAAAAASABYAAQAOAAEAAAATABYAAQAKAAEAAAAUABIAAQANAAAAAAAUABMAAQAQAAAAAAAVABIAAQANAAEAAAAVABMAAQANAAAAAAAWABIAAQAOAAEAAAAUABQAAQANAAAAAAAUABUAAQALAAAAAAAVABQAAQANAAEAAAAVABUAAQAOAAAAAAAWABQAAQAOAAEAAAAXABQAAQAQAAAAAAAUABYAAQALAAEAAAAUABcAAQALAAIAAAAWABYAAQAOAAEAAAAXABYAAQAQAAAAAAAYABIAAQALAAEAAAAYABMAAQALAAIAAAAZABIAAQAMAAEAAAAZABMAAQAOAAAAAAAaABIAAQAOAAEAAAAbABIAAQAQAAAAAAAYABQAAQANAAAAAAAYABUAAQAQAAAAAAAZABQAAQANAAEAAAAZABUAAQAQAAAAAAAaABQAAQAOAAEAAAAYABYAAQANAAAAAAAYABcAAQAQAAAAAAAZABcAAQANAAAAAAAaABYAAQAOAAEAAAAbABYAAQAQAAAAAAAcABIAAQAPAAAAAAAcABMAAQAKAAEAAAAdABIAAQALAAAAAAAdABMAAQALAAEAAAAfABIAAQAQAAAAAAAcABQAAQAOAAAAAAAdABUAAQANAAAAAAAeABQAAQAOAAEAAAAfABQAAQAQAAAAAAAcABcAAQAQAAAAAAAdABYAAQANAAEAAAAdABcAAQANAAAAAAAfABYAAQAQAAAAAAAgABIAAQANAAAAAAAgABMAAQAKAAEAAAAhABIAAQALAAAAAAAhABMAAQALAAEAAAAiABIAAQANAAEAAAAjABIAAQAOAAEAAAAgABQAAQANAAAAAAAhABQAAQALAAIAAAAhABUAAQANAAAAAAAiABQAAQAOAAEAAAAjABQAAQANAAAAAAAgABYAAQANAAAAAAAhABYAAQANAAEAAAAhABcAAQANAAAAAAAiABYAAQAOAAEAAAAjABYAAQAQAAAAAAACABMAAQAOAAAAAAADABMAAQALAAIAAAACABUAAQALAAAAAAACABcAAQALAAIAAAADABcAAQAPAAAAAAAGABMAAQAOAAAAAAAHABMAAQAPAAAAAAAGABUAAQALAAAAAAAHABUAAQAPAAAAAAAGABcAAQALAAIAAAAHABcAAQAPAAAAAAAKABMAAQAMAAEAAAALABMAAQAPAAAAAAAKABUAAQAOAAAAAAALABUAAQAPAAAAAAALABcAAQAPAAAAAAAOABMAAQAOAAAAAAAPABMAAQAPAAAAAAAOABUAAQALAAAAAAAPABUAAQAPAAAAAAAOABcAAQALAAIAAAAPABcAAQAPAAAAAAASABMAAQAMAAEAAAATABMAAQAOAAAAAAASABUAAQAOAAAAAAATABUAAQAPAAAAAAASABcAAQAOAAAAAAATABcAAQAOAAAAAAAWABMAAQAOAAAAAAAXABMAAQAPAAAAAAAWABUAAQAOAAAAAAAXABUAAQAPAAAAAAAWABcAAQAOAAAAAAAXABcAAQAPAAAAAAAaABMAAQAPAAAAAAAaABUAAQAOAAAAAAAbABUAAQAPAAAAAAAaABcAAQAOAAAAAAAbABcAAQAPAAAAAAAeABMAAQAMAAEAAAAfABMAAQANAAAAAAAeABUAAQAOAAAAAAAfABUAAQAPAAAAAAAeABcAAQAOAAAAAAAfABcAAQAPAAAAAAAiABMAAQAMAAEAAAAjABMAAQAQAAAAAAAiABUAAQAOAAAAAAAjABUAAQAPAAAAAAAjABcAAQAPAAAAAAAqABgAAQALAAAAAAAqABkAAQALAAEAAAArABgAAQANAAEAAAArABkAAQAMAAEAAAAsABgAAQAOAAAAAAAtABgAAQAPAAAAAAAqABoAAQALAAIAAAAqABsAAQAFAAEAAAArABoAAQAQAAAAAAArABsAAQAFAAEAAAAsABoAAQAOAAAAAAAtABoAAQANAAAAAAAuABgAAQAQAAAAAAAuABkAAQAKAAEAAAAvABgAAQALAAAAAAAvABkAAQALAAEAAAAwABgAAQAOAAAAAAAxABgAAQAFAAEAAAAuABoAAQAOAAAAAAAuABsAAQAFAAEAAAAvABoAAQALAAIAAAAvABsAAQAFAAEAAAAwABoAAQAQAAAAAAAxABoAAQAFAAEAAAAyABgAAQAFAAEAAAAyABkAAQAFAAEAAAAzABgAAQANAAAAAAAzABkAAQAOAAAAAAA0ABgAAQAOAAAAAAA1ABgAAQAPAAAAAAAyABoAAQAFAAEAAAAyABsAAQAFAAEAAAAzABoAAQAOAAEAAAAzABsAAQAFAAEAAAA0ABoAAQANAAAAAAA1ABoAAQAOAAAAAAA2ABgAAQALAAAAAAA2ABkAAQALAAEAAAA3ABgAAQANAAAAAAA3ABkAAQAMAAEAAAA4ABgAAQAOAAAAAAA5ABgAAQAPAAAAAAA2ABoAAQALAAIAAAA2ABsAAQAFAAEAAAA3ABoAAQAQAAAAAAA3ABsAAQAFAAEAAAA4ABoAAQANAAEAAAA5ABoAAQAOAAEAAAA6ABgAAQAQAAAAAAA6ABkAAQAKAAEAAAA7ABgAAQALAAAAAAA7ABkAAQALAAEAAAA8ABgAAQAOAAAAAAA9ABgAAQAPAAAAAAA6ABoAAQAOAAAAAAA6ABsAAQAFAAEAAAA7ABoAAQALAAIAAAA7ABsAAQAFAAEAAAA8ABoAAQAOAAAAAAA9ABoAAQAPAAAAAAA+ABgAAQAQAAAAAAA+ABkAAQAQAAAAAAA+ABoAAQAQAAAAAAA+ABsAAQAFAAEAAAAsABkAAQANAAAAAAAsABsAAQAFAAEAAAAwABkAAQAMAAEAAAAwABsAAQAFAAEAAAA0ABkAAQANAAAAAAA0ABsAAQAFAAEAAAA4ABkAAQANAAAAAAA4ABsAAQAFAAEAAAA8ABkAAQAMAAEAAAA8ABsAAQAFAAEAAAAnABgAAQANAAAAAAAnABkAAQANAAEAAAAoABgAAQAOAAAAAAAoABkAAQAOAAEAAAApABgAAQAPAAAAAAAnABoAAQANAAAAAAAnABsAAQAFAAEAAAAoABoAAQANAAAAAAAoABsAAQAFAAEAAAApABoAAQAOAAAAAAAxABsAAQAFAAEAAAAxABkAAQAFAAEAAAApABkAAQAKAAEAAAAtABkAAQAOAAAAAAAtABsAAQAFAAEAAAApABsAAQAFAAEAAAA1ABkAAQAKAAEAAAA1ABsAAQAFAAEAAAA5ABsAAQAFAAEAAAA5ABkAAQAOAAAAAAA9ABkAAQAPAAAAAAA9ABsAAQAFAAEAAAAAABgABAABAA8AAAABABgABAABAA8AAAACABgABAABAA8AAAADABgABAABAA8AAAAEABgABAABAA8AAAAFABgABAABAA8AAAAGABgABAABAA8AAAAHABgABAABAA8AAAAIABgABAABAA8AAAAJABgABAABAA8AAAAKABgABAABAA8AAAALABgABAABAA8AAAAMABgABAABAA8AAAANABgABAABAA8AAAAOABgABAABAA8AAAAPABgABAABAA8AAAAQABgABAABAA8AAAARABgABAABAA8AAAASABgABAABAA8AAAATABgABAABAA8AAAAUABgABAABAA8AAAAVABgABAABAA8AAAAWABgABAABAA8AAAAXABgABAABAA8AAAAYABgABAABAA8AAAAZABgABAABAA8AAAAaABgABAABAA8AAAAbABgABAABAA8AAAAcABgABAABAA8AAAAdABgABAABAA8AAAAeABgABAABAA8AAAAfABgABAABAA8AAAAgABgABAABAA8AAAAhABgABAABAA8AAAAiABgABAABAA8AAAAjABgABAABAA8AAAAkABgABAABAA8AAAAlABgABAABAA8AAAAAABkABAABABAAAAABABkABAABABAAAAACABkABAABABAAAAADABkABAABABAAAAAEABkABAABABAAAAAFABkABAABABAAAAAGABkABAABABAAAAAHABkABAABABAAAAAIABkABAABABAAAAAJABkABAABABAAAAAKABkABAABABAAAAALABkABAABABAAAAAMABkABAABABAAAAANABkABAABABAAAAAOABkABAABABAAAAAPABkABAABABAAAAAQABkABAABABAAAAARABkABAABABAAAAASABkABAABABAAAAATABkABAABABAAAAAUABkABAABABAAAAAVABkABAABABAAAAAWABkABAABABAAAAAXABkABAABABAAAAAYABkABAABABAAAAAZABkABAABABAAAAAaABkABAABABAAAAAbABkABAABABAAAAAcABkABAABABAAAAAdABkABAABABAAAAAeABkABAABABAAAAAfABkABAABABAAAAAgABkABAABABAAAAAAABoABAABABEAAAABABoABAABABEAAAACABoABAABABEAAAADABoABAABABEAAAAEABoABAABABEAAAAFABoABAABABEAAAAGABoABAABABEAAAAHABoABAABABEAAAAIABoABAABABEAAAAJABoABAABABEAAAAKABoABAABABEAAAALABoABAABABEAAAAMABoABAABABEAAAANABoABAABABEAAAAOABoABAABABEAAAAPABoABAABABEAAAAQABoABAABABEAAAARABoABAABABEAAAASABoABAABABEAAAATABoABAABABEAAAAUABoABAABABEAAAAVABoABAABABEAAAAWABoABAABABEAAAAXABoABAABABEAAAAYABoABAABABEAAAAZABoABAABABEAAAAaABoABAABABEAAAAbABoABAABABEAAAAcABoABAABABEAAAAdABoABAABABEAAAAeABoABAABABEAAAAfABoABAABABEAAAAgABoABAABABEAAAAhABoABAABABEAAAAiABoABAABABEAAAAjABoABAABABEAAAAhABkABAACAA8AAAAiABkABAACAA8AAAAjABkABAACAA8AAAAkABkABAACAA8AAAAlABkABAACAA8AAAAmABkABAAEABEAAAAmABoABAAEABEAAAAmABsABAAEABEAAAAmABwABAAHABEAAAAlABwABAACAA8AAAAlAB0ABAACAA8AAAAmAB0ABAACAA8AAAAmAB4ABAAHABAAAAAmAB8ABAAEABEAAAAmABgABAAGABAAAAAkABsABAACABEAAAAkABwABAACABEAAAAkAB0ABAACABEAAAAlABoABAACAA8AAAAlABsABAACAA8AAAAkABoABAAIABAAAAAlAB4ABAACAA8AAAAlAB8ABAACAA8AAAAlACAABAACAA8AAAAlACEABAACAA8AAAAlACIABAADABEAAAAlACMABAADABEAAAAkAB4ABAACABEAAAAkAB8ABAACABEAAAAkACAABAACABEAAAAkACEABAACABEAAAAkACIABAACABEAAAAkACMABAACABEAAAAmACAABAAEABEAAAAmACEABAAEABEAAAAmACIABAAEABEAAAAmACMABAAEABEAAAAnABwABAABAA8AAAAnAB0ABAACAA8AAAAnAB4ABAABABEAAAAoABwABAABAA8AAAAoAB0ABAACAA8AAAAoAB4ABAABABEAAAApABwABAABAA8AAAApAB0ABAACAA8AAAApAB4ABAABABEAAAAqABwABAABAA8AAAAqAB0ABAABABAAAAAqAB4ABAABABEAAAArABwABAABAA8AAAArAB0ABAABABAAAAArAB4ABAABABEAAAAsABwABAABAA8AAAAsAB0ABAABABAAAAAsAB4ABAABABEAAAAtABwABAABAA8AAAAtAB0ABAABABAAAAAtAB4ABAABABEAAAAuABwABAABAA8AAAAuAB0ABAABABAAAAAuAB4ABAABABEAAAAvABwABAABAA8AAAAvAB0ABAABABAAAAAvAB4ABAABABEAAAAwABwABAABAA8AAAAwAB0ABAABABAAAAAwAB4ABAABABEAAAAxABwABAAAAA8AAAAxAB0ABAAAABAAAAAxAB4ABAAAABEAAAAyABwABAAAAA8AAAAyAB0ABAAAABAAAAAyAB4ABAAAABEAAAAzABwABAABAA8AAAAzAB0ABAABABAAAAAzAB4ABAABABEAAAA0ABwABAABAA8AAAA0AB0ABAABABAAAAA0AB4ABAABABEAAAA1ABwABAABAA8AAAA1AB0ABAABABAAAAA1AB4ABAABABEAAAA2ABwABAABAA8AAAA2AB0ABAABABAAAAA2AB4ABAABABEAAAA3ABwABAABAA8AAAA3AB0ABAABABAAAAA3AB4ABAABABEAAAA4ABwABAABAA8AAAA4AB0ABAABABAAAAA4AB4ABAABABEAAAA5ABwABAABAA8AAAA5AB0ABAABABAAAAA5AB4ABAABABEAAAA6ABwABAABAA8AAAA6AB0ABAABABAAAAA6AB4ABAABABEAAAA7ABwABAABAA8AAAA7AB0ABAABABAAAAA7AB4ABAABABEAAAA8ABwABAABAA8AAAA8AB0ABAABABAAAAA8AB4ABAABABEAAAA9ABwABAABAA8AAAA9AB0ABAABABAAAAA9AB4ABAABABEAAAA+ABwABAABAA8AAAA+AB0ABAABABAAAAA+AB4ABAABABEAAAAkACQABAACABEAAAAlACQABAADABEAAAAmACQABAAEABEAAAAkACUABAACABEAAAAlACUABAADABEAAAAmACUABAAEABEAAAAkACYABAACABEAAAAlACYABAADABEAAAAmACYABAAEABEAAAAkACcABAACABEAAAAlACcABAADABEAAAAmACcABAAEABEAAAAkACgABAACABEAAAAlACgABAADABEAAAAmACgABAAEABEAAAAkACkABAACABEAAAAlACkABAADABEAAAAmACkABAAEABEAAAAkACoABAACABEAAAAlACoABAADABEAAAAmACoABAAEABEAAAAkACsABAACABEAAAAlACsABAADABEAAAAmACsABAAEABEAAAAkACwABAACABEAAAAlACwABAADABEAAAAmACwABAAEABEAAAAxAB8ABAAKABAAAAAyAB8ABAAKABAAAAAsACAABAAVAAIAAAAsACEABAAJABAAAAAsACIABAAJABAAAAAsACMABAAJABAAAAAtACAABAAVAAIAAAAtACEABAAJABAAAAAtACIABAAJABAAAAAtACMABAAJABAAAAAuACAABAAVAAIAAAAuACEABAAJABAAAAAuACIABAAJABAAAAAuACMABAAJABAAAAAvACAABAAVAAIAAAAvACEABAAJABAAAAAvACIABAAJABAAAAAvACMABAAJABAAAAAwACAABAAVAAIAAAAwACEABAAJABAAAAAwACIABAAJABAAAAAwACMABAAJABAAAAAxACAABAAKABAAAAAxACEABAAJABAAAAAxACIABAAJABAAAAAxACMABAAJABAAAAAyACAABAAKABAAAAAyACEABAAJABAAAAAyACIABAAJABAAAAAyACMABAAJABAAAAAzACAABAAVAAIAAAAzACEABAAJABAAAAAzACIABAAJABAAAAAzACMABAAJABAAAAA0ACAABAAVAAIAAAA0ACEABAAJABAAAAA0ACIABAAJABAAAAA0ACMABAAJABAAAAA1ACAABAAVAAIAAAA1ACEABAAJABAAAAA1ACIABAAJABAAAAA1ACMABAAJABAAAAA2ACAABAAVAAIAAAA2ACEABAAJABAAAAA2ACIABAAJABAAAAA2ACMABAAJABAAAAA3ACAABAAVAAIAAAA3ACEABAAJABAAAAA3ACIABAAJABAAAAA3ACMABAAJABAAAAAnAB8ABAASAAIAAAAnACAABAASAAIAAAAnACEABAASAAIAAAAnACIABAASAAIAAAAnACMABAASAAIAAAAoAB8ABAASAAIAAAAoACAABAAVAAIAAAAoACEABAAVAAIAAAAoACIABAAVAAIAAAAoACMABAAVAAIAAAApAB8ABAASAAIAAAApACAABAAVAAIAAAApACEABAAJABAAAAApACIABAAJABAAAAApACMABAAJABAAAAAqAB8ABAASAAIAAAAqACAABAAVAAIAAAAqACEABAAJABAAAAAqACIABAAJABAAAAAqACMABAAJABAAAAArAB8ABAASAAIAAAArACAABAAVAAIAAAArACEABAAJABAAAAArACIABAAJABAAAAArACMABAAJABAAAAAsAB8ABAASAAIAAAAtAB8ABAASAAIAAAAuAB8ABAASAAIAAAAvAB8ABAASAAIAAAAwAB8ABAASAAIAAAAzAB8ABAASAAIAAAA0AB8ABAASAAIAAAA1AB8ABAASAAIAAAA2AB8ABAASAAIAAAA3AB8ABAASAAIAAAA4AB8ABAASAAIAAAA4ACAABAAVAAIAAAA4ACEABAAJABAAAAA4ACIABAAJABAAAAA4ACMABAAJABAAAAA5AB8ABAASAAIAAAA5ACAABAAVAAIAAAA5ACEABAAJABAAAAA5ACIABAAJABAAAAA5ACMABAAJABAAAAA6AB8ABAASAAIAAAA6ACAABAAVAAIAAAA6ACEABAAJABAAAAA6ACIABAAJABAAAAA6ACMABAAJABAAAAA7AB8ABAASAAIAAAA7ACAABAAVAAIAAAA7ACEABAAJABAAAAA7ACIABAAJABAAAAA7ACMABAAJABAAAAA8AB8ABAASAAIAAAA8ACAABAAVAAIAAAA8ACEABAAJABAAAAA8ACIABAAJABAAAAA8ACMABAAJABAAAAA9AB8ABAASAAIAAAA9ACAABAAVAAIAAAA9ACEABAAJABAAAAA9ACIABAAJABAAAAA9ACMABAAJABAAAAA+AB8ABAASAAIAAAA+ACAABAAVAAIAAAA+ACEABAAJABAAAAA+ACIABAAJABAAAAA+ACMABAAJABAAAAAAABsABAASAAIAAAABABsABAASAAIAAAACABsABAASAAIAAAADABsABAASAAIAAAAEABsABAASAAIAAAAFABsABAASAAIAAAAGABsABAASAAIAAAAHABsABAASAAIAAAAIABsABAASAAIAAAAJABsABAASAAIAAAAKABsABAASAAIAAAALABsABAASAAIAAAAMABsABAASAAIAAAANABsABAASAAIAAAAOABsABAASAAIAAAAPABsABAASAAIAAAAQABsABAASAAIAAAARABsABAASAAIAAAASABsABAASAAIAAAATABsABAASAAIAAAAUABsABAASAAIAAAAVABsABAASAAIAAAAWABsABAASAAIAAAAXABsABAASAAIAAAAYABsABAASAAIAAAAZABsABAASAAIAAAAaABsABAASAAIAAAAbABsABAASAAIAAAAcABsABAASAAIAAAAdABsABAASAAIAAAAeABsABAASAAIAAAAfABsABAASAAIAAAAgABsABAASAAIAAAAhABsABAASAAIAAAAiABsABAASAAIAAAAjABsABAASAAIAAAAjABwABAASAAIAAAAjAB0ABAASAAIAAAAjAB4ABAASAAIAAAAjAB8ABAASAAIAAAAjACAABAASAAIAAAAjACEABAASAAIAAAAjACIABAASAAIAAAAjACMABAASAAIAAAAjACQABAASAAIAAAAjACUABAASAAIAAAAjACYABAASAAIAAAAjACcABAASAAIAAAAjACgABAASAAIAAAAjACkABAASAAIAAAAjACoABAASAAIAAAAjACsABAASAAIAAAAjACwABAASAAIAAAAnACQABAASAAIAAAAnACUABAASAAIAAAAnACYABAASAAIAAAAnACcABAASAAIAAAAnACgABAASAAIAAAAnACkABAASAAIAAAAnACoABAASAAIAAAAnACsABAASAAIAAAAnACwABAASAAIAAAAoACQABAAVAAIAAAAiABwABAAVAAIAAAAhABwABAAVAAIAAAAgABwABAAVAAIAAAAfABwABAAVAAIAAAAeABwABAAVAAIAAAAdABwABAAVAAIAAAAcABwABAAVAAIAAAAbABwABAAVAAIAAAAaABwABAAVAAIAAAAZABwABAAVAAIAAAAYABwABAAVAAIAAAAXABwABAAVAAIAAAAWABwABAAVAAIAAAAVABwABAAVAAIAAAAUABwABAAVAAIAAAAAABwABAAVAAIAAAABABwABAAVAAIAAAACABwABAAVAAIAAAADABwABAAVAAIAAAAEABwABAAVAAIAAAAFABwABAAVAAIAAAAGABwABAAVAAIAAAAHABwABAAVAAIAAAAIABwABAAVAAIAAAAJABwABAAVAAIAAAAKABwABAAVAAIAAAALABwABAAVAAIAAAAMABwABAAVAAIAAAANABwABAAVAAIAAAAOABwABAAVAAIAAAAPABwABAAVAAIAAAAQABwABAAVAAIAAAARABwABAAVAAIAAAASABwABAAVAAIAAAATABwABAAVAAIAAAAoACUABAAVAAIAAAAoACYABAAVAAIAAAAoACcABAAVAAIAAAAoACgABAAVAAIAAAAoACkABAAVAAIAAAAoACoABAAVAAIAAAAoACsABAAVAAIAAAAoACwABAAVAAIAAAAiAB0ABAAVAAIAAAAiAB4ABAAVAAIAAAAiAB8ABAAVAAIAAAAiACAABAAVAAIAAAAiACEABAAVAAIAAAAiACIABAAVAAIAAAAiACMABAAVAAIAAAAiACQABAAVAAIAAAAiACUABAAVAAIAAAAiACYABAAVAAIAAAAiACcABAAVAAIAAAAiACgABAAVAAIAAAAiACkABAAVAAIAAAAiACoABAAVAAIAAAAiACsABAAVAAIAAAAiACwABAAVAAIAAAApACQABAAJABAAAAAqACQABAAJABAAAAArACQABAAJABAAAAAsACQABAAJABAAAAAsACUABAAJABAAAAAtACUABAAJABAAAAAuACUABAAJABAAAAAvACUABAAJABAAAAAwACUABAAJABAAAAAxACUABAAJABAAAAAyACUABAAJABAAAAAzACUABAAJABAAAAA0ACUABAAJABAAAAA1ACUABAAJABAAAAA1ACYABAAJABAAAAA2ACYABAAJABAAAAA3ACYABAAJABAAAAA4ACYABAAJABAAAAA5ACYABAAJABAAAAA6ACYABAAJABAAAAA7ACYABAAJABAAAAA8ACYABAAJABAAAAApACUABAAJABAAAAApACYABAAJABAAAAApACcABAAJABAAAAApACgABAAJABAAAAAqACUABAAJABAAAAAqACYABAAJABAAAAAqACcABAAJABAAAAAqACgABAAJABAAAAArACUABAAJABAAAAArACYABAAJABAAAAArACcABAAJABAAAAArACgABAAJABAAAAAsACYABAAJABAAAAAsACcABAAJABAAAAAsACgABAAJABAAAAAtACQABAAJABAAAAAtACYABAAJABAAAAAtACcABAAJABAAAAAtACgABAAJABAAAAAuACQABAAJABAAAAAuACYABAAJABAAAAAuACcABAAJABAAAAAuACgABAAJABAAAAAvACQABAAJABAAAAAvACYABAAJABAAAAAvACcABAAJABAAAAAvACgABAAJABAAAAAwACQABAAJABAAAAAwACYABAAJABAAAAAwACcABAAJABAAAAAwACgABAAJABAAAAAxACQABAAJABAAAAAxACYABAAJABAAAAAxACcABAAJABAAAAAxACgABAAJABAAAAAyACQABAAJABAAAAAyACYABAAJABAAAAAyACcABAAJABAAAAAyACgABAAJABAAAAAzACQABAAJABAAAAAzACYABAAJABAAAAAzACcABAAJABAAAAAzACgABAAJABAAAAA0ACQABAAJABAAAAA0ACYABAAJABAAAAA0ACcABAAJABAAAAA0ACgABAAJABAAAAA1ACQABAAJABAAAAA1ACcABAAJABAAAAA1ACgABAAJABAAAAA2ACQABAAJABAAAAA2ACUABAAJABAAAAA2ACcABAAJABAAAAA2ACgABAAJABAAAAA3ACQABAAJABAAAAA3ACUABAAJABAAAAA3ACcABAAJABAAAAA3ACgABAAJABAAAAA4ACQABAAJABAAAAA4ACUABAAJABAAAAA4ACcABAAJABAAAAA4ACgABAAJABAAAAA5ACQABAAJABAAAAA5ACUABAAJABAAAAA5ACcABAAJABAAAAA5ACgABAAJABAAAAA6ACQABAAJABAAAAA6ACUABAAJABAAAAA6ACcABAAJABAAAAA6ACgABAAJABAAAAA7ACQABAAJABAAAAA7ACUABAAJABAAAAA7ACcABAAJABAAAAA7ACgABAAJABAAAAA8ACQABAAJABAAAAA8ACUABAAJABAAAAA8ACcABAAJABAAAAA8ACgABAAJABAAAAA9ACQABAAJABAAAAA9ACUABAAJABAAAAA9ACYABAAJABAAAAA9ACcABAAJABAAAAA9ACgABAAJABAAAAA+ACQABAAJABAAAAA+ACUABAAJABAAAAA+ACYABAAJABAAAAA+ACcABAAJABAAAAA+ACgABAAJABAAAABYAAQAAAASAAAAAABYAAUAAAASAAEAAABYAAYAAAASAAEAAABYAAcAAAASAAEAAABYAAgAAAASAAEAAABYAAkAAAASAAEAAABYAAoAAAASAAEAAABYAAsAAAASAAEAAABYAAwAAAASAAEAAABYAA0AAAASAAEAAABYAA4AAAASAAEAAABYAA8AAAASAAIAAABZAAQAAAATAAAAAABZAAUAAAASAAMAAABZAAYAAAASAAQAAABZAAcAAAASAAMAAABZAAgAAAASAAQAAABZAAkAAAASAAMAAABZAAoAAAASAAQAAABZAAsAAAAUAAMAAABZAAwAAAAUAAQAAABZAA0AAAASAAMAAABZAA4AAAASAAQAAABZAA8AAAATAAIAAABaAAQAAAATAAAAAABaAAUAAAATAAMAAABaAAYAAAATAAQAAABaAAcAAAATAAMAAABaAAgAAAATAAQAAABaAAkAAAATAAMAAABaAAoAAAATAAQAAABaAAsAAAAVAAMAAABaAAwAAAAVAAQAAABaAA0AAAATAAMAAABaAA4AAAATAAQAAABaAA8AAAATAAIAAABbAAQAAAATAAAAAABbAAUAAAASAAMAAABbAAYAAAASAAQAAABbAAcAAAASAAMAAABbAAgAAAASAAQAAABbAAkAAAAUAAMAAABbAAoAAAAUAAQAAABbAAsAAAASAAMAAABbAAwAAAASAAQAAABbAA0AAAASAAMAAABbAA4AAAASAAQAAABbAA8AAAATAAIAAABcAAQAAAATAAAAAABcAAUAAAATAAMAAABcAAYAAAATAAQAAABcAAcAAAATAAMAAABcAAgAAAATAAQAAABcAAkAAAAVAAMAAABcAAoAAAAVAAQAAABcAAsAAAATAAMAAABcAAwAAAATAAQAAABcAA0AAAATAAMAAABcAA4AAAATAAQAAABcAA8AAAATAAIAAABdAAQAAAATAAAAAABdAAUAAAASAAMAAABdAAYAAAASAAQAAABdAAcAAAAUAAMAAABdAAgAAAAUAAQAAABdAAkAAAASAAMAAABdAAoAAAASAAQAAABdAAsAAAASAAMAAABdAAwAAAASAAQAAABdAA0AAAAUAAMAAABdAA4AAAAUAAQAAABdAA8AAAATAAIAAABeAAQAAAATAAAAAABeAAUAAAATAAMAAABeAAYAAAATAAQAAABeAAcAAAAVAAMAAABeAAgAAAAVAAQAAABeAAkAAAATAAMAAABeAAoAAAATAAQAAABeAAsAAAATAAMAAABeAAwAAAATAAQAAABeAA0AAAAVAAMAAABeAA4AAAAVAAQAAABeAA8AAAATAAIAAABfAAQAAAATAAAAAABfAAUAAAAUAAMAAABfAAYAAAAUAAQAAABfAAcAAAASAAMAAABfAAgAAAASAAQAAABfAAkAAAASAAMAAABfAAoAAAASAAQAAABfAAsAAAAUAAMAAABfAAwAAAAUAAQAAABfAA0AAAASAAMAAABfAA4AAAASAAQAAABfAA8AAAATAAIAAABgAAQAAAATAAAAAABgAAUAAAAVAAMAAABgAAYAAAAVAAQAAABgAAcAAAATAAMAAABgAAgAAAATAAQAAABgAAkAAAATAAMAAABgAAoAAAATAAQAAABgAAsAAAAVAAMAAABgAAwAAAAVAAQAAABgAA0AAAATAAMAAABgAA4AAAATAAQAAABgAA8AAAATAAIAAABhAAQAAAATAAAAAABhAAUAAAASAAMAAABhAAYAAAASAAQAAABhAAcAAAASAAMAAABhAAgAAAASAAQAAABhAAkAAAAUAAMAAABhAAoAAAAUAAQAAABhAAsAAAASAAMAAABhAAwAAAASAAQAAABhAA0AAAASAAMAAABhAA4AAAASAAQAAABhAA8AAAATAAIAAABiAAQAAAATAAAAAABiAAUAAAATAAMAAABiAAYAAAATAAQAAABiAAcAAAATAAMAAABiAAgAAAATAAQAAABiAAkAAAAVAAMAAABiAAoAAAAVAAQAAABiAAsAAAATAAMAAABiAAwAAAATAAQAAABiAA0AAAATAAMAAABiAA4AAAATAAQAAABiAA8AAAATAAIAAABjAAQAAAATAAAAAABjAAUAAAASAAMAAABjAAYAAAASAAQAAABjAAcAAAAUAAMAAABjAAgAAAAUAAQAAABjAAkAAAASAAMAAABjAAoAAAASAAQAAABjAAsAAAASAAMAAABjAAwAAAASAAQAAABjAA0AAAAUAAMAAABjAA4AAAAUAAQAAABjAA8AAAATAAIAAABkAAQAAAATAAAAAABkAAUAAAATAAMAAABkAAYAAAATAAQAAABkAAcAAAAVAAMAAABkAAgAAAAVAAQAAABkAAkAAAATAAMAAABkAAoAAAATAAQAAABkAAsAAAATAAMAAABkAAwAAAATAAQAAABkAA0AAAAVAAMAAABkAA4AAAAVAAQAAABkAA8AAAATAAIAAABlAAQAAAATAAAAAABlAAUAAAAUAAMAAABlAAYAAAAUAAQAAABlAAcAAAASAAMAAABlAAgAAAASAAQAAABlAAkAAAASAAMAAABlAAoAAAASAAQAAABlAAsAAAAUAAMAAABlAAwAAAAUAAQAAABlAA0AAAASAAMAAABlAA4AAAASAAQAAABlAA8AAAATAAIAAABmAAQAAAATAAAAAABmAAUAAAAVAAMAAABmAAYAAAAVAAQAAABmAAcAAAATAAMAAABmAAgAAAATAAQAAABmAAkAAAATAAMAAABmAAoAAAATAAQAAABmAAsAAAAVAAMAAABmAAwAAAAVAAQAAABmAA0AAAATAAMAAABmAA4AAAATAAQAAABmAA8AAAATAAIAAABnAAQAAAATAAAAAABnAAUAAAASAAMAAABnAAYAAAASAAQAAABnAAcAAAASAAMAAABnAAgAAAASAAQAAABnAAkAAAAUAAMAAABnAAoAAAAUAAQAAABnAAsAAAASAAMAAABnAAwAAAASAAQAAABnAA0AAAASAAMAAABnAA4AAAASAAQAAABnAA8AAAATAAIAAABoAAQAAAATAAAAAABoAAUAAAATAAMAAABoAAYAAAATAAQAAABoAAcAAAATAAMAAABoAAgAAAATAAQAAABoAAkAAAAVAAMAAABoAAoAAAAVAAQAAABoAAsAAAATAAMAAABoAAwAAAATAAQAAABoAA0AAAATAAMAAABoAA4AAAATAAQAAABoAA8AAAATAAIAAABpAAQAAAATAAAAAABpAAUAAAASAAMAAABpAAYAAAASAAQAAABpAAcAAAAUAAMAAABpAAgAAAAUAAQAAABpAAkAAAASAAMAAABpAAoAAAASAAQAAABpAAsAAAASAAMAAABpAAwAAAASAAQAAABpAA0AAAAUAAMAAABpAA4AAAAUAAQAAABpAA8AAAATAAIAAABqAAQAAAATAAAAAABqAAUAAAATAAMAAABqAAYAAAATAAQAAABqAAcAAAAVAAMAAABqAAgAAAAVAAQAAABqAAkAAAATAAMAAABqAAoAAAATAAQAAABqAAsAAAATAAMAAABqAAwAAAATAAQAAABqAA0AAAAVAAMAAABqAA4AAAAVAAQAAABqAA8AAAATAAIAAABrAAQAAAATAAAAAABrAAUAAAAUAAMAAABrAAYAAAAUAAQAAABrAAcAAAASAAMAAABrAAgAAAASAAQAAABrAAkAAAASAAMAAABrAAoAAAASAAQAAABrAAsAAAAUAAMAAABrAAwAAAAUAAQAAABrAA0AAAASAAMAAABrAA4AAAASAAQAAABrAA8AAAATAAIAAABsAAQAAAATAAAAAABsAAUAAAAVAAMAAABsAAYAAAAVAAQAAABsAAcAAAATAAMAAABsAAgAAAATAAQAAABsAAkAAAATAAMAAABsAAoAAAATAAQAAABsAAsAAAAVAAMAAABsAAwAAAAVAAQAAABsAA0AAAATAAMAAABsAA4AAAATAAQAAABsAA8AAAATAAIAAABtAAQAAAATAAAAAABtAAUAAAASAAMAAABtAAYAAAASAAQAAABtAAcAAAASAAMAAABtAAgAAAASAAQAAABtAAkAAAAUAAMAAABtAAoAAAAUAAQAAABtAAsAAAASAAMAAABtAAwAAAASAAQAAABtAA0AAAASAAMAAABtAA4AAAASAAQAAABtAA8AAAATAAIAAABuAAQAAAATAAAAAABuAAUAAAATAAMAAABuAAYAAAATAAQAAABuAAcAAAATAAMAAABuAAgAAAATAAQAAABuAAkAAAAVAAMAAABuAAoAAAAVAAQAAABuAAsAAAATAAMAAABuAAwAAAATAAQAAABuAA0AAAATAAMAAABuAA4AAAATAAQAAABuAA8AAAATAAIAAABvAAQAAAATAAAAAABvAAUAAAASAAMAAABvAAYAAAASAAQAAABvAAcAAAAUAAMAAABvAAgAAAAUAAQAAABvAAkAAAASAAMAAABvAAoAAAASAAQAAABvAAsAAAASAAMAAABvAAwAAAASAAQAAABvAA0AAAAUAAMAAABvAA4AAAAUAAQAAABvAA8AAAATAAIAAABwAAQAAAATAAAAAABwAAUAAAATAAMAAABwAAYAAAATAAQAAABwAAcAAAAVAAMAAABwAAgAAAAVAAQAAABwAAkAAAATAAMAAABwAAoAAAATAAQAAABwAAsAAAATAAMAAABwAAwAAAATAAQAAABwAA0AAAAVAAMAAABwAA4AAAAVAAQAAABwAA8AAAATAAIAAABxAAQAAAATAAAAAABxAAUAAAAUAAMAAABxAAYAAAAUAAQAAABxAAcAAAASAAMAAABxAAgAAAASAAQAAABxAAkAAAASAAMAAABxAAoAAAASAAQAAABxAAsAAAAUAAMAAABxAAwAAAAUAAQAAABxAA0AAAASAAMAAABxAA4AAAASAAQAAABxAA8AAAATAAIAAAByAAQAAAATAAAAAAByAAUAAAAVAAMAAAByAAYAAAAVAAQAAAByAAcAAAATAAMAAAByAAgAAAATAAQAAAByAAkAAAATAAMAAAByAAoAAAATAAQAAAByAAsAAAAVAAMAAAByAAwAAAAVAAQAAAByAA0AAAATAAMAAAByAA4AAAATAAQAAAByAA8AAAATAAIAAABzAAQAAAAUAAAAAABzAAUAAAAUAAEAAABzAAYAAAAUAAEAAABzAAcAAAAUAAEAAABzAAgAAAAUAAEAAABzAAkAAAAUAAEAAABzAAoAAAAUAAEAAABzAAsAAAAUAAEAAABzAAwAAAAUAAEAAABzAA0AAAAUAAEAAABzAA4AAAAUAAEAAABzAA8AAAAUAAIAAAAnAAcABAAJAAQAAAA=") +tile_set = ExtResource("1_rk237") + +[node name="TileMapLayer2" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAjAAkABAACAAwAAAAjAAoABAACAAwAAAAkAAgABAAAAAMAAAAkAAsABAAAAAUAAAAkAAkABAAGAAQAAAAlAAkABAABAAQAAAAlAAoABAABAAQAAAAmAAoABAABAAQAAAAkAAoABAAGAAMAAAAmAAkABAABAAQAAAAnAAkABAABAAQAAAAnAAoABAABAAQAAAAlAAgABAABAAMAAAAmAAgABAAGAAQAAAAnAAgABAABAAQAAAAoAAgABAABAAQAAAApAAgABAABAAQAAAAqAAgABAABAAQAAAArAAgABAABAAQAAAAoAAkABAABAAQAAAApAAkABAABAAQAAAAqAAkABAABAAQAAAAqAAoABAABAAQAAAArAAoABAABAAQAAAArAAkABAABAAQAAAAoAAoABAABAAQAAAApAAoABAABAAQAAAAlAAsABAABAAUAAAAmAAsABAAGAAMAAAAnAAsABAABAAQAAAAoAAsABAABAAQAAAApAAsABAABAAQAAAAqAAsABAABAAQAAAArAAsABAABAAQAAAAmAAMABAAAAAMAAAAmAAQABAAAAAQAAAAmAAUABAAAAAQAAAAmAAYABAAAAAQAAAAmAAcABAAAAAQAAAAmAAwABAAAAAQAAAAmAA0ABAAAAAQAAAAmAA4ABAAAAAQAAAAmAA8ABAAAAAQAAAAnAAMABAABAAMAAAAnAAQABAABAAQAAAAnAAUABAABAAQAAAAnAAYABAABAAQAAAAnAAcABAABAAQAAAAnAAwABAABAAQAAAAnAA0ABAABAAQAAAAnAA4ABAABAAQAAAAnAA8ABAABAAQAAAAoAAMABAABAAMAAAAoAAQABAABAAQAAAAoAAUABAABAAQAAAAoAAYABAABAAQAAAAoAAcABAABAAQAAAAoAAwABAABAAQAAAAoAA0ABAABAAQAAAAoAA4ABAABAAQAAAAoAA8ABAABAAQAAAApAAMABAABAAMAAAApAAQABAABAAQAAAApAAUABAABAAQAAAApAAYABAABAAQAAAApAAcABAABAAQAAAApAAwABAABAAQAAAApAA0ABAABAAQAAAApAA4ABAABAAQAAAApAA8ABAABAAQAAAAqAAMABAABAAMAAAAqAAQABAABAAQAAAAqAAUABAABAAQAAAAqAAYABAABAAQAAAAqAAcABAABAAQAAAAqAAwABAABAAQAAAAqAA0ABAABAAQAAAAqAA4ABAABAAQAAAAqAA8ABAABAAQAAAArAAMABAABAAMAAAArAAQABAABAAQAAAArAAUABAABAAQAAAArAAYABAABAAQAAAArAAcABAABAAQAAAArAAwABAABAAQAAAArAA0ABAABAAQAAAArAA4ABAABAAQAAAArAA8ABAABAAQAAAAsAAMABAABAAMAAAAsAAQABAABAAQAAAAsAAUABAABAAQAAAAsAAYABAABAAQAAAAsAAcABAABAAQAAAAsAAgABAABAAQAAAAsAAkABAABAAQAAAAsAAoABAABAAQAAAAsAAsABAABAAQAAAAsAAwABAABAAQAAAAsAA0ABAABAAQAAAAsAA4ABAABAAQAAAAsAA8ABAABAAQAAAAtAAMABAABAAMAAAAtAAQABAABAAQAAAAtAAUABAABAAQAAAAtAAYABAABAAQAAAAtAAcABAABAAQAAAAtAAgABAABAAQAAAAtAAkABAABAAQAAAAtAAoABAABAAQAAAAtAAsABAABAAQAAAAtAAwABAABAAQAAAAtAA0ABAABAAQAAAAtAA4ABAABAAQAAAAtAA8ABAABAAQAAAAuAAMABAABAAMAAAAuAAQABAABAAQAAAAuAAUABAABAAQAAAAuAAYABAABAAQAAAAuAAcABAABAAQAAAAuAAgABAABAAQAAAAuAAkABAABAAQAAAAuAAoABAABAAQAAAAuAAsABAABAAQAAAAuAAwABAABAAQAAAAuAA0ABAABAAQAAAAuAA4ABAABAAQAAAAuAA8ABAABAAQAAAAvAAMABAABAAMAAAAvAAQABAABAAQAAAAvAAUABAABAAQAAAAvAAYABAABAAQAAAAvAAcABAABAAQAAAAvAAgABAABAAQAAAAvAAkABAABAAQAAAAvAAoABAABAAQAAAAvAAsABAABAAQAAAAvAAwABAABAAQAAAAvAA0ABAABAAQAAAAvAA4ABAABAAQAAAAvAA8ABAABAAQAAAAmABAABAAAAAUAAAAnABAABAABAAUAAAAoABAABAABAAUAAAApABAABAABAAUAAAAqABAABAABAAUAAAArABAABAABAAUAAAAsABAABAABAAUAAAAtABAABAABAAUAAAAuABAABAABAAUAAAAvABAABAAGAAMAAAAwAAQABAABAAQAAAAwAAUABAABAAQAAAAwAAYABAABAAQAAAAwAAcABAABAAQAAAAwAAgABAABAAQAAAAwAAkABAABAAQAAAAwAAoABAABAAQAAAAwAAsABAABAAQAAAAwAAwABAABAAQAAAAwAA0ABAABAAQAAAAwAA4ABAABAAQAAAAwAA8ABAABAAQAAAAxAAQABAABAAQAAAAxAAUABAABAAQAAAAxAAYABAABAAQAAAAxAAcABAABAAQAAAAxAAgABAABAAQAAAAxAAkABAABAAQAAAAxAAoABAABAAQAAAAxAAsABAABAAQAAAAxAAwABAABAAQAAAAxAA0ABAABAAQAAAAxAA4ABAABAAQAAAAxAA8ABAABAAQAAAAyAAQABAABAAQAAAAyAAUABAABAAQAAAAyAAYABAABAAQAAAAyAAcABAABAAQAAAAyAAgABAABAAQAAAAyAAkABAABAAQAAAAyAAoABAABAAQAAAAyAAsABAABAAQAAAAyAAwABAABAAQAAAAyAA0ABAABAAQAAAAyAA4ABAABAAQAAAAyAA8ABAABAAQAAAAzAAQABAABAAQAAAAzAAUABAABAAQAAAAzAAYABAABAAQAAAAzAAcABAABAAQAAAAzAAgABAABAAQAAAAzAAkABAABAAQAAAAzAAoABAABAAQAAAAzAAsABAABAAQAAAAzAAwABAABAAQAAAAzAA0ABAABAAQAAAAzAA4ABAABAAQAAAAzAA8ABAABAAQAAAA0AAQABAABAAQAAAA0AAUABAABAAQAAAA0AAYABAABAAQAAAA0AAcABAABAAQAAAA0AAgABAABAAQAAAA0AAkABAABAAQAAAA0AAoABAABAAQAAAA0AAsABAABAAQAAAA0AAwABAABAAQAAAA0AA0ABAABAAQAAAA0AA4ABAABAAQAAAA0AA8ABAABAAQAAAA1AAQABAABAAQAAAA1AAUABAABAAQAAAA1AAYABAABAAQAAAA1AAcABAABAAQAAAA1AAgABAABAAQAAAA1AAkABAABAAQAAAA1AAoABAABAAQAAAA1AAsABAABAAQAAAA1AAwABAABAAQAAAA1AA0ABAABAAQAAAA1AA4ABAABAAQAAAA1AA8ABAABAAQAAAA2AAQABAABAAQAAAA2AAUABAABAAQAAAA2AAYABAABAAQAAAA2AAcABAABAAQAAAA2AAgABAABAAQAAAA2AAkABAABAAQAAAA2AAoABAABAAQAAAA2AAsABAABAAQAAAA2AAwABAABAAQAAAA2AA0ABAABAAQAAAA2AA4ABAABAAQAAAA2AA8ABAABAAQAAAA3AAQABAABAAQAAAA3AAUABAABAAQAAAA3AAYABAABAAQAAAA3AAcABAABAAQAAAA3AAgABAABAAQAAAA3AAkABAABAAQAAAA3AAoABAABAAQAAAA3AAsABAABAAQAAAA3AAwABAABAAQAAAA3AA0ABAABAAQAAAA3AA4ABAABAAQAAAA3AA8ABAABAAQAAAA4AAQABAABAAQAAAA4AAUABAABAAQAAAA4AAYABAABAAQAAAA4AAcABAABAAQAAAA4AAgABAABAAQAAAA4AAkABAABAAQAAAA4AAoABAABAAQAAAA4AAsABAABAAQAAAA4AAwABAABAAQAAAA4AA0ABAABAAQAAAA4AA4ABAABAAQAAAA4AA8ABAABAAQAAAA5AAQABAABAAQAAAA5AAUABAABAAQAAAA5AAYABAABAAQAAAA5AAcABAABAAQAAAA5AAgABAABAAQAAAA5AAkABAABAAQAAAA5AAoABAABAAQAAAA5AAsABAABAAQAAAA5AAwABAABAAQAAAA5AA0ABAABAAQAAAA5AA4ABAABAAQAAAA5AA8ABAABAAQAAAA6AAQABAABAAQAAAA6AAUABAABAAQAAAA6AAYABAABAAQAAAA6AAcABAABAAQAAAA6AAgABAABAAQAAAA6AAkABAABAAQAAAA6AAoABAABAAQAAAA6AAsABAABAAQAAAA6AAwABAABAAQAAAA6AA0ABAABAAQAAAA6AA4ABAABAAQAAAA6AA8ABAABAAQAAAA7AAQABAACAAQAAAA7AAUABAACAAQAAAA7AAYABAACAAQAAAA7AAcABAACAAQAAAA7AAgABAACAAQAAAA7AAkABAACAAQAAAA7AAoABAACAAQAAAA7AAsABAACAAQAAAA7AAwABAACAAQAAAA7AA0ABAACAAQAAAA7AA4ABAACAAQAAAA7AA8ABAACAAQAAAAwAAMABAABAAMAAAAxAAMABAABAAMAAAAyAAMABAABAAMAAAAzAAMABAABAAMAAAA0AAMABAABAAMAAAA1AAMABAABAAMAAAA2AAMABAABAAMAAAA3AAMABAABAAMAAAA4AAMABAABAAMAAAA5AAMABAABAAMAAAA6AAMABAABAAMAAAA7AAMABAACAAMAAAA7ABAABAACAAUAAAAwABAABAABAAQAAAAxABAABAABAAQAAAAyABAABAABAAQAAAAzABAABAAFAAMAAAA0ABAABAABAAUAAAA1ABAABAABAAUAAAA2ABAABAABAAUAAAA3ABAABAABAAUAAAA4ABAABAABAAUAAAA5ABAABAABAAUAAAA6ABAABAABAAUAAAAvABEABAAAAAUAAAAwABEABAAGAAMAAAAwABIABAAAAAQAAAAwABMABAAAAAQAAAAwABQABAAAAAUAAAAxABEABAABAAQAAAAxABIABAABAAQAAAAxABMABAABAAQAAAAyABEABAABAAQAAAAyABIABAABAAQAAAAyABMABAABAAQAAAAzABEABAACAAQAAAAzABIABAACAAQAAAAzABMABAACAAQAAAAzABQABAACAAUAAAAnABsABAADAA8AAAA+ABwABAAFAAgAAFA+AB0ABAAFAAgAAFA+AB4ABAAFAAgAAFA+ABsABAAIAAkAAAAoABsABAAIAAkAAAAoAB4ABAAFAAYAAAAoAB8ABAAFAAcAAAAhABoABAAFAAYAAAAhABsABAAFAAcAAAAjABsABAAEAA8AAAAnAB8ABAAEAA8AAAAwAB8ABAABAAcAAAAzAB8ABAABAAcAAAApACEABAAFAAgAAAAqACEABAAFAAgAAAAsACEABAAFAAgAAAArACEABAAFAAgAAAAtACEABAAFAAgAAAAuACEABAAFAAgAAAAwACEABAAFAAgAAAAvACEABAAFAAgAAAAzACEABAAFAAgAAAA0ACEABAAFAAgAAAA1ACEABAAFAAgAAAA2ACEABAAFAAgAAAA3ACEABAAFAAgAAAA4ACEABAAFAAgAAAA5ACEABAAFAAgAAAA7ACEABAAFAAgAAAA6ACEABAAFAAgAAAA8ACEABAAFAAgAAAA9ACEABAAFAAgAAAA+ACEABAAFAAgAAAApACIABAAGAAgAAFApACMABAAGAAgAAFApACQABAAGAAgAAFApACUABAAGAAgAAFApACcABAAGAAgAAFApACYABAAGAAgAAFA+ACIABAAGAAgAAGA+ACMABAAGAAgAAGA+ACQABAAGAAgAAGA+ACUABAAGAAgAAGA+ACYABAAGAAgAAGA+ACcABAAGAAgAAGApACgABAAGAAgAADArACgABAAGAAgAADAqACgABAAGAAgAADAsACgABAAGAAgAADAtACgABAAGAAgAADAuACgABAAGAAgAADAvACgABAAGAAgAADAwACgABAAGAAgAADAxACgABAAGAAgAADAyACgABAAGAAgAADAzACgABAAGAAgAADA0ACgABAAGAAgAADA1ACgABAAGAAgAADA2ACgABAAGAAgAADA3ACgABAAGAAgAADA4ACgABAAGAAgAADA5ACgABAAGAAgAADA6ACgABAAGAAgAADA7ACgABAAGAAgAADA8ACgABAAGAAgAADA9ACgABAAGAAgAADA+ACgABAAGAAgAADArABoABAADAAYAAAArABsABAADAAcAAAAwABoABAAHAAYAAAAwABsABAAHAAcAAAAzABoABAAHAAYAAAAzABsABAAHAAcAAAA5ABoABAADAAYAAAA5ABsABAADAAcAAAA5AB4ABAADAAYAAAA5AB8ABAADAAcAAAArAB4ABAADAAYAAAArAB8ABAADAAcAAAAZABoABAADAAYAAAAZABsABAADAAcAAAARABoABAADAAYAAAARABsABAADAAcAAAAJABoABAADAAYAAAAJABsABAADAAcAAAACABoABAADAAYAAAACABsABAADAAcAAAAGABcABAABAAcAAAAOABcABAABAAcAAAAUABcABAABAAcAAAACABcABAABAAcAAABZAAcAAAAPAAoAAABZAAkAAAAPAAoAAABZAAoAAAAPAAoAAABbAAUAAAAPAAoAAABdAAsAAAAPAAoAAABfAAgAAAAPAAoAAABfAA4AAAAPAAoAAABiAA4AAAAPAAoAAABkAAUAAAAPAAoAAABlAAcAAAAPAAoAAABlAAwAAAAPAAoAAABlAA4AAAAPAAoAAABmAAgAAAAPAAoAAABnAAkAAAAPAAoAAABqAAsAAAAPAAoAAABsAAkAAAAPAAoAAABvAAkAAAAPAAoAAABvAAsAAAAPAAoAAABwAAUAAAAPAAoAAABwAAkAAAAPAAoAAAByAAkAAAAPAAoAAAA=") +tile_set = ExtResource("1_rk237") + +[node name="TileMapLayer3" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAA8ACEABAASABAAAAA8ACIABAASABEAAAA9ACEABAATABAAAAA9ACIABAATABEAAAAqACEABAASABAAAAAqACIABAASABEAAAArACEABAATABAAAAArACIABAATABEAAAAqACMABAAPAA4AAAAqACQABAAPAA8AAAArACMABAAQAA4AAAArACQABAAQAA8AAAA8ACMABAASAA4AAAA8ACQABAASAA8AAAA9ACMABAATAA4AAAA9ACQABAATAA8AAAA2ACMABAASAA4AAAA2ACQABAASAA8AAAA3ACMABAATAA4AAAA3ACQABAATAA8AAAA2ACEABAASAA4AAAA2ACIABAASAA8AAAA3ACEABAATAA4AAAA3ACIABAATAA8AAAAqACYABAAVABEAAAArACYABAAWABEAAAAuACIABAAVABEAAAAvACIABAAWABEAAAAuACQABAAVABEAAAAvACQABAAWABEAAAAuACUABAASAA4AAAAuACYABAASAA8AAAAvACUABAATAA4AAAAvACYABAATAA8AAAA2ACUABAAPABAAAAA2ACYABAAPABEAAAA3ACUABAAQABAAAAA3ACYABAAQABEAAAA8ACYABAAVABEAAAA9ACYABAAWABEAAAA=") +tile_set = ExtResource("1_rk237") + +[node name="TileMapLayer4" type="TileMapLayer" parent="."] +tile_set = ExtResource("1_rk237") + +[node name="TileMapLayer5" type="TileMapLayer" parent="."] + +[node name="Camera2D" type="Camera2D" parent="."] +position = Vector2(200, 184) +zoom = Vector2(7, 7) +position_smoothing_enabled = true + +[node name="Rayne" parent="." instance=ExtResource("5_qtv8d")] +position = Vector2(199.495, 179.275) +scale = Vector2(0.02, 0.02) + +[node name="Novel" type="CanvasLayer" parent="."] +layer = 10 +visible = false + +[node name="SubViewportContainer" type="SubViewportContainer" parent="Novel"] +offset_left = -3.05176e-05 +offset_right = 1280.0 +offset_bottom = 720.0 +scale = Vector2(0.143, 0.143) + +[node name="SubViewport" type="SubViewport" parent="Novel/SubViewportContainer"] +transparent_bg = true +handle_input_locally = false +size = Vector2i(1280, 720) +render_target_update_mode = 0 + +[node name="ColorRect" type="ColorRect" parent="."] +visible = false +offset_right = 1280.0 +offset_bottom = 720.0 +color = Color(0, 0, 0, 1) +metadata/_edit_lock_ = true + +[node name="Menu" type="CanvasLayer" parent="."] +visible = false + +[node name="Menu" parent="Menu" node_paths=PackedStringArray("Parent") instance=ExtResource("5_84oip")] +Parent = NodePath("../..") diff --git a/scripts/.editorconfig b/scripts/.editorconfig new file mode 100644 index 0000000..208b6c1 --- /dev/null +++ b/scripts/.editorconfig @@ -0,0 +1,244 @@ +# 如果要从更高级别的目录继承 .editorconfig 设置,请删除以下行 +root = true + +# c# 文件 +[*.cs] + +#### Core EditorConfig 选项 #### + +# 缩进和间距 +indent_size = 4 +indent_style = space +tab_width = 4 + +# 新行首选项 +end_of_line = crlf +insert_final_newline = false + +#### .NET 代码操作 #### + +# 类型成员 +dotnet_hide_advanced_members = false +dotnet_member_insertion_location = with_other_members_of_the_same_kind +dotnet_property_generation_behavior = prefer_throwing_properties + +# 符号搜索 +dotnet_search_reference_assemblies = true + +#### .NET 编码约定 #### + +# 组织 Using +dotnet_separate_import_directive_groups = false +dotnet_sort_system_directives_first = true +file_header_template = unset + +# this. 和 Me. 首选项 +dotnet_style_qualification_for_event = false +dotnet_style_qualification_for_field = false +dotnet_style_qualification_for_method = false +dotnet_style_qualification_for_property = false + +# 语言关键字与 bcl 类型首选项 +dotnet_style_predefined_type_for_locals_parameters_members = true +dotnet_style_predefined_type_for_member_access = true + +# 括号首选项 +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity +dotnet_style_parentheses_in_other_operators = never_if_unnecessary +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity + +# 修饰符首选项 +dotnet_style_require_accessibility_modifiers = for_non_interface_members + +# 表达式级首选项 +dotnet_prefer_system_hash_code = true +dotnet_style_coalesce_expression = true +dotnet_style_collection_initializer = true +dotnet_style_explicit_tuple_names = true +dotnet_style_namespace_match_folder = true +dotnet_style_null_propagation = true +dotnet_style_object_initializer = true +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_prefer_auto_properties = true +dotnet_style_prefer_collection_expression = when_types_loosely_match +dotnet_style_prefer_compound_assignment = true +dotnet_style_prefer_conditional_expression_over_assignment = true +dotnet_style_prefer_conditional_expression_over_return = true +dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed +dotnet_style_prefer_inferred_anonymous_type_member_names = true +dotnet_style_prefer_inferred_tuple_names = true +dotnet_style_prefer_is_null_check_over_reference_equality_method = true +dotnet_style_prefer_simplified_boolean_expressions = true +dotnet_style_prefer_simplified_interpolation = true + +# 字段首选项 +dotnet_style_readonly_field = true + +# 参数首选项 +dotnet_code_quality_unused_parameters = all + +# 禁止显示首选项 +dotnet_remove_unnecessary_suppression_exclusions = none + +# 新行首选项 +dotnet_style_allow_multiple_blank_lines_experimental = true +dotnet_style_allow_statement_immediately_after_block_experimental = true + +#### c# 编码约定 #### + +# var 首选项 +csharp_style_var_elsewhere = false +csharp_style_var_for_built_in_types = false +csharp_style_var_when_type_is_apparent = false + +# Expression-bodied 成员 +csharp_style_expression_bodied_accessors = true +csharp_style_expression_bodied_constructors = false +csharp_style_expression_bodied_indexers = true +csharp_style_expression_bodied_lambdas = true +csharp_style_expression_bodied_local_functions = false +csharp_style_expression_bodied_methods = false +csharp_style_expression_bodied_operators = false +csharp_style_expression_bodied_properties = true + +# 模式匹配首选项 +csharp_style_pattern_matching_over_as_with_null_check = true +csharp_style_pattern_matching_over_is_with_cast_check = true +csharp_style_prefer_extended_property_pattern = true +csharp_style_prefer_not_pattern = true +csharp_style_prefer_pattern_matching = true +csharp_style_prefer_switch_expression = true + +# Null 检查首选项 +csharp_style_conditional_delegate_call = true + +# 修饰符首选项 +csharp_prefer_static_anonymous_function = true +csharp_prefer_static_local_function = true +csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async +csharp_style_prefer_readonly_struct = true +csharp_style_prefer_readonly_struct_member = true + +# 代码块首选项 +csharp_prefer_braces = true +csharp_prefer_simple_using_statement = true +csharp_prefer_system_threading_lock = true +csharp_style_namespace_declarations = block_scoped +csharp_style_prefer_method_group_conversion = true +csharp_style_prefer_primary_constructors = true +csharp_style_prefer_top_level_statements = true + +# 表达式级首选项 +csharp_prefer_simple_default_expression = true +csharp_style_deconstructed_variable_declaration = true +csharp_style_implicit_object_creation_when_type_is_apparent = true +csharp_style_inlined_variable_declaration = true +csharp_style_prefer_index_operator = true +csharp_style_prefer_local_over_anonymous_function = true +csharp_style_prefer_null_check_over_type_check = true +csharp_style_prefer_range_operator = true +csharp_style_prefer_tuple_swap = true +csharp_style_prefer_utf8_string_literals = true +csharp_style_throw_expression = true +csharp_style_unused_value_assignment_preference = discard_variable +csharp_style_unused_value_expression_statement_preference = discard_variable + +# "using" 指令首选项 +csharp_using_directive_placement = outside_namespace + +# 新行首选项 +csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true +csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true +csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true +csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true +csharp_style_allow_embedded_statements_on_same_line_experimental = true + +#### C# 格式规则 #### + +# 新行首选项 +csharp_new_line_before_catch = true +csharp_new_line_before_else = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_open_brace = all +csharp_new_line_between_query_expression_clauses = true + +# 缩进首选项 +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = true +csharp_indent_labels = one_less_than_current +csharp_indent_switch_labels = true + +# 空格键首选项 +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_between_square_brackets = false + +# 包装首选项 +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = true + +#### 命名样式 #### + +# 命名规则 + +dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion +dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface +dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i + +dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.types_should_be_pascal_case.symbols = types +dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case + +dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case + +# 符号规范 + +dotnet_naming_symbols.interface.applicable_kinds = interface +dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.interface.required_modifiers = + +dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum +dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.types.required_modifiers = + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.non_field_members.required_modifiers = + +# 命名样式 + +dotnet_naming_style.pascal_case.required_prefix = +dotnet_naming_style.pascal_case.required_suffix = +dotnet_naming_style.pascal_case.word_separator = +dotnet_naming_style.pascal_case.capitalization = pascal_case + +dotnet_naming_style.begins_with_i.required_prefix = I +dotnet_naming_style.begins_with_i.required_suffix = +dotnet_naming_style.begins_with_i.word_separator = +dotnet_naming_style.begins_with_i.capitalization = pascal_case diff --git a/scripts/AnimatedRichTextLabel.cs b/scripts/AnimatedRichTextLabel.cs new file mode 100644 index 0000000..ceea572 --- /dev/null +++ b/scripts/AnimatedRichTextLabel.cs @@ -0,0 +1,91 @@ +using System; +using Godot; + +namespace Milimoe.GodotGame; + +public partial class AnimatedRichTextLabel : RichTextLabel +{ + [Export] + public float CharactersPerSecond { get; set; } = 20; // 每秒显示的字符数 + public NovelController NovelController { get; set; } = null; // 是否在小说控制器中 + + public bool IsAnimationRunning = false; // 动画是否正在运行 + + private string _fullText; // 完整的文本内容 + private float _elapsedTime = 0; // 经过的时间 + private int _visibleCharacters = 0; // 当前显示的字符数 + private Timer _timer; + + public override void _Ready() + { + _timer = GetNode("Timer"); + _timer.Timeout += OnTimerTimeout; + _fullText = Text; // 保存完整的文本内容 + Text = ""; // 清空 RichTextLabel 的初始文本 + VisibleCharacters = 0; // 确保初始状态下不显示任何字符 + } + + public void StartAnimation() + { + _elapsedTime = 0; + _visibleCharacters = 0; + Text = _fullText; // 恢复完整的文本内容 + VisibleCharacters = 0; // 确保从头开始显示 + IsAnimationRunning = true; + _timer.Start(); // 启动 Timer + } + + public void SkipAnimation() + { + if (IsAnimationRunning) + { + VisibleCharacters = _fullText.Length; // 直接显示所有字符 + StopAnimation(); + } + } + + private void StopAnimation() + { + if (IsAnimationRunning) + { + _timer.Stop(); + IsAnimationRunning = false; + NovelController.TextAnimationHasFinished(); + } + } + + public override void _Process(double delta) + { + if (!IsAnimationRunning) return; + + if (_timer.IsStopped()) return; + + _elapsedTime += (float)delta; + int targetVisibleCharacters = (int)(_elapsedTime * CharactersPerSecond); + + if (targetVisibleCharacters > _visibleCharacters) + { + _visibleCharacters = Math.Min(targetVisibleCharacters, _fullText.Length); + VisibleCharacters = _visibleCharacters; + } + + if (_visibleCharacters >= _fullText.Length) + { + StopAnimation(); + } + } + + private void OnTimerTimeout() + { + // 这里可以添加一些逻辑,例如在动画结束后触发一个信号 + // 或者执行其他操作 + } + + public new void SetText(string text) + { + _fullText = text; + Text = ""; + VisibleCharacters = 0; + IsAnimationRunning = false; + } +} diff --git a/scripts/AnimatedRichTextLabel.cs.uid b/scripts/AnimatedRichTextLabel.cs.uid new file mode 100644 index 0000000..552cd47 --- /dev/null +++ b/scripts/AnimatedRichTextLabel.cs.uid @@ -0,0 +1 @@ +uid://c4ny5p54lotj0 diff --git a/scripts/Chapter/C1S1.cs.uid b/scripts/Chapter/C1S1.cs.uid new file mode 100644 index 0000000..8ecdb0c --- /dev/null +++ b/scripts/Chapter/C1S1.cs.uid @@ -0,0 +1 @@ +uid://33pxslbxxwv1 diff --git a/scripts/Chapter/ChapterScene.cs b/scripts/Chapter/ChapterScene.cs new file mode 100644 index 0000000..4799d16 --- /dev/null +++ b/scripts/Chapter/ChapterScene.cs @@ -0,0 +1,151 @@ +using System.Threading.Tasks; +using Godot; + +namespace Milimoe.GodotGame; + +public partial class ChapterScene : Node2D, INovelEndEvent, IMenuObject, IFadeInFadeOutBlack +{ + [Export] + public PackedScene NovelScene { get; set; } + + [Export] + public PackedScene MenuScene { get; set; } + + [Export] + public CanvasLayer UI { get; set; } + + [Export] + public string ChapterInGame { get; set; } + + [Export] + public string AreaInGame { get; set; } + + [Export] + public string NovelName { get; set; } + + [Export] + public string SceneName { get; set; } + + private CanvasLayer _novelCanvasLayer; + private CanvasLayer _menuCanvasLayer; + private Node _novelInterface; + private Node _menuInterface; + + public override async void _Ready() + { + GameConstant.ChapterInGame = ChapterInGame; + GameConstant.AreaInGame = AreaInGame; + GameConstant.NovelName = NovelName; + GameConstant.SceneName = SceneName; + + _novelCanvasLayer = GetNode("Novel"); + _novelCanvasLayer.Visible = true; + + ColorRect colorRect = GetNode("ColorRect"); + colorRect.SelfModulate = new Color(0, 0, 0, 1); + colorRect.Show(); + + // 实例化小说界面场景 + if (NovelScene != null) + { + _novelInterface = NovelScene.Instantiate(); + _novelCanvasLayer.AddChild(_novelInterface); + if (_novelInterface is NovelController novelController) + { + novelController.ChapterObject = this; + novelController.MenuObject = this; + novelController.FadeObject = this; + await FadeOutBlack(1f, true); + novelController.InitNovel(NovelName, SceneName); + GameConstant.AutoSave(0); + } + } + + // 实例化菜单界面场景 + if (MenuScene != null) + { + _menuCanvasLayer = GetNode("Menu"); + _menuCanvasLayer.Visible = false; + _menuInterface = MenuScene.Instantiate(); + if (_menuInterface is MenuController menuController) + { + menuController.Parent = this; + } + _menuCanvasLayer.AddChild(_menuInterface); + } + } + + public override void _Input(InputEvent @event) + { + if (@event is InputEventKey keyEvent) + { + if (keyEvent.Pressed && keyEvent.Keycode == Key.Escape) + { + if (_menuCanvasLayer != null) + { + ChangeState(); + } + } + } + } + + public async void OnNovelEnd(CanvasLayer node, string novel_name, string scene_name) + { + node.Visible = false; + await FadeInBlack(1f); + await Task.Delay(500); + await FadeOutBlack(0.5f, true); + if (UI != null) + { + UI.Visible = true; + if (UI.GetNode("UserInterface") is UserInterface userInterface) + { + if (GameConstant.Characters.Count == 1) + { + userInterface.CharacterStatus1.Visible = true; + TextureRect image = userInterface.CharacterStatus1.GetNode("Image"); + using Texture2D texture = GD.Load("res://assets/character/雷恩.png"); + image.Texture = texture; + } + else if (GameConstant.Characters.Count == 2) + { + userInterface.CharacterStatus1.Visible = true; + userInterface.CharacterStatus2.Visible = true; + } + } + } + } + + public async Task FadeInBlack(float fadeTime, bool hide = false) + { + // 淡入黑色遮罩 + ColorRect colorRect = GetNode("ColorRect"); + colorRect.SelfModulate = new Color(0, 0, 0, 0); + colorRect.Show(); + Tween tween = CreateTween(); + tween.TweenProperty(colorRect, "self_modulate", new Color(0, 0, 0, 1), fadeTime); + await ToSignal(tween, "finished"); + if (hide) colorRect.Hide(); + } + + public async Task FadeOutBlack(float fadeTime, bool hide = false) + { + // 淡出黑色遮罩 + ColorRect colorRect = GetNode("ColorRect"); + colorRect.SelfModulate = new Color(0, 0, 0, 1); + colorRect.Show(); + Tween tween = CreateTween(); + tween.TweenProperty(colorRect, "self_modulate", new Color(0, 0, 0, 0), fadeTime); + await ToSignal(tween, "finished"); + if (hide) colorRect.Hide(); + } + + public void ChangeState() + { + GD.Print("Change Menu State!"); + if (_menuCanvasLayer != null) + { + _menuCanvasLayer.Visible = !_menuCanvasLayer.Visible; + } + } +} diff --git a/scripts/Chapter/ChapterScene.cs.uid b/scripts/Chapter/ChapterScene.cs.uid new file mode 100644 index 0000000..21878e0 --- /dev/null +++ b/scripts/Chapter/ChapterScene.cs.uid @@ -0,0 +1 @@ +uid://q16vfxvc5i54 diff --git a/scripts/Chapter/GameConstant.cs b/scripts/Chapter/GameConstant.cs new file mode 100644 index 0000000..fe1542b --- /dev/null +++ b/scripts/Chapter/GameConstant.cs @@ -0,0 +1,166 @@ +using System; +using System.Collections.Generic; +using System.Xml.Linq; +using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; + +namespace Milimoe.GodotGame +{ + public class GameConstant + { + public static Dictionary Characters { get; set; } = []; + public static Dictionary CharacterInRegion { get; set; } = []; + public static Dictionary Regions { get; set; } = []; + public static string ChapterInGame { get; set; } = ""; + public static string AreaInGame { get; set; } = ""; + public static string NovelName { get; set; } = ""; + public static string SceneName { get; set; } = ""; + public static string NovelNodeKey { get; set; } = ""; + + public static void InitGame() + { + Character character = Factory.GetCharacter(); + character.Id = 1; + character.Name = "雷恩"; + character.FirstName = "Rayne"; + character.NickName = "雷恩"; + character.PrimaryAttribute = PrimaryAttribute.AGI; + character.InitialATK = 21; + character.InitialHP = 120; + character.InitialMP = 20; + character.InitialSTR = 7; + character.STRGrowth = 1; + character.InitialAGI = 21; + character.AGIGrowth = 1.8; + character.InitialINT = 2; + character.INTGrowth = 0.2; + character.InitialSPD = 300; + character.InitialHR = 4; + character.InitialMR = 2; + Characters.Add(character.Id, character); + character = Factory.GetCharacter(); + character.Id = 2; + character.Name = "艾琳"; + character.FirstName = "Irene"; + character.NickName = "艾琳"; + character.PrimaryAttribute = PrimaryAttribute.INT; + character.InitialATK = 17; + character.InitialHP = 110; + character.InitialMP = 80; + character.InitialSTR = 6; + character.STRGrowth = 0.5; + character.InitialAGI = 4; + character.AGIGrowth = 0.5; + character.InitialINT = 20; + character.INTGrowth = 2; + character.InitialSPD = 270; + character.InitialHR = 4; + character.InitialMR = 2; + Characters.Add(character.Id, character); + Region region = new() + { + Id = 1, + Guid = Guid.NewGuid(), + Name = "霜语城废墟", + Category = "主线地图", + Description = "第一章", + Difficulty = RarityType.OneStar, + Weathers = { ["晴"] = 15, ["阴"] = 10, ["雨"] = 5 } + }; + region.ChangeRandomWeather(); + Regions.Add(region.Id, region); + region = new() + { + Id = 2, + Guid = Guid.NewGuid(), + Name = "幽暗密林", + Category = "主线地图", + Description = "第一章", + Difficulty = RarityType.OneStar, + Weathers = { ["晴"] = 15, ["阴"] = 10, ["雨"] = 5 } + }; + region.ChangeRandomWeather(); + Regions.Add(region.Id, region); + region = new() + { + Id = 3, + Guid = Guid.NewGuid(), + Name = "翡翠回廊", + Category = "主线地图", + Description = "第二章", + Difficulty = RarityType.OneStar, + Weathers = { ["晴"] = 15, ["阴"] = 10, ["雨"] = 5 } + }; + region.ChangeRandomWeather(); + Regions.Add(region.Id, region); + region = new() + { + Id = 4, + Guid = Guid.NewGuid(), + Name = "炼狱裂谷", + Category = "主线地图", + Description = "第三章", + Difficulty = RarityType.OneStar, + Weathers = { ["晴"] = 15, ["阴"] = 10, ["雨"] = 5 } + }; + region.ChangeRandomWeather(); + Regions.Add(region.Id, region); + region = new() + { + Id = 5, + Guid = Guid.NewGuid(), + Name = "虚空回廊", + Category = "主线地图", + Description = "第四章", + Difficulty = RarityType.OneStar, + Weathers = { ["晴"] = 15, ["阴"] = 10, ["雨"] = 5 } + }; + region.ChangeRandomWeather(); + Regions.Add(region.Id, region); + region = new() + { + Id = 6, + Guid = Guid.NewGuid(), + Name = "地脉祭坛", + Category = "主线地图", + Description = "第五章", + Difficulty = RarityType.OneStar, + Weathers = { ["晴"] = 15, ["阴"] = 10, ["雨"] = 5 } + }; + region.ChangeRandomWeather(); + Regions.Add(region.Id, region); + region = new() + { + Id = 7, + Guid = Guid.NewGuid(), + Name = "天空圣殿", + Category = "主线地图", + Description = "终章", + Difficulty = RarityType.OneStar, + Weathers = { ["晴"] = 15, ["阴"] = 10, ["雨"] = 5 } + }; + region.ChangeRandomWeather(); + Regions.Add(region.Id, region); + foreach (Character c in Characters.Values) + { + CharacterInRegion[c] = Regions[1]; + } + } + + public static void AutoSave(int index) + { + PluginConfig config = new("Saved", $"auto{index}") + { + { "SavedTime", $"保存时间:{DateTime.Now.ToString(General.GeneralDateTimeFormatChinese)}" }, + { "ChapterInGame", ChapterInGame }, + { "AreaInGame", AreaInGame }, + { "NovelName", NovelName }, + { "SceneName", SceneName }, + { "NovelNodeKey", NovelNodeKey }, + { "Characters", new List(Characters.Values) } + }; + config.SaveConfig(); + } + } +} diff --git a/scripts/Chapter/GameConstant.cs.uid b/scripts/Chapter/GameConstant.cs.uid new file mode 100644 index 0000000..567bc8a --- /dev/null +++ b/scripts/Chapter/GameConstant.cs.uid @@ -0,0 +1 @@ +uid://2ji25axqwn1k diff --git a/scripts/Interface/IFadeInFadeOutBlack.cs b/scripts/Interface/IFadeInFadeOutBlack.cs new file mode 100644 index 0000000..cba0a7c --- /dev/null +++ b/scripts/Interface/IFadeInFadeOutBlack.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; + +namespace Milimoe.GodotGame +{ + public interface IFadeInFadeOutBlack + { + public Task FadeInBlack(float fadeTime, bool hide = false); + public Task FadeOutBlack(float fadeTime, bool hide = false); + } +} diff --git a/scripts/Interface/IFadeInFadeOutBlack.cs.uid b/scripts/Interface/IFadeInFadeOutBlack.cs.uid new file mode 100644 index 0000000..a39406b --- /dev/null +++ b/scripts/Interface/IFadeInFadeOutBlack.cs.uid @@ -0,0 +1 @@ +uid://cg0f0ruumecf8 diff --git a/scripts/Interface/IMenuObject.cs b/scripts/Interface/IMenuObject.cs new file mode 100644 index 0000000..65eb727 --- /dev/null +++ b/scripts/Interface/IMenuObject.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace Milimoe.GodotGame +{ + public interface IMenuObject + { + public void ChangeState(); + } +} diff --git a/scripts/Interface/IMenuObject.cs.uid b/scripts/Interface/IMenuObject.cs.uid new file mode 100644 index 0000000..d0d2346 --- /dev/null +++ b/scripts/Interface/IMenuObject.cs.uid @@ -0,0 +1 @@ +uid://b0cxf7ncshow5 diff --git a/scripts/Interface/INovelEndEvent.cs b/scripts/Interface/INovelEndEvent.cs new file mode 100644 index 0000000..8c4dfea --- /dev/null +++ b/scripts/Interface/INovelEndEvent.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace Milimoe.GodotGame +{ + public interface INovelEndEvent + { + public void OnNovelEnd(CanvasLayer node, string novel_name, string scene_name); + } +} diff --git a/scripts/Interface/INovelEndEvent.cs.uid b/scripts/Interface/INovelEndEvent.cs.uid new file mode 100644 index 0000000..7c31943 --- /dev/null +++ b/scripts/Interface/INovelEndEvent.cs.uid @@ -0,0 +1 @@ +uid://c321wc8h21hju diff --git a/scripts/Interface/ISavedSelectionEvent.cs b/scripts/Interface/ISavedSelectionEvent.cs new file mode 100644 index 0000000..37817c7 --- /dev/null +++ b/scripts/Interface/ISavedSelectionEvent.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace Milimoe.GodotGame +{ + public interface ISaveSelectionEvent + { + public void OnSaveSelectionClosed(bool selected, int index, bool isSave); + } +} diff --git a/scripts/Interface/ISavedSelectionEvent.cs.uid b/scripts/Interface/ISavedSelectionEvent.cs.uid new file mode 100644 index 0000000..092afcd --- /dev/null +++ b/scripts/Interface/ISavedSelectionEvent.cs.uid @@ -0,0 +1 @@ +uid://d0esjr7pxrxq4 diff --git a/scripts/MenuController.cs b/scripts/MenuController.cs new file mode 100644 index 0000000..ddf3951 --- /dev/null +++ b/scripts/MenuController.cs @@ -0,0 +1,91 @@ +using Godot; + +namespace Milimoe.GodotGame; + +public partial class MenuController : ColorRect +{ + [Export] + public Node Parent; + + [Export] + public Button ContinueGame; + + [Export] + public Button GameSettings; + + [Export] + public Button BackToTitle; + + [Export] + public Button ExitGame; + + [Export] + public ConfirmationDialog ExitConfirmationDialog; + + [Export] + public ConfirmationDialog BackToTitleConfirmationDialog; + + [Export] + public string TitleScenePath = "res://scenes/TitleScreen.tscn"; // 标题场景的路径 + + public override void _Ready() + { + if (ExitConfirmationDialog != null) + { + ExitConfirmationDialog.GetOkButton().Pressed += () => GetTree().Quit(); + } + if (BackToTitleConfirmationDialog != null) + { + BackToTitleConfirmationDialog.GetOkButton().Pressed += async () => + { + if (Parent is IFadeInFadeOutBlack fade) + { + await fade.FadeInBlack(1f); + // 加载标题场景 + GD.Print("LoadTitleScene!"); + GetTree().ChangeSceneToFile(TitleScenePath); + } + }; + } + if (ContinueGame != null) + { + ContinueGame.Pressed += ContinueGame_Pressed; + } + if (BackToTitle != null) + { + BackToTitle.Pressed += BackToTitle_Pressed; + } + if (ExitGame != null) + { + ExitGame.Pressed += ExitGame_Pressed; + } + } + + private void ContinueGame_Pressed() + { + if (Parent is IMenuObject obj) + { + obj.ChangeState(); + } + } + + private void BackToTitle_Pressed() + { + // 返回标题界面 + BackToTitleConfirmationDialog?.PopupCentered(); // 弹出对话框 + } + + private void ExitGame_Pressed() + { + // 退出游戏 + if (ExitConfirmationDialog != null) + { + ExitConfirmationDialog.PopupCentered(); // 弹出对话框 + } + else + { + GD.PrintErr("ExitConfirmationDialog is not connected!"); + GetTree().Quit(); // 如果对话框未连接,则直接退出 + } + } +} diff --git a/scripts/MenuController.cs.uid b/scripts/MenuController.cs.uid new file mode 100644 index 0000000..598ca04 --- /dev/null +++ b/scripts/MenuController.cs.uid @@ -0,0 +1 @@ +uid://c0hp2amidehe0 diff --git a/scripts/NovelController.cs b/scripts/NovelController.cs new file mode 100644 index 0000000..9be24ba --- /dev/null +++ b/scripts/NovelController.cs @@ -0,0 +1,291 @@ +using System.Linq; +using System.Threading.Tasks; +using Godot; +using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Model; + +namespace Milimoe.GodotGame; + +public partial class NovelController : CanvasLayer, ISaveSelectionEvent +{ + public string NovelName { get; set; } = ""; + public string SceneName { get; set; } = ""; + public NovelConfig NovelConfig { get; set; } = null; + public NovelNode Current { get; set; } = null; + public INovelEndEvent ChapterObject { get; set; } = null; + public IMenuObject MenuObject { get; set; } = null; + public IFadeInFadeOutBlack FadeObject { get; set; } = null; + public bool Automatic { get; set; } = false; + + [Export] + public SavedSelection SavedSelection; + + [Signal] + public delegate void CloseSavedSelectionEventHandler(bool selected, int index); + + private TextureRect _portrait1; + private TextureRect _portrait2left; + private TextureRect _portrait2right; + private TextureRect _image1; + private TextureRect _image2left; + private TextureRect _image2right; + private Panel _panel; + private Panel _namePanel; + private Label _name; + private RichTextLabel _content; + private AnimatedRichTextLabel _content_richLabel; + private VBoxContainer _vBoxContainer; + private ColorRect _colorRect; + private Button _autoPlay; + private Button _load; + private Button _save; + private Button _menu; + + public override void _Ready() + { + Visible = false; + _portrait1 = GetNode("立绘1"); + _portrait2left = GetNode("立绘2左"); + _portrait2right = GetNode("立绘2右"); + _image1 = _portrait1.GetNode("Image"); + _image2left = _portrait2left.GetNode("Image"); + _image2right = _portrait2right.GetNode("Image"); + _panel = GetNode("Panel"); + _namePanel = _panel.GetNode("NamePanel"); + _name = _namePanel.GetNode