diff --git "a/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" "b/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" index d9a634d..3153311 100644 --- "a/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" +++ "b/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" @@ -1,5 +1,19 @@ --- +### 2023-07-10 +本轮主要完成主动和被动道具框架, 并且优化游戏中的Ui, 主要工作内容如下: +* 完成主动道具和被动道具的基础框架, 它们共同的基类是`Prop`, 继承自`ActivityObject`, 主动道具基类`ActiveProp`, 被动道具基类`BuffProp`, 现已经完成移速,射速,伤害,散射值,血量上限,护盾等控制基础属性道具 +* 将`Holster`抽成通用背包`Package`, 并且删除`Holster`, 可放入`Package`的物体必须基础`ActivityObject`类和实现接口`IPackageItem` +* 添加拾起道具后的通用提示面板, 提示内容为道具名称 + 简短的描述 +* 可互动的武器和道具添加描边效果, 现在素材中不需要绘制物体描边, 由程序来控制描边颜色, 并且显示物体名称 +* 将玩家血条由条状血条改为红心, 每次受到伤害只扣除半颗红心, 并且受到伤害后获得短暂无敌时间, 目的为了防止玩家迅速暴毙 +* 添加武器自动上膛配置, 添加子弹伤害配置 +* 没有弹药的武器不再显示泛光效果 +* 修复霰弹枪换弹无法强制停止的bug, 修复武器抛弹壳存在的bug +* 修复`Shell`销毁后没有从`AffiliationArea`中移除的bug +* 修复导出项目编译错误的问题 + +--- ### 2023-06-21 本轮主要更改美术素材和添加音效, 并且使用excel作为项目配置表, 添加完整的游戏开始与结束流程 主要工作内容如下: diff --git "a/DungeonShooting_Document/\351\241\271\347\233\256\345\270\256\345\212\251\346\226\207\346\241\243.md" "b/DungeonShooting_Document/\351\241\271\347\233\256\345\270\256\345\212\251\346\226\207\346\241\243.md" index c360d84..3abd9ef 100644 --- "a/DungeonShooting_Document/\351\241\271\347\233\256\345\270\256\345\212\251\346\226\207\346\241\243.md" +++ "b/DungeonShooting_Document/\351\241\271\347\233\256\345\270\256\345\212\251\346\226\207\346\241\243.md" @@ -1,7 +1,8 @@ 前言: 该文档仅针对`DungeonShooting_Godot`目录下的Godot工程 -第一次编写日期: 2023-04-01 +第一次编写日期: 2023-04-01 +**注意:** 该文档版本比较老, 已经有很多接口和操作方式被更改但是为同步文档, 请谨慎阅读! 目录: diff --git a/DungeonShooting_Godot/DungeonShooting.csproj b/DungeonShooting_Godot/DungeonShooting.csproj index ef9302f..51b8a45 100644 --- a/DungeonShooting_Godot/DungeonShooting.csproj +++ b/DungeonShooting_Godot/DungeonShooting.csproj @@ -1,4 +1,4 @@ - + net6.0 true diff --git a/DungeonShooting_Godot/DungeonShooting.csproj.old.4 b/DungeonShooting_Godot/DungeonShooting.csproj.old.4 new file mode 100644 index 0000000..ef9302f --- /dev/null +++ b/DungeonShooting_Godot/DungeonShooting.csproj.old.4 @@ -0,0 +1,11 @@ + + + net6.0 + true + + + + + + + \ No newline at end of file diff --git a/DungeonShooting_Godot/DungeonShooting.csproj.old.5 b/DungeonShooting_Godot/DungeonShooting.csproj.old.5 new file mode 100644 index 0000000..4c62c1b --- /dev/null +++ b/DungeonShooting_Godot/DungeonShooting.csproj.old.5 @@ -0,0 +1,11 @@ + + + net6.0 + true + + + + + + + \ No newline at end of file diff --git a/DungeonShooting_Godot/default_env.tres b/DungeonShooting_Godot/default_env.tres index 1a5570b..00516ce 100644 --- a/DungeonShooting_Godot/default_env.tres +++ b/DungeonShooting_Godot/default_env.tres @@ -1,7 +1,4 @@ -[gd_resource type="Environment" load_steps=2 format=2] - -[sub_resource type="Sky" id=1] +[gd_resource type="Environment" format=3 uid="uid://bs704tbii18vn"] [resource] background_mode = 2 -background_sky = SubResource( 1 ) diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx index ac61ddd..c3267c9 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx index 0b704d3..c890281 100644 --- a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/Weapon.xlsx b/DungeonShooting_Godot/excel/excelFile/Weapon.xlsx index 1a85c8a..ed47d6d 100644 --- a/DungeonShooting_Godot/excel/excelFile/Weapon.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/Weapon.xlsx Binary files differ diff --git a/DungeonShooting_Godot/export_presets.cfg b/DungeonShooting_Godot/export_presets.cfg index e1fa53d..2c44c63 100644 --- a/DungeonShooting_Godot/export_presets.cfg +++ b/DungeonShooting_Godot/export_presets.cfg @@ -3,39 +3,35 @@ name="Android" platform="Android" runnable=true +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" export_path="../../export/DungeonShooting.apk" -script_export_mode=1 -script_encryption_key="" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false [preset.0.options] custom_template/debug="" custom_template/release="" -custom_build/use_custom_build=true -custom_build/export_format=0 -custom_build/min_sdk="" -custom_build/target_sdk="" +gradle_build/use_gradle_build=false +gradle_build/export_format=0 +gradle_build/min_sdk="" +gradle_build/target_sdk="" architectures/armeabi-v7a=true architectures/arm64-v8a=true architectures/x86=false architectures/x86_64=false -keystore/debug="" -keystore/debug_user="" -keystore/debug_password="" -keystore/release="" -keystore/release_user="" -keystore/release_password="" -one_click_deploy/clear_previous_install=false version/code=1 version/name="1.0" package/unique_name="org.godotengine.$genname" package/name="" package/signed=true -package/classify_as_game=true +package/app_category=2 package/retain_data_on_uninstall=false package/exclude_from_recents=false launcher_icons/main_192x192="" @@ -56,7 +52,7 @@ apk_expansion/enable=false apk_expansion/SALT="" apk_expansion/public_key="" -permissions/custom_permissions=PoolStringArray( ) +permissions/custom_permissions=PackedStringArray() permissions/access_checkin_properties=false permissions/access_coarse_location=false permissions/access_fine_location=false @@ -203,42 +199,46 @@ 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 [preset.1] name="Windows Desktop" platform="Windows Desktop" runnable=true +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../../export/test/test.exe" -script_export_mode=1 -script_encryption_key="" +export_path="../../DungeonShooting_Export/windows/build.exe" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false [preset.1.options] custom_template/debug="" custom_template/release="" -binary_format/64_bits=true -binary_format/embed_pck=false +debug/export_console_wrapper=1 +binary_format/embed_pck=true texture_format/bptc=false texture_format/s3tc=true texture_format/etc=false texture_format/etc2=false -texture_format/no_bptc_fallbacks=true +binary_format/architecture="x86_64" codesign/enable=false -codesign/identity_type=0 -codesign/identity="" -codesign/password="" codesign/timestamp=true codesign/timestamp_server_url="" codesign/digest_algorithm=1 codesign/description="" -codesign/custom_options=PoolStringArray( ) +codesign/custom_options=PackedStringArray() application/modify_resources=true application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 application/file_version="" application/product_version="" application/company_name="" @@ -246,48 +246,69 @@ application/file_description="" application/copyright="" application/trademarks="" +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=true +dotnet/include_debug_symbols=true [preset.2] name="iOS" platform="iOS" runnable=true +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" export_path="" -script_export_mode=1 -script_encryption_key="" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false [preset.2.options] custom_template/debug="" custom_template/release="" -architectures/armv7=false architectures/arm64=true application/app_store_team_id="" -application/provisioning_profile_uuid_debug="" application/code_sign_identity_debug="" application/export_method_debug=1 -application/provisioning_profile_uuid_release="" application/code_sign_identity_release="" application/export_method_release=0 application/targeted_device_family=2 -application/name="" -application/info="Made with Godot Engine" -application/identifier="" +application/bundle_identifier="" application/signature="" application/short_version="1.0" application/version="1.0" -application/copyright="" +application/icon_interpolation=4 +application/launch_screens_interpolation=4 capabilities/access_wifi=false capabilities/push_notifications=false user_data/accessible_from_files_app=false user_data/accessible_from_itunes_sharing=false privacy/camera_usage_description="" +privacy/camera_usage_description_localized={} privacy/microphone_usage_description="" +privacy/microphone_usage_description_localized={} privacy/photolibrary_usage_description="" +privacy/photolibrary_usage_description_localized={} icons/iphone_120x120="" icons/iphone_180x180="" icons/ipad_76x76="" @@ -296,12 +317,16 @@ icons/app_store_1024x1024="" icons/spotlight_40x40="" icons/spotlight_80x80="" +icons/settings_58x58="" +icons/settings_87x87="" +icons/notification_40x40="" +icons/notification_60x60="" storyboard/use_launch_screen_storyboard=false storyboard/image_scale_mode=0 storyboard/custom_image@2x="" storyboard/custom_image@3x="" storyboard/use_custom_bg_color=false -storyboard/custom_bg_color=Color( 0, 0, 0, 1 ) +storyboard/custom_bg_color=Color(0, 0, 0, 1) landscape_launch_screens/iphone_2436x1125="" landscape_launch_screens/iphone_2208x1242="" landscape_launch_screens/ipad_1024x768="" @@ -313,3 +338,5 @@ portrait_launch_screens/ipad_768x1024="" portrait_launch_screens/ipad_1536x2048="" portrait_launch_screens/iphone_1242x2208="" +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true diff --git a/DungeonShooting_Godot/prefab/bullet/Bullet0001.tscn b/DungeonShooting_Godot/prefab/bullet/Bullet0001.tscn index 040a995..3ee607f 100644 --- a/DungeonShooting_Godot/prefab/bullet/Bullet0001.tscn +++ b/DungeonShooting_Godot/prefab/bullet/Bullet0001.tscn @@ -1,20 +1,28 @@ -[gd_scene load_steps=9 format=3 uid="uid://bj4kmvt8jg1cf"] +[gd_scene load_steps=8 format=3 uid="uid://bj4kmvt8jg1cf"] [ext_resource type="Script" path="res://src/game/activity/bullet/Bullet.cs" id="1_82ma0"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_6wvtu"] -[ext_resource type="Texture2D" uid="uid://bu0b11hiuecxy" path="res://resource/sprite/bullet/bullet.png" id="3_hjgpe"] +[ext_resource type="Texture2D" uid="uid://bu0b11hiuecxy" path="res://resource/sprite/bullet/bullet0001.png" id="3_hjgpe"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_w5w0i"] resource_local_to_scene = true shader = ExtResource("2_6wvtu") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_qhkgc"] resource_local_to_scene = true shader = ExtResource("2_6wvtu") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="SpriteFrames" id="SpriteFrames_5wvmf"] animations = [{ @@ -27,9 +35,6 @@ "speed": 5.0 }] -[sub_resource type="RectangleShape2D" id="RectangleShape2D_c0onq"] -size = Vector2(44.72, 12) - [sub_resource type="RectangleShape2D" id="RectangleShape2D_lcqb8"] size = Vector2(11, 4) @@ -46,7 +51,6 @@ material = SubResource("ShaderMaterial_w5w0i") [node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -modulate = Color(1.8, 1.8, 1.8, 1) material = SubResource("ShaderMaterial_qhkgc") sprite_frames = SubResource("SpriteFrames_5wvmf") @@ -58,8 +62,7 @@ [node name="CollisionShape2D" type="CollisionShape2D" parent="CollisionArea"] position = Vector2(2.93353, 0) -scale = Vector2(0.226586, 0.333333) -shape = SubResource("RectangleShape2D_c0onq") +shape = SubResource("RectangleShape2D_lcqb8") [node name="Collision" type="CollisionShape2D" parent="."] position = Vector2(2.5, 0) diff --git a/DungeonShooting_Godot/prefab/bullet/Bullet0002.tscn b/DungeonShooting_Godot/prefab/bullet/Bullet0002.tscn index d2e2035..89c2130 100644 --- a/DungeonShooting_Godot/prefab/bullet/Bullet0002.tscn +++ b/DungeonShooting_Godot/prefab/bullet/Bullet0002.tscn @@ -4,21 +4,28 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_n44pd"] [ext_resource type="SpriteFrames" uid="uid://bpeodjqiy3mil" path="res://resource/spriteFrames/bullet/Bullet0002.tres" id="3_uvuj8"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_v77gw"] resource_local_to_scene = true shader = ExtResource("2_n44pd") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_p0wfd"] resource_local_to_scene = true shader = ExtResource("2_n44pd") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false -[sub_resource type="RectangleShape2D" id="RectangleShape2D_c0onq"] -size = Vector2(44.72, 12) +[sub_resource type="CircleShape2D" id="CircleShape2D_0vxfv"] +radius = 3.0 [sub_resource type="CircleShape2D" id="CircleShape2D_e2yn3"] radius = 3.0 @@ -36,7 +43,6 @@ material = SubResource("ShaderMaterial_v77gw") [node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -modulate = Color(1.8, 1.8, 1.8, 1) material = SubResource("ShaderMaterial_p0wfd") sprite_frames = ExtResource("3_uvuj8") @@ -47,9 +53,8 @@ monitorable = false [node name="CollisionShape2D" type="CollisionShape2D" parent="CollisionArea"] -position = Vector2(2.93353, 0) -scale = Vector2(0.226586, 0.333333) -shape = SubResource("RectangleShape2D_c0onq") +position = Vector2(-2.38419e-07, 0) +shape = SubResource("CircleShape2D_0vxfv") [node name="Collision" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_e2yn3") diff --git a/DungeonShooting_Godot/prefab/bullet/Bullet0003.tscn b/DungeonShooting_Godot/prefab/bullet/Bullet0003.tscn new file mode 100644 index 0000000..4890b1e --- /dev/null +++ b/DungeonShooting_Godot/prefab/bullet/Bullet0003.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=7 format=3 uid="uid://ee24ocwk8snj"] + +[ext_resource type="Script" path="res://src/game/activity/bullet/Bullet.cs" id="1_h6lfm"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_bteri"] +[ext_resource type="SpriteFrames" uid="uid://bcnhyin0aufl1" path="res://resource/spriteFrames/bullet/Bullet0003.tres" id="3_qvo0u"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_v77gw"] +resource_local_to_scene = true +shader = ExtResource("2_bteri") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_p0wfd"] +resource_local_to_scene = true +shader = ExtResource("2_bteri") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_c0onq"] +size = Vector2(6, 3.125) + +[node name="Bullet0003" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 2 +script = ExtResource("1_h6lfm") +CollisionArea = NodePath("CollisionArea") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_v77gw") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_p0wfd") +sprite_frames = ExtResource("3_qvo0u") + +[node name="CollisionArea" type="Area2D" parent="."] +visible = false +collision_layer = 0 +collision_mask = 0 +monitorable = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CollisionArea"] +position = Vector2(1, 0) +shape = SubResource("RectangleShape2D_c0onq") + +[node name="Collision" type="CollisionShape2D" parent="."] +position = Vector2(1, 0) +shape = SubResource("RectangleShape2D_c0onq") diff --git a/DungeonShooting_Godot/prefab/effect/activityObject/Effect0001.tscn b/DungeonShooting_Godot/prefab/effect/activityObject/Effect0001.tscn index 913f5af..3ba7ecc 100644 --- a/DungeonShooting_Godot/prefab/effect/activityObject/Effect0001.tscn +++ b/DungeonShooting_Godot/prefab/effect/activityObject/Effect0001.tscn @@ -11,13 +11,18 @@ shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_08fn3"] -resource_local_to_scene = true shader = ExtResource("2_b3d83") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="AtlasTexture" id="AtlasTexture_cldwb"] atlas = ExtResource("3_ntutm") diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_E.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_E.tscn index 70d7f16..2b54e02 100644 --- a/DungeonShooting_Godot/prefab/map/RoomDoor_E.tscn +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_E.tscn @@ -4,18 +4,25 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_lwx51"] [ext_resource type="SpriteFrames" uid="uid://3ps6h2f54qa5" path="res://resource/spriteFrames/other/RoomDoor_EW.tres" id="3_pjvd8"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] resource_local_to_scene = true shader = ExtResource("2_lwx51") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] resource_local_to_scene = true shader = ExtResource("2_lwx51") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="RectangleShape2D" id="RectangleShape2D_opsb6"] resource_local_to_scene = true diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_N.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_N.tscn index fe84b67..461cf04 100644 --- a/DungeonShooting_Godot/prefab/map/RoomDoor_N.tscn +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_N.tscn @@ -4,18 +4,25 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_h5ru6"] [ext_resource type="SpriteFrames" uid="uid://xs72aopsgpg6" path="res://resource/spriteFrames/other/RoomDoor_NS.tres" id="3_apluc"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] resource_local_to_scene = true shader = ExtResource("2_h5ru6") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] resource_local_to_scene = true shader = ExtResource("2_h5ru6") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="RectangleShape2D" id="RectangleShape2D_opsb6"] resource_local_to_scene = true diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_S.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_S.tscn index 5d3dc92..b8cd815 100644 --- a/DungeonShooting_Godot/prefab/map/RoomDoor_S.tscn +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_S.tscn @@ -4,18 +4,25 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_6vvcd"] [ext_resource type="SpriteFrames" uid="uid://xs72aopsgpg6" path="res://resource/spriteFrames/other/RoomDoor_NS.tres" id="3_at5v2"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] resource_local_to_scene = true shader = ExtResource("2_6vvcd") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] resource_local_to_scene = true shader = ExtResource("2_6vvcd") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="RectangleShape2D" id="RectangleShape2D_opsb6"] resource_local_to_scene = true diff --git a/DungeonShooting_Godot/prefab/map/RoomDoor_W.tscn b/DungeonShooting_Godot/prefab/map/RoomDoor_W.tscn index 0dbf427..855e540 100644 --- a/DungeonShooting_Godot/prefab/map/RoomDoor_W.tscn +++ b/DungeonShooting_Godot/prefab/map/RoomDoor_W.tscn @@ -4,18 +4,25 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_wx2w3"] [ext_resource type="SpriteFrames" uid="uid://3ps6h2f54qa5" path="res://resource/spriteFrames/other/RoomDoor_EW.tres" id="3_a2hvw"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_yvwpk"] resource_local_to_scene = true shader = ExtResource("2_wx2w3") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_t4ayq"] resource_local_to_scene = true shader = ExtResource("2_wx2w3") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="RectangleShape2D" id="RectangleShape2D_2ko2r"] resource_local_to_scene = true diff --git a/DungeonShooting_Godot/prefab/prop/PropTemplate.tscn b/DungeonShooting_Godot/prefab/prop/PropTemplate.tscn new file mode 100644 index 0000000..a0fecf6 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/PropTemplate.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=5 format=3 uid="uid://utgoqn1dt4c3"] + +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_77bh2"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("2_77bh2") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("2_77bh2") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="PropTemplate" type="CharacterBody2D"] +collision_layer = 4 + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/active/ActiveProp5000.tscn b/DungeonShooting_Godot/prefab/prop/active/ActiveProp5000.tscn new file mode 100644 index 0000000..d874d73 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/active/ActiveProp5000.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://crwflnrd6so2i"] + +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_f18nu"] +[ext_resource type="Script" path="res://src/game/activity/prop/active/ActiveProp5000.cs" id="1_nkhdg"] +[ext_resource type="SpriteFrames" uid="uid://cvosq47nbdnus" path="res://resource/spriteFrames/prop/active/ActiveProp5000.tres" id="3_4xrrj"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_f18nu") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_f18nu") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="ActiveProp5000" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_nkhdg") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_4xrrj") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/active/ActiveProp5001.tscn b/DungeonShooting_Godot/prefab/prop/active/ActiveProp5001.tscn new file mode 100644 index 0000000..3ae9891 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/active/ActiveProp5001.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://dlf83ph0msl2l"] + +[ext_resource type="Script" path="res://src/game/activity/prop/active/ActiveProp5001.cs" id="1_klvlf"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_2cgdl"] +[ext_resource type="SpriteFrames" uid="uid://bbjyakayescy5" path="res://resource/spriteFrames/prop/active/ActiveProp5001.tres" id="3_fagk1"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("2_2cgdl") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("2_2cgdl") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="ActiveProp5001" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_klvlf") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_fagk1") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0001.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0001.tscn deleted file mode 100644 index 6e3dfe5..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0001.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://cb4k0wmt3rhjc"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0001.cs" id="1_sfoyx"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_5y838"] -[ext_resource type="SpriteFrames" uid="uid://wtvfyprel72y" path="res://resource/spriteFrames/prop/buff/Buff0001.tres" id="3_ae54v"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_5y838") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_5y838") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0001" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_sfoyx") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_ae54v") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0002.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0002.tscn deleted file mode 100644 index a7e48c2..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0002.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://cnh7h0ti23dwm"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0002.cs" id="1_5m6aa"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_ca7fx"] -[ext_resource type="SpriteFrames" uid="uid://7t57gsyff470" path="res://resource/spriteFrames/prop/buff/Buff0002.tres" id="3_meeoj"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_ca7fx") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_ca7fx") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0002" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_5m6aa") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_meeoj") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0003.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0003.tscn deleted file mode 100644 index a1c30e6..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0003.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://im64ft74hmmg"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0003.cs" id="1_put1t"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_r3cwy"] -[ext_resource type="SpriteFrames" uid="uid://nqoieett75t3" path="res://resource/spriteFrames/prop/buff/Buff0003.tres" id="3_cdr8i"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_r3cwy") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_r3cwy") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0003" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_put1t") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_cdr8i") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0004.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0004.tscn deleted file mode 100644 index d9555fb..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0004.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://dw3fey3hybie4"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0004.cs" id="1_77wev"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_j5d6t"] -[ext_resource type="SpriteFrames" uid="uid://bj0k3pipwp46x" path="res://resource/spriteFrames/prop/buff/Buff0004.tres" id="3_amsdk"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_j5d6t") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_j5d6t") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0004" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_77wev") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_amsdk") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0005.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0005.tscn deleted file mode 100644 index 6d2f135..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0005.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://b4u8ichb44htn"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0005.cs" id="1_kxndg"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_85pkn"] -[ext_resource type="SpriteFrames" uid="uid://bvqp46degt1rg" path="res://resource/spriteFrames/prop/buff/Buff0005.tres" id="3_1p404"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_85pkn") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_85pkn") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0005" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_kxndg") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_1p404") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0006.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0006.tscn deleted file mode 100644 index 9f51b00..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0006.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://co5v2gncs0i6g"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0006.cs" id="1_lf3k7"] -[ext_resource type="SpriteFrames" uid="uid://bxn65oovekw6k" path="res://resource/spriteFrames/prop/buff/Buff0006.tres" id="2_clye6"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_pir38"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_pir38") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_pir38") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0006" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_lf3k7") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("2_clye6") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0007.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0007.tscn deleted file mode 100644 index 62a560a..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0007.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://bv85r8mqja8fy"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0007.cs" id="1_4ga2a"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_dfarf"] -[ext_resource type="SpriteFrames" uid="uid://et840sb4d1g3" path="res://resource/spriteFrames/prop/buff/Buff0007.tres" id="3_y3ako"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_dfarf") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_dfarf") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0007" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_4ga2a") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_y3ako") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0008.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0008.tscn deleted file mode 100644 index f27da49..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0008.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://3cwfaycb436j"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0008.cs" id="1_apsyo"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_g22ai"] -[ext_resource type="SpriteFrames" uid="uid://bs41p1hpkpucb" path="res://resource/spriteFrames/prop/buff/Buff0008.tres" id="3_bko6m"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_g22ai") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_g22ai") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0008" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_apsyo") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_bko6m") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0009.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0009.tscn deleted file mode 100644 index 1696e25..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0009.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://cuqwvioe545bl"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0009.cs" id="1_fu5ca"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_680mi"] -[ext_resource type="SpriteFrames" uid="uid://sqcibio78nwc" path="res://resource/spriteFrames/prop/buff/Buff0009.tres" id="3_mtbwe"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_680mi") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_680mi") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0009" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_fu5ca") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_mtbwe") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Buff0010.tscn b/DungeonShooting_Godot/prefab/prop/buff/Buff0010.tscn deleted file mode 100644 index d0f45d5..0000000 --- a/DungeonShooting_Godot/prefab/prop/buff/Buff0010.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://ddv5nfndgp2lr"] - -[ext_resource type="Script" path="res://src/game/activity/prop/buff/Buff0010.cs" id="1_fti4v"] -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_bmg36"] -[ext_resource type="SpriteFrames" uid="uid://dxqtm7xgn2wms" path="res://resource/spriteFrames/prop/buff/Buff0010.tres" id="3_oi74m"] - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] -resource_local_to_scene = true -shader = ExtResource("2_bmg36") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] -resource_local_to_scene = true -shader = ExtResource("2_bmg36") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] -size = Vector2(12, 10) - -[node name="Buff0010" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] -collision_layer = 4 -script = ExtResource("1_fti4v") -ShadowSprite = NodePath("ShadowSprite") -AnimatedSprite = NodePath("AnimatedSprite") -Collision = NodePath("Collision") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -1 -material = SubResource("ShaderMaterial_mrkt4") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_b6ii6") -sprite_frames = ExtResource("3_oi74m") - -[node name="Collision" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0001.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0001.tscn new file mode 100644 index 0000000..ebbb22c --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0001.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://tdc6flkvlfbd"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0001.cs" id="1_exxhd"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_x6ey2"] +[ext_resource type="SpriteFrames" uid="uid://wtvfyprel72y" path="res://resource/spriteFrames/prop/buff/BuffProp0001.tres" id="3_hfyao"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("2_x6ey2") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("2_x6ey2") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0001" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_exxhd") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_hfyao") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0002.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0002.tscn new file mode 100644 index 0000000..7ef2c07 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0002.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://da131v16ct8c4"] + +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_2qy1s"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0002.cs" id="1_5ouvd"] +[ext_resource type="SpriteFrames" uid="uid://7t57gsyff470" path="res://resource/spriteFrames/prop/buff/BuffProp0002.tres" id="3_v4alm"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_2qy1s") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_2qy1s") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0002" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_5ouvd") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_v4alm") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0003.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0003.tscn new file mode 100644 index 0000000..46f564b --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0003.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://ds21gbw4wyvn6"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0003.cs" id="1_h8d6p"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_udh4b"] +[ext_resource type="SpriteFrames" uid="uid://nqoieett75t3" path="res://resource/spriteFrames/prop/buff/BuffProp0003.tres" id="3_h72sh"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_udh4b") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_udh4b") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0003" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_h8d6p") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_h72sh") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0004.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0004.tscn new file mode 100644 index 0000000..58d9d29 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0004.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://cq8edil51uccc"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0004.cs" id="1_7bt71"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_j7hva"] +[ext_resource type="SpriteFrames" uid="uid://bj0k3pipwp46x" path="res://resource/spriteFrames/prop/buff/BuffProp0004.tres" id="3_pdaqp"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_j7hva") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_j7hva") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0004" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_7bt71") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_pdaqp") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0005.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0005.tscn new file mode 100644 index 0000000..741717b --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0005.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://3xtqrx17y14p"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0005.cs" id="1_6dlc2"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_qa4yg"] +[ext_resource type="SpriteFrames" uid="uid://bvqp46degt1rg" path="res://resource/spriteFrames/prop/buff/BuffProp0005.tres" id="3_1mcnn"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_qa4yg") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_qa4yg") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0005" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_6dlc2") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_1mcnn") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0006.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0006.tscn new file mode 100644 index 0000000..41ecf02 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0006.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://bfc03e4aftg21"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0006.cs" id="1_2cooj"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_c1mo1"] +[ext_resource type="SpriteFrames" uid="uid://bxn65oovekw6k" path="res://resource/spriteFrames/prop/buff/BuffProp0006.tres" id="3_nd6lq"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_c1mo1") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_c1mo1") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0006" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_2cooj") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_nd6lq") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0007.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0007.tscn new file mode 100644 index 0000000..6598520 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0007.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://cwfuv68ijkmfg"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0007.cs" id="1_71c3m"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_ofs5v"] +[ext_resource type="SpriteFrames" uid="uid://et840sb4d1g3" path="res://resource/spriteFrames/prop/buff/BuffProp0007.tres" id="3_xxla0"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_ofs5v") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_ofs5v") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0007" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_71c3m") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_xxla0") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0008.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0008.tscn new file mode 100644 index 0000000..a29d7cd --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0008.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://cn1tmegrfgr8h"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0008.cs" id="1_b5ys1"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_tdrqb"] +[ext_resource type="SpriteFrames" uid="uid://bs41p1hpkpucb" path="res://resource/spriteFrames/prop/buff/BuffProp0008.tres" id="3_5noil"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_tdrqb") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_tdrqb") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0008" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_b5ys1") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_5noil") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0009.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0009.tscn new file mode 100644 index 0000000..7955262 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0009.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://gh0dxgvshwpm"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0009.cs" id="1_e1yrg"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_eq0bc"] +[ext_resource type="SpriteFrames" uid="uid://sqcibio78nwc" path="res://resource/spriteFrames/prop/buff/BuffProp0009.tres" id="3_qrjbu"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_eq0bc") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_eq0bc") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0009" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_e1yrg") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_qrjbu") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0010.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0010.tscn new file mode 100644 index 0000000..49eb575 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0010.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://do5mmmapnyxg4"] + +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_5yy3i"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0010.cs" id="1_q6g7l"] +[ext_resource type="SpriteFrames" uid="uid://dxqtm7xgn2wms" path="res://resource/spriteFrames/prop/buff/BuffProp0010.tres" id="3_i5q7j"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("1_5yy3i") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("1_5yy3i") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0010" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_q6g7l") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_i5q7j") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png b/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png new file mode 100644 index 0000000..dd42c8a --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png Binary files differ diff --git a/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png.import b/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png.import new file mode 100644 index 0000000..3bc8abf --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dl5kik1ejdb61" +path="res://.godot/imported/Weapon0005.png-441b09525093d086af82f4b42835379e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://prefab/prop/buff/Weapon0005.png" +dest_files=["res://.godot/imported/Weapon0005.png-441b09525093d086af82f4b42835379e.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 diff --git a/DungeonShooting_Godot/prefab/role/Enemy0001.tscn b/DungeonShooting_Godot/prefab/role/Enemy0001.tscn index fabf09d..73b7350 100644 --- a/DungeonShooting_Godot/prefab/role/Enemy0001.tscn +++ b/DungeonShooting_Godot/prefab/role/Enemy0001.tscn @@ -10,12 +10,20 @@ shader = ExtResource("3_x8agd") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_k8mt5"] resource_local_to_scene = true shader = ExtResource("3_x8agd") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [node name="Enemy0001" node_paths=PackedStringArray("HurtArea", "MountPoint", "BackMountPoint", "InteractiveArea", "ShadowSprite", "AnimatedSprite", "Collision") instance=ExtResource("1_5po38")] collision_layer = 16 diff --git a/DungeonShooting_Godot/prefab/role/Role0001.tscn b/DungeonShooting_Godot/prefab/role/Role0001.tscn index e9539ad..8ab23d6 100644 --- a/DungeonShooting_Godot/prefab/role/Role0001.tscn +++ b/DungeonShooting_Godot/prefab/role/Role0001.tscn @@ -11,6 +11,9 @@ shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_8hgu2"] resource_local_to_scene = true @@ -18,6 +21,9 @@ shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [node name="Role0001" node_paths=PackedStringArray("HurtArea", "MountPoint", "BackMountPoint", "InteractiveArea", "ShadowSprite", "AnimatedSprite", "Collision") instance=ExtResource("1_10c2n")] collision_layer = 8 diff --git a/DungeonShooting_Godot/prefab/role/RoleTemplate.tscn b/DungeonShooting_Godot/prefab/role/RoleTemplate.tscn index e665ff2..fde7ce1 100644 --- a/DungeonShooting_Godot/prefab/role/RoleTemplate.tscn +++ b/DungeonShooting_Godot/prefab/role/RoleTemplate.tscn @@ -3,18 +3,25 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_xk5yk"] [ext_resource type="Script" path="res://src/game/activity/role/MountRotation.cs" id="2_5ddpw"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_v2kfw"] resource_local_to_scene = true shader = ExtResource("1_xk5yk") shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1 +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_yif6x"] resource_local_to_scene = true shader = ExtResource("1_xk5yk") shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0 +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="CircleShape2D" id="CircleShape2D_5pj80"] radius = 4.0 diff --git a/DungeonShooting_Godot/prefab/shell/Shell0001.tscn b/DungeonShooting_Godot/prefab/shell/Shell0001.tscn index b921399..b798a43 100644 --- a/DungeonShooting_Godot/prefab/shell/Shell0001.tscn +++ b/DungeonShooting_Godot/prefab/shell/Shell0001.tscn @@ -4,18 +4,25 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_tdny6"] [ext_resource type="SpriteFrames" uid="uid://b8gksxl7auquc" path="res://resource/spriteFrames/shell/Shell0001.tres" id="3_ujn5y"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_px12l"] resource_local_to_scene = true shader = ExtResource("2_tdny6") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_7e6fo"] resource_local_to_scene = true shader = ExtResource("2_tdny6") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [node name="Shell0001" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 128 diff --git a/DungeonShooting_Godot/prefab/shell/Shell0002.tscn b/DungeonShooting_Godot/prefab/shell/Shell0002.tscn index 8b9ce01..1f8893e 100644 --- a/DungeonShooting_Godot/prefab/shell/Shell0002.tscn +++ b/DungeonShooting_Godot/prefab/shell/Shell0002.tscn @@ -9,12 +9,20 @@ shader = ExtResource("2_s28nu") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_7e6fo"] resource_local_to_scene = true shader = ExtResource("2_s28nu") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [node name="Shell0002" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 128 diff --git a/DungeonShooting_Godot/prefab/shell/Shell0003.tscn b/DungeonShooting_Godot/prefab/shell/Shell0003.tscn index 3c884b1..4d85f05 100644 --- a/DungeonShooting_Godot/prefab/shell/Shell0003.tscn +++ b/DungeonShooting_Godot/prefab/shell/Shell0003.tscn @@ -9,12 +9,20 @@ shader = ExtResource("2_586dn") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_7e6fo"] resource_local_to_scene = true shader = ExtResource("2_586dn") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [node name="Shell0003" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 128 diff --git a/DungeonShooting_Godot/prefab/ui/BottomTips.tscn b/DungeonShooting_Godot/prefab/ui/BottomTips.tscn index e859f6a..ddd6d50 100644 --- a/DungeonShooting_Godot/prefab/ui/BottomTips.tscn +++ b/DungeonShooting_Godot/prefab/ui/BottomTips.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://dxmjm1pgctyid"] +[gd_scene load_steps=5 format=3 uid="uid://dxmjm1pgctyid"] [ext_resource type="Script" path="res://src/game/ui/bottomTips/BottomTipsPanel.cs" id="1_c63vs"] -[ext_resource type="Texture2D" uid="uid://bls55gj8h3mgv" path="res://resource/sprite/prop/buff/Buff0001.png" id="2_gaykt"] +[ext_resource type="Texture2D" uid="uid://bls55gj8h3mgv" path="res://resource/sprite/prop/buff/BuffProp0001.png" id="2_gaykt"] +[ext_resource type="Material" uid="uid://cces3bhds7jyi" path="res://resource/material/Blend.tres" id="2_syy07"] [sub_resource type="LabelSettings" id="LabelSettings_xtn1u"] line_spacing = 8.0 @@ -59,6 +60,7 @@ layout_mode = 2 [node name="TextureRect" type="TextureRect" parent="Panel/MarginContainer/CenterContainer/HBoxContainer/AspectRatioContainer"] +material = ExtResource("2_syy07") custom_minimum_size = Vector2(16, 16) layout_mode = 2 mouse_filter = 2 diff --git a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn index a2cfd75..c4fdc0a 100644 --- a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn +++ b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn @@ -1,13 +1,20 @@ -[gd_scene load_steps=11 format=3 uid="uid://bvpmtfupny8iu"] +[gd_scene load_steps=20 format=3 uid="uid://bvpmtfupny8iu"] [ext_resource type="Script" path="res://src/game/ui/roomUI/RoomUIPanel.cs" id="1_tfcrp"] -[ext_resource type="Texture2D" uid="uid://b67i86mtqrn32" path="res://resource/sprite/ui/icon/icon_bullet.png" id="2_a2ohq"] +[ext_resource type="Texture2D" uid="uid://b67i86mtqrn32" path="res://resource/sprite/ui/roomUI/icon_bullet.png" id="2_ruc0p"] [ext_resource type="Texture2D" uid="uid://dxstii6f4l8m0" path="res://resource/sprite/ui/keyboard/e.png" id="3_h7n2a"] -[ext_resource type="Texture2D" uid="uid://cukrx5yyqw86o" path="res://resource/sprite/ui/reloadBar.png" id="4_nt6mj"] -[ext_resource type="Texture2D" uid="uid://cx3i1nkcc4307" path="res://resource/sprite/ui/reloadBarBlock.png" id="5_wob8d"] -[ext_resource type="Texture2D" uid="uid://blywnftxn1cfd" path="res://resource/sprite/ui/Life_full.png" id="11_y2dqd"] -[ext_resource type="Texture2D" uid="uid://k621mhhkg65f" path="res://resource/sprite/ui/mapBar.png" id="11_yaqsk"] -[ext_resource type="Texture2D" uid="uid://xafbhgrxmosy" path="res://resource/sprite/weapon/gun4.png" id="12_o2big"] +[ext_resource type="Texture2D" uid="uid://cukrx5yyqw86o" path="res://resource/sprite/ui/roomUI/ReloadBar.png" id="4_hy44s"] +[ext_resource type="Texture2D" uid="uid://cx3i1nkcc4307" path="res://resource/sprite/ui/roomUI/ReloadBarBlock.png" id="5_w3lq2"] +[ext_resource type="Texture2D" uid="uid://blywnftxn1cfd" path="res://resource/sprite/ui/roomUI/Life_full.png" id="6_ggviq"] +[ext_resource type="Texture2D" uid="uid://k621mhhkg65f" path="res://resource/sprite/ui/roomUI/MapBar.png" id="7_p6pvs"] +[ext_resource type="Texture2D" uid="uid://cu0wlvrbntvyd" path="res://resource/sprite/prop/active/ActiveProp5000.png" id="10_5d4np"] +[ext_resource type="Texture2D" uid="uid://b8u6s5n37157" path="res://resource/sprite/ui/roomUI/Panel2.png" id="10_eokvx"] +[ext_resource type="Texture2D" uid="uid://0swkya4hn82c" path="res://resource/sprite/ui/roomUI/Panel.png" id="10_q3fs8"] +[ext_resource type="Texture2D" uid="uid://504f1r0mi33n" path="res://resource/sprite/weapon/weapon0005/Weapon0005.png" id="11_lsai4"] +[ext_resource type="Texture2D" uid="uid://bsu7re1lxnr72" path="res://resource/sprite/ui/roomUI/Cooldown.png" id="11_p0smc"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="12_fgyob"] +[ext_resource type="Texture2D" uid="uid://dwysndc5ffski" path="res://resource/sprite/ui/roomUI/ChargeProgressBar.png" id="13_6w7qi"] +[ext_resource type="Texture2D" uid="uid://ck0w7at3oat5" path="res://resource/sprite/ui/roomUI/ChargeProgress.png" id="13_vuglj"] [sub_resource type="Gradient" id="1"] colors = PackedColorArray(0.4, 0.498039, 1, 1, 0.4, 0.498039, 1, 0.313726) @@ -17,6 +24,26 @@ outline_size = 8 outline_color = Color(0, 0, 0, 1) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_msp2c"] +resource_local_to_scene = true +shader = ExtResource("12_fgyob") +shader_parameter/blend = Color(0, 0, 0, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0.941176, 0.941176, 0.941176, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_7pkeh"] +resource_local_to_scene = true +shader = ExtResource("12_fgyob") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0.941176, 0.941176, 0.941176, 1) +shader_parameter/outline_rainbow = false + [node name="RoomUI" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -26,6 +53,8 @@ grow_vertical = 2 mouse_filter = 2 script = ExtResource("1_tfcrp") +metadata/_edit_vertical_guides_ = [1901.0] +metadata/_edit_horizontal_guides_ = [954.0, 1062.0] [node name="InteractiveTipBar" type="Control" parent="."] anchors_preset = 0 @@ -48,7 +77,7 @@ offset_bottom = -18.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("2_a2ohq") +texture = ExtResource("2_ruc0p") [node name="InteractiveIcon" type="TextureRect" parent="InteractiveTipBar"] visible = false @@ -105,11 +134,11 @@ offset_bottom = -21.0 grow_horizontal = 2 grow_vertical = 0 -texture = ExtResource("4_nt6mj") +texture = ExtResource("4_hy44s") [node name="Block" type="Sprite2D" parent="ReloadBar/Slot"] position = Vector2(1, 0) -texture = ExtResource("5_wob8d") +texture = ExtResource("5_w3lq2") centered = false [node name="Control" type="Control" parent="."] @@ -136,7 +165,7 @@ layout_mode = 2 offset_right = 12.0 offset_bottom = 10.0 -texture = ExtResource("11_y2dqd") +texture = ExtResource("6_ggviq") [node name="MapBar" type="TextureRect" parent="Control"] layout_mode = 1 @@ -148,38 +177,158 @@ offset_bottom = 44.0 grow_horizontal = 0 scale = Vector2(4, 4) -texture = ExtResource("11_yaqsk") +texture = ExtResource("7_p6pvs") -[node name="GunBar" type="Control" parent="Control"] -anchors_preset = 0 +[node name="ActivePropBar" type="Control" parent="Control"] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 -offset_top = -264.0 -offset_right = 264.0 -offset_bottom = 0.00146484 - -[node name="GunSprite" type="TextureRect" parent="Control/GunBar"] -layout_mode = 0 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -132.0 -offset_top = -132.0 -offset_right = -66.0 -offset_bottom = -66.0 +offset_top = -106.0 +offset_right = 45.0 +offset_bottom = -79.0 +grow_vertical = 0 scale = Vector2(4, 4) -texture = ExtResource("12_o2big") + +[node name="ActivePropBg" type="NinePatchRect" parent="Control/ActivePropBar"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 1.0 +offset_top = 1.0 +offset_right = -1.0 +offset_bottom = -1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("10_q3fs8") +region_rect = Rect2(2, 2, 4, 4) +patch_margin_left = 3 +patch_margin_top = 3 +patch_margin_right = 3 +patch_margin_bottom = 3 + +[node name="ActivePropSprite" type="TextureRect" parent="Control/ActivePropBar"] +material = SubResource("ShaderMaterial_msp2c") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("10_5d4np") stretch_mode = 3 -[node name="BulletText" type="Label" parent="Control/GunBar"] -layout_mode = 0 -anchor_left = 0.5 -anchor_right = 0.5 -offset_left = -89.0 -offset_top = 39.0 -offset_right = 89.0 -offset_bottom = 74.0 +[node name="CooldownProgress" type="Sprite2D" parent="Control/ActivePropBar"] +position = Vector2(1, 0.99999) +scale = Vector2(43, 25) +texture = ExtResource("11_p0smc") +centered = false +region_enabled = true +region_rect = Rect2(0, 0, 1, 1) + +[node name="ActivePropCount" type="Label" parent="Control/ActivePropBar"] +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -43.0 +offset_top = -10.75 +offset_right = 121.0 +offset_bottom = 32.25 +grow_horizontal = 0 +grow_vertical = 0 +scale = Vector2(0.25, 0.25) +text = "10 +" +horizontal_alignment = 2 +vertical_alignment = 1 + +[node name="ActivePropPanel" type="NinePatchRect" parent="Control/ActivePropBar"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("10_eokvx") +region_rect = Rect2(0, 0, 8, 8) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="ChargeProgressBar" type="NinePatchRect" parent="Control/ActivePropBar"] +layout_mode = 1 +anchors_preset = 9 +anchor_bottom = 1.0 +offset_right = 5.0 +grow_vertical = 2 +texture = ExtResource("13_6w7qi") +patch_margin_left = 2 +patch_margin_top = 3 +patch_margin_right = 1 +patch_margin_bottom = 3 + +[node name="ChargeProgress" type="Sprite2D" parent="Control/ActivePropBar"] +position = Vector2(1, 1) +texture = ExtResource("13_vuglj") +centered = false +region_enabled = true +region_rect = Rect2(0, 0, 3, 25) + +[node name="WeaponBar" type="Control" parent="Control"] +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -261.0 +offset_top = -150.0 +offset_right = -196.0 +offset_bottom = -112.0 +grow_horizontal = 0 +grow_vertical = 0 +scale = Vector2(4, 4) + +[node name="WeaponPanel" type="NinePatchRect" parent="Control/WeaponBar"] +layout_mode = 1 +anchors_preset = 9 +anchor_bottom = 1.0 +offset_top = 11.0 +offset_right = 53.0 +grow_vertical = 2 +texture = ExtResource("10_q3fs8") +region_rect = Rect2(0, 0, 8, 8) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + +[node name="WeaponSprite" type="TextureRect" parent="Control/WeaponBar/WeaponPanel"] +material = SubResource("ShaderMaterial_7pkeh") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("11_lsai4") +stretch_mode = 3 + +[node name="AmmoCount" type="Label" parent="Control/WeaponBar"] +layout_mode = 1 +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -56.5 +offset_right = 121.5 +offset_bottom = 43.0 +grow_horizontal = 0 +scale = Vector2(0.25, 0.25) text = "30/90" -horizontal_alignment = 1 +horizontal_alignment = 2 vertical_alignment = 1 diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0006.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0006.tscn index 63caa2e..2a5a07b 100644 --- a/DungeonShooting_Godot/prefab/weapon/Weapon0006.tscn +++ b/DungeonShooting_Godot/prefab/weapon/Weapon0006.tscn @@ -4,18 +4,25 @@ [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_rp1bw"] [ext_resource type="SpriteFrames" uid="uid://dx1mjbx4acs3q" path="res://resource/spriteFrames/weapon/Weapon0006.tres" id="2_j3sji"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_cbiyh"] resource_local_to_scene = true shader = ExtResource("1_rp1bw") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="ShaderMaterial" id="ShaderMaterial_o36tv"] resource_local_to_scene = true shader = ExtResource("1_rp1bw") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false [sub_resource type="RectangleShape2D" id="RectangleShape2D_3p5jk"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0007.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0007.tscn new file mode 100644 index 0000000..4277b9a --- /dev/null +++ b/DungeonShooting_Godot/prefab/weapon/Weapon0007.tscn @@ -0,0 +1,102 @@ +[gd_scene load_steps=10 format=3 uid="uid://btd0wc11ajcuo"] + +[ext_resource type="Script" path="res://src/game/activity/weapon/gun/Gun.cs" id="1_exwbu"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_7rywx"] +[ext_resource type="SpriteFrames" uid="uid://xxyokrbt10xm" path="res://resource/spriteFrames/weapon/Weapon0007.tres" id="3_ms2gs"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_cbiyh"] +resource_local_to_scene = true +shader = ExtResource("2_7rywx") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_o36tv"] +resource_local_to_scene = true +shader = ExtResource("2_7rywx") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_3p5jk"] +size = Vector2(12, 10) + +[sub_resource type="Animation" id="Animation_x136i"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("AnimatedSprite:material:shader_parameter/schedule") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_3piau"] +resource_name = "floodlight" +length = 3.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("AnimatedSprite:material:shader_parameter/schedule") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 2.3, 2.6, 2.7, 3), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0, 0, 0.5, 0.5, 0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_trkjd"] +_data = { +"RESET": SubResource("Animation_x136i"), +"floodlight": SubResource("Animation_3piau") +} + +[node name="Weapon0007" type="CharacterBody2D" node_paths=PackedStringArray("FirePoint", "ShellPoint", "GripPoint", "AnimationPlayer", "ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_exwbu") +FirePoint = NodePath("AnimatedSprite/FirePoint") +ShellPoint = NodePath("AnimatedSprite/ShellPoint") +GripPoint = NodePath("GripPoint") +AnimationPlayer = NodePath("AnimationPlayer") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_cbiyh") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_o36tv") +sprite_frames = ExtResource("3_ms2gs") + +[node name="ShellPoint" type="Marker2D" parent="AnimatedSprite"] +position = Vector2(-1, -3) + +[node name="FirePoint" type="Marker2D" parent="AnimatedSprite"] +position = Vector2(13, -3) + +[node name="GripPoint" type="Marker2D" parent="."] +position = Vector2(-6, 0) + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_3p5jk") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_trkjd") +} diff --git a/DungeonShooting_Godot/project.godot b/DungeonShooting_Godot/project.godot index 20e8ef6..e7f84b4 100644 --- a/DungeonShooting_Godot/project.godot +++ b/DungeonShooting_Godot/project.godot @@ -132,12 +132,12 @@ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":115,"echo":false,"script":null) ] } -exchange={ +exchangeWeapon={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"key_label":0,"unicode":113,"echo":false,"script":null) ] } -throw={ +throwWeapon={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":71,"physical_keycode":0,"key_label":0,"unicode":103,"echo":false,"script":null) ] @@ -172,6 +172,16 @@ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } +useActiveProp={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"key_label":0,"unicode":102,"echo":false,"script":null) +] +} +removeProp={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"key_label":0,"unicode":120,"echo":false,"script":null) +] +} [layer_names] diff --git a/DungeonShooting_Godot/resource/Enviromenent.tres b/DungeonShooting_Godot/resource/Enviromenent.tres new file mode 100644 index 0000000..1210cfb --- /dev/null +++ b/DungeonShooting_Godot/resource/Enviromenent.tres @@ -0,0 +1,10 @@ +[gd_resource type="Environment" format=3 uid="uid://cu80ujuqcj7gx"] + +[resource] +background_mode = 3 +glow_enabled = true +glow_levels/3 = 2.0 +glow_normalized = true +glow_strength = 1.6 +glow_blend_mode = 1 +glow_hdr_threshold = 1.1 diff --git a/DungeonShooting_Godot/resource/config/ActivityObject.json b/DungeonShooting_Godot/resource/config/ActivityObject.json index a7587d5..0cd7611 100644 --- a/DungeonShooting_Godot/resource/config/ActivityObject.json +++ b/DungeonShooting_Godot/resource/config/ActivityObject.json @@ -56,6 +56,13 @@ "Prefab": "res://prefab/weapon/Weapon0006.tscn" }, { + "Id": "weapon0007", + "Type": 5, + "Name": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", + "Remark": "", + "Prefab": "res://prefab/weapon/Weapon0007.tscn" + }, + { "Id": "bullet0001", "Type": 6, "Name": "", @@ -70,6 +77,13 @@ "Prefab": "res://prefab/bullet/Bullet0002.tscn" }, { + "Id": "bullet0003", + "Type": 6, + "Name": "", + "Remark": "", + "Prefab": "res://prefab/bullet/Bullet0003.tscn" + }, + { "Id": "shell0001", "Type": 7, "Name": "", @@ -102,70 +116,84 @@ "Type": 9, "Name": "\u978B\u5B50", "Remark": "\u63D0\u9AD8\u79FB\u52A8\u901F\u5EA6", - "Prefab": "res://prefab/prop/buff/Buff0001.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0001.tscn" }, { "Id": "prop0002", "Type": 9, "Name": "\u5FC3\u4E4B\u5BB9\u5668", "Remark": "\u63D0\u9AD8\u8840\u91CF\u4E0A\u9650", - "Prefab": "res://prefab/prop/buff/Buff0002.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0002.tscn" }, { "Id": "prop0003", "Type": 9, "Name": "\u62A4\u76FE", "Remark": "\u53EF\u4EE5\u62B5\u6321\u5B50\u5F39\uFF0C\u968F\u65F6\u95F4\u63A8\u79FB\u81EA\u52A8\u6062\u590D", - "Prefab": "res://prefab/prop/buff/Buff0003.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0003.tscn" }, { "Id": "prop0004", "Type": 9, "Name": "\u62A4\u76FE\u8BA1\u65F6\u5668", "Remark": "\u63D0\u9AD8\u62A4\u76FE\u6062\u590D\u901F\u5EA6", - "Prefab": "res://prefab/prop/buff/Buff0004.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0004.tscn" }, { "Id": "prop0005", "Type": 9, "Name": "\u6740\u4F24\u5F39", "Remark": "\u63D0\u9AD8\u5B50\u5F39\u4F24\u5BB3", - "Prefab": "res://prefab/prop/buff/Buff0005.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0005.tscn" }, { "Id": "prop0006", "Type": 9, "Name": "\u7EA2\u5B9D\u77F3\u6212\u6307", "Remark": "\u53D7\u4F24\u540E\u5EF6\u957F\u65E0\u654C\u65F6\u95F4", - "Prefab": "res://prefab/prop/buff/Buff0006.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0006.tscn" }, { "Id": "prop0007", "Type": 9, "Name": "\u5907\u7528\u62A4\u76FE", "Remark": "\u53D7\u4F24\u65F6\u6709\u4E00\u5B9A\u6982\u7387\u62B5\u6D88\u4F24\u5BB3", - "Prefab": "res://prefab/prop/buff/Buff0007.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0007.tscn" }, { "Id": "prop0008", "Type": 9, "Name": "\u773C\u955C", "Remark": "\u63D0\u9AD8\u6B66\u5668\u7CBE\u51C6\u5EA6", - "Prefab": "res://prefab/prop/buff/Buff0008.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0008.tscn" }, { "Id": "prop0009", "Type": 9, "Name": "\u9AD8\u901F\u5B50\u5F39", "Remark": "\u63D0\u9AD8\u5B50\u5F39\u901F\u5EA6\u548C\u5C04\u7A0B", - "Prefab": "res://prefab/prop/buff/Buff0009.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0009.tscn" }, { "Id": "prop0010", "Type": 9, "Name": "\u5206\u88C2\u5B50\u5F39", "Remark": "\u5B50\u5F39\u6570\u91CF\u7FFB\u500D, \u4F46\u662F\u7CBE\u51C6\u5EA6\u548C\u4F24\u5BB3\u964D\u4F4E", - "Prefab": "res://prefab/prop/buff/Buff0010.tscn" + "Prefab": "res://prefab/prop/buff/BuffProp0010.tscn" + }, + { + "Id": "prop5000", + "Type": 9, + "Name": "\u533B\u836F\u7BB1", + "Remark": "\u4F7F\u7528\u540E\u56DE\u590D\u4E00\u9897\u7EA2\u5FC3", + "Prefab": "res://prefab/prop/active/ActiveProp5000.tscn" + }, + { + "Id": "prop5001", + "Type": 9, + "Name": "\u5F39\u836F\u7BB1", + "Remark": "\u4F7F\u7528\u540E\u8865\u5145\u5F53\u524D\u6B66\u5668\u5907\u7528\u5F39\u836F", + "Prefab": "res://prefab/prop/active/ActiveProp5001.tscn" }, { "Id": "other_door_e", diff --git a/DungeonShooting_Godot/resource/config/Sound.json b/DungeonShooting_Godot/resource/config/Sound.json index 43673b4..9d7050d 100644 --- a/DungeonShooting_Godot/resource/config/Sound.json +++ b/DungeonShooting_Godot/resource/config/Sound.json @@ -84,12 +84,24 @@ "Remark": "\u51B2\u950B\u67AA" }, { + "Id": "reloadBegin0006", + "Path": "res://resource/sound/sfx/reloading/Reloading_begin0006.ogg", + "Volume": 1, + "Remark": "" + }, + { "Id": "reloadBegin0009", "Path": "res://resource/sound/sfx/reloading/Reloading_begin0009.ogg", "Volume": 1, "Remark": "\u72D9\u51FB\u67AA" }, { + "Id": "reloadBegin0010", + "Path": "res://resource/sound/sfx/reloading/Reloading_begin0010.ogg", + "Volume": 1, + "Remark": "" + }, + { "Id": "reloadFinish0002", "Path": "res://resource/sound/sfx/reloading/Reloading_finish0002.ogg", "Volume": 1, @@ -190,5 +202,11 @@ "Path": "res://resource/sound/sfx/beLoaded/BeLoaded0016.ogg", "Volume": 1, "Remark": "\u51B2\u950B\u67AA" + }, + { + "Id": "beLoaded0017", + "Path": "res://resource/sound/sfx/beLoaded/BeLoaded0017.ogg", + "Volume": 1, + "Remark": "" } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/config/Weapon.json b/DungeonShooting_Godot/resource/config/Weapon.json index 6d690fc..5e197fd 100644 --- a/DungeonShooting_Godot/resource/config/Weapon.json +++ b/DungeonShooting_Godot/resource/config/Weapon.json @@ -8,8 +8,8 @@ "WeightType": 2, "ContinuousShoot": true, "AmmoCapacity": 30, - "MaxAmmoCapacity": 1800, - "StandbyAmmoCapacity": 1500, + "MaxAmmoCapacity": 420, + "StandbyAmmoCapacity": 390, "ReloadTime": 2.2, "AloneReload": false, "AloneReloadCount": 1, @@ -32,7 +32,7 @@ "MaxFireBulletCount": 1, "DelayedTime": 0, "StartScatteringRange": 5, - "FinalScatteringRange": 50, + "FinalScatteringRange": 45, "ScatteringRangeAddValue": 3, "ScatteringRangeBackSpeed": 40, "ScatteringRangeBackDelayTime": 0.5, @@ -47,7 +47,7 @@ "BulletMinHarm": 4, "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, - "BulletMaxSpeed": 350, + "BulletMaxSpeed": 320, "BulletMinSpeed": 350, "BulletMinDistance": 300, "BulletMaxDistance": 400, @@ -81,8 +81,8 @@ "WeightType": 2, "ContinuousShoot": false, "AmmoCapacity": 30, - "MaxAmmoCapacity": 1800, - "StandbyAmmoCapacity": 1500, + "MaxAmmoCapacity": 420, + "StandbyAmmoCapacity": 390, "ReloadTime": 2.2, "AloneReload": false, "AloneReloadCount": 1, @@ -105,7 +105,7 @@ "MaxFireBulletCount": 1, "DelayedTime": 0, "StartScatteringRange": 5, - "FinalScatteringRange": 50, + "FinalScatteringRange": 45, "ScatteringRangeAddValue": 3, "ScatteringRangeBackSpeed": 40, "ScatteringRangeBackDelayTime": 0.5, @@ -120,7 +120,7 @@ "BulletMinHarm": 4, "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, - "BulletMaxSpeed": 350, + "BulletMaxSpeed": 320, "BulletMinSpeed": 350, "BulletMinDistance": 300, "BulletMaxDistance": 400, @@ -154,8 +154,8 @@ "WeightType": 2, "ContinuousShoot": false, "AmmoCapacity": 7, - "MaxAmmoCapacity": 63, - "StandbyAmmoCapacity": 56, + "MaxAmmoCapacity": 140, + "StandbyAmmoCapacity": 133, "ReloadTime": 0.4, "AloneReload": true, "AloneReloadCount": 1, @@ -227,8 +227,8 @@ "WeightType": 2, "ContinuousShoot": false, "AmmoCapacity": 7, - "MaxAmmoCapacity": 63, - "StandbyAmmoCapacity": 56, + "MaxAmmoCapacity": 140, + "StandbyAmmoCapacity": 133, "ReloadTime": 0.4, "AloneReload": true, "AloneReloadCount": 1, @@ -300,8 +300,8 @@ "WeightType": 1, "ContinuousShoot": false, "AmmoCapacity": 12, - "MaxAmmoCapacity": 84, - "StandbyAmmoCapacity": 72, + "MaxAmmoCapacity": 180, + "StandbyAmmoCapacity": 168, "ReloadTime": 1.5, "AloneReload": false, "AloneReloadCount": 1, @@ -324,7 +324,7 @@ "MaxFireBulletCount": 1, "DelayedTime": 0, "StartScatteringRange": 5, - "FinalScatteringRange": 35, + "FinalScatteringRange": 25, "ScatteringRangeAddValue": 4, "ScatteringRangeBackSpeed": 40, "ScatteringRangeBackDelayTime": 0.5, @@ -339,7 +339,7 @@ "BulletMinHarm": 4, "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, - "BulletMaxSpeed": 350, + "BulletMaxSpeed": 320, "BulletMinSpeed": 350, "BulletMinDistance": 250, "BulletMaxDistance": 300, @@ -373,8 +373,8 @@ "WeightType": 1, "ContinuousShoot": false, "AmmoCapacity": 12, - "MaxAmmoCapacity": 84, - "StandbyAmmoCapacity": 72, + "MaxAmmoCapacity": 180, + "StandbyAmmoCapacity": 168, "ReloadTime": 1.5, "AloneReload": false, "AloneReloadCount": 1, @@ -397,7 +397,7 @@ "MaxFireBulletCount": 1, "DelayedTime": 0, "StartScatteringRange": 5, - "FinalScatteringRange": 35, + "FinalScatteringRange": 25, "ScatteringRangeAddValue": 4, "ScatteringRangeBackSpeed": 40, "ScatteringRangeBackDelayTime": 0.5, @@ -412,7 +412,7 @@ "BulletMinHarm": 4, "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, - "BulletMaxSpeed": 350, + "BulletMaxSpeed": 320, "BulletMinSpeed": 350, "BulletMinDistance": 250, "BulletMaxDistance": 300, @@ -592,8 +592,8 @@ "WeightType": 2, "ContinuousShoot": false, "AmmoCapacity": 10, - "MaxAmmoCapacity": 50, - "StandbyAmmoCapacity": 40, + "MaxAmmoCapacity": 80, + "StandbyAmmoCapacity": 70, "ReloadTime": 3, "AloneReload": false, "AloneReloadCount": 1, @@ -632,7 +632,7 @@ "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, "BulletMaxSpeed": 600, - "BulletMinSpeed": 600, + "BulletMinSpeed": 620, "BulletMinDistance": 700, "BulletMaxDistance": 900, "ShellId": "shell0003", @@ -665,8 +665,8 @@ "WeightType": 2, "ContinuousShoot": false, "AmmoCapacity": 10, - "MaxAmmoCapacity": 50, - "StandbyAmmoCapacity": 40, + "MaxAmmoCapacity": 80, + "StandbyAmmoCapacity": 70, "ReloadTime": 3, "AloneReload": false, "AloneReloadCount": 1, @@ -705,7 +705,7 @@ "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, "BulletMaxSpeed": 600, - "BulletMinSpeed": 600, + "BulletMinSpeed": 620, "BulletMinDistance": 700, "BulletMaxDistance": 900, "ShellId": "shell0003", @@ -738,8 +738,8 @@ "WeightType": 2, "ContinuousShoot": true, "AmmoCapacity": 20, - "MaxAmmoCapacity": 2600, - "StandbyAmmoCapacity": 2600, + "MaxAmmoCapacity": 600, + "StandbyAmmoCapacity": 580, "ReloadTime": 2.2, "AloneReload": false, "AloneReloadCount": 1, @@ -762,7 +762,7 @@ "MaxFireBulletCount": 1, "DelayedTime": 0, "StartScatteringRange": 3, - "FinalScatteringRange": 40, + "FinalScatteringRange": 30, "ScatteringRangeAddValue": 2, "ScatteringRangeBackSpeed": 40, "ScatteringRangeBackDelayTime": 0.3, @@ -778,7 +778,7 @@ "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, "BulletMaxSpeed": 320, - "BulletMinSpeed": 320, + "BulletMinSpeed": 340, "BulletMinDistance": 300, "BulletMaxDistance": 400, "ShellId": "shell0001", @@ -811,8 +811,8 @@ "WeightType": 2, "ContinuousShoot": false, "AmmoCapacity": 20, - "MaxAmmoCapacity": 2600, - "StandbyAmmoCapacity": 2600, + "MaxAmmoCapacity": 600, + "StandbyAmmoCapacity": 580, "ReloadTime": 2.2, "AloneReload": false, "AloneReloadCount": 1, @@ -835,9 +835,9 @@ "MaxFireBulletCount": 1, "DelayedTime": 0, "StartScatteringRange": 3, - "FinalScatteringRange": 40, + "FinalScatteringRange": 30, "ScatteringRangeAddValue": 2, - "ScatteringRangeBackSpeed": 40, + "ScatteringRangeBackSpeed": 30, "ScatteringRangeBackDelayTime": 0.3, "MinBacklash": 1, "MaxBacklash": 2, @@ -851,7 +851,7 @@ "BulletMinDeviationAngle": 0, "BulletMaxDeviationAngle": 0, "BulletMaxSpeed": 320, - "BulletMinSpeed": 320, + "BulletMinSpeed": 340, "BulletMinDistance": 300, "BulletMaxDistance": 400, "ShellId": "shell0001", @@ -874,5 +874,151 @@ "AiTargetLockingTime": 0.5, "AiBulletSpeedScale": 0.5, "AiAmmoConsumptionProbability": 0 + }, + { + "Id": "0013", + "WeaponId": "weapon0007", + "Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", + "Icon": "res://resource/sprite/gun/gun4.png", + "Weight": 40, + "WeightType": 2, + "ContinuousShoot": true, + "AmmoCapacity": 60, + "MaxAmmoCapacity": 600, + "StandbyAmmoCapacity": 540, + "ReloadTime": 2.2, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0, + "MinContinuousCount": 1, + "MaxContinuousCount": 1, + "TriggerInterval": 0, + "StartFiringSpeed": 700, + "FinalFiringSpeed": 700, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "MinFireBulletCount": 1, + "MaxFireBulletCount": 1, + "DelayedTime": 0, + "StartScatteringRange": 6, + "FinalScatteringRange": 60, + "ScatteringRangeAddValue": 3, + "ScatteringRangeBackSpeed": 50, + "ScatteringRangeBackDelayTime": 0.3, + "MinBacklash": 1, + "MaxBacklash": 2, + "BacklashRegressionSpeed": 35, + "UpliftAngle": 5, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "BulletId": "bullet0003", + "BulletMaxHarm": 3, + "BulletMinHarm": 3, + "BulletMinDeviationAngle": 0, + "BulletMaxDeviationAngle": 0, + "BulletMaxSpeed": 300, + "BulletMinSpeed": 330, + "BulletMinDistance": 270, + "BulletMaxDistance": 360, + "ShellId": "shell0001", + "ThrowShellDelayTime": 0, + "ThrowCollisionSize": { + "X": 20, + "Y": 15 + }, + "__ShootSound": "shooting0007", + "__BeginReloadSound": "reloadBegin0006", + "BeginReloadSoundDelayTime": 0.2, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0017", + "ReloadFinishSoundAdvanceTime": 0.65, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiUseAttribute": "0014", + "AiTargetLockingTime": 0, + "AiBulletSpeedScale": 0, + "AiAmmoConsumptionProbability": 0 + }, + { + "Id": "0014", + "WeaponId": "", + "Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", + "Icon": "res://resource/sprite/gun/gun4.png", + "Weight": 40, + "WeightType": 2, + "ContinuousShoot": false, + "AmmoCapacity": 60, + "MaxAmmoCapacity": 600, + "StandbyAmmoCapacity": 540, + "ReloadTime": 2.2, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0, + "MinContinuousCount": 10, + "MaxContinuousCount": 10, + "TriggerInterval": 5, + "StartFiringSpeed": 200, + "FinalFiringSpeed": 200, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "MinFireBulletCount": 1, + "MaxFireBulletCount": 1, + "DelayedTime": 0, + "StartScatteringRange": 10, + "FinalScatteringRange": 30, + "ScatteringRangeAddValue": 3, + "ScatteringRangeBackSpeed": 50, + "ScatteringRangeBackDelayTime": 0.3, + "MinBacklash": 1, + "MaxBacklash": 2, + "BacklashRegressionSpeed": 35, + "UpliftAngle": 5, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "BulletId": "bullet0003", + "BulletMaxHarm": 3, + "BulletMinHarm": 3, + "BulletMinDeviationAngle": 0, + "BulletMaxDeviationAngle": 0, + "BulletMaxSpeed": 300, + "BulletMinSpeed": 330, + "BulletMinDistance": 270, + "BulletMaxDistance": 360, + "ShellId": "shell0001", + "ThrowShellDelayTime": 0, + "ThrowCollisionSize": { + "X": 20, + "Y": 15 + }, + "__ShootSound": "shooting0007", + "__BeginReloadSound": "reloadBegin0006", + "BeginReloadSoundDelayTime": 0.2, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0017", + "ReloadFinishSoundAdvanceTime": 0.65, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiUseAttribute": "", + "AiTargetLockingTime": 0.5, + "AiBulletSpeedScale": 0.5, + "AiAmmoConsumptionProbability": 0 } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/RoomConfig.json b/DungeonShooting_Godot/resource/map/RoomConfig.json index 785217d..c718336 100644 --- a/DungeonShooting_Godot/resource/map/RoomConfig.json +++ b/DungeonShooting_Godot/resource/map/RoomConfig.json @@ -19,6 +19,14 @@ "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room4.json" }, { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room5.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room5.json" + }, + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room6.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room6.json" + }, + { "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room8.tscn", "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room8.json" } diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn index 875a067..aa32fb9 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn @@ -10,49 +10,6 @@ layer_0/tile_data = PackedInt32Array(1179669, 0, 8, 1114133, 0, 8, 1048597, 0, 8, 983061, 0, 8, 917525, 0, 8, 851989, 0, 8, 786453, 0, 8, 720917, 0, 8, 655381, 0, 8, 589845, 0, 8, 524309, 0, 8, 458773, 0, 8, 393237, 0, 8, 327701, 0, 8, 262165, 0, 8, 196629, 0, 8, 131093, 0, 8, 65557, 0, 8, 21, 0, 8, 1179668, 0, 8, 1114132, 0, 8, 1048596, 0, 8, 983060, 0, 8, 917524, 0, 8, 851988, 0, 8, 786452, 0, 8, 720916, 0, 8, 655380, 0, 8, 589844, 0, 8, 524308, 0, 8, 458772, 0, 8, 393236, 0, 8, 327700, 0, 8, 262164, 0, 8, 196628, 0, 8, 131092, 0, 8, 65556, 0, 8, 20, 0, 8, 1179667, 0, 8, 1114131, 0, 8, 65555, 0, 8, 19, 0, 8, 1179666, 0, 8, 1114130, 0, 8, 65554, 0, 8, 18, 0, 8, 1179665, 0, 8, 1114129, 0, 8, 65553, 0, 8, 17, 0, 8, 1179664, 0, 8, 1114128, 0, 8, 65552, 0, 8, 16, 0, 8, 1179663, 0, 8, 1114127, 0, 8, 65551, 0, 8, 15, 0, 8, 1179662, 0, 8, 1114126, 0, 8, 65550, 0, 8, 14, 0, 8, 1179661, 0, 8, 1114125, 0, 8, 65549, 0, 8, 13, 0, 8, 1179660, 0, 8, 1114124, 0, 8, 65548, 0, 8, 12, 0, 8, 1179659, 0, 8, 1114123, 0, 8, 65547, 0, 8, 11, 0, 8, 1179658, 0, 8, 1114122, 0, 8, 65546, 0, 8, 10, 0, 8, 1179657, 0, 8, 1114121, 0, 8, 65545, 0, 8, 9, 0, 8, 1179656, 0, 8, 1114120, 0, 8, 65544, 0, 8, 8, 0, 8, 1179655, 0, 8, 1114119, 0, 8, 65543, 0, 8, 7, 0, 8, 1179654, 0, 8, 1114118, 0, 8, 65542, 0, 8, 6, 0, 8, 1179653, 0, 8, 1114117, 0, 8, 65541, 0, 8, 5, 0, 8, 1179652, 0, 8, 1114116, 0, 8, 65540, 0, 8, 4, 0, 8, 1179651, 0, 8, 1114115, 0, 8, 65539, 0, 8, 3, 0, 8, 1179650, 0, 8, 1114114, 0, 8, 65538, 0, 8, 2, 0, 8, 1179649, 0, 8, 1114113, 0, 8, 1048577, 0, 8, 983041, 0, 8, 917505, 0, 8, 851969, 0, 8, 786433, 0, 8, 720897, 0, 8, 655361, 0, 8, 589825, 0, 8, 524289, 0, 8, 458753, 0, 8, 393217, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, 1179648, 0, 8, 1114112, 0, 8, 1048576, 0, 8, 983040, 0, 8, 917504, 0, 8, 851968, 0, 8, 786432, 0, 8, 720896, 0, 8, 655360, 0, 8, 589824, 0, 8, 524288, 0, 8, 458752, 0, 8, 393216, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65536, 0, 8, -65535, 0, 8, 196607, 0, 8, 262143, 0, 8, 327679, 0, 8, 393215, 0, 8, 458751, 196608, 2, 524287, 196608, 3, 589823, 196608, 3, 655359, 196608, 3, 720895, 196608, 3, 786431, 196608, 3, 851967, 196608, 3, 917503, 196608, 7, 983039, 0, 8, 1048575, 0, 8, 1114111, 0, 8, 1179647, 0, 8, 1245183, 0, 8, 1245185, 0, 8, 1245184, 0, 8, 1310719, 0, 8, -65534, 0, 8, 1245186, 0, 8, -65533, 0, 8, 1245187, 0, 8, -65532, 0, 8, 1245188, 0, 8, -65531, 0, 8, 1245189, 0, 8, -65530, 65536, 7, 1245190, 65536, 2, -65529, 131072, 7, 1245191, 131072, 2, -65528, 131072, 7, 1245192, 131072, 2, -65527, 131072, 7, 1245193, 131072, 2, -65526, 131072, 7, 1245194, 131072, 2, -65525, 131072, 7, 1245195, 131072, 2, -65524, 131072, 7, 1245196, 131072, 2, -65523, 131072, 7, 1245197, 131072, 2, -65522, 131072, 7, 1245198, 131072, 2, -65521, 196608, 7, 1245199, 196608, 2, -65520, 0, 8, 1245200, 0, 8, -65519, 0, 8, 1245201, 0, 8, -65518, 0, 8, 1245202, 0, 8, -65517, 0, 8, 1245203, 0, 8, -65516, 0, 8, 1245204, 0, 8, -65515, 0, 8, 1245205, 0, 8, 22, 0, 8, 65558, 0, 8, -65514, 0, 8, 131094, 0, 8, 196630, 0, 8, 262166, 0, 8, 327702, 0, 8, 393238, 65536, 2, 458774, 65536, 3, 524310, 65536, 3, 589846, 65536, 3, 655382, 65536, 3, 720918, 65536, 3, 786454, 65536, 3, 851990, 65536, 7, 917526, 0, 8, 983062, 0, 8, 1048598, 0, 8, 1114134, 0, 8, 1179670, 0, 8, 1245206, 0, 8, -131067, 0, 8, -196603, 0, 8, -262139, 0, 8, -131068, 0, 8, -196604, 0, 8, -262140, 0, 8, -131069, 0, 8, -196605, 0, 8, -262141, 0, 8, -131070, 0, 8, -196606, 0, 8, -262142, 0, 8, -131071, 0, 8, -196607, 0, 8, -262143, 0, 8, -131072, 0, 8, -196608, 0, 8, -262144, 0, 8, -65537, 0, 8, -131073, 0, 8, -196609, 0, 8, 393214, 0, 8, 327678, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -131074, 0, 8, -196610, 0, 8, 393213, 0, 8, 327677, 0, 8, 262141, 0, 8, 196605, 0, 8, 131069, 0, 8, 65533, 0, 8, -3, 0, 8, -65539, 0, 8, -131075, 0, 8, -196611, 0, 8, 393212, 0, 8, 327676, 0, 8, 262140, 0, 8, 196604, 0, 8, 131068, 0, 8, 65532, 0, 8, -4, 0, 8, -65540, 0, 8, -131076, 0, 8, -196612, 0, 8, -131077, 196608, 3, -196613, 196608, 3, -262149, 196608, 4, -262148, 131072, 7, -262147, 131072, 7, -65541, 196608, 3, -5, 196608, 3, 65531, 196608, 3, 131067, 196608, 3, 196603, 196608, 3, 262139, 196608, 3, 327675, 196608, 3, 393211, 196608, 3, 458749, 131072, 2, 458748, 131072, 2, 458747, 720896, 2, -262146, 131072, 7, 458750, 131072, 2, -262145, 131072, 7, -327680, 131072, 7, -327679, 131072, 7, -327678, 131072, 7, -327677, 131072, 7, -327676, 131072, 7, -327675, 131072, 7, -262138, 65536, 3, -196602, 65536, 3, -327674, 65536, 4, -131066, 65536, 3, 262169, 0, 8, 196633, 0, 8, 131097, 0, 8, 65561, 0, 8, 25, 0, 8, -65511, 0, 8, -131047, 0, 8, -196583, 0, 8, -262119, 0, 8, 262168, 0, 8, 196632, 0, 8, 131096, 0, 8, 65560, 0, 8, 24, 0, 8, -65512, 0, 8, -131048, 0, 8, -196584, 0, 8, -262120, 0, 8, 262167, 0, 8, 196631, 0, 8, 131095, 0, 8, 65559, 0, 8, 23, 0, 8, -65513, 0, 8, -131049, 0, 8, -196585, 0, 8, -262121, 0, 8, -131050, 0, 8, -196586, 0, 8, -262122, 0, 8, -131051, 0, 8, -196587, 0, 8, -262123, 0, 8, -131052, 0, 8, -196588, 0, 8, -262124, 0, 8, -131053, 0, 8, -196589, 0, 8, -262125, 0, 8, -131054, 0, 8, -196590, 0, 8, -262126, 0, 8, -131055, 0, 8, -196591, 0, 8, -262127, 0, 8, -196592, 0, 8, -262128, 0, 8, -327664, 131072, 7, -327663, 131072, 7, -327662, 131072, 7, -131056, 0, 8, -327661, 131072, 7, -327660, 131072, 7, -327659, 131072, 7, -327658, 131072, 7, -327657, 131072, 7, 327703, 0, 8, -327656, 131072, 7, 327704, 0, 8, -327655, 131072, 7, 327705, 0, 8, -262118, 65536, 3, -196582, 65536, 3, -327654, 65536, 4, -131046, 65536, 3, -65510, 65536, 3, 26, 65536, 3, 65562, 65536, 3, 131098, 65536, 3, 196634, 65536, 3, 262170, 65536, 3, 327706, 65536, 3, 393239, 131072, 2, 393240, 131072, 2, 393241, 131072, 2, 393242, 851968, 2, -196593, 196608, 3, -262129, 196608, 3, -327665, 196608, 4, -131057, 196608, 3, 1441796, 0, 8, 1376260, 0, 8, 1310724, 0, 8, 1441795, 0, 8, 1376259, 0, 8, 1310723, 0, 8, 1441794, 0, 8, 1376258, 0, 8, 1310722, 0, 8, 1441793, 0, 8, 1376257, 0, 8, 1310721, 0, 8, 1441792, 0, 8, 1376256, 0, 8, 1310720, 0, 8, 1507327, 0, 8, 1441791, 0, 8, 1376255, 0, 8, 1507326, 0, 8, 1441790, 0, 8, 1376254, 0, 8, 1310718, 0, 8, 1245182, 0, 8, 1179646, 0, 8, 1114110, 0, 8, 1048574, 0, 8, 983038, 0, 8, 1507325, 0, 8, 1441789, 0, 8, 1376253, 0, 8, 1310717, 0, 8, 1245181, 0, 8, 1179645, 0, 8, 1114109, 0, 8, 1048573, 0, 8, 983037, 0, 8, 1507324, 0, 8, 1441788, 0, 8, 1376252, 0, 8, 1310716, 0, 8, 1245180, 0, 8, 1179644, 0, 8, 1114108, 0, 8, 1048572, 0, 8, 983036, 0, 8, 1048571, 196608, 3, 983035, 196608, 3, 917499, 196608, 4, 917500, 131072, 7, 917501, 131072, 7, 1114107, 196608, 3, 1179643, 196608, 3, 1245179, 196608, 3, 1310715, 196608, 3, 1376251, 196608, 3, 1441787, 196608, 3, 1507323, 196608, 3, 1572861, 131072, 2, 1572860, 131072, 2, 1572859, 720896, 2, 917502, 131072, 7, 1572862, 131072, 2, 1572863, 131072, 2, 1507328, 131072, 2, 1507329, 131072, 2, 1507330, 131072, 2, 1507331, 131072, 2, 1507332, 131072, 2, 1310725, 0, 8, 1376261, 0, 8, 1441797, 0, 8, 1507333, 131072, 2, 1441817, 0, 8, 1376281, 0, 8, 1310745, 0, 8, 1245209, 0, 8, 1179673, 0, 8, 1114137, 0, 8, 1048601, 0, 8, 983065, 0, 8, 917529, 0, 8, 1441816, 0, 8, 1376280, 0, 8, 1310744, 0, 8, 1245208, 0, 8, 1179672, 0, 8, 1114136, 0, 8, 1048600, 0, 8, 983064, 0, 8, 917528, 0, 8, 1441815, 0, 8, 1376279, 0, 8, 1310743, 0, 8, 1245207, 0, 8, 1179671, 0, 8, 1114135, 0, 8, 1048599, 0, 8, 983063, 0, 8, 917527, 0, 8, 1441814, 0, 8, 1376278, 0, 8, 1310742, 0, 8, 1441813, 0, 8, 1376277, 0, 8, 1310741, 0, 8, 1441812, 0, 8, 1376276, 0, 8, 1310740, 0, 8, 1441811, 0, 8, 1376275, 0, 8, 1310739, 0, 8, 1441810, 0, 8, 1376274, 0, 8, 1310738, 0, 8, 1441809, 0, 8, 1376273, 0, 8, 1310737, 0, 8, 1310736, 0, 8, 1376272, 0, 8, 1441808, 0, 8, 1507346, 131072, 2, 1507345, 131072, 2, 1507344, 131072, 2, 1507347, 131072, 2, 1507348, 131072, 2, 1507349, 131072, 2, 1507350, 131072, 2, 851991, 131072, 7, 1507351, 131072, 2, 851992, 131072, 7, 1507352, 131072, 2, 851993, 131072, 7, 1507353, 131072, 2, 917530, 65536, 3, 983066, 65536, 3, 851994, 65536, 4, 1048602, 65536, 3, 1114138, 65536, 3, 1179674, 65536, 3, 1245210, 65536, 3, 1310746, 65536, 3, 1376282, 65536, 3, 1441818, 65536, 3, 1507354, 851968, 2, 458754, 65536, 7, 131088, 0, 8, 851970, 65536, 7, 131075, 0, 8, 131074, 0, 8, 131076, 0, 8, 131077, 0, 8, 131078, 65536, 2, 131079, 196608, 2, 131080, 0, 8, 131081, 0, 8, 131082, 0, 8, 131083, 0, 8, 131084, 0, 8, 131085, 0, 8, 131086, 65536, 2, 131087, 196608, 2, 131089, 0, 8, 131090, 0, 8, 131091, 0, 8, 196627, 0, 8, 262163, 0, 8, 327699, 0, 8, 393235, 196608, 2, 458771, 196608, 7, 524307, 0, 8, 589843, 0, 8, 655379, 0, 8, 720915, 0, 8, 786451, 196608, 2, 851987, 196608, 7, 917523, 0, 8, 983059, 0, 8, 1048595, 0, 8, 1048578, 0, 8, 1048579, 0, 8, 1048580, 0, 8, 1048581, 0, 8, 1048582, 65536, 7, 1048583, 196608, 7, 1048584, 0, 8, 1048585, 0, 8, 1048586, 0, 8, 1048587, 0, 8, 1048588, 0, 8, 1048589, 0, 8, 1048590, 65536, 7, 1048591, 196608, 7, 1048592, 0, 8, 1048593, 0, 8, 1048594, 0, 8, 196610, 0, 8, 262146, 0, 8, 327682, 0, 8, 393218, 65536, 2, 524290, 0, 8, 589826, 0, 8, 655362, 0, 8, 720898, 0, 8, 786434, 65536, 2, 917506, 0, 8, 983042, 0, 8, 983045, 0, 8, 917509, 0, 8, 983044, 0, 8, 917508, 0, 8, 983043, 0, 8, 917507, 0, 8, 851971, 131072, 7, 851972, 131072, 7, 851973, 131072, 7, 917510, 65536, 3, 983046, 65536, 3, 851974, 65536, 4, 1310726, 65536, 3, 1376262, 65536, 3, 1441798, 65536, 3, 1507334, 851968, 2, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 327683, 0, 8, 262147, 0, 8, 196611, 0, 8, 393219, 131072, 2, 393220, 131072, 2, 393221, 131072, 2, 196614, 65536, 3, 262150, 65536, 3, 327686, 65536, 3, 393222, 851968, 2, 327698, 0, 8, 262162, 0, 8, 196626, 0, 8, 327697, 0, 8, 262161, 0, 8, 196625, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 196623, 196608, 3, 262159, 196608, 3, 327695, 196608, 3, 393233, 131072, 2, 393232, 131072, 2, 393231, 720896, 2, 393234, 131072, 2, 983058, 0, 8, 917522, 0, 8, 983057, 0, 8, 917521, 0, 8, 983056, 0, 8, 917520, 0, 8, 983055, 196608, 3, 917519, 196608, 3, 851983, 196608, 4, 851984, 131072, 7, 851985, 131072, 7, 1310735, 196608, 3, 851986, 131072, 7, 1376271, 196608, 3, 1441807, 196608, 3, 1507343, 720896, 2, 983053, 0, 8, 917517, 0, 8, 851981, 0, 8, 786445, 0, 8, 720909, 0, 8, 655373, 0, 8, 589837, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 983052, 0, 8, 917516, 0, 8, 851980, 0, 8, 786444, 0, 8, 720908, 0, 8, 655372, 0, 8, 589836, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 327692, 0, 8, 262156, 0, 8, 196620, 0, 8, 983051, 0, 8, 917515, 0, 8, 851979, 0, 8, 786443, 0, 8, 720907, 0, 8, 655371, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 327691, 0, 8, 262155, 0, 8, 196619, 0, 8, 983050, 0, 8, 917514, 0, 8, 851978, 0, 8, 786442, 0, 8, 720906, 0, 8, 655370, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 327690, 0, 8, 262154, 0, 8, 196618, 0, 8, 983049, 0, 8, 917513, 0, 8, 851977, 0, 8, 786441, 0, 8, 720905, 0, 8, 655369, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 983048, 0, 8, 917512, 0, 8, 851976, 0, 8, 786440, 0, 8, 720904, 0, 8, 655368, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 196615, 196608, 3, 262151, 196608, 3, 327687, 196608, 3, 393223, 196608, 3, 458759, 196608, 7, 524295, 0, 8, 589831, 0, 8, 655367, 0, 8, 720903, 0, 8, 786439, 196608, 2, 851975, 196608, 3, 917511, 196608, 3, 983047, 196608, 3, 196622, 65536, 3, 262158, 65536, 3, 327694, 65536, 3, 393230, 65536, 3, 458766, 65536, 7, 524302, 0, 8, 589838, 0, 8, 655374, 0, 8, 720910, 0, 8, 786446, 65536, 2, 851982, 65536, 3, 917518, 65536, 3, 983054, 65536, 3, 720914, 0, 8, 655378, 0, 8, 589842, 0, 8, 524306, 0, 8, 720913, 0, 8, 655377, 0, 8, 589841, 0, 8, 524305, 0, 8, 720912, 0, 8, 655376, 0, 8, 589840, 0, 8, 524304, 0, 8, 720911, 0, 8, 655375, 0, 8, 589839, 0, 8, 524303, 0, 8, 720902, 0, 8, 655366, 0, 8, 589830, 0, 8, 524294, 0, 8, 720901, 0, 8, 655365, 0, 8, 589829, 0, 8, 524293, 0, 8, 720900, 0, 8, 655364, 0, 8, 589828, 0, 8, 524292, 0, 8, 720899, 0, 8, 655363, 0, 8, 589827, 0, 8, 524291, 0, 8, 458755, 131072, 7, 786435, 131072, 2, 458756, 131072, 7, 786436, 131072, 2, 458757, 131072, 7, 786437, 131072, 2, 458758, 131072, 7, 786438, 131072, 2, 458767, 131072, 7, 786447, 131072, 2, 458768, 131072, 7, 786448, 131072, 2, 458769, 131072, 7, 786449, 131072, 2, 458770, 131072, 7, 786450, 131072, 2) script = ExtResource("dungeonRoomTemplate") -[node name="EnemyMark" type="Node2D" parent="."] -script = ExtResource("3_tkueb") -Weapon1Id = "0003(ResidueAmmo:12,CurrAmmon:12)" -Type = 4 -ItemExpression = "0001" -Layer = 1 -DelayTime = 1.0 -BirthRect = Vector2i(50, 50) -Altitude = 0 - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(346, -8) -script = ExtResource("3_tkueb") -Weapon1Id = "0003(ResidueAmmo:12,CurrAmmon:12)" -Type = 4 -ItemExpression = "0001" -Layer = 1 -DelayTime = 1.0 -BirthRect = Vector2i(50, 50) -Altitude = 0 - -[node name="EnemyMark3" type="Node2D" parent="."] -position = Vector2(359, 312) -script = ExtResource("3_tkueb") -Weapon1Id = "0003(ResidueAmmo:12,CurrAmmon:12)" -Type = 4 -ItemExpression = "0001" -Layer = 1 -DelayTime = 1.0 -BirthRect = Vector2i(50, 50) -Altitude = 0 - -[node name="EnemyMark4" type="Node2D" parent="."] -position = Vector2(-8, 311) -script = ExtResource("3_tkueb") -Weapon1Id = "0003(ResidueAmmo:12,CurrAmmon:12)" -Type = 4 -ItemExpression = "0001" -Layer = 1 -DelayTime = 1.0 -BirthRect = Vector2i(50, 50) -Altitude = 0 - [node name="EnemyMark5" type="Node2D" parent="."] script = ExtResource("3_tkueb") Weapon1Id = "0001(ResidueAmmo:15,CurrAmmon:15)" @@ -100,6 +57,18 @@ BirthRect = Vector2i(50, 50) Altitude = 0 +[node name="EnemyMark17" type="Node2D" parent="."] +position = Vector2(176, 165) +script = ExtResource("3_tkueb") +Weapon1Id = "0001(ResidueAmmo:15,CurrAmmon:15)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 1.0 +BirthRect = Vector2i(50, 50) +Altitude = 0 + [node name="EnemyMark9" type="Node2D" parent="."] script = ExtResource("3_tkueb") Weapon1Id = "0002(ResidueAmmo:7,CurrAmmon:7)" @@ -147,6 +116,18 @@ BirthRect = Vector2i(50, 50) Altitude = 0 +[node name="EnemyMark18" type="Node2D" parent="."] +position = Vector2(175, 166) +script = ExtResource("3_tkueb") +Weapon1Id = "0002(ResidueAmmo:7,CurrAmmon:7)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 3 +DelayTime = 1.0 +BirthRect = Vector2i(50, 50) +Altitude = 0 + [node name="EnemyMark13" type="Node2D" parent="."] script = ExtResource("3_tkueb") Weapon1Id = "0005(ResidueAmmo:0,CurrAmmon:10)" @@ -193,3 +174,15 @@ DelayTime = 1.0 BirthRect = Vector2i(50, 50) Altitude = 0 + +[node name="EnemyMark19" type="Node2D" parent="."] +position = Vector2(175, 164) +script = ExtResource("3_tkueb") +Weapon1Id = "0005(ResidueAmmo:0,CurrAmmon:10)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 4 +DelayTime = 1.0 +BirthRect = Vector2i(50, 50) +Altitude = 0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn new file mode 100644 index 0000000..001a211 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn @@ -0,0 +1,124 @@ +[gd_scene load_steps=4 format=3 uid="uid://cllr044e4g3cg"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_657ry"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_epa54"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room5" type="TileMap"] +tile_set = ExtResource("1_657ry") +format = 2 +layer_0/tile_data = PackedInt32Array(65538, 0, 8, 2, 0, 8, -65534, 0, 8, -65535, 0, 8, -65536, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -65537, 0, 8, -131072, 0, 8, 131070, 0, 8, 196607, 0, 8, 196606, 0, 8, -131071, 0, 8, -131070, 0, 8, -65533, 0, 8, 3, 0, 8, -131069, 0, 8, 65539, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 65552, 0, 8, 16, 0, 8, -65520, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 65551, 0, 8, 15, 0, 8, -65521, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 65550, 0, 8, 14, 0, 8, -65522, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 131085, 0, 8, 65549, 0, 8, 13, 0, 8, -65523, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 393223, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 393222, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 393221, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 393220, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 589827, 0, 8, 524291, 0, 8, 458755, 0, 8, 393219, 0, 8, 327683, 0, 8, 327682, 0, 8, 393215, 0, 8, 327679, 0, 8, 262143, 0, 8, 262142, 0, 8, 327678, 0, 8, 393214, 0, 8, 655363, 0, 8, -131068, 0, 8, 655364, 0, 8, 655365, 0, 8, 655366, 0, 8, 655367, 0, 8, 655368, 0, 8, 655369, 0, 8, 655370, 0, 8, 655371, 0, 8, -131060, 0, 8, -131059, 0, 8, -131058, 0, 8, -131057, 0, 8, -131056, 0, 8, -65519, 65536, 3, 17, 65536, 3, -131055, 65536, 3, 65553, 65536, 3, 131089, 65536, 3, 196625, 65536, 3, 262161, 65536, 3, 327697, 65536, 3, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 589837, 131072, 2, 589836, 65536, 2, 589838, 131072, 2, 393231, 65536, 2, 458767, 65536, 3, 524303, 65536, 3, 589839, 851968, 2, 524290, 0, 8, 458754, 0, 8, 393218, 0, 8, 524289, 0, 8, 458753, 0, 8, 524288, 0, 8, 458752, 0, 8, 589823, 0, 8, 524287, 0, 8, 458751, 0, 8, 524286, 0, 8, 458750, 0, 8, 589822, 0, 8, 589824, 131072, 2, 655359, 131072, 2, 655358, 131072, 2, 589825, 131072, 2, 589826, 196608, 2, -196592, 0, 8, -262128, 0, 8, -327664, 0, 8, -196593, 0, 8, -262129, 0, 8, -327665, 0, 8, -196594, 0, 8, -262130, 0, 8, -327666, 0, 8, -196595, 0, 8, -262131, 0, 8, -327667, 0, 8, -196596, 0, 8, -262132, 0, 8, -327668, 0, 8, -262133, 0, 8, -327669, 0, 8, -262134, 0, 8, -327670, 0, 8, -262135, 0, 8, -327671, 0, 8, -262136, 0, 8, -327672, 0, 8, -262137, 0, 8, -327673, 0, 8, -262138, 0, 8, -327674, 0, 8, -262139, 0, 8, -327675, 0, 8, -196604, 0, 8, -262140, 0, 8, -327676, 0, 8, -196605, 0, 8, -262141, 0, 8, -327677, 0, 8, -196606, 0, 8, -262142, 0, 8, -327678, 0, 8, -65539, 196608, 3, -3, 196608, 3, -393214, 131072, 7, -393213, 131072, 7, -393212, 131072, 7, -393211, 131072, 7, -393210, 131072, 7, -393209, 131072, 7, -393208, 131072, 7, -393207, 131072, 7, -393206, 131072, 7, -393205, 131072, 7, -393204, 131072, 7, -393203, 131072, 7, -393202, 131072, 7, -393201, 131072, 7, -393200, 131072, 7, -327663, 65536, 3, -262127, 65536, 3, -393199, 65536, 4, -196591, 65536, 3, 131084, 0, 8, 65548, 0, 8, 12, 0, 8, -65524, 0, 8, 131083, 0, 8, 65547, 0, 8, 11, 0, 8, 131082, 0, 8, 65546, 0, 8, 10, 0, 8, 9, 0, 8, 8, 0, 8, 7, 0, 8, 6, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, 131081, 0, 8, 65545, 0, 8, 131080, 0, 8, 65544, 0, 8, 131079, 0, 8, 65543, 0, 8, 131078, 0, 8, 65542, 0, 8, 196614, 0, 8, 196615, 0, 8, -196603, 65536, 2, -196602, 131072, 2, -196601, 131072, 2, -196600, 131072, 2, -196599, 131072, 2, -196598, 131072, 2, -196597, 196608, 2, -131061, 196608, 3, -65525, 196608, 7, -65531, 65536, 7, -65530, 131072, 7, -65529, 131072, 7, -65528, 131072, 7, -65527, 131072, 7, -65526, 131072, 7, -131067, 65536, 3, 327686, 0, 8, 327687, 0, 8, 262150, 0, 8, 393232, 131072, 2, 393233, 851968, 2, 655372, 65536, 3, 655362, 196608, 3, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327677, 196608, 3, 393213, 196608, 3, 458749, 196608, 3, 524285, 196608, 3, 589821, 196608, 3, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 262151, 0, 8, 196617, 65536, 2, 262153, 65536, 3, 327689, 65536, 7, 196618, 131072, 2, 196619, 131072, 2, 196620, 196608, 2, 262156, 196608, 3, 327692, 196608, 7, 327690, 131072, 7, 327691, 131072, 7, 393217, 0, 8, 327681, 0, 8, 65537, 0, 8, 1, 0, 8, 393216, 0, 8, 327680, 0, 8, 65536, 0, 8, 0, 0, 8, 131072, 65536, 2, 131073, 131072, 2, 131074, 131072, 2, 131075, 196608, 2, 196611, 196608, 3, 262147, 196608, 7, 262144, 65536, 7, 262145, 131072, 7, 262146, 131072, 7, 196608, 65536, 3, 655357, 720896, 2, -262143, 196608, 3, -327679, 196608, 3, -393215, 196608, 4, -196607, 196608, 7, -131075, 196608, 4, -131074, 131072, 7, -131073, 131072, 7, -196608, 131072, 7, 720900, 131072, 2, 720899, 131072, 2, 720898, 720896, 2, 720901, 131072, 2, 720902, 131072, 2, 720903, 131072, 2, 720904, 131072, 2, 720905, 131072, 2, 720906, 131072, 2, 720907, 131072, 2, 720908, 851968, 2) +script = ExtResource("dungeonRoomTemplate") + +[node name="EnemyMark" type="Node2D" parent="."] +position = Vector2(105, 107) +script = ExtResource("3_epa54") +Weapon1Id = "0001(ResidueAmmo:15,CurrAmmon:15)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +BirthRect = Vector2i(50, 100) +Altitude = 0 + +[node name="EnemyMark2" type="Node2D" parent="."] +position = Vector2(232, -12) +script = ExtResource("3_epa54") +Weapon1Id = "0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +DelayTime = 1.0 +BirthRect = Vector2i(50, 100) +Altitude = 0 + +[node name="EnemyMark3" type="Node2D" parent="."] +position = Vector2(17, 3) +script = ExtResource("3_epa54") +Weapon1Id = "0006(ResidueAmmo:20,CurrAmmon:0)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +DelayTime = 2.0 +BirthRect = Vector2i(50, 50) +Altitude = 0 + +[node name="EnemyMark4" type="Node2D" parent="."] +position = Vector2(100, 48) +script = ExtResource("3_epa54") +Weapon1Id = "0002(ResidueAmmo:7,CurrAmmon:7)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +BirthRect = Vector2i(50, 50) +Altitude = 0 + +[node name="EnemyMark5" type="Node2D" parent="."] +position = Vector2(33, 116) +script = ExtResource("3_epa54") +Weapon1Id = "0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 1.0 +BirthRect = Vector2i(100, 50) +Altitude = 0 + +[node name="EnemyMark6" type="Node2D" parent="."] +position = Vector2(123, 143) +script = ExtResource("3_epa54") +Weapon1Id = "0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 2.0 +BirthRect = Vector2i(100, 50) +Altitude = 0 + +[node name="EnemyMark7" type="Node2D" parent="."] +position = Vector2(189, 28) +script = ExtResource("3_epa54") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 3 +BirthRect = Vector2i(100, 30) +Altitude = 0 + +[node name="EnemyMark8" type="Node2D" parent="."] +position = Vector2(189, 28) +script = ExtResource("3_epa54") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 3 +BirthRect = Vector2i(100, 30) +Altitude = 0 + +[node name="EnemyMark9" type="Node2D" parent="."] +position = Vector2(25, -3) +script = ExtResource("3_epa54") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 3 +DelayTime = 1.0 +BirthRect = Vector2i(70, 30) +Altitude = 0 + +[node name="EnemyMark10" type="Node2D" parent="."] +position = Vector2(155, -61) +script = ExtResource("3_epa54") +Weapon1Id = "0002(ResidueAmmo:7,CurrAmmon:7)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 3 +DelayTime = 2.0 +BirthRect = Vector2i(200, 15) +Altitude = 0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn new file mode 100644 index 0000000..31f9ee9 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn @@ -0,0 +1,130 @@ +[gd_scene load_steps=4 format=3 uid="uid://d1os2i60rnd0i"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_83m2u"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_g5jtq"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room6" type="TileMap"] +tile_set = ExtResource("1_83m2u") +format = 2 +layer_0/tile_data = PackedInt32Array(393226, 0, 8, 327690, 0, 8, 10, 0, 8, 393225, 0, 8, 327689, 0, 8, 65545, 0, 8, 9, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 65544, 0, 8, 8, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 393222, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 393221, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 393220, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 393219, 0, 8, 327683, 0, 8, 262147, 0, 8, 196611, 0, 8, 131075, 0, 8, 393218, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131074, 0, 8, 393217, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, 393216, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, 458751, 0, 8, 393215, 0, 8, 327679, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -65537, 0, 8, -131072, 0, 8, 131070, 0, 8, 196606, 196608, 2, 262142, 196608, 3, 327678, 196608, 3, 393214, 196608, 3, 458750, 196608, 3, 458752, 131072, 2, 524287, 131072, 2, 524286, 720896, 2, -131071, 0, 8, 458753, 131072, 2, 458754, 131072, 2, 458755, 131072, 2, 458756, 131072, 2, 458757, 131072, 2, 458758, 131072, 2, 458759, 131072, 2, 458760, 131072, 2, 458761, 131072, 2, 458762, 131072, 2, -65525, 0, 8, 11, 0, 8, 327691, 0, 8, 393227, 0, 8, 458763, 131072, 2, 65555, 0, 8, 19, 0, 8, -65517, 0, 8, -131053, 0, 8, -196589, 0, 8, -262125, 0, 8, -327661, 0, 8, 65554, 0, 8, 18, 0, 8, -65518, 0, 8, -131054, 0, 8, -196590, 0, 8, -262126, 0, 8, -327662, 0, 8, 65553, 0, 8, 17, 0, 8, -65519, 0, 8, -131055, 0, 8, -196591, 0, 8, -262127, 0, 8, -327663, 0, 8, 65552, 0, 8, 16, 0, 8, -327664, 0, 8, 65551, 0, 8, 15, 0, 8, -327665, 0, 8, 14, 0, 8, -327666, 0, 8, 13, 0, 8, -65523, 0, 8, -131059, 0, 8, -196595, 0, 8, -262131, 0, 8, -327667, 0, 8, 12, 0, 8, -65524, 0, 8, -131060, 0, 8, -196596, 0, 8, -262132, 0, 8, -327668, 0, 8, -262133, 0, 8, -327669, 0, 8, -262134, 0, 8, -327670, 0, 8, -262135, 0, 8, -327671, 0, 8, -262136, 0, 8, -327672, 0, 8, -262137, 0, 8, -327673, 0, 8, -262138, 0, 8, -327674, 0, 8, -262139, 0, 8, -327675, 0, 8, -262140, 0, 8, -327676, 0, 8, -262141, 0, 8, -327677, 0, 8, -262142, 0, 8, -327678, 0, 8, -196607, 0, 8, -262143, 0, 8, -327679, 0, 8, -196608, 0, 8, -262144, 0, 8, -327680, 0, 8, -131073, 0, 8, -196609, 0, 8, -262145, 0, 8, -131074, 0, 8, -196610, 0, 8, -262146, 0, 8, -196611, 196608, 3, -262147, 196608, 3, -327683, 196608, 4, -327682, 131072, 7, -327681, 131072, 7, -131075, 196608, 3, -65539, 196608, 3, -3, 196608, 3, 65533, 196608, 3, 131069, 196608, 3, 196605, 720896, 2, -393216, 131072, 7, -393215, 131072, 7, -393214, 131072, 7, -393213, 131072, 7, -393212, 131072, 7, -393211, 131072, 7, -393210, 131072, 7, -393209, 131072, 7, -393208, 131072, 7, -393207, 131072, 7, -393206, 131072, 7, -393205, 131072, 7, -393204, 131072, 7, -393203, 131072, 7, -393202, 131072, 7, -393201, 131072, 7, 131087, 0, 8, -393200, 131072, 7, 131088, 0, 8, -393199, 131072, 7, 131089, 0, 8, -393198, 131072, 7, 131090, 65536, 2, -393197, 131072, 7, 131091, 131072, 2, -327660, 65536, 3, -262124, 65536, 3, -393196, 65536, 4, -196588, 65536, 3, -131052, 65536, 3, -65516, 65536, 3, 20, 65536, 3, 65556, 65536, 3, 131092, 851968, 2, 65543, 0, 8, 7, 0, 8, 65542, 0, 8, 6, 0, 8, -131061, 0, 8, -196597, 0, 8, -196598, 0, 8, -196599, 0, 8, -196600, 0, 8, -196605, 0, 8, -196606, 0, 8, -131070, 65536, 2, 131086, 0, 8, 65550, 0, 8, 131085, 0, 8, 65549, 0, 8, 65548, 0, 8, 262155, 0, 8, 65547, 0, 8, 65546, 0, 8, 196623, 0, 8, 196622, 0, 8, 196621, 0, 8, 262156, 0, 8, 327692, 0, 8, 196624, 0, 8, -65530, 131072, 7, -65529, 131072, 7, 131079, 65536, 2, -65528, 131072, 7, -65527, 131072, 7, 196615, 65536, 7, 65539, 131072, 7, -65526, 196608, 7, -131062, 196608, 2, -131069, 131072, 2, -131064, 131072, 2, -131063, 131072, 2, -65534, 65536, 3, 2, 65536, 3, 65538, 65536, 7, 131080, 131072, 2, 131081, 131072, 2, 196616, 131072, 7, 393228, 0, 8, 458764, 131072, 2, 458765, 131072, 2, -262128, 0, 8, -262129, 0, 8, -262130, 0, 8, -196594, 65536, 2, -131058, 65536, 3, -65522, 65536, 7, -196593, 131072, 2, -196592, 196608, 2, -131056, 196608, 3, -65520, 196608, 7, -65521, 131072, 7, 196625, 0, 8, 196626, 65536, 3, 262162, 65536, 3, 262153, 65536, 7, 196617, 65536, 4, 262154, 196608, 7, 196618, 196608, 4, 196619, 131072, 7, 196620, 196608, 7, 131084, 196608, 2, 131082, 131072, 2, 131083, 131072, 2, -196603, 131072, 2, -196602, 131072, 2, -196601, 196608, 2, -131065, 720896, 2, -196604, 65536, 2, -131068, 851968, 2, 65540, 196608, 7, 65541, 0, 8, 5, 0, 8, -65531, 131072, 7, 4, 196608, 3, -65532, 196608, 4, 262161, 0, 8, 262160, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 458766, 131072, 2, 458767, 131072, 2, 458768, 851968, 2, 327698, 851968, 2, 327696, 65536, 2, 327697, 131072, 2, 393232, 65536, 3) +script = ExtResource("dungeonRoomTemplate") +EnableEdit = true + +[node name="EnemyMark" type="Node2D" parent="."] +position = Vector2(51, 77) +script = ExtResource("3_g5jtq") +Weapon1Id = "0001(ResidueAmmo:15,CurrAmmon:15); +0002(ResidueAmmo:7,CurrAmmon:7)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +BirthRect = Vector2i(100, 60) +Altitude = 0 + +[node name="EnemyMark2" type="Node2D" parent="."] +position = Vector2(-1, -23) +script = ExtResource("3_g5jtq") +Weapon1Id = "0001(ResidueAmmo:15,CurrAmmon:15); +0002(ResidueAmmo:7,CurrAmmon:7)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +DelayTime = 1.0 +BirthRect = Vector2i(30, 60) +Altitude = 0 + +[node name="EnemyMark3" type="Node2D" parent="."] +position = Vector2(200, -27) +script = ExtResource("3_g5jtq") +Weapon1Id = "0001(ResidueAmmo:15,CurrAmmon:15); +0002(ResidueAmmo:7,CurrAmmon:7); +0003(ResidueAmmo:12,CurrAmmon:12)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +DelayTime = 3.0 +BirthRect = Vector2i(20, 60) +Altitude = 0 + +[node name="EnemyMark4" type="Node2D" parent="."] +position = Vector2(261, 43) +script = ExtResource("3_g5jtq") +Weapon1Id = "0001(ResidueAmmo:15,CurrAmmon:15); +0002(ResidueAmmo:7,CurrAmmon:7); +0003(ResidueAmmo:12,CurrAmmon:12)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +DelayTime = 3.0 +BirthRect = Vector2i(20, 60) +Altitude = 0 + +[node name="EnemyMark5" type="Node2D" parent="."] +position = Vector2(233, 61) +script = ExtResource("3_g5jtq") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5); +0006(ResidueAmmo:20,CurrAmmon:20); +0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +BirthRect = Vector2i(20, 90) +Altitude = 0 + +[node name="EnemyMark6" type="Node2D" parent="."] +position = Vector2(155, 19) +script = ExtResource("3_g5jtq") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5); +0006(ResidueAmmo:20,CurrAmmon:20); +0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 1.0 +BirthRect = Vector2i(100, 10) +Altitude = 0 + +[node name="EnemyMark7" type="Node2D" parent="."] +position = Vector2(75, -61) +script = ExtResource("3_g5jtq") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5); +0006(ResidueAmmo:20,CurrAmmon:20); +0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 2.0 +BirthRect = Vector2i(100, 10) +Altitude = 0 + +[node name="EnemyMark8" type="Node2D" parent="."] +position = Vector2(47, 69) +script = ExtResource("3_g5jtq") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5); +0006(ResidueAmmo:20,CurrAmmon:20); +0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 3.0 +BirthRect = Vector2i(100, 50) +Altitude = 0 + +[node name="EnemyMark9" type="Node2D" parent="."] +position = Vector2(178, -54) +script = ExtResource("3_g5jtq") +Weapon1Id = "0005(ResidueAmmo:5,CurrAmmon:5); +0006(ResidueAmmo:20,CurrAmmon:20); +0007(ResidueAmmo:30,CurrAmmon:30)" +Type = 4 +ItemExpression = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 4.0 +BirthRect = Vector2i(70, 20) +Altitude = 0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn index 02b1565..381e5d5 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn @@ -92,3 +92,31 @@ Type = 9 ItemExpression = "0010" WaveNumber = 2 + +[node name="ActivityMark18" type="Node2D" parent="."] +position = Vector2(103, 65) +script = ExtResource("3_m4jrh") +Type = 9 +ItemExpression = "5000" +WaveNumber = 3 + +[node name="ActivityMark19" type="Node2D" parent="."] +position = Vector2(106, 31) +script = ExtResource("3_m4jrh") +Type = 9 +ItemExpression = "5000" +WaveNumber = 3 + +[node name="ActivityMark20" type="Node2D" parent="."] +position = Vector2(139, 26) +script = ExtResource("3_m4jrh") +Type = 9 +ItemExpression = "5001" +WaveNumber = 3 + +[node name="ActivityMark21" type="Node2D" parent="."] +position = Vector2(140, 50) +script = ExtResource("3_m4jrh") +Type = 9 +ItemExpression = "5001" +WaveNumber = 3 diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json index 634f49d..464869f 100644 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json @@ -98,19 +98,19 @@ "Y": 368 }, { - "X": 280, + "X": 264, "Y": 368 }, { - "X": 280, + "X": 264, "Y": 304 }, { - "X": 72, + "X": 88, "Y": 304 }, { - "X": 72, + "X": 88, "Y": 368 }, { @@ -139,19 +139,114 @@ "Type": 1, "Points": [ { + "X": 88, + "Y": 32 + }, + { + "X": 136, + "Y": 32 + }, + { + "X": 136, + "Y": 136 + }, + { "X": 24, + "Y": 136 + }, + { + "X": 24, + "Y": 96 + }, + { + "X": 88, + "Y": 96 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 216, "Y": 32 }, { - "X": 328, + "X": 264, "Y": 32 }, { + "X": 264, + "Y": 96 + }, + { "X": 328, + "Y": 96 + }, + { + "X": 328, + "Y": 136 + }, + { + "X": 216, + "Y": 136 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 24, + "Y": 192 + }, + { + "X": 136, + "Y": 192 + }, + { + "X": 136, "Y": 280 }, { + "X": 88, + "Y": 280 + }, + { + "X": 88, + "Y": 232 + }, + { "X": 24, + "Y": 232 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 216, + "Y": 192 + }, + { + "X": 328, + "Y": 192 + }, + { + "X": 328, + "Y": 232 + }, + { + "X": 264, + "Y": 232 + }, + { + "X": 264, + "Y": 280 + }, + { + "X": 216, "Y": 280 } ] diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json new file mode 100644 index 0000000..5e6371c --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json @@ -0,0 +1,154 @@ +{ + "Position": { + "X": -3, + "Y": -6 + }, + "Size": { + "X": 21, + "Y": 18 + }, + "DoorAreaInfos": [ + { + "Direction": 0, + "Start": 16, + "End": 192 + }, + { + "Direction": 3, + "Start": 80, + "End": 320 + }, + { + "Direction": 1, + "Start": 64, + "End": 240 + }, + { + "Direction": 2, + "Start": 96, + "End": 240 + } + ], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": 40, + "Y": -72 + }, + { + "X": 264, + "Y": -72 + }, + { + "X": 264, + "Y": 96 + }, + { + "X": 232, + "Y": 96 + }, + { + "X": 232, + "Y": 144 + }, + { + "X": 184, + "Y": 144 + }, + { + "X": 184, + "Y": 176 + }, + { + "X": 56, + "Y": 176 + }, + { + "X": 56, + "Y": 144 + }, + { + "X": -24, + "Y": 144 + }, + { + "X": -24, + "Y": -24 + }, + { + "X": 40, + "Y": -24 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 72, + "Y": -48 + }, + { + "X": 200, + "Y": -48 + }, + { + "X": 200, + "Y": 8 + }, + { + "X": 72, + "Y": 8 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": -8, + "Y": 32 + }, + { + "X": 72, + "Y": 32 + }, + { + "X": 72, + "Y": 88 + }, + { + "X": -8, + "Y": 88 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 136, + "Y": 48 + }, + { + "X": 216, + "Y": 48 + }, + { + "X": 216, + "Y": 104 + }, + { + "X": 136, + "Y": 104 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room5", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json new file mode 100644 index 0000000..7d83388 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json @@ -0,0 +1,186 @@ +{ + "Position": { + "X": -3, + "Y": -6 + }, + "Size": { + "X": 24, + "Y": 14 + }, + "DoorAreaInfos": [ + { + "Direction": 3, + "Start": 16, + "End": 368 + }, + { + "Direction": 0, + "Start": 16, + "End": 128 + }, + { + "Direction": 2, + "Start": 32, + "End": 272 + }, + { + "Direction": 1, + "Start": 16, + "End": 128 + } + ], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": -24, + "Y": -72 + }, + { + "X": 312, + "Y": -72 + }, + { + "X": 312, + "Y": 32 + }, + { + "X": 280, + "Y": 32 + }, + { + "X": 280, + "Y": 80 + }, + { + "X": 248, + "Y": 80 + }, + { + "X": 248, + "Y": 112 + }, + { + "X": -8, + "Y": 112 + }, + { + "X": -8, + "Y": 32 + }, + { + "X": -24, + "Y": 32 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 56, + "Y": -48 + }, + { + "X": 136, + "Y": -48 + }, + { + "X": 136, + "Y": -32 + }, + { + "X": 184, + "Y": -32 + }, + { + "X": 184, + "Y": 8 + }, + { + "X": 88, + "Y": 8 + }, + { + "X": 88, + "Y": 40 + }, + { + "X": 24, + "Y": 40 + }, + { + "X": 24, + "Y": -32 + }, + { + "X": 56, + "Y": -32 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 216, + "Y": -48 + }, + { + "X": 280, + "Y": -48 + }, + { + "X": 280, + "Y": 8 + }, + { + "X": 216, + "Y": 8 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 104, + "Y": 32 + }, + { + "X": 216, + "Y": 32 + }, + { + "X": 216, + "Y": 72 + }, + { + "X": 184, + "Y": 72 + }, + { + "X": 184, + "Y": 88 + }, + { + "X": 136, + "Y": 88 + }, + { + "X": 136, + "Y": 72 + }, + { + "X": 104, + "Y": 72 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room6", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/material/Blend.gdshader b/DungeonShooting_Godot/resource/material/Blend.gdshader index a161bcb..a40db2f 100644 --- a/DungeonShooting_Godot/resource/material/Blend.gdshader +++ b/DungeonShooting_Godot/resource/material/Blend.gdshader @@ -1,13 +1,51 @@ shader_type canvas_item; +//混合颜色 uniform vec4 blend : source_color = vec4(1.0, 1.0, 1.0, 1.0); -uniform float schedule = 0.0; -uniform float alpha = 1.0; +//混合度 +uniform float schedule : hint_range(0.0, 1.0) = 0.0; +//透明度 +//uniform float alpha : hint_range(0.0, 1.0) = 1.0; +uniform vec4 modulate : source_color = vec4(1.0, 1.0, 1.0, 1.0); + +//------------------ 轮廓相关 -------------- +uniform bool show_outline = true; +//轮廓颜色 +uniform vec4 outline_color : source_color = vec4(0.0, 0.0, 0.0, 1.0); +//是否是彩虹轮廓 +uniform bool outline_rainbow = false; +//彩虹轮廓变化周期 +const float frequency = 0.25; +const float light_offset = 0.5; void fragment() { - vec4 textureColor = texture(TEXTURE, UV); - vec4 col = mix(textureColor, blend, schedule); - col = mix(vec4(0.0, 0.0, 0.0, 0.0), col, textureColor.a); - col.a *= alpha; + //显示轮廓 + if (show_outline) { + vec2 size = TEXTURE_PIXEL_SIZE; + float outline; + outline = texture(TEXTURE, UV + vec2(-size.x, 0)).a; + outline += texture(TEXTURE, UV + vec2(0, size.y)).a; + outline += texture(TEXTURE, UV + vec2(size.x, 0)).a; + outline += texture(TEXTURE, UV + vec2(0, -size.y)).a; + outline = min(outline, 1.0); + + vec4 animated_line_color = vec4( + light_offset + sin(2.0 * 3.14 * frequency * TIME), + light_offset + sin(2.0 * 3.14 * frequency * TIME + radians(120.0)), + light_offset + sin(2.0 * 3.14 * frequency * TIME + radians(240.0)), + 1.0 + ); + + vec4 color = texture(TEXTURE, UV); + if (outline_rainbow){ + COLOR = mix(color, animated_line_color, outline - color.a); + } else { + COLOR = mix(color, outline_color , outline - color.a); + } + } + + vec4 col = mix(COLOR, blend, schedule); + col = mix(vec4(0.0, 0.0, 0.0, 0.0), col, COLOR.a); + col *= modulate; COLOR = col; } diff --git a/DungeonShooting_Godot/resource/material/Blend.tres b/DungeonShooting_Godot/resource/material/Blend.tres index bfdddeb..dbd0411 100644 --- a/DungeonShooting_Godot/resource/material/Blend.tres +++ b/DungeonShooting_Godot/resource/material/Blend.tres @@ -5,6 +5,9 @@ [resource] resource_local_to_scene = true shader = ExtResource("1") -shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/blend = Color(0, 0, 0, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0.941176, 0.941176, 0.941176, 1) +shader_parameter/outline_rainbow = false diff --git a/DungeonShooting_Godot/resource/sound/sfx/beLoaded/BeLoaded0017.ogg b/DungeonShooting_Godot/resource/sound/sfx/beLoaded/BeLoaded0017.ogg new file mode 100644 index 0000000..89968a5 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/beLoaded/BeLoaded0017.ogg Binary files differ diff --git a/DungeonShooting_Godot/resource/sound/sfx/beLoaded/BeLoaded0017.ogg.import b/DungeonShooting_Godot/resource/sound/sfx/beLoaded/BeLoaded0017.ogg.import new file mode 100644 index 0000000..468cb03 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/beLoaded/BeLoaded0017.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b5xrepclt2iv7" +path="res://.godot/imported/BeLoaded0017.ogg-ec605554f247f40ebf11bdd31c578999.oggvorbisstr" + +[deps] + +source_file="res://resource/sound/sfx/beLoaded/BeLoaded0017.ogg" +dest_files=["res://.godot/imported/BeLoaded0017.ogg-ec605554f247f40ebf11bdd31c578999.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0010.ogg b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0010.ogg new file mode 100644 index 0000000..e7c1325 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0010.ogg Binary files differ diff --git a/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0010.ogg.import b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0010.ogg.import new file mode 100644 index 0000000..f1cec24 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0010.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bue6k2ypa2asr" +path="res://.godot/imported/Reloading_begin0010.ogg-8fb0c428aef5d7391c12a35366fe6ffc.oggvorbisstr" + +[deps] + +source_file="res://resource/sound/sfx/reloading/Reloading_begin0010.ogg" +dest_files=["res://.godot/imported/Reloading_begin0010.ogg-8fb0c428aef5d7391c12a35366fe6ffc.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet.png b/DungeonShooting_Godot/resource/sprite/bullet/bullet.png deleted file mode 100644 index fb6ccea..0000000 --- a/DungeonShooting_Godot/resource/sprite/bullet/bullet.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet.png.import b/DungeonShooting_Godot/resource/sprite/bullet/bullet.png.import deleted file mode 100644 index 8e7e5e0..0000000 --- a/DungeonShooting_Godot/resource/sprite/bullet/bullet.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bu0b11hiuecxy" -path="res://.godot/imported/bullet.png-d058b3cd1f93a450750c6a914d76f944.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/bullet/bullet.png" -dest_files=["res://.godot/imported/bullet.png-d058b3cd1f93a450750c6a914d76f944.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 diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet0001.png b/DungeonShooting_Godot/resource/sprite/bullet/bullet0001.png new file mode 100644 index 0000000..fb6ccea --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/bullet0001.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet0001.png.import b/DungeonShooting_Godot/resource/sprite/bullet/bullet0001.png.import new file mode 100644 index 0000000..fe2ba90 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/bullet0001.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu0b11hiuecxy" +path="res://.godot/imported/bullet0001.png-09e29b083f51e2b282ac1fb1dd682734.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/bullet/bullet0001.png" +dest_files=["res://.godot/imported/bullet0001.png-09e29b083f51e2b282ac1fb1dd682734.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 diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet0002.png b/DungeonShooting_Godot/resource/sprite/bullet/bullet0002.png new file mode 100644 index 0000000..ce0577e --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/bullet0002.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet0002.png.import b/DungeonShooting_Godot/resource/sprite/bullet/bullet0002.png.import new file mode 100644 index 0000000..90b0c71 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/bullet0002.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctsvj4y1t538u" +path="res://.godot/imported/bullet0002.png-5a53e3706ec2ef023e52e256612c2c94.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/bullet/bullet0002.png" +dest_files=["res://.godot/imported/bullet0002.png-5a53e3706ec2ef023e52e256612c2c94.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 diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet0003.png b/DungeonShooting_Godot/resource/sprite/bullet/bullet0003.png new file mode 100644 index 0000000..6478bfa --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/bullet0003.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet0003.png.import b/DungeonShooting_Godot/resource/sprite/bullet/bullet0003.png.import new file mode 100644 index 0000000..808d9f3 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/bullet0003.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cs6pa7h8ffvy4" +path="res://.godot/imported/bullet0003.png-968c6a657388df80893fe68898e87dae.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/bullet/bullet0003.png" +dest_files=["res://.godot/imported/bullet0003.png-968c6a657388df80893fe68898e87dae.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 diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet3.png b/DungeonShooting_Godot/resource/sprite/bullet/bullet3.png deleted file mode 100644 index ce0577e..0000000 --- a/DungeonShooting_Godot/resource/sprite/bullet/bullet3.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/bullet3.png.import b/DungeonShooting_Godot/resource/sprite/bullet/bullet3.png.import deleted file mode 100644 index 765caff..0000000 --- a/DungeonShooting_Godot/resource/sprite/bullet/bullet3.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ctsvj4y1t538u" -path="res://.godot/imported/bullet3.png-da66182a32c8e83b9b95206d8e836cf2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/bullet/bullet3.png" -dest_files=["res://.godot/imported/bullet3.png-da66182a32c8e83b9b95206d8e836cf2.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5000.png b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5000.png new file mode 100644 index 0000000..bfb6875 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5000.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5000.png.import b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5000.png.import new file mode 100644 index 0000000..74bdae7 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5000.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cu0wlvrbntvyd" +path="res://.godot/imported/ActiveProp5000.png-e2abbcdb5578cf5fd59559dd52deefe9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/active/ActiveProp5000.png" +dest_files=["res://.godot/imported/ActiveProp5000.png-e2abbcdb5578cf5fd59559dd52deefe9.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5001.png b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5001.png new file mode 100644 index 0000000..d355ec7 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5001.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5001.png.import b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5001.png.import new file mode 100644 index 0000000..5f577c6 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/active/ActiveProp5001.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fby848tbodc" +path="res://.godot/imported/ActiveProp5001.png-037b024a2da4a01ef7b701664c95763f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/active/ActiveProp5001.png" +dest_files=["res://.godot/imported/ActiveProp5001.png-037b024a2da4a01ef7b701664c95763f.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0001.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0001.png deleted file mode 100644 index 6fe4302..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0001.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0001.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0001.png.import deleted file mode 100644 index 93bddc7..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0001.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bls55gj8h3mgv" -path="res://.godot/imported/Buff0001.png-2d51f6e8c41b1c1eaee342d36314d326.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0001.png" -dest_files=["res://.godot/imported/Buff0001.png-2d51f6e8c41b1c1eaee342d36314d326.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0002.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0002.png deleted file mode 100644 index 3dbfda5..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0002.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0002.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0002.png.import deleted file mode 100644 index 52de2ce..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0002.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cv2joc07ymofw" -path="res://.godot/imported/Buff0002.png-d91464bb53e0e88b01f5baa35217c454.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0002.png" -dest_files=["res://.godot/imported/Buff0002.png-d91464bb53e0e88b01f5baa35217c454.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0003.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0003.png deleted file mode 100644 index b5ea631..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0003.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0003.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0003.png.import deleted file mode 100644 index 7f73e44..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0003.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://osr0v1c6l8ly" -path="res://.godot/imported/Buff0003.png-584cb6fcf8fce750a2603c98c852dabb.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0003.png" -dest_files=["res://.godot/imported/Buff0003.png-584cb6fcf8fce750a2603c98c852dabb.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0004.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0004.png deleted file mode 100644 index d46fe72..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0004.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0004.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0004.png.import deleted file mode 100644 index 72ea312..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0004.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c0c25nihdcgt1" -path="res://.godot/imported/Buff0004.png-29449655cacc702b1b5df1587e70bcd4.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0004.png" -dest_files=["res://.godot/imported/Buff0004.png-29449655cacc702b1b5df1587e70bcd4.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0005.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0005.png deleted file mode 100644 index b47eda1..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0005.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0005.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0005.png.import deleted file mode 100644 index 085be93..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0005.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dse0mbg06ngya" -path="res://.godot/imported/Buff0005.png-f0e3c022ce4baafb91a48332b46fb6dc.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0005.png" -dest_files=["res://.godot/imported/Buff0005.png-f0e3c022ce4baafb91a48332b46fb6dc.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0006.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0006.png deleted file mode 100644 index 18ce355..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0006.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0006.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0006.png.import deleted file mode 100644 index 4bdda12..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0006.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://do8blk3xm5uy1" -path="res://.godot/imported/Buff0006.png-ad8ef1b00368b9ade7dad2594a085571.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0006.png" -dest_files=["res://.godot/imported/Buff0006.png-ad8ef1b00368b9ade7dad2594a085571.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0007.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0007.png deleted file mode 100644 index f33940f..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0007.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0007.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0007.png.import deleted file mode 100644 index 7230b9e..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0007.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://fql5q452jqo0" -path="res://.godot/imported/Buff0007.png-37ef8d668ae6ca956b70dc6c26afcbc0.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0007.png" -dest_files=["res://.godot/imported/Buff0007.png-37ef8d668ae6ca956b70dc6c26afcbc0.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0008.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0008.png deleted file mode 100644 index a4bcdd9..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0008.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0008.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0008.png.import deleted file mode 100644 index 25fcbee..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0008.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cn8f56vjb02u2" -path="res://.godot/imported/Buff0008.png-ecd91d54a17d95369afbfc71a13b1169.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0008.png" -dest_files=["res://.godot/imported/Buff0008.png-ecd91d54a17d95369afbfc71a13b1169.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0009.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0009.png deleted file mode 100644 index 924de09..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0009.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0009.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0009.png.import deleted file mode 100644 index e234265..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0009.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://csak48bvrnws" -path="res://.godot/imported/Buff0009.png-979bb78617d9bc313dff43a0eaf20cfe.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0009.png" -dest_files=["res://.godot/imported/Buff0009.png-979bb78617d9bc313dff43a0eaf20cfe.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0010.png b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0010.png deleted file mode 100644 index 93884d3..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0010.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0010.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0010.png.import deleted file mode 100644 index f37f1fa..0000000 --- a/DungeonShooting_Godot/resource/sprite/prop/buff/Buff0010.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dlsfun6svqfmm" -path="res://.godot/imported/Buff0010.png-a06964d9e3d5d952bb98001bfcb26102.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/prop/buff/Buff0010.png" -dest_files=["res://.godot/imported/Buff0010.png-a06964d9e3d5d952bb98001bfcb26102.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0001.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0001.png new file mode 100644 index 0000000..dc255ed --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0001.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0001.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0001.png.import new file mode 100644 index 0000000..a453f07 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0001.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bls55gj8h3mgv" +path="res://.godot/imported/BuffProp0001.png-81eb491b3b8bbadb89e61e955c222464.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0001.png" +dest_files=["res://.godot/imported/BuffProp0001.png-81eb491b3b8bbadb89e61e955c222464.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0002.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0002.png new file mode 100644 index 0000000..68bc0ab --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0002.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0002.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0002.png.import new file mode 100644 index 0000000..9c95e92 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0002.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv2joc07ymofw" +path="res://.godot/imported/BuffProp0002.png-fe58ccf0e22fb36f34eec0195b5b1b01.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0002.png" +dest_files=["res://.godot/imported/BuffProp0002.png-fe58ccf0e22fb36f34eec0195b5b1b01.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0003.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0003.png new file mode 100644 index 0000000..2419e4e --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0003.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0003.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0003.png.import new file mode 100644 index 0000000..7a92950 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0003.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://osr0v1c6l8ly" +path="res://.godot/imported/BuffProp0003.png-95ed5541e845ccbfe90bbdaf0c3f66d4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0003.png" +dest_files=["res://.godot/imported/BuffProp0003.png-95ed5541e845ccbfe90bbdaf0c3f66d4.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0004.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0004.png new file mode 100644 index 0000000..711cf75 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0004.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0004.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0004.png.import new file mode 100644 index 0000000..13283bd --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0004.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0c25nihdcgt1" +path="res://.godot/imported/BuffProp0004.png-d57e0fc0a82500517a793dc83ec7125c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0004.png" +dest_files=["res://.godot/imported/BuffProp0004.png-d57e0fc0a82500517a793dc83ec7125c.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0005.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0005.png new file mode 100644 index 0000000..d7a51f5 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0005.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0005.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0005.png.import new file mode 100644 index 0000000..f81ea22 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dse0mbg06ngya" +path="res://.godot/imported/BuffProp0005.png-69a9c8203500e1d8c47606677facddb8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0005.png" +dest_files=["res://.godot/imported/BuffProp0005.png-69a9c8203500e1d8c47606677facddb8.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0006.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0006.png new file mode 100644 index 0000000..a9a776c --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0006.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0006.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0006.png.import new file mode 100644 index 0000000..376bd8c --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0006.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://do8blk3xm5uy1" +path="res://.godot/imported/BuffProp0006.png-24e64abbac5dff6a09f137d4c0a8b2cf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0006.png" +dest_files=["res://.godot/imported/BuffProp0006.png-24e64abbac5dff6a09f137d4c0a8b2cf.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0007.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0007.png new file mode 100644 index 0000000..c04d314 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0007.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0007.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0007.png.import new file mode 100644 index 0000000..9d088e5 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0007.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fql5q452jqo0" +path="res://.godot/imported/BuffProp0007.png-95b1351ae51a03f9d472dd16699ea3de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0007.png" +dest_files=["res://.godot/imported/BuffProp0007.png-95b1351ae51a03f9d472dd16699ea3de.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0008.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0008.png new file mode 100644 index 0000000..1297c3d --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0008.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0008.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0008.png.import new file mode 100644 index 0000000..562d24b --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0008.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cn8f56vjb02u2" +path="res://.godot/imported/BuffProp0008.png-f6d06e8359d978cd8688a133f9522dec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0008.png" +dest_files=["res://.godot/imported/BuffProp0008.png-f6d06e8359d978cd8688a133f9522dec.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0009.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0009.png new file mode 100644 index 0000000..45100bc --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0009.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0009.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0009.png.import new file mode 100644 index 0000000..72f5ef4 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0009.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csak48bvrnws" +path="res://.godot/imported/BuffProp0009.png-33bdd714a0dbab32f6d911dff9d4a2bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0009.png" +dest_files=["res://.godot/imported/BuffProp0009.png-33bdd714a0dbab32f6d911dff9d4a2bc.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 diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0010.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0010.png new file mode 100644 index 0000000..671213c --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0010.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0010.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0010.png.import new file mode 100644 index 0000000..9614aa8 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0010.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dlsfun6svqfmm" +path="res://.godot/imported/BuffProp0010.png-365a10a739f21bd10ab0d114f5958c89.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0010.png" +dest_files=["res://.godot/imported/BuffProp0010.png-365a10a739f21bd10ab0d114f5958c89.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 diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png index f902601..f9e5972 100644 --- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png index 60d644b..95928a5 100644 --- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png index f902601..f9e5972 100644 --- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png index 60d644b..95928a5 100644 --- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/role2.png b/DungeonShooting_Godot/resource/sprite/role/role2.png index cc2133d..7f15453 100644 --- a/DungeonShooting_Godot/resource/sprite/role/role2.png +++ b/DungeonShooting_Godot/resource/sprite/role/role2.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/Life_empty.png b/DungeonShooting_Godot/resource/sprite/ui/Life_empty.png deleted file mode 100644 index 855185f..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Life_empty.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/Life_empty.png.import b/DungeonShooting_Godot/resource/sprite/ui/Life_empty.png.import deleted file mode 100644 index fbd6452..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Life_empty.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dv3qskyc0dcmy" -path="res://.godot/imported/Life_empty.png-0adf786e78d4b12d461b0eb1e1990e81.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/Life_empty.png" -dest_files=["res://.godot/imported/Life_empty.png-0adf786e78d4b12d461b0eb1e1990e81.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/Life_full.png b/DungeonShooting_Godot/resource/sprite/ui/Life_full.png deleted file mode 100644 index 983b566..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Life_full.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/Life_full.png.import b/DungeonShooting_Godot/resource/sprite/ui/Life_full.png.import deleted file mode 100644 index faffa5c..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Life_full.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://blywnftxn1cfd" -path="res://.godot/imported/Life_full.png-fb9a520bfad66b139d42ac2f023ffc04.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/Life_full.png" -dest_files=["res://.godot/imported/Life_full.png-fb9a520bfad66b139d42ac2f023ffc04.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/Life_half.png b/DungeonShooting_Godot/resource/sprite/ui/Life_half.png deleted file mode 100644 index 581f4a2..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Life_half.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/Life_half.png.import b/DungeonShooting_Godot/resource/sprite/ui/Life_half.png.import deleted file mode 100644 index e672f04..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Life_half.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cnnl07abi51ph" -path="res://.godot/imported/Life_half.png-db960c6dc9d158324f8b8c8db8be7d36.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/Life_half.png" -dest_files=["res://.godot/imported/Life_half.png-db960c6dc9d158324f8b8c8db8be7d36.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/RoomUi.png b/DungeonShooting_Godot/resource/sprite/ui/RoomUi.png deleted file mode 100644 index bd3445e..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/RoomUi.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/RoomUi.png.import b/DungeonShooting_Godot/resource/sprite/ui/RoomUi.png.import deleted file mode 100644 index a6e3722..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/RoomUi.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://8n8itmbee0oj" -path="res://.godot/imported/RoomUi.png-829b5ca7025f524836ffc10e6b98946a.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/RoomUi.png" -dest_files=["res://.godot/imported/RoomUi.png-829b5ca7025f524836ffc10e6b98946a.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/Shield_empty.png b/DungeonShooting_Godot/resource/sprite/ui/Shield_empty.png deleted file mode 100644 index f9c435e..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Shield_empty.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/Shield_empty.png.import b/DungeonShooting_Godot/resource/sprite/ui/Shield_empty.png.import deleted file mode 100644 index f8a3413..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Shield_empty.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://jtg0wkxir2w4" -path="res://.godot/imported/Shield_empty.png-9ad07f3ce895c2829d28d6052a42461b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/Shield_empty.png" -dest_files=["res://.godot/imported/Shield_empty.png-9ad07f3ce895c2829d28d6052a42461b.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/Shield_full.png b/DungeonShooting_Godot/resource/sprite/ui/Shield_full.png deleted file mode 100644 index ed0095b..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Shield_full.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/Shield_full.png.import b/DungeonShooting_Godot/resource/sprite/ui/Shield_full.png.import deleted file mode 100644 index 8c57956..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/Shield_full.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bhr8n3ytchbqi" -path="res://.godot/imported/Shield_full.png-5036f32a904683d2e732c6d6d0e7c23d.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/Shield_full.png" -dest_files=["res://.godot/imported/Shield_full.png-5036f32a904683d2e732c6d6d0e7c23d.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/healthBar.png b/DungeonShooting_Godot/resource/sprite/ui/healthBar.png deleted file mode 100644 index 7df8bfc..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/healthBar.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/healthBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/healthBar.png.import deleted file mode 100644 index 5d50463..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/healthBar.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://u5ul7fu8wv1a" -path="res://.godot/imported/healthBar.png-fd918cfe1c1dc3ff7cde08d44c5e3daf.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/healthBar.png" -dest_files=["res://.godot/imported/healthBar.png-fd918cfe1c1dc3ff7cde08d44c5e3daf.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/hpBar.png b/DungeonShooting_Godot/resource/sprite/ui/hpBar.png deleted file mode 100644 index c28030d..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/hpBar.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/hpBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/hpBar.png.import deleted file mode 100644 index b227b4f..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/hpBar.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bxd75tme0v3pb" -path="res://.godot/imported/hpBar.png-089166f44681996b6b959c41fed1de83.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/hpBar.png" -dest_files=["res://.godot/imported/hpBar.png-089166f44681996b6b959c41fed1de83.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/hpSlot.png b/DungeonShooting_Godot/resource/sprite/ui/hpSlot.png deleted file mode 100644 index 6f93842..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/hpSlot.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/hpSlot.png.import b/DungeonShooting_Godot/resource/sprite/ui/hpSlot.png.import deleted file mode 100644 index bf2c11a..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/hpSlot.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://djcdjrs07ighv" -path="res://.godot/imported/hpSlot.png-03029dcac2b929c5a4bb98c52cbb512e.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/hpSlot.png" -dest_files=["res://.godot/imported/hpSlot.png-03029dcac2b929c5a4bb98c52cbb512e.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_bullet.png b/DungeonShooting_Godot/resource/sprite/ui/icon/icon_bullet.png deleted file mode 100644 index 6afda7f..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_bullet.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_bullet.png.import b/DungeonShooting_Godot/resource/sprite/ui/icon/icon_bullet.png.import deleted file mode 100644 index 80a074a..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_bullet.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b67i86mtqrn32" -path="res://.godot/imported/icon_bullet.png-c2767feaa9ebe0084fe04f619ec7ad30.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/icon/icon_bullet.png" -dest_files=["res://.godot/imported/icon_bullet.png-c2767feaa9ebe0084fe04f619ec7ad30.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_pickup.png b/DungeonShooting_Godot/resource/sprite/ui/icon/icon_pickup.png deleted file mode 100644 index 617b0ae..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_pickup.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_pickup.png.import b/DungeonShooting_Godot/resource/sprite/ui/icon/icon_pickup.png.import deleted file mode 100644 index d1e2ec4..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_pickup.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://defqbeh0lufxq" -path="res://.godot/imported/icon_pickup.png-87270fcf0757cfa3230028f25ad3ee19.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/icon/icon_pickup.png" -dest_files=["res://.godot/imported/icon_pickup.png-87270fcf0757cfa3230028f25ad3ee19.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_replace.png b/DungeonShooting_Godot/resource/sprite/ui/icon/icon_replace.png deleted file mode 100644 index 640b4be..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_replace.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_replace.png.import b/DungeonShooting_Godot/resource/sprite/ui/icon/icon_replace.png.import deleted file mode 100644 index 99aacb8..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/icon/icon_replace.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dy6agj7ogwl4b" -path="res://.godot/imported/icon_replace.png-6e605c83622b5a2d459c2a9108a7d72a.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/icon/icon_replace.png" -dest_files=["res://.godot/imported/icon_replace.png-6e605c83622b5a2d459c2a9108a7d72a.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapBar.png b/DungeonShooting_Godot/resource/sprite/ui/mapBar.png deleted file mode 100644 index be17bb5..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/mapBar.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapBar.png.import deleted file mode 100644 index cb56ed3..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/mapBar.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://k621mhhkg65f" -path="res://.godot/imported/mapBar.png-d67f8bf7f1bb067a8fe1b6967d294e5c.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/mapBar.png" -dest_files=["res://.godot/imported/mapBar.png-d67f8bf7f1bb067a8fe1b6967d294e5c.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/reloadBar.png b/DungeonShooting_Godot/resource/sprite/ui/reloadBar.png deleted file mode 100644 index 0803903..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/reloadBar.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/reloadBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/reloadBar.png.import deleted file mode 100644 index 317230f..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/reloadBar.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cukrx5yyqw86o" -path="res://.godot/imported/reloadBar.png-4961e5f51bd5957a6e458f14c34d605f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/reloadBar.png" -dest_files=["res://.godot/imported/reloadBar.png-4961e5f51bd5957a6e458f14c34d605f.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/reloadBarBlock.png b/DungeonShooting_Godot/resource/sprite/ui/reloadBarBlock.png deleted file mode 100644 index a142dea..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/reloadBarBlock.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/reloadBarBlock.png.import b/DungeonShooting_Godot/resource/sprite/ui/reloadBarBlock.png.import deleted file mode 100644 index d5e87bb..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/reloadBarBlock.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cx3i1nkcc4307" -path="res://.godot/imported/reloadBarBlock.png-c10c376109299573ac366ca2224169dd.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/reloadBarBlock.png" -dest_files=["res://.godot/imported/reloadBarBlock.png-c10c376109299573ac366ca2224169dd.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgress.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgress.png new file mode 100644 index 0000000..6f2d7f7 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgress.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgress.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgress.png.import new file mode 100644 index 0000000..1af9ac6 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgress.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ck0w7at3oat5" +path="res://.godot/imported/ChargeProgress.png-a966b083a7f0e9adb2c3b308c3007e22.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/ChargeProgress.png" +dest_files=["res://.godot/imported/ChargeProgress.png-a966b083a7f0e9adb2c3b308c3007e22.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgressBar.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgressBar.png new file mode 100644 index 0000000..4891c5c --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgressBar.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgressBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgressBar.png.import new file mode 100644 index 0000000..a93ead2 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ChargeProgressBar.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwysndc5ffski" +path="res://.godot/imported/ChargeProgressBar.png-74d561037ef0bfb8e76d62f233513b79.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/ChargeProgressBar.png" +dest_files=["res://.godot/imported/ChargeProgressBar.png-74d561037ef0bfb8e76d62f233513b79.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Cooldown.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Cooldown.png new file mode 100644 index 0000000..1445214 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Cooldown.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Cooldown.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Cooldown.png.import new file mode 100644 index 0000000..55a9b93 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Cooldown.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsu7re1lxnr72" +path="res://.godot/imported/Cooldown.png-b977dc8c9e5e0d70e453236da5bb2f3d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Cooldown.png" +dest_files=["res://.godot/imported/Cooldown.png-b977dc8c9e5e0d70e453236da5bb2f3d.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_empty.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_empty.png new file mode 100644 index 0000000..855185f --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_empty.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_empty.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_empty.png.import new file mode 100644 index 0000000..17d4dbd --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_empty.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dv3qskyc0dcmy" +path="res://.godot/imported/Life_empty.png-70b3819b5f97ee464f3662671f30c9ca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Life_empty.png" +dest_files=["res://.godot/imported/Life_empty.png-70b3819b5f97ee464f3662671f30c9ca.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_full.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_full.png new file mode 100644 index 0000000..983b566 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_full.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_full.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_full.png.import new file mode 100644 index 0000000..ad92da2 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_full.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blywnftxn1cfd" +path="res://.godot/imported/Life_full.png-229f74d0d11185f153d4a79ece4fe5dd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Life_full.png" +dest_files=["res://.godot/imported/Life_full.png-229f74d0d11185f153d4a79ece4fe5dd.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_half.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_half.png new file mode 100644 index 0000000..581f4a2 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_half.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_half.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_half.png.import new file mode 100644 index 0000000..05401b4 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Life_half.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnnl07abi51ph" +path="res://.godot/imported/Life_half.png-c0db4f0210786ed564fa0c818120b553.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Life_half.png" +dest_files=["res://.godot/imported/Life_half.png-c0db4f0210786ed564fa0c818120b553.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/MapBar.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/MapBar.png new file mode 100644 index 0000000..be17bb5 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/MapBar.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/MapBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/MapBar.png.import new file mode 100644 index 0000000..38c02ed --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/MapBar.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://k621mhhkg65f" +path="res://.godot/imported/MapBar.png-b929285ef9227704736eaf783aa026b9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/MapBar.png" +dest_files=["res://.godot/imported/MapBar.png-b929285ef9227704736eaf783aa026b9.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel.png new file mode 100644 index 0000000..790a8ff --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel.png.import new file mode 100644 index 0000000..7451967 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0swkya4hn82c" +path="res://.godot/imported/Panel.png-6971b533d80a7f2da8f9dc29735e5297.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Panel.png" +dest_files=["res://.godot/imported/Panel.png-6971b533d80a7f2da8f9dc29735e5297.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png new file mode 100644 index 0000000..3c268a3 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png.import new file mode 100644 index 0000000..7e80777 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8u6s5n37157" +path="res://.godot/imported/Panel2.png-90481bd195612418c9b6e249156041ef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Panel2.png" +dest_files=["res://.godot/imported/Panel2.png-90481bd195612418c9b6e249156041ef.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBar.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBar.png new file mode 100644 index 0000000..0803903 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBar.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBar.png.import new file mode 100644 index 0000000..1cce9af --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBar.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cukrx5yyqw86o" +path="res://.godot/imported/ReloadBar.png-86f37f65aed8c32ab4aa781271d93098.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/ReloadBar.png" +dest_files=["res://.godot/imported/ReloadBar.png-86f37f65aed8c32ab4aa781271d93098.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBarBlock.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBarBlock.png new file mode 100644 index 0000000..a142dea --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBarBlock.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBarBlock.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBarBlock.png.import new file mode 100644 index 0000000..b69a084 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/ReloadBarBlock.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cx3i1nkcc4307" +path="res://.godot/imported/ReloadBarBlock.png-cf9b83cc7f1afa162fa47cdb4a4fd072.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/ReloadBarBlock.png" +dest_files=["res://.godot/imported/ReloadBarBlock.png-cf9b83cc7f1afa162fa47cdb4a4fd072.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_empty.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_empty.png new file mode 100644 index 0000000..f9c435e --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_empty.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_empty.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_empty.png.import new file mode 100644 index 0000000..ebbc9f0 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_empty.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jtg0wkxir2w4" +path="res://.godot/imported/Shield_empty.png-b1c2a5c3db8cd391be25c6780b68908a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Shield_empty.png" +dest_files=["res://.godot/imported/Shield_empty.png-b1c2a5c3db8cd391be25c6780b68908a.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_full.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_full.png new file mode 100644 index 0000000..ed0095b --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_full.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_full.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_full.png.import new file mode 100644 index 0000000..e260563 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Shield_full.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhr8n3ytchbqi" +path="res://.godot/imported/Shield_full.png-27737fe3019e9fbbcbe39832d7d1d1d8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Shield_full.png" +dest_files=["res://.godot/imported/Shield_full.png-27737fe3019e9fbbcbe39832d7d1d1d8.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_bullet.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_bullet.png new file mode 100644 index 0000000..e5f56d9 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_bullet.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_bullet.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_bullet.png.import new file mode 100644 index 0000000..204b41a --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_bullet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b67i86mtqrn32" +path="res://.godot/imported/icon_bullet.png-73a9184f834a317937e34f30a3077866.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/icon_bullet.png" +dest_files=["res://.godot/imported/icon_bullet.png-73a9184f834a317937e34f30a3077866.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_pickup.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_pickup.png new file mode 100644 index 0000000..8588bdd --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_pickup.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_pickup.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_pickup.png.import new file mode 100644 index 0000000..e284191 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_pickup.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://defqbeh0lufxq" +path="res://.godot/imported/icon_pickup.png-999581fda76ef45d7110fa7eddd1fbdc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/icon_pickup.png" +dest_files=["res://.godot/imported/icon_pickup.png-999581fda76ef45d7110fa7eddd1fbdc.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_replace.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_replace.png new file mode 100644 index 0000000..8129c52 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_replace.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_replace.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_replace.png.import new file mode 100644 index 0000000..877b927 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/icon_replace.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dy6agj7ogwl4b" +path="res://.godot/imported/icon_replace.png-6f4af84637234fb9af6615a381704ed6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/icon_replace.png" +dest_files=["res://.godot/imported/icon_replace.png-6f4af84637234fb9af6615a381704ed6.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/shieldBar.png b/DungeonShooting_Godot/resource/sprite/ui/shieldBar.png deleted file mode 100644 index 650d354..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/shieldBar.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/shieldBar.png.import b/DungeonShooting_Godot/resource/sprite/ui/shieldBar.png.import deleted file mode 100644 index dacd0b3..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/shieldBar.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://h25j6uka74tv" -path="res://.godot/imported/shieldBar.png-093bd9bf980cb2c0cee0b033de727a12.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/shieldBar.png" -dest_files=["res://.godot/imported/shieldBar.png-093bd9bf980cb2c0cee0b033de727a12.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/shieldSlot.png b/DungeonShooting_Godot/resource/sprite/ui/shieldSlot.png deleted file mode 100644 index 8486c17..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/shieldSlot.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/shieldSlot.png.import b/DungeonShooting_Godot/resource/sprite/ui/shieldSlot.png.import deleted file mode 100644 index e0504d7..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/shieldSlot.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dnpguajopuyd7" -path="res://.godot/imported/shieldSlot.png-b05866327c1a09631a522d084d9ba831.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/shieldSlot.png" -dest_files=["res://.godot/imported/shieldSlot.png-b05866327c1a09631a522d084d9ba831.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 diff --git a/DungeonShooting_Godot/resource/sprite/ui/template-ui.png b/DungeonShooting_Godot/resource/sprite/ui/template-ui.png deleted file mode 100644 index 69f40fb..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/template-ui.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/template-ui.png.import b/DungeonShooting_Godot/resource/sprite/ui/template-ui.png.import deleted file mode 100644 index d15586a..0000000 --- a/DungeonShooting_Godot/resource/sprite/ui/template-ui.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://xsh0rx6qpted" -path="res://.godot/imported/template-ui.png-53af29ee4ca2b778b4ce3b198469ccad.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/ui/template-ui.png" -dest_files=["res://.godot/imported/template-ui.png-53af29ee4ca2b778b4ce3b198469ccad.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 diff --git a/DungeonShooting_Godot/resource/sprite/weapon/knife1.png b/DungeonShooting_Godot/resource/sprite/weapon/knife1.png index a75464a..cf38cf3 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/knife1.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/knife1.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0001/Weapon0001.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0001/Weapon0001.png index a8d9384..6281ab9 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0001/Weapon0001.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0001/Weapon0001.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002.png index 68a0336..2adc3f6 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002_reloading.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002_reloading.png index 90b10e7..2205696 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002_reloading.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0002/Weapon0002_reloading.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0003/Weapon0003.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0003/Weapon0003.png index 3c0c458..dc1b4e6 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0003/Weapon0003.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0003/Weapon0003.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0005/Weapon0005.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0005/Weapon0005.png index dd42c8a..fee244f 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0005/Weapon0005.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0005/Weapon0005.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0006/Weapon0006.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0006/Weapon0006.png index 900b2e0..0c5d414 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0006/Weapon0006.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0006/Weapon0006.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0007/Weapon0007.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0007/Weapon0007.png new file mode 100644 index 0000000..979a075 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0007/Weapon0007.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0007/Weapon0007.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0007/Weapon0007.png.import new file mode 100644 index 0000000..ed4a3fc --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0007/Weapon0007.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dad448pfvadyg" +path="res://.godot/imported/Weapon0007.png-dbce587059a3277ffd9a6a8070793a23.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0007/Weapon0007.png" +dest_files=["res://.godot/imported/Weapon0007.png-dbce587059a3277ffd9a6a8070793a23.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 diff --git a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0001.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0001.tres index 6af29a8..b8cfbc6 100644 --- a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0001.tres +++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0001.tres @@ -1,6 +1,7 @@ [gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://baoxep7vami72"] -[ext_resource type="Texture2D" uid="uid://bu0b11hiuecxy" path="res://resource/sprite/bullet/bullet.png" id="1_ktu7r"] +[ext_resource type="Texture2D" uid="uid://bu0b11hiuecxy" path="res://resource/sprite/bullet/bullet0001.png" id="1_ktu7r"] + [resource] animations = [{ diff --git a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0002.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0002.tres index cb31134..635a03b 100644 --- a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0002.tres +++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0002.tres @@ -1,6 +1,6 @@ [gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bpeodjqiy3mil"] -[ext_resource type="Texture2D" uid="uid://ctsvj4y1t538u" path="res://resource/sprite/bullet/bullet3.png" id="1_53f3g"] +[ext_resource type="Texture2D" uid="uid://ctsvj4y1t538u" path="res://resource/sprite/bullet/bullet0002.png" id="1_53f3g"] [resource] animations = [{ diff --git a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0003.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0003.tres new file mode 100644 index 0000000..2e724e8 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0003.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bcnhyin0aufl1"] + +[ext_resource type="Texture2D" uid="uid://cs6pa7h8ffvy4" path="res://resource/sprite/bullet/bullet0003.png" id="1_sl01e"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_sl01e") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/active/ActiveProp5000.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/active/ActiveProp5000.tres new file mode 100644 index 0000000..a1ecdb8 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/active/ActiveProp5000.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://cvosq47nbdnus"] + +[ext_resource type="Texture2D" uid="uid://cu0wlvrbntvyd" path="res://resource/sprite/prop/active/ActiveProp5000.png" id="1_mkqgb"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_mkqgb") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/active/ActiveProp5001.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/active/ActiveProp5001.tres new file mode 100644 index 0000000..c5cf932 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/active/ActiveProp5001.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bbjyakayescy5"] + +[ext_resource type="Texture2D" uid="uid://fby848tbodc" path="res://resource/sprite/prop/active/ActiveProp5001.png" id="1_1xlxo"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_1xlxo") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0001.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0001.tres deleted file mode 100644 index 6a0ec5f..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0001.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://wtvfyprel72y"] - -[ext_resource type="Texture2D" uid="uid://bls55gj8h3mgv" path="res://resource/sprite/prop/buff/Buff0001.png" id="1_scm06"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_scm06") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0002.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0002.tres deleted file mode 100644 index 10e71f0..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0002.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://7t57gsyff470"] - -[ext_resource type="Texture2D" uid="uid://cv2joc07ymofw" path="res://resource/sprite/prop/buff/Buff0002.png" id="1_8nnhb"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_8nnhb") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0003.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0003.tres deleted file mode 100644 index ee3770b..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0003.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://nqoieett75t3"] - -[ext_resource type="Texture2D" uid="uid://osr0v1c6l8ly" path="res://resource/sprite/prop/buff/Buff0003.png" id="1_p16yr"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_p16yr") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0004.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0004.tres deleted file mode 100644 index 05d16c9..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0004.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bj0k3pipwp46x"] - -[ext_resource type="Texture2D" uid="uid://c0c25nihdcgt1" path="res://resource/sprite/prop/buff/Buff0004.png" id="1_a2o8b"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_a2o8b") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0005.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0005.tres deleted file mode 100644 index 541aa71..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0005.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bvqp46degt1rg"] - -[ext_resource type="Texture2D" uid="uid://dse0mbg06ngya" path="res://resource/sprite/prop/buff/Buff0005.png" id="1_en8jo"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_en8jo") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0006.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0006.tres deleted file mode 100644 index 5939146..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0006.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bxn65oovekw6k"] - -[ext_resource type="Texture2D" uid="uid://do8blk3xm5uy1" path="res://resource/sprite/prop/buff/Buff0006.png" id="1_ugsdc"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_ugsdc") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0007.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0007.tres deleted file mode 100644 index 49ef0b6..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0007.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://et840sb4d1g3"] - -[ext_resource type="Texture2D" uid="uid://fql5q452jqo0" path="res://resource/sprite/prop/buff/Buff0007.png" id="1_p5fwh"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_p5fwh") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0008.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0008.tres deleted file mode 100644 index d41f23c..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0008.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bs41p1hpkpucb"] - -[ext_resource type="Texture2D" uid="uid://cn8f56vjb02u2" path="res://resource/sprite/prop/buff/Buff0008.png" id="1_7efyb"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_7efyb") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0009.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0009.tres deleted file mode 100644 index be6489f..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0009.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://sqcibio78nwc"] - -[ext_resource type="Texture2D" uid="uid://csak48bvrnws" path="res://resource/sprite/prop/buff/Buff0009.png" id="1_78egk"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_78egk") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0010.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0010.tres deleted file mode 100644 index c5a3629..0000000 --- a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/Buff0010.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://dxqtm7xgn2wms"] - -[ext_resource type="Texture2D" uid="uid://dlsfun6svqfmm" path="res://resource/sprite/prop/buff/Buff0010.png" id="1_w8rnu"] - -[resource] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("1_w8rnu") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0001.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0001.tres new file mode 100644 index 0000000..2aa87fd --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0001.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://wtvfyprel72y"] + +[ext_resource type="Texture2D" uid="uid://bls55gj8h3mgv" path="res://resource/sprite/prop/buff/BuffProp0001.png" id="1_scm06"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_scm06") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0002.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0002.tres new file mode 100644 index 0000000..330307d --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0002.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://7t57gsyff470"] + +[ext_resource type="Texture2D" uid="uid://cv2joc07ymofw" path="res://resource/sprite/prop/buff/BuffProp0002.png" id="1_8nnhb"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_8nnhb") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0003.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0003.tres new file mode 100644 index 0000000..ae7484c --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0003.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://nqoieett75t3"] + +[ext_resource type="Texture2D" uid="uid://osr0v1c6l8ly" path="res://resource/sprite/prop/buff/BuffProp0003.png" id="1_p16yr"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_p16yr") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0004.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0004.tres new file mode 100644 index 0000000..d1948b0 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0004.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bj0k3pipwp46x"] + +[ext_resource type="Texture2D" uid="uid://c0c25nihdcgt1" path="res://resource/sprite/prop/buff/BuffProp0004.png" id="1_a2o8b"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_a2o8b") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0005.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0005.tres new file mode 100644 index 0000000..89844f2 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0005.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bvqp46degt1rg"] + +[ext_resource type="Texture2D" uid="uid://dse0mbg06ngya" path="res://resource/sprite/prop/buff/BuffProp0005.png" id="1_en8jo"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_en8jo") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0006.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0006.tres new file mode 100644 index 0000000..ec1f5a5 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0006.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bxn65oovekw6k"] + +[ext_resource type="Texture2D" uid="uid://do8blk3xm5uy1" path="res://resource/sprite/prop/buff/BuffProp0006.png" id="1_ugsdc"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_ugsdc") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0007.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0007.tres new file mode 100644 index 0000000..cea9375 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0007.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://et840sb4d1g3"] + +[ext_resource type="Texture2D" uid="uid://fql5q452jqo0" path="res://resource/sprite/prop/buff/BuffProp0007.png" id="1_p5fwh"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_p5fwh") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0008.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0008.tres new file mode 100644 index 0000000..3022e83 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0008.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bs41p1hpkpucb"] + +[ext_resource type="Texture2D" uid="uid://cn8f56vjb02u2" path="res://resource/sprite/prop/buff/BuffProp0008.png" id="1_7efyb"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_7efyb") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0009.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0009.tres new file mode 100644 index 0000000..53977ec --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0009.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://sqcibio78nwc"] + +[ext_resource type="Texture2D" uid="uid://csak48bvrnws" path="res://resource/sprite/prop/buff/BuffProp0009.png" id="1_78egk"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_78egk") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0010.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0010.tres new file mode 100644 index 0000000..b15cc45 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0010.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://dxqtm7xgn2wms"] + +[ext_resource type="Texture2D" uid="uid://dlsfun6svqfmm" path="res://resource/sprite/prop/buff/BuffProp0010.png" id="1_w8rnu"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_w8rnu") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0007.tres b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0007.tres new file mode 100644 index 0000000..9fb12d9 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0007.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://xxyokrbt10xm"] + +[ext_resource type="Texture2D" uid="uid://dad448pfvadyg" path="res://resource/sprite/weapon/weapon0007/Weapon0007.png" id="1_3ohcf"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_3ohcf") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres index 964879f..895ea5d 100644 --- a/DungeonShooting_Godot/resource/theme/mainTheme.tres +++ b/DungeonShooting_Godot/resource/theme/mainTheme.tres @@ -352,7 +352,7 @@ [sub_resource type="ImageTexture" id="58"] -[sub_resource type="Image" id="Image_3bquq"] +[sub_resource type="Image" id="Image_wuwj5"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -362,7 +362,7 @@ } [sub_resource type="ImageTexture" id="60"] -image = SubResource("Image_3bquq") +image = SubResource("Image_wuwj5") [sub_resource type="StyleBoxTexture" id="61"] content_margin_left = 2.0 @@ -372,7 +372,7 @@ texture = SubResource("60") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_k64s6"] +[sub_resource type="Image" id="Image_nrr6i"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -382,7 +382,7 @@ } [sub_resource type="ImageTexture" id="63"] -image = SubResource("Image_k64s6") +image = SubResource("Image_nrr6i") [sub_resource type="StyleBoxTexture" id="64"] content_margin_left = 2.0 @@ -392,7 +392,7 @@ texture = SubResource("63") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_yqyxc"] +[sub_resource type="Image" id="Image_qxe4e"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -402,7 +402,7 @@ } [sub_resource type="ImageTexture" id="66"] -image = SubResource("Image_yqyxc") +image = SubResource("Image_qxe4e") [sub_resource type="StyleBoxTexture" id="67"] content_margin_left = 2.0 @@ -412,7 +412,7 @@ texture = SubResource("66") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_8yymi"] +[sub_resource type="Image" id="Image_iplm4"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -422,7 +422,7 @@ } [sub_resource type="ImageTexture" id="69"] -image = SubResource("Image_8yymi") +image = SubResource("Image_iplm4") [sub_resource type="StyleBoxTexture" id="70"] content_margin_left = 0.0 @@ -446,7 +446,7 @@ content_margin_right = 4.0 content_margin_bottom = 4.0 -[sub_resource type="Image" id="Image_0f2x1"] +[sub_resource type="Image" id="Image_trdur"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 228, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 228, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 18, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 17, 255, 255, 255, 186, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 191, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 186, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 189, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 77, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 77, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -456,7 +456,7 @@ } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_0f2x1") +image = SubResource("Image_trdur") [sub_resource type="StyleBoxFlat" id="57"] content_margin_left = 6.0 diff --git a/DungeonShooting_Godot/scene/Main.tscn b/DungeonShooting_Godot/scene/Main.tscn index aeba075..e9ab17e 100644 --- a/DungeonShooting_Godot/scene/Main.tscn +++ b/DungeonShooting_Godot/scene/Main.tscn @@ -26,6 +26,7 @@ SubViewportContainer = NodePath("ViewCanvas/SubViewportContainer") SceneRoot = NodePath("ViewCanvas/SubViewportContainer/SubViewport/SceneRoot") GlobalNodeRoot = NodePath("GlobalNodeRoot") +metadata/_edit_vertical_guides_ = [] [node name="ViewCanvas" type="CanvasLayer" parent="."] layer = -1 diff --git a/DungeonShooting_Godot/scene/World.tscn b/DungeonShooting_Godot/scene/World.tscn index 6c3084b..2be89e7 100644 --- a/DungeonShooting_Godot/scene/World.tscn +++ b/DungeonShooting_Godot/scene/World.tscn @@ -1,13 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://bqf2vks5ggnsp"] +[gd_scene load_steps=3 format=3 uid="uid://bqf2vks5ggnsp"] [ext_resource type="Script" path="res://src/game/room/World.cs" id="1_kt3mm"] [ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="2_p6iui"] -[sub_resource type="Environment" id="Environment_ji6mi"] -background_mode = 3 -glow_enabled = true -glow_intensity = 4.74 - [node name="World" type="Node2D" node_paths=PackedStringArray("NormalLayer", "YSortLayer", "TileRoot", "StaticSpriteRoot", "AffiliationAreaRoot")] script = ExtResource("1_kt3mm") NormalLayer = NodePath("NormalLayer") @@ -17,9 +12,6 @@ AffiliationAreaRoot = NodePath("AffiliationAreaRoot") metadata/_edit_vertical_guides_ = [] -[node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource("Environment_ji6mi") - [node name="TileRoot" type="TileMap" parent="."] y_sort_enabled = true tile_set = ExtResource("2_p6iui") diff --git a/DungeonShooting_Godot/scene/test/TestOutline.tscn b/DungeonShooting_Godot/scene/test/TestOutline.tscn new file mode 100644 index 0000000..bced176 --- /dev/null +++ b/DungeonShooting_Godot/scene/test/TestOutline.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://bbwws7qlqlc0m"] + +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_r82n1"] +[ext_resource type="Texture2D" uid="uid://bls55gj8h3mgv" path="res://resource/sprite/prop/buff/BuffProp0001.png" id="2_yce7u"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_lhoej"] +shader = ExtResource("1_r82n1") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false + +[node name="TestOutline" type="CharacterBody2D"] +metadata/_edit_vertical_guides_ = [-9.0] +metadata/_edit_horizontal_guides_ = [-7.0] + +[node name="Sprite2D" type="Sprite2D" parent="."] +material = SubResource("ShaderMaterial_lhoej") +position = Vector2(1, 0) +texture = ExtResource("2_yce7u") diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs index 6d84ded..e638ed1 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs @@ -204,7 +204,60 @@ /// 所在的 World 对象 /// public World World { get; private set; } - + + /// + /// 是否开启描边 + /// + public bool ShowOutline + { + get => _showOutline; + set + { + if (_blendShaderMaterial != null) + { + if (value != _showOutline) + { + _blendShaderMaterial.SetShaderParameter("show_outline", value); + if (_shadowBlendShaderMaterial != null) + { + _shadowBlendShaderMaterial.SetShaderParameter("show_outline", value); + } + _showOutline = value; + } + } + } + } + + /// + /// 描边颜色 + /// + public Color OutlineColor + { + get + { + if (!_initOutlineColor) + { + _initOutlineColor = true; + if (_blendShaderMaterial != null) + { + _outlineColor = _blendShaderMaterial.GetShaderParameter("outline_color").AsColor(); + } + } + + return _outlineColor; + } + set + { + _initOutlineColor = true; + if (value != _outlineColor) + { + _blendShaderMaterial.SetShaderParameter("outline_color", value); + } + + _outlineColor = value; + } + } + // -------------------------------------------------------------------------------- //组件集合 @@ -264,6 +317,13 @@ //实例索引 private static long _instanceIndex = 0; + //是否启用描边 + private bool _showOutline = false; + + //描边颜色 + private bool _initOutlineColor = false; + private Color _outlineColor = new Color(0, 0, 0, 1); + //初始化节点 private void _InitNode(RegisterActivityData activityData, World world) { @@ -281,6 +341,16 @@ Name = GetType().Name + (_instanceIndex++); _blendShaderMaterial = AnimatedSprite.Material as ShaderMaterial; _shadowBlendShaderMaterial = ShadowSprite.Material as ShaderMaterial; + if (_blendShaderMaterial != null) + { + _showOutline = _blendShaderMaterial.GetShaderParameter("show_outline").AsBool(); + } + + if (_shadowBlendShaderMaterial != null) + { + _shadowBlendShaderMaterial.SetShaderParameter("show_outline", _showOutline); + } + ShadowSprite.Visible = false; MotionMode = MotionModeEnum.Floating; MoveController = AddComponent(); @@ -748,20 +818,20 @@ } /// - /// 设置透明度 + /// 设置混色颜色 /// - public void SetBlendAlpha(float value) + public void SetBlendModulate(Color color) { - _blendShaderMaterial.SetShaderParameter("alpha", value); - _shadowBlendShaderMaterial.SetShaderParameter("alpha", value); + _blendShaderMaterial.SetShaderParameter("modulate", color); + _shadowBlendShaderMaterial.SetShaderParameter("modulate", color); } /// - /// 获取透明度 + /// 获取混色颜色 /// - public float SetBlendAlpha() + public Color SetBlendModulate() { - return _blendShaderMaterial.GetShaderParameter("alpha").AsSingle(); + return _blendShaderMaterial.GetShaderParameter("modulate").AsColor(); } /// diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs deleted file mode 100644 index cea2ecc..0000000 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObjectTemplate.cs +++ /dev/null @@ -1,127 +0,0 @@ -// using Godot; -// -// /// -// /// ActivityObject 节点模板对象 -// /// -// [Tool] -// public partial class ActivityObjectTemplate : Node -// { -// // /// -// // /// 默认放入的层级 -// // /// -// // [Export] public RoomLayerEnum DefaultLayer = RoomLayerEnum.NormalLayer; -// -// /// -// /// 是否是静态物体 -// /// -// [Export] public bool IsStatic = false; -// -// /// -// /// 物体初始缩放 -// /// -// [Export] public Vector2 scale = Vector2.One; -// -// /// -// /// 当前物体所属物理层 -// /// -// [Export(PropertyHint.Layers2DPhysics)] public uint collision_layer; -// -// /// -// /// 当前物体扫描的物理层 -// /// -// [Export(PropertyHint.Layers2DPhysics)] public uint collision_mask; -// -// /// -// /// 显示状态 -// /// -// [Export] public bool visible = true; -// -// /// -// /// 当前物体渲染层级 -// /// -// [Export] public int z_index; -// -// public override void _Ready() -// { -// #if TOOLS -// // 在工具模式下创建的 template 节点自动创建对应的必要子节点 -// if (Engine.IsEditorHint()) -// { -// var parent = GetParent(); -// if (parent != null) -// { -// //寻找 owner -// Node owner; -// if (parent.Owner != null) -// { -// owner = parent.Owner; -// } -// else if (Plugin.Plugin.Instance.GetEditorInterface().GetEditedSceneRoot() == this) -// { -// owner = this; -// } -// else -// { -// owner = parent; -// } -// -// var sprite = GetNodeOrNull("ShadowSprite"); -// //创建Shadow -// if (sprite == null) -// { -// sprite = new Sprite2D(); -// sprite.Name = "ShadowSprite"; -// sprite.ZIndex = -1; -// var material = -// ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); -// material.SetShaderParameter("blend", new Color(0, 0, 0, 0.47058824F)); -// material.SetShaderParameter("schedule", 1); -// sprite.Material = material; -// AddChild(sprite); -// sprite.Owner = owner; -// } -// else if (sprite.Material == null) -// { -// var material = -// ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); -// material.SetShaderParameter("blend", new Color(0, 0, 0, 0.47058824F)); -// material.SetShaderParameter("schedule", 1); -// sprite.Material = material; -// } -// -// var animatedSprite = GetNodeOrNull("AnimatedSprite"); -// //创建 Sprite2D -// if (animatedSprite == null) -// { -// animatedSprite = new AnimatedSprite2D(); -// animatedSprite.Name = "AnimatedSprite"; -// var material = -// ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); -// material.SetShaderParameter("blend", new Color(1, 1, 1, 1)); -// material.SetShaderParameter("schedule", 0); -// animatedSprite.Material = material; -// AddChild(animatedSprite); -// animatedSprite.Owner = owner; -// } -// else if (animatedSprite.Material == null) -// { -// var material = -// ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); -// material.SetShaderParameter("blend", new Color(1, 1, 1, 1)); -// material.SetShaderParameter("schedule", 0); -// animatedSprite.Material = material; -// } -// -// //创建Collision -// if (GetNodeOrNull("Collision") == null) -// { -// var co = new CollisionShape2D(); -// co.Name = "Collision"; -// AddChild(co); -// co.Owner = owner; -// } -// } -// } -// #endif -// } -// } diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_EditorTool.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_EditorTool.cs index cbc700a..69f87b8 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_EditorTool.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_EditorTool.cs @@ -31,7 +31,7 @@ ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); material.SetShaderParameter("blend", new Color(0, 0, 0, 0.47058824F)); material.SetShaderParameter("schedule", 1); - material.SetShaderParameter("alpha", 1); + material.SetShaderParameter("modulate", new Color(1, 1, 1, 1)); sprite.Material = material; } } @@ -45,7 +45,7 @@ ResourceManager.Load(ResourcePath.resource_material_Blend_tres, false); material.SetShaderParameter("blend", new Color(1, 1, 1, 1)); material.SetShaderParameter("schedule", 0); - material.SetShaderParameter("alpha", 1); + material.SetShaderParameter("modulate", new Color(1, 1, 1, 1)); animatedSprite.Material = material; } } @@ -58,6 +58,7 @@ } } +#if TOOLS private void _InitNodeInEditor() { var parent = GetParent(); @@ -188,4 +189,5 @@ return null; } +#endif } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs index 22e31f1..72e6d35 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs @@ -51,6 +51,11 @@ /// public const string Id_weapon0006 = "weapon0006"; /// + /// 名称: 汤姆逊冲锋枪
+ /// 备注: + ///
+ public const string Id_weapon0007 = "weapon0007"; + /// /// 名称:
/// 备注: ///
@@ -64,6 +69,11 @@ /// 名称:
/// 备注: /// + public const string Id_bullet0003 = "bullet0003"; + /// + /// 名称:
+ /// 备注: + ///
public const string Id_shell0001 = "shell0001"; /// /// 名称:
@@ -131,6 +141,16 @@ ///
public const string Id_prop0010 = "prop0010"; /// + /// 名称: 医药箱
+ /// 备注: 使用后回复一颗红心 + ///
+ public const string Id_prop5000 = "prop5000"; + /// + /// 名称: 弹药箱
+ /// 备注: 使用后补充当前武器备用弹药 + ///
+ public const string Id_prop5001 = "prop5001"; + /// /// 名称:
/// 备注: 地牢房间的门(东侧) ///
@@ -161,22 +181,26 @@ _activityRegisterMap.Add("weapon0004", new RegisterActivityData("res://prefab/weapon/Weapon0004.tscn", ExcelConfig.ActivityObject_Map["weapon0004"])); _activityRegisterMap.Add("weapon0005", new RegisterActivityData("res://prefab/weapon/Weapon0005.tscn", ExcelConfig.ActivityObject_Map["weapon0005"])); _activityRegisterMap.Add("weapon0006", new RegisterActivityData("res://prefab/weapon/Weapon0006.tscn", ExcelConfig.ActivityObject_Map["weapon0006"])); + _activityRegisterMap.Add("weapon0007", new RegisterActivityData("res://prefab/weapon/Weapon0007.tscn", ExcelConfig.ActivityObject_Map["weapon0007"])); _activityRegisterMap.Add("bullet0001", new RegisterActivityData("res://prefab/bullet/Bullet0001.tscn", ExcelConfig.ActivityObject_Map["bullet0001"])); _activityRegisterMap.Add("bullet0002", new RegisterActivityData("res://prefab/bullet/Bullet0002.tscn", ExcelConfig.ActivityObject_Map["bullet0002"])); + _activityRegisterMap.Add("bullet0003", new RegisterActivityData("res://prefab/bullet/Bullet0003.tscn", ExcelConfig.ActivityObject_Map["bullet0003"])); _activityRegisterMap.Add("shell0001", new RegisterActivityData("res://prefab/shell/Shell0001.tscn", ExcelConfig.ActivityObject_Map["shell0001"])); _activityRegisterMap.Add("shell0002", new RegisterActivityData("res://prefab/shell/Shell0002.tscn", ExcelConfig.ActivityObject_Map["shell0002"])); _activityRegisterMap.Add("shell0003", new RegisterActivityData("res://prefab/shell/Shell0003.tscn", ExcelConfig.ActivityObject_Map["shell0003"])); _activityRegisterMap.Add("effect0001", new RegisterActivityData("res://prefab/effect/activityObject/Effect0001.tscn", ExcelConfig.ActivityObject_Map["effect0001"])); - _activityRegisterMap.Add("prop0001", new RegisterActivityData("res://prefab/prop/buff/Buff0001.tscn", ExcelConfig.ActivityObject_Map["prop0001"])); - _activityRegisterMap.Add("prop0002", new RegisterActivityData("res://prefab/prop/buff/Buff0002.tscn", ExcelConfig.ActivityObject_Map["prop0002"])); - _activityRegisterMap.Add("prop0003", new RegisterActivityData("res://prefab/prop/buff/Buff0003.tscn", ExcelConfig.ActivityObject_Map["prop0003"])); - _activityRegisterMap.Add("prop0004", new RegisterActivityData("res://prefab/prop/buff/Buff0004.tscn", ExcelConfig.ActivityObject_Map["prop0004"])); - _activityRegisterMap.Add("prop0005", new RegisterActivityData("res://prefab/prop/buff/Buff0005.tscn", ExcelConfig.ActivityObject_Map["prop0005"])); - _activityRegisterMap.Add("prop0006", new RegisterActivityData("res://prefab/prop/buff/Buff0006.tscn", ExcelConfig.ActivityObject_Map["prop0006"])); - _activityRegisterMap.Add("prop0007", new RegisterActivityData("res://prefab/prop/buff/Buff0007.tscn", ExcelConfig.ActivityObject_Map["prop0007"])); - _activityRegisterMap.Add("prop0008", new RegisterActivityData("res://prefab/prop/buff/Buff0008.tscn", ExcelConfig.ActivityObject_Map["prop0008"])); - _activityRegisterMap.Add("prop0009", new RegisterActivityData("res://prefab/prop/buff/Buff0009.tscn", ExcelConfig.ActivityObject_Map["prop0009"])); - _activityRegisterMap.Add("prop0010", new RegisterActivityData("res://prefab/prop/buff/Buff0010.tscn", ExcelConfig.ActivityObject_Map["prop0010"])); + _activityRegisterMap.Add("prop0001", new RegisterActivityData("res://prefab/prop/buff/BuffProp0001.tscn", ExcelConfig.ActivityObject_Map["prop0001"])); + _activityRegisterMap.Add("prop0002", new RegisterActivityData("res://prefab/prop/buff/BuffProp0002.tscn", ExcelConfig.ActivityObject_Map["prop0002"])); + _activityRegisterMap.Add("prop0003", new RegisterActivityData("res://prefab/prop/buff/BuffProp0003.tscn", ExcelConfig.ActivityObject_Map["prop0003"])); + _activityRegisterMap.Add("prop0004", new RegisterActivityData("res://prefab/prop/buff/BuffProp0004.tscn", ExcelConfig.ActivityObject_Map["prop0004"])); + _activityRegisterMap.Add("prop0005", new RegisterActivityData("res://prefab/prop/buff/BuffProp0005.tscn", ExcelConfig.ActivityObject_Map["prop0005"])); + _activityRegisterMap.Add("prop0006", new RegisterActivityData("res://prefab/prop/buff/BuffProp0006.tscn", ExcelConfig.ActivityObject_Map["prop0006"])); + _activityRegisterMap.Add("prop0007", new RegisterActivityData("res://prefab/prop/buff/BuffProp0007.tscn", ExcelConfig.ActivityObject_Map["prop0007"])); + _activityRegisterMap.Add("prop0008", new RegisterActivityData("res://prefab/prop/buff/BuffProp0008.tscn", ExcelConfig.ActivityObject_Map["prop0008"])); + _activityRegisterMap.Add("prop0009", new RegisterActivityData("res://prefab/prop/buff/BuffProp0009.tscn", ExcelConfig.ActivityObject_Map["prop0009"])); + _activityRegisterMap.Add("prop0010", new RegisterActivityData("res://prefab/prop/buff/BuffProp0010.tscn", ExcelConfig.ActivityObject_Map["prop0010"])); + _activityRegisterMap.Add("prop5000", new RegisterActivityData("res://prefab/prop/active/ActiveProp5000.tscn", ExcelConfig.ActivityObject_Map["prop5000"])); + _activityRegisterMap.Add("prop5001", new RegisterActivityData("res://prefab/prop/active/ActiveProp5001.tscn", ExcelConfig.ActivityObject_Map["prop5001"])); _activityRegisterMap.Add("other_door_e", new RegisterActivityData("res://prefab/map/RoomDoor_E.tscn", ExcelConfig.ActivityObject_Map["other_door_e"])); _activityRegisterMap.Add("other_door_w", new RegisterActivityData("res://prefab/map/RoomDoor_W.tscn", ExcelConfig.ActivityObject_Map["other_door_w"])); _activityRegisterMap.Add("other_door_s", new RegisterActivityData("res://prefab/map/RoomDoor_S.tscn", ExcelConfig.ActivityObject_Map["other_door_s"])); diff --git a/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs b/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs index 7603ef9..99b1296 100644 --- a/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs +++ b/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs @@ -1,9 +1,27 @@ +using Godot; + /// /// 检测互动返回的数据集 /// public class CheckInteractiveResult { + public enum InteractiveType + { + /// + /// 拾起物体 + /// + PickUp, + /// + /// 拾起弹药 + /// + Bullet, + /// + /// 替换 + /// + Replace, + } + /// /// 互动物体 /// @@ -11,11 +29,11 @@ /// /// 是否可以互动 /// - public bool CanInteractive; + public bool CanInteractive = false; /// - /// 互动提示显示的图标 + /// 互动提示类型 /// - public string ShowIcon; + public InteractiveType Type = InteractiveType.PickUp; public CheckInteractiveResult(ActivityObject target) { @@ -28,10 +46,44 @@ CanInteractive = canInteractive; } - public CheckInteractiveResult(ActivityObject target, bool canInteractive, string showIcon) + public CheckInteractiveResult(ActivityObject target, bool canInteractive, InteractiveType type) { Target = target; CanInteractive = canInteractive; - ShowIcon = showIcon; + Type = type; + } + + /// + /// 互动提示显示的图标 + /// + public Texture2D GetIcon() + { + if (!_init) + { + Init(); + } + switch (Type) + { + case InteractiveType.PickUp: + return _pickUpIcon; + case InteractiveType.Bullet: + return _bulletIcon; + case InteractiveType.Replace: + return _replaceIcon; + } + + return null; + } + + private static Texture2D _pickUpIcon; + private static Texture2D _bulletIcon; + private static Texture2D _replaceIcon; + private static bool _init = false; + private static void Init() + { + _init = true; + _pickUpIcon = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_icon_pickup_png); + _bulletIcon = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_icon_bullet_png); + _replaceIcon = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_icon_replace_png); } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs b/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs index 7ce0a33..73409c4 100644 --- a/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs @@ -1,4 +1,6 @@ +#if TOOLS + using System; using System.Collections.Generic; using System.IO; @@ -64,13 +66,11 @@ //生成 UiManager_Methods.cs 代码 UiManagerMethodsGenerator.Generate(); -#if TOOLS //打开房间 if (open) { Plugin.Plugin.Instance.GetEditorInterface().OpenSceneFromPath(prefabResPath); - } -#endif + } } catch (Exception e) { @@ -266,4 +266,7 @@ return name; } -} \ No newline at end of file +} + + +#endif \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs b/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs index 2fb744f..b03896f 100644 --- a/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs @@ -1,4 +1,6 @@ -using System; +#if TOOLS + +using System; using System.IO; using System.Text.Json; using Godot; @@ -76,4 +78,6 @@ File.WriteAllText("src/framework/activity/ActivityObject_Init.cs", str); } -} \ No newline at end of file +} + +#endif \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs b/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs index 7253865..c824d0f 100644 --- a/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs @@ -1,3 +1,4 @@ +#if TOOLS using System; using System.IO; @@ -123,4 +124,6 @@ } } -} \ No newline at end of file +} + +#endif \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs b/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs index 7f7e6fa..5b806ca 100644 --- a/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs @@ -1,3 +1,4 @@ +#if TOOLS using System; using System.Collections.Generic; @@ -74,13 +75,13 @@ //生成 UiManager_Methods.cs 代码 UiManagerMethodsGenerator.Generate(); -#if TOOLS + //打开ui if (open) { Plugin.Plugin.Instance.GetEditorInterface().OpenSceneFromPath(prefabResPath); } -#endif + } catch (Exception e) { @@ -333,4 +334,6 @@ } } -} \ No newline at end of file +} + +#endif \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/generator/UiManagerMethodsGenerator.cs b/DungeonShooting_Godot/src/framework/generator/UiManagerMethodsGenerator.cs index df51675..e38b286 100644 --- a/DungeonShooting_Godot/src/framework/generator/UiManagerMethodsGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/UiManagerMethodsGenerator.cs @@ -1,4 +1,6 @@ -using System; +#if TOOLS + +using System; using System.IO; using System.Text.RegularExpressions; using Godot; @@ -103,4 +105,6 @@ return true; } -} \ No newline at end of file +} + +#endif \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs index 9c91cdd..fa36fca 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs @@ -9,7 +9,7 @@ /// /// 物体生成标记 /// -[Tool] +[Tool, GlobalClass] public partial class ActivityMark : Node2D { /// diff --git a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs index 475657a..33f0ddf 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs @@ -4,7 +4,7 @@ /// /// 针对敌人生成位置的标记 /// -[Tool] +[Tool, GlobalClass] public partial class EnemyMark : ActivityMark { /// diff --git a/DungeonShooting_Godot/src/framework/ui/UiBase.cs b/DungeonShooting_Godot/src/framework/ui/UiBase.cs index e454424..01bc2a8 100644 --- a/DungeonShooting_Godot/src/framework/ui/UiBase.cs +++ b/DungeonShooting_Godot/src/framework/ui/UiBase.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using Godot; @@ -164,4 +165,60 @@ { ProxyCoroutineHandler.ProxyStopAllCoroutine(ref _coroutineList); } + + /// + /// 延时指定时间调用一个回调函数 + /// + public void CallDelay(float delayTime, Action cb) + { + StartCoroutine(_CallDelay(delayTime, cb)); + } + + /// + /// 延时指定时间调用一个回调函数 + /// + public void CallDelay(float delayTime, Action cb, T1 arg1) + { + StartCoroutine(_CallDelay(delayTime, cb, arg1)); + } + + /// + /// 延时指定时间调用一个回调函数 + /// + public void CallDelay(float delayTime, Action cb, T1 arg1, T2 arg2) + { + StartCoroutine(_CallDelay(delayTime, cb, arg1, arg2)); + } + + /// + /// 延时指定时间调用一个回调函数 + /// + public void CallDelay(float delayTime, Action cb, T1 arg1, T2 arg2, T3 arg3) + { + StartCoroutine(_CallDelay(delayTime, cb, arg1, arg2, arg3)); + } + + private IEnumerator _CallDelay(float delayTime, Action cb) + { + yield return new WaitForSeconds(delayTime); + cb(); + } + + private IEnumerator _CallDelay(float delayTime, Action cb, T1 arg1) + { + yield return new WaitForSeconds(delayTime); + cb(arg1); + } + + private IEnumerator _CallDelay(float delayTime, Action cb, T1 arg1, T2 arg2) + { + yield return new WaitForSeconds(delayTime); + cb(arg1, arg2); + } + + private IEnumerator _CallDelay(float delayTime, Action cb, T1 arg1, T2 arg2, T3 arg3) + { + yield return new WaitForSeconds(delayTime); + cb(arg1,arg2, arg3); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs index 09b87da..925b4e2 100644 --- a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs +++ b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs @@ -4,6 +4,12 @@ using System.Collections.Generic; using Godot; +/// +/// Ui网格组件 +/// +/// 原生Godot类型 +/// Ui节点类型 +/// 传给Cell的数据类型 public partial class UiGrid : GridContainer, IDestroy where TNodeType : Node where TUiNodeType : IUiNode { public bool IsDestroyed { get; private set; } diff --git a/DungeonShooting_Godot/src/game/Cursor.cs b/DungeonShooting_Godot/src/game/Cursor.cs index cbde2ae..7927549 100644 --- a/DungeonShooting_Godot/src/game/Cursor.cs +++ b/DungeonShooting_Godot/src/game/Cursor.cs @@ -37,7 +37,7 @@ { if (!_isGuiMode) { - var targetGun = _mountRole?.Holster.ActiveWeapon; + var targetGun = _mountRole?.WeaponPack.ActiveItem; if (targetGun != null) { SetScope(targetGun.CurrScatteringRange, targetGun); diff --git a/DungeonShooting_Godot/src/game/activity/bullet/Bullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/Bullet.cs index 16bf6b7..c97f512 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/Bullet.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/Bullet.cs @@ -3,7 +3,7 @@ /// /// 子弹类 /// -[Tool, GlobalClass] +[Tool] public partial class Bullet : ActivityObject { /// @@ -113,6 +113,7 @@ damage = Role.RoleState.CallCalcDamageEvent(damage); GD.Print($"原伤害: {d}, 计算伤害: {damage}"); } + role.CallDeferred(nameof(Role.Hurt), damage, Rotation); Destroy(); } diff --git a/DungeonShooting_Godot/src/game/activity/package/Holster.cs b/DungeonShooting_Godot/src/game/activity/package/Holster.cs deleted file mode 100644 index df5dc56..0000000 --- a/DungeonShooting_Godot/src/game/activity/package/Holster.cs +++ /dev/null @@ -1,369 +0,0 @@ -using System; -using System.Collections.Generic; -using Godot; - -/// -/// 角色身上的武器袋, 存储角色携带的武器 -/// -public class Holster -{ - /// - /// 归属者 - /// - public Role Master { get; } - - /// - /// 当前使用的武器对象 - /// - public Weapon ActiveWeapon { get; private set; } - - /// - /// 当前使用的武器的索引 - /// - public int ActiveIndex { get; private set; } = 0; - - /// - /// 武器袋容量 - /// - public int Capacity { get; private set; } = 0; - - /// - /// 武器插槽 - /// - public Weapon[] Weapons { get; private set; } - - public Holster(Role master) - { - Master = master; - //默认容量4 - SetCapacity(4); - } - - /// - /// 修改武器袋容量 - /// - public void SetCapacity(int capacity) - { - if (capacity < 0) - { - capacity = 0; - } - - if (capacity == Capacity) - { - return; - } - - if (Weapons == null) - { - Weapons = new Weapon[capacity]; - } - else if (Weapons.Length > capacity) //删减格子 - { - var newArray = new Weapon[capacity]; - for (var i = 0; i < Weapons.Length; i++) - { - if (i < capacity) - { - newArray[i] = Weapons[i]; - } - else - { - Master.ThrowWeapon(i); - } - } - - Weapons = newArray; - } - else //添加格子 - { - var newArray = new Weapon[capacity]; - for (var i = 0; i < Weapons.Length; i++) - { - newArray[i] = Weapons[i]; - } - Weapons = newArray; - } - Capacity = capacity; - - } - - /// - /// 返回当前武器袋是否是空的 - /// - public bool IsEmpty() - { - for (var i = 0; i < Weapons.Length; i++) - { - if (Weapons[i] != null) - { - return false; - } - } - - return true; - } - - /// - /// 返回当前武器袋是否还有空位 - /// - public bool HasVacancy() - { - for (var i = 0; i < Weapons.Length; i++) - { - if (Weapons[i] == null) - { - return true; - } - } - - return false; - } - - /// - /// 根据索引获取武器 - /// - public Weapon GetWeapon(int index) - { - if (index < 0 || index >= Weapons.Length) - { - return null; - } - return Weapons[index]; - } - - /// - /// 根据武器id查找武器袋中该武器所在的位置, 如果没有, 则返回 -1 - /// - /// 武器id - public int FindWeapon(string id) - { - for (var i = 0; i < Weapons.Length; i++) - { - var item = Weapons[i]; - if (item != null && item.ItemConfig.Id == id) - { - return i; - } - } - return -1; - } - - /// - /// 通过回调函数查询武器在武器袋中的位置, 如果没有, 则返回 -1 - /// - public int FindWeapon(Func handler) - { - for (var i = 0; i < Weapons.Length; i++) - { - var item = Weapons[i]; - if (item != null && handler(item, i)) - { - return i; - } - } - return -1; - } - - /// - /// 遍历所有武器 - /// - public void ForEach(Action handler) - { - for (var i = 0; i < Weapons.Length; i++) - { - var item = Weapons[i]; - if (item != null) - { - handler(item, i); - } - } - } - - /// - /// 从武器袋中移除所有武器, 并返回 - /// - public Weapon[] GetAndClearWeapon() - { - var weapons = new List(); - for (var i = 0; i < Weapons.Length; i++) - { - var weapon = Weapons[i]; - if (weapon != null) - { - weapon.GetParent().RemoveChild(weapon); - weapon.RemoveAt(); - weapons.Add(weapon); - Weapons[i] = null; - } - } - - return weapons.ToArray(); - } - - /// - /// 返回是否能放入武器 - /// - /// 武器对象 - public bool CanPickupWeapon(Weapon weapon) - { - for (var i = 0; i < Weapons.Length; i++) - { - var item = Weapons[i]; - if (item == null) - { - return true; - } - } - return false; - } - - /// - /// 拾起武器, 存入武器袋中, 返回存放在武器袋的位置, 如果容不下这把武器, 则会返回 -1 - /// - /// 武器对象 - /// 是否立即切换到该武器, 默认 true - public int PickupWeapon(Weapon weapon, bool exchange = true) - { - //已经被拾起了 - if (weapon.Master != null) - { - return -1; - } - for (var i = 0; i < Weapons.Length; i++) - { - var item = Weapons[i]; - if (item == null) - { - weapon.Pickup(); - Weapons[i] = weapon; - weapon.PickUpWeapon(Master); - if (exchange) - { - ExchangeByIndex(i); - } - - return i; - } - } - return -1; - } - - /// - /// 移除指定位置的武器, 并返回这个武器对象, 如果移除正在使用的这把武器, 则会自动切换到上一把武器 - /// - /// 所在武器袋的位置索引 - public Weapon RemoveWeapon(int index) - { - if (index < 0 || index >= Weapons.Length) - { - return null; - } - var weapon = Weapons[index]; - if (weapon == null) - { - return null; - } - weapon.GetParent().RemoveChild(weapon); - Weapons[index] = null; - - //如果是当前手持的武器, 就需要调用切换武器操作 - if (index == ActiveIndex) - { - //没有其他武器了 - if (ExchangePrev() == index) - { - ActiveIndex = 0; - ActiveWeapon = null; - } - } - weapon.RemoveAt(); - return weapon; - } - - /// - /// 切换到上一个武器 - /// - public int ExchangePrev() - { - var index = ActiveIndex - 1; - do - { - if (index < 0) - { - index = Weapons.Length - 1; - } - if (ExchangeByIndex(index)) - { - return index; - } - } while (index-- != ActiveIndex); - return -1; - } - - /// - /// 切换到下一个武器, - /// - public int ExchangeNext() - { - var index = ActiveIndex + 1; - do - { - if (index >= Weapons.Length) - { - index = 0; - } - if (ExchangeByIndex(index)) - { - return index; - } - } - while (index++ != ActiveIndex); - return -1; - } - - /// - /// 切换到指定索引的武器 - /// - public bool ExchangeByIndex(int index) - { - if (index == ActiveIndex && ActiveWeapon != null) return true; - if (index < 0 || index > Weapons.Length) return false; - var weapon = Weapons[index]; - if (weapon == null) return false; - - //将上一把武器放到背后 - if (ActiveWeapon != null) - { - var tempParent = ActiveWeapon.GetParentOrNull(); - if (tempParent != null) - { - tempParent.RemoveChild(ActiveWeapon); - Master.BackMountPoint.AddChild(ActiveWeapon); - Master.OnPutBackMount(ActiveWeapon, ActiveIndex); - ActiveWeapon.Conceal(); - } - } - - //更改父节点 - var parent = weapon.GetParentOrNull(); - if (parent == null) - { - Master.MountPoint.AddChild(weapon); - } - else if (parent != Master.MountPoint) - { - parent.RemoveChild(weapon); - Master.MountPoint.AddChild(weapon); - } - - weapon.Position = Vector2.Zero; - weapon.Scale = Vector2.One; - weapon.RotationDegrees = 0; - weapon.Visible = true; - ActiveWeapon = weapon; - ActiveIndex = index; - ActiveWeapon.Active(); - return true; - } -} diff --git a/DungeonShooting_Godot/src/game/activity/package/IPackageItem.cs b/DungeonShooting_Godot/src/game/activity/package/IPackageItem.cs new file mode 100644 index 0000000..aca7c9d --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/package/IPackageItem.cs @@ -0,0 +1,41 @@ + +/// +/// 可放入背包中的物体接口 +/// +public interface IPackageItem +{ + /// + /// 物体所属角色 + /// + Role Master { get; set; } + + /// + /// 物体在背包中的索引, 如果不在背包中则为 -1 + /// + int PackageIndex { get; set; } + + /// + /// 当物体拾起并放入背包时调用 (在 Master 赋值之后调用) + /// + void OnPickUpItem(); + + /// + /// 当物体从背包中移除时调用 (在 Master 置为 null 之前调用) + /// + void OnRemoveItem(); + + /// + /// 当切换到当前物体时调用 + /// + void OnActiveItem(); + + /// + /// 当收起当前物体时调用 + /// + void OnConcealItem(); + + /// + /// 当道具溢出时调用, 也就是修改了背包大小后背包容不下这个道具时调用, 用于处理扔下道具 + /// + void OnOverflowItem(); +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/package/Package.cs b/DungeonShooting_Godot/src/game/activity/package/Package.cs new file mode 100644 index 0000000..059ce2b --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/package/Package.cs @@ -0,0 +1,456 @@ +using System; +using System.Collections.Generic; + +/// +/// 物体背包类 +/// +public class Package : IDestroy where T : ActivityObject, IPackageItem +{ + public bool IsDestroyed { get; private set; } + + /// + /// 归属者 + /// + public Role Master { get; private set; } + + /// + /// 当前使用的物体对象 + /// + public T ActiveItem { get; private set; } + + /// + /// 当前使用的物体的索引 + /// + public int ActiveIndex { get; private set; } = 0; + + /// + /// 物体背包容量 + /// + public int Capacity { get; private set; } = 0; + + /// + /// 物体插槽 + /// + public T[] ItemSlot { get; private set; } + + public Package(Role master, int capacity) + { + Master = master; + SetCapacity(capacity); + } + + /// + /// 修改物体背包容量 + /// + public void SetCapacity(int capacity) + { + if (capacity < 0) + { + capacity = 0; + } + + if (capacity == Capacity) + { + return; + } + + if (ItemSlot == null) + { + ItemSlot = new T[capacity]; + } + else if (ItemSlot.Length > capacity) //删减格子 + { + var newArray = new T[capacity]; + for (var i = 0; i < ItemSlot.Length; i++) + { + var packageItem = ItemSlot[i]; + if (i < capacity) + { + newArray[i] = packageItem; + } + else + { + //溢出的item + packageItem.OnOverflowItem(); + packageItem.Master = null; + packageItem.PackageIndex = -1; + } + } + + ItemSlot = newArray; + } + else //添加格子 + { + var newArray = new T[capacity]; + for (var i = 0; i < ItemSlot.Length; i++) + { + newArray[i] = ItemSlot[i]; + } + ItemSlot = newArray; + } + Capacity = capacity; + + } + + /// + /// 返回当前物体背包是否是空的 + /// + public bool IsEmpty() + { + for (var i = 0; i < ItemSlot.Length; i++) + { + if (ItemSlot[i] != null) + { + return false; + } + } + + return true; + } + + /// + /// 返回当前物体背包是否还有空位 + /// + public bool HasVacancy() + { + for (var i = 0; i < ItemSlot.Length; i++) + { + if (ItemSlot[i] == null) + { + return true; + } + } + + return false; + } + + /// + /// 根据索引获取物体 + /// + public T GetItem(int index) + { + if (index < 0 || index >= ItemSlot.Length) + { + return null; + } + return ItemSlot[index]; + } + + /// + /// 根据物体id查找物体背包中该物体所在的位置, 如果没有, 则返回 -1 + /// + /// 物体id + public int FindIndex(string id) + { + for (var i = 0; i < ItemSlot.Length; i++) + { + var item = ItemSlot[i]; + if (item != null && item.ItemConfig.Id == id) + { + return i; + } + } + return -1; + } + + /// + /// 通过回调函数查询物体在物体背包中的位置, 如果没有, 则返回 -1 + /// + public int FindIndex(Func handler) + { + for (var i = 0; i < ItemSlot.Length; i++) + { + var item = ItemSlot[i]; + if (item != null && handler(item, i)) + { + return i; + } + } + return -1; + } + + /// + /// 遍历所有物体 + /// + public void ForEach(Action handler) + { + for (var i = 0; i < ItemSlot.Length; i++) + { + var item = ItemSlot[i]; + if (item != null) + { + handler(item, i); + } + } + } + + /// + /// 从物体背包中移除所有物体, 并返回 + /// + public T[] GetAndClearItem() + { + var items = new List(); + for (var i = 0; i < ItemSlot.Length; i++) + { + var item = ItemSlot[i]; + if (item != null) + { + //触发移除物体 + item.OnRemoveItem(); + item.Master = null; + item.PackageIndex = -1; + + items.Add(item); + ItemSlot[i] = null; + } + } + + return items.ToArray(); + } + + /// + /// 拾起物体, 存入物体背包中, 返回存放在物体背包的位置, 如果容不下这个物体, 则会返回 -1 + /// + /// 物体对象 + /// 是否立即切换到该物体, 默认 true + public int PickupItem(T item, bool exchange = true) + { + //已经被拾起了 + if (item.Master != null) + { + return -1; + } + for (var i = 0; i < ItemSlot.Length; i++) + { + var tempItem = ItemSlot[i]; + if (tempItem == null) + { + ItemSlot[i] = item; + item.Master = Master; + item.PackageIndex = i; + item.OnPickUpItem(); + if (exchange) + { + ExchangeByIndex(i); + } + + return i; + } + } + return -1; + } + + /// + /// 移除指定位置的物体, 并返回这个物体对象, 如果移除正在使用的这个物体, 则会自动切换到上一个物体 + /// + /// 所在物体背包的位置索引 + public T RemoveItem(int index) + { + if (index < 0 || index >= ItemSlot.Length) + { + return null; + } + var item = ItemSlot[index]; + if (item == null) + { + return null; + } + ItemSlot[index] = null; + + //如果是当前手持的物体, 就需要调用切换物体操作 + if (index == ActiveIndex) + { + //没有其他物体了 + if (ExchangePrev() == index) + { + ActiveIndex = 0; + ActiveItem = null; + } + } + //移除物体 + item.OnRemoveItem(); + item.Master = null; + item.PackageIndex = -1; + // item.GetParent().RemoveChild(item); + // item.Remove(); + return item; + } + + /// + /// 移除指定位置的物体, 并返回这个物体对象, 如果移除正在使用的这个物体, 则会自动切换到上一个物体 + /// + public T RemoveItem(T item) + { + return RemoveItem(IndexOf(item)); + } + + /// + /// 切换到上一个物体 + /// + public int ExchangePrev() + { + var index = ActiveIndex - 1; + do + { + if (index < 0) + { + index = ItemSlot.Length - 1; + } + if (ExchangeByIndex(index)) + { + return index; + } + } while (index-- != ActiveIndex); + return -1; + } + + /// + /// 切换到下一个物体, + /// + public int ExchangeNext() + { + var index = ActiveIndex + 1; + do + { + if (index >= ItemSlot.Length) + { + index = 0; + } + if (ExchangeByIndex(index)) + { + return index; + } + } while (index++ != ActiveIndex); + return -1; + } + + /// + /// 切换到指定索引的物体 + /// + public bool ExchangeByIndex(int index) + { + if (index == ActiveIndex && ActiveItem != null) return true; + if (index < 0 || index > ItemSlot.Length) return false; + var item = ItemSlot[index]; + if (item == null) return false; + + //将上一个物体放到背后 + if (ActiveItem != null) + { + //收起物体 + ActiveItem.OnConcealItem(); + } + + //切换物体 + ActiveItem = item; + ActiveIndex = index; + ActiveItem.OnActiveItem(); + return true; + } + + /// + /// 返回背包中是否有指定物体 + /// + public bool Contains(T item) + { + if (ItemSlot == null) + { + return false; + } + + foreach (var packageItem in ItemSlot) + { + if (packageItem == item) + { + return true; + } + } + + return false; + } + + /// + /// 返回指定物体在当前背包中的索引, 如果不在背包中, 则返回 -1 + /// + public int IndexOf(T item) + { + if (ItemSlot == null) + { + return -1; + } + + for (var i = 0; i < ItemSlot.Length; i++) + { + var packageItem = ItemSlot[i]; + if (packageItem == item) + { + return i; + } + } + + return -1; + } + + /// + /// 返回指定 id 的物体在背包中的索引, 如果不在背包中, 则返回 -1 + /// + public int IndexOfByItemId(string itemId) + { + if (ItemSlot == null) + { + return -1; + } + + for (var i = 0; i < ItemSlot.Length; i++) + { + var packageItem = ItemSlot[i]; + if (packageItem != null && packageItem.ItemConfig.Id == itemId) + { + return i; + } + } + + return -1; + } + + /// + /// 获取背包中指定 id 的物体, 如果有多个相同 id 的物体, 则返回第一个匹配的物体 + /// + public T GetItemById(string itemId) + { + if (ItemSlot == null) + { + return null; + } + + for (var i = 0; i < ItemSlot.Length; i++) + { + var packageItem = ItemSlot[i]; + if (packageItem != null && packageItem.ItemConfig.Id == itemId) + { + return packageItem; + } + } + + return null; + } + + public void Destroy() + { + if (IsDestroyed) + { + return; + } + + IsDestroyed = true; + for (var i = 0; i < ItemSlot.Length; i++) + { + var activityObject = ItemSlot[i]; + if (activityObject != null) + { + activityObject.Destroy(); + ItemSlot[i] = null; + } + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/Prop.cs b/DungeonShooting_Godot/src/game/activity/prop/Prop.cs index 5962d3b..1e937e9 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/Prop.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/Prop.cs @@ -1,8 +1,56 @@  +using Godot; + /// /// 道具基类 /// public abstract partial class Prop : ActivityObject { + /// + /// 道具所属角色 + /// + public Role Master { get; set; } + + /// + /// 当道具被拾起时调用 (在 Master 赋值之后调用) + /// + public abstract void OnPickUpItem(); + + /// + /// 当道具被移除时调用 (在 Master 置为 null 之前调用) + /// + public abstract void OnRemoveItem(); + + /// + /// 如果道具放入了角色背包中, 则每帧调用 + /// + public virtual void PackProcess(float delta) + { + } + + /// + /// 触发扔掉道具效果, 并不会管道具是否在道具背包中 + /// + /// 触发扔掉该道具的的角色 + public void ThrowProp(Role master) + { + ThrowProp(master, master.GlobalPosition); + } + /// + /// 触发扔掉道具效果, 并不会管道具是否在道具背包中 + /// + /// 触发扔掉该道具的的角色 + /// 投抛起始位置 + public void ThrowProp(Role master, Vector2 startPosition) + { + //阴影偏移 + ShadowOffset = new Vector2(0, 2); + GlobalRotation = 0; + var startHeight = -master.MountPoint.Position.Y; + Throw(startPosition, startHeight, 0, Vector2.Zero, 0); + + //继承role的移动速度 + InheritVelocity(master); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs new file mode 100644 index 0000000..ce037b4 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs @@ -0,0 +1,313 @@ + +using Godot; + +/// +/// 主动使用道具 +/// +public abstract partial class ActiveProp : Prop, IPackageItem +{ + public int PackageIndex { get; set; } + + /// + /// 道具是否可以叠加 + /// + public bool Superposition { get; set; } = false; + + /// + /// 道具可使用次数 + /// + public int Count + { + get => _count; + set + { + var temp = _count; + _count = Mathf.Clamp(value, 0, _maxCount); + if (temp != _count) + { + OnChangeCount(); + } + } + } + + private int _count = 1; + + /// + /// 道具最大可使用次数 + /// + public int MaxCount + { + get => _maxCount; + set + { + var temp = _maxCount; + _maxCount = Mathf.Max(1, value); + if (temp != _maxCount) + { + OnChangeMaxCount(); + } + + if (Count > _maxCount) + { + Count = _maxCount; + } + } + } + + private int _maxCount = 1; + + /// + /// 使用一次后的冷却时间, 单位: 秒 + /// + public float CooldownTime { get; set; } = 2f; + + /// + /// 当道具使用完后是否自动销毁 + /// + public bool AutoDestroy { get; set; } = false; + + /// + /// 道具充能进度, 必须要充能完成才能使用, 值范围: 0 - 1 + /// + public float ChargeProgress + { + get => _chargeProgress; + set + { + var temp = _chargeProgress; + _chargeProgress = Mathf.Clamp(value, 0, 1); + if (temp != _chargeProgress) + { + OnChangeChargeProgress(); + } + } + } + + private float _chargeProgress = 1; + + /// + /// 自动充能速度, 也就是每秒充能进度, 如果为0则表示不就行自动充能 + /// + public float AutoChargeSpeed { get; set; } + + //冷却计时器 + private float _cooldownTimer = 0; + + /// + /// 当检测是否可以使用时调用 + /// + public abstract bool OnCheckUse(); + + /// + /// 当道具被使用时调用, 函数返回值为消耗数量 + /// + protected abstract int OnUse(); + + /// + /// 道具数量改变时调用 + /// + protected virtual void OnChangeCount() + { + } + + /// + /// 道具最大数量改变时调用 + /// + protected virtual void OnChangeMaxCount() + { + } + + /// + /// 道具充能进度改变时调用 + /// + protected virtual void OnChangeChargeProgress() + { + } + + /// + /// 冷却完成时调用 + /// + protected virtual void OnCooldownFinish() + { + } + + protected override void ProcessOver(float delta) + { + RunUpdate(delta); + } + + public override void PackProcess(float delta) + { + RunUpdate(delta); + } + + private void RunUpdate(float delta) + { + if (CheckAutoDestroy()) + { + return; + } + //冷却 + if (_cooldownTimer > 0) + { + _cooldownTimer -= delta; + + //冷却完成 + if (_cooldownTimer <= 0) + { + _cooldownTimer = 0; + OnCooldownFinish(); + } + } + + //自动充能 + if (AutoChargeSpeed > 0 && ChargeProgress < 1) + { + ChargeProgress += AutoChargeSpeed * delta; + } + } + + //检测是否达到自动销毁的条件 + private bool CheckAutoDestroy() + { + if (Count == 0 && AutoDestroy) //用光了, 自动销毁 + { + if (Master != null) + { + Master.ActivePropsPack.RemoveItem(this); + } + Destroy(); + return true; + } + + return false; + } + + /// + /// 检测是否可以使用当前道具 + /// + public bool CheckUse() + { + return ChargeProgress >= 1 && _cooldownTimer <= 0 && Count > 0 && OnCheckUse(); + } + + /// + /// 触发使用道具 + /// + public void Use() + { + if (Master == null) + { + return; + } + if (CheckUse()) //可以使用道具 + { + var num = OnUse(); + if (num != 0) + { + Count -= num; + } + + //冷却计时器 + _cooldownTimer = CooldownTime; + } + } + + /// + /// 获取冷却进度 0 - 1 + /// + public float GetCooldownProgress() + { + if (_cooldownTimer <= 0) + { + return 1; + } + + return (CooldownTime - _cooldownTimer) / CooldownTime; + } + + public override void Interactive(ActivityObject master) + { + if (master is Player player) + { + var item = player.ActivePropsPack.GetItemById(ItemConfig.Id); + if (item == null) //没有同类型物体 + { + if (!player.ActivePropsPack.HasVacancy()) //没有空位置, 扔掉当前道具 + { + player.ThrowActiveProp(player.ActivePropsPack.ActiveIndex); + } + //替换手中的道具 + player.PickUpActiveProp(this); + } + else + { + //处理同类型道具 + if (Superposition && item.Count < item.MaxCount) //允许叠加 + { + if (item.Count + Count > item.MaxCount) + { + Count -= item.MaxCount - item.Count; + item.Count = item.MaxCount; + } + else + { + item.Count += Count; + Count = 0; + } + } + } + } + } + + public override CheckInteractiveResult CheckInteractive(ActivityObject master) + { + if (master is Player player) + { + //查找相同类型的道具 + var item = player.ActivePropsPack.GetItemById(ItemConfig.Id); + if (item == null) //没有同类型物体 + { + if (player.ActivePropsPack.HasVacancy()) //还有空位, 拾起道具 + { + return new CheckInteractiveResult(this, true, CheckInteractiveResult.InteractiveType.PickUp); + } + + //替换手中的道具 + return new CheckInteractiveResult(this, true, CheckInteractiveResult.InteractiveType.Replace); + } + + //处理同类型道具 + if (Superposition && item.Count < item.MaxCount) //允许叠加 + { + return new CheckInteractiveResult(this, true, CheckInteractiveResult.InteractiveType.Bullet); + } + + //该道具不能拾起 + return new CheckInteractiveResult(this); + } + + return new CheckInteractiveResult(this); + } + + public override void OnPickUpItem() + { + Pickup(); + } + + public override void OnRemoveItem() + { + } + + public virtual void OnActiveItem() + { + } + + public virtual void OnConcealItem() + { + } + + public virtual void OnOverflowItem() + { + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs new file mode 100644 index 0000000..2770ac7 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs @@ -0,0 +1,27 @@ + +using Godot; + +/// +/// 医药箱, 使用后恢复一颗红心 +/// +[Tool] +public partial class ActiveProp5000 : ActiveProp +{ + public override void OnInit() + { + AutoDestroy = true; + MaxCount = 10; + Superposition = true; + } + + public override bool OnCheckUse() + { + return !Master.IsHpFull(); + } + + protected override int OnUse() + { + Master.Hp += 2; + return 1; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5001.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5001.cs new file mode 100644 index 0000000..e9f0852 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5001.cs @@ -0,0 +1,32 @@ + +using Godot; + +/// +/// 弹药箱, 使用后补全当前武器备用弹药 +/// +[Tool] +public partial class ActiveProp5001 : ActiveProp +{ + public override void OnInit() + { + Superposition = true; + AutoDestroy = true; + MaxCount = 10; + } + + public override bool OnCheckUse() + { + return Master.WeaponPack.ActiveItem != null && !Master.WeaponPack.ActiveItem.IsAmmoFull(); + } + + protected override int OnUse() + { + var weapon = Master.WeaponPack.ActiveItem; + if (weapon != null) + { + weapon.SetTotalAmmo(weapon.Attribute.MaxAmmoCapacity); + return 1; + } + return 0; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff.cs deleted file mode 100644 index 1afa4d7..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff.cs +++ /dev/null @@ -1,43 +0,0 @@ - -/// -/// 增益被动道具 -/// -public abstract partial class Buff : Prop -{ - /// - /// buff的拥有者 - /// - public Role Master { get; private set; } - - /// - /// 当被动被道具被拾起时调用 - /// - /// 拾起该buff的角色 - protected abstract void OnPickUp(Role master); - - /// - /// 当被动道具被移除时调用 - /// - /// 移除该buff的角色 - protected abstract void OnRemove(Role master); - - public override void Interactive(ActivityObject master) - { - if (master is Role role) - { - Pickup(); - Master = role; - role.PushProp(this); - OnPickUp(role); - } - } - - public override CheckInteractiveResult CheckInteractive(ActivityObject master) - { - if (master is Player) - { - return new CheckInteractiveResult(this, true, ResourcePath.resource_sprite_ui_icon_icon_pickup_png); - } - return base.CheckInteractive(master); - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0001.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0001.cs deleted file mode 100644 index 4133458..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0001.cs +++ /dev/null @@ -1,23 +0,0 @@ - -using Godot; - -/// -/// 移速 buff, 移速 + 3 -/// -[GlobalClass, Tool] -public partial class Buff0001 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.MoveSpeed += 30; - master.RoleState.Acceleration += 400; - master.RoleState.Friction += 300; - } - - protected override void OnRemove(Role master) - { - master.RoleState.MoveSpeed -= 30; - master.RoleState.Acceleration -= 400; - master.RoleState.Friction -= 300; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0002.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0002.cs deleted file mode 100644 index 43d7347..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0002.cs +++ /dev/null @@ -1,20 +0,0 @@ - -using Godot; - -/// -/// 血量上限buff, 心之容器 + 1 -/// -[GlobalClass, Tool] -public partial class Buff0002 : Buff -{ - protected override void OnPickUp(Role master) - { - master.MaxHp += 2; - master.Hp += 2; - } - - protected override void OnRemove(Role master) - { - master.MaxHp -= 2; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0003.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0003.cs deleted file mode 100644 index 679bdbc..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0003.cs +++ /dev/null @@ -1,20 +0,0 @@ - -using Godot; - -/// -/// 护盾上限buff, 护盾 + 1 -/// -[GlobalClass, Tool] -public partial class Buff0003 : Buff -{ - protected override void OnPickUp(Role master) - { - master.MaxShield += 1; - master.Shield += 1; - } - - protected override void OnRemove(Role master) - { - master.MaxShield -= 1; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0004.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0004.cs deleted file mode 100644 index bcb05be..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0004.cs +++ /dev/null @@ -1,19 +0,0 @@ - -using Godot; - -/// -/// 护盾恢复时间buff, 恢复时间 - 1.5s -/// -[GlobalClass, Tool] -public partial class Buff0004 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.ShieldRecoveryTime -= 1.5f; - } - - protected override void OnRemove(Role master) - { - master.RoleState.ShieldRecoveryTime += 1.5f; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0005.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0005.cs deleted file mode 100644 index e97fbaf..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0005.cs +++ /dev/null @@ -1,24 +0,0 @@ - -using Godot; - -/// -/// 提升伤害buff, 子弹伤害提升20% -/// -[GlobalClass, Tool] -public partial class Buff0005 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.CalcDamageEvent += CalcDamage; - } - - protected override void OnRemove(Role master) - { - master.RoleState.CalcDamageEvent -= CalcDamage; - } - - private void CalcDamage(int originDamage, RefValue refValue) - { - refValue.Value += Mathf.CeilToInt(originDamage * 0.2f); - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0006.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0006.cs deleted file mode 100644 index 396abd0..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0006.cs +++ /dev/null @@ -1,19 +0,0 @@ - -using Godot; - -/// -/// 延长无敌时间buff, 受伤后无敌时间 + 2s -/// -[GlobalClass, Tool] -public partial class Buff0006 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.WoundedInvincibleTime += 2f; - } - - protected override void OnRemove(Role master) - { - master.RoleState.WoundedInvincibleTime -= 2f; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0007.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0007.cs deleted file mode 100644 index b6c1be7..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0007.cs +++ /dev/null @@ -1,27 +0,0 @@ - -using Godot; - -/// -/// 受伤时有15%概率抵消伤害 -/// -[GlobalClass, Tool] -public partial class Buff0007 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.CalcHurtDamageEvent += CalcHurtDamageEvent; - } - - protected override void OnRemove(Role master) - { - master.RoleState.CalcHurtDamageEvent -= CalcHurtDamageEvent; - } - - private void CalcHurtDamageEvent(int originDamage, RefValue refValue) - { - if (refValue.Value > 0 && Utils.RandomBoolean(0.15f)) - { - refValue.Value = 0; - } - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0008.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0008.cs deleted file mode 100644 index 800a2cc..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0008.cs +++ /dev/null @@ -1,31 +0,0 @@ - -using Godot; - -/// -/// 眼镜, 提高武器50%精准度 -/// -[GlobalClass, Tool] -public partial class Buff0008 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.CalcStartScatteringEvent += CalcStartScatteringEvent; - master.RoleState.CalcFinalScatteringEvent += CalcFinalScatteringEvent; - } - - protected override void OnRemove(Role master) - { - master.RoleState.CalcStartScatteringEvent -= CalcStartScatteringEvent; - master.RoleState.CalcFinalScatteringEvent -= CalcFinalScatteringEvent; - } - - private void CalcStartScatteringEvent(Weapon weapon, float originValue, RefValue refValue) - { - refValue.Value *= 0.5f; - } - - private void CalcFinalScatteringEvent(Weapon weapon, float originValue, RefValue refValue) - { - refValue.Value *= 0.5f; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0009.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0009.cs deleted file mode 100644 index aad07a2..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0009.cs +++ /dev/null @@ -1,31 +0,0 @@ - -using Godot; - -/// -/// 高速子弹 子弹速度和射程提升25% -/// -[GlobalClass, Tool] -public partial class Buff0009 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; - master.RoleState.CalcBulletDistanceEvent += CalcBulletDistanceEvent; - } - - protected override void OnRemove(Role master) - { - master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; - master.RoleState.CalcBulletDistanceEvent -= CalcBulletDistanceEvent; - } - - private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) - { - speed.Value += originSpeed * 0.25f; - } - - private void CalcBulletDistanceEvent(Weapon weapon, float originDistance, RefValue distance) - { - distance.Value += originDistance * 0.25f; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0010.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0010.cs deleted file mode 100644 index 14195a6..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/Buff0010.cs +++ /dev/null @@ -1,43 +0,0 @@ - -using Godot; - -/// -/// 分裂子弹 子弹数量翻倍, 但是精准度和伤害降低 -/// -[GlobalClass, Tool] -public partial class Buff0010 : Buff -{ - protected override void OnPickUp(Role master) - { - master.RoleState.CalcBulletCountEvent += CalcBulletCountEvent; - master.RoleState.CalcBulletDeviationAngleEvent += CalcBulletDeviationAngleEvent; - master.RoleState.CalcDamageEvent += CalcDamageEvent; - } - - protected override void OnRemove(Role master) - { - master.RoleState.CalcBulletCountEvent -= CalcBulletCountEvent; - master.RoleState.CalcBulletDeviationAngleEvent -= CalcBulletDeviationAngleEvent; - master.RoleState.CalcDamageEvent -= CalcDamageEvent; - } - - private void CalcBulletCountEvent(Weapon weapon, int originCount, RefValue refValue) - { - refValue.Value += originCount; - } - - private void CalcBulletDeviationAngleEvent(Weapon weapon, float originAngle, RefValue refValue) - { - refValue.Value += Utils.RandomRangeFloat(-10, 10); - } - - private void CalcDamageEvent(int originDamage, RefValue refValue) - { - if (refValue.Value <= 0) - { - return; - } - - refValue.Value = Mathf.Max(1, refValue.Value - Mathf.FloorToInt(originDamage * 0.4f)); - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp.cs new file mode 100644 index 0000000..de5cd38 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp.cs @@ -0,0 +1,24 @@ + +/// +/// 被动增益道具 +/// +public abstract partial class BuffProp : Prop +{ + public override void Interactive(ActivityObject master) + { + if (master is Player role) + { + Pickup(); + role.PickUpBuffProp(this); + } + } + + public override CheckInteractiveResult CheckInteractive(ActivityObject master) + { + if (master is Player) + { + return new CheckInteractiveResult(this, true, CheckInteractiveResult.InteractiveType.PickUp); + } + return base.CheckInteractive(master); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0001.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0001.cs new file mode 100644 index 0000000..5ee7937 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0001.cs @@ -0,0 +1,23 @@ + +using Godot; + +/// +/// 移速 buff, 移速 + 3 +/// +[Tool] +public partial class BuffPropProp0001 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.MoveSpeed += 30; + Master.RoleState.Acceleration += 400; + Master.RoleState.Friction += 300; + } + + public override void OnRemoveItem() + { + Master.RoleState.MoveSpeed -= 30; + Master.RoleState.Acceleration -= 400; + Master.RoleState.Friction -= 300; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0002.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0002.cs new file mode 100644 index 0000000..198ad79 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0002.cs @@ -0,0 +1,20 @@ + +using Godot; + +/// +/// 血量上限buff, 心之容器 + 1 +/// +[Tool] +public partial class BuffPropProp0002 : BuffProp +{ + public override void OnPickUpItem() + { + Master.MaxHp += 2; + Master.Hp += 2; + } + + public override void OnRemoveItem() + { + Master.MaxHp -= 2; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0003.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0003.cs new file mode 100644 index 0000000..64f9fde --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0003.cs @@ -0,0 +1,20 @@ + +using Godot; + +/// +/// 护盾上限buff, 护盾 + 1 +/// +[Tool] +public partial class BuffPropProp0003 : BuffProp +{ + public override void OnPickUpItem() + { + Master.MaxShield += 1; + Master.Shield += 1; + } + + public override void OnRemoveItem() + { + Master.MaxShield -= 1; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0004.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0004.cs new file mode 100644 index 0000000..306ae09 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0004.cs @@ -0,0 +1,19 @@ + +using Godot; + +/// +/// 护盾恢复时间buff, 恢复时间 - 1.5s +/// +[Tool] +public partial class BuffPropProp0004 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.ShieldRecoveryTime -= 1.5f; + } + + public override void OnRemoveItem() + { + Master.RoleState.ShieldRecoveryTime += 1.5f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0005.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0005.cs new file mode 100644 index 0000000..8beac22 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0005.cs @@ -0,0 +1,24 @@ + +using Godot; + +/// +/// 提升伤害buff, 子弹伤害提升20% +/// +[Tool] +public partial class BuffPropProp0005 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcDamageEvent += CalcDamage; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcDamageEvent -= CalcDamage; + } + + private void CalcDamage(int originDamage, RefValue refValue) + { + refValue.Value += Mathf.CeilToInt(originDamage * 0.2f); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0006.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0006.cs new file mode 100644 index 0000000..4c91d6d --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0006.cs @@ -0,0 +1,19 @@ + +using Godot; + +/// +/// 延长无敌时间buff, 受伤后无敌时间 + 2s +/// +[Tool] +public partial class BuffPropProp0006 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.WoundedInvincibleTime += 2f; + } + + public override void OnRemoveItem() + { + Master.RoleState.WoundedInvincibleTime -= 2f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0007.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0007.cs new file mode 100644 index 0000000..14133e0 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0007.cs @@ -0,0 +1,27 @@ + +using Godot; + +/// +/// 受伤时有15%概率抵消伤害 +/// +[Tool] +public partial class BuffPropProp0007 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcHurtDamageEvent += CalcHurtDamageEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcHurtDamageEvent -= CalcHurtDamageEvent; + } + + private void CalcHurtDamageEvent(int originDamage, RefValue refValue) + { + if (refValue.Value > 0 && Utils.RandomBoolean(0.15f)) + { + refValue.Value = 0; + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0008.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0008.cs new file mode 100644 index 0000000..7946f62 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0008.cs @@ -0,0 +1,31 @@ + +using Godot; + +/// +/// 眼镜, 提高武器50%精准度 +/// +[Tool] +public partial class BuffPropProp0008 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcStartScatteringEvent += CalcStartScatteringEvent; + Master.RoleState.CalcFinalScatteringEvent += CalcFinalScatteringEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcStartScatteringEvent -= CalcStartScatteringEvent; + Master.RoleState.CalcFinalScatteringEvent -= CalcFinalScatteringEvent; + } + + private void CalcStartScatteringEvent(Weapon weapon, float originValue, RefValue refValue) + { + refValue.Value *= 0.5f; + } + + private void CalcFinalScatteringEvent(Weapon weapon, float originValue, RefValue refValue) + { + refValue.Value *= 0.5f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0009.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0009.cs new file mode 100644 index 0000000..38b9e45 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0009.cs @@ -0,0 +1,31 @@ + +using Godot; + +/// +/// 高速子弹 子弹速度和射程提升25% +/// +[Tool] +public partial class BuffPropProp0009 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; + Master.RoleState.CalcBulletDistanceEvent += CalcBulletDistanceEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; + Master.RoleState.CalcBulletDistanceEvent -= CalcBulletDistanceEvent; + } + + private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) + { + speed.Value += originSpeed * 0.25f; + } + + private void CalcBulletDistanceEvent(Weapon weapon, float originDistance, RefValue distance) + { + distance.Value += originDistance * 0.25f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs new file mode 100644 index 0000000..787107a --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs @@ -0,0 +1,50 @@ + +using Godot; + +/// +/// 分裂子弹 子弹数量翻倍, 但是精准度和伤害降低 +/// +[Tool] +public partial class BuffPropProp0010 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcBulletCountEvent += CalcBulletCountEvent; + Master.RoleState.CalcBulletDeviationAngleEvent += CalcBulletDeviationAngleEvent; + Master.RoleState.CalcDamageEvent += CalcDamageEvent; + Master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcBulletCountEvent -= CalcBulletCountEvent; + Master.RoleState.CalcBulletDeviationAngleEvent -= CalcBulletDeviationAngleEvent; + Master.RoleState.CalcDamageEvent -= CalcDamageEvent; + Master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; + } + + private void CalcBulletCountEvent(Weapon weapon, int originCount, RefValue refValue) + { + refValue.Value += originCount; + } + + private void CalcBulletDeviationAngleEvent(Weapon weapon, float originAngle, RefValue refValue) + { + refValue.Value += Utils.RandomRangeFloat(-8, 8); + } + + private void CalcDamageEvent(int originDamage, RefValue refValue) + { + if (refValue.Value <= 0) + { + return; + } + + refValue.Value = Mathf.Max(1, refValue.Value - Mathf.FloorToInt(originDamage * 0.4f)); + } + + private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) + { + speed.Value += originSpeed * Utils.RandomRangeFloat(-0.05f, 0.05f); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/role/Player.cs b/DungeonShooting_Godot/src/game/activity/role/Player.cs index 24d432b..27c79bd 100644 --- a/DungeonShooting_Godot/src/game/activity/role/Player.cs +++ b/DungeonShooting_Godot/src/game/activity/role/Player.cs @@ -4,7 +4,7 @@ /// /// 玩家角色基类, 所有角色都必须继承该类 /// -[Tool, GlobalClass] +[Tool] public partial class Player : Role { /// @@ -75,11 +75,11 @@ MountPoint.SetLookAt(mousePos); } - if (InputManager.Exchange) //切换武器 + if (InputManager.ExchangeWeapon) //切换武器 { - ExchangeNext(); + ExchangeNextWeapon(); } - else if (InputManager.Throw) //扔掉武器 + else if (InputManager.ThrowWeapon) //扔掉武器 { ThrowWeapon(); @@ -107,11 +107,21 @@ { Reload(); } + if (InputManager.Fire) //开火 { Attack(); } + if (InputManager.UseActiveProp) //使用道具 + { + UseActiveProp(); + } + else if (InputManager.RemoveProp) //扔掉道具 + { + ThrowActiveProp(); + } + if (Input.IsKeyPressed(Key.P)) { Hurt(1000, 0); @@ -130,32 +140,15 @@ //播放动画 PlayAnim(); } - - public override bool PickUpWeapon(Weapon weapon, bool exchange = true) + + protected override void OnPickUpWeapon(Weapon weapon) { - //拾起武器 - var result = base.PickUpWeapon(weapon, exchange); - if (result) - { - EventManager.EmitEvent(EventEnum.OnPlayerPickUpWeapon, weapon); - } - return result; + EventManager.EmitEvent(EventEnum.OnPlayerPickUpWeapon, weapon); } - public override void ThrowWeapon() + protected override void OnThrowWeapon(Weapon weapon) { - //扔掉武器 - var weapon = Holster.ActiveWeapon; - base.ThrowWeapon(); - EventManager.EmitEvent(EventEnum.OnPlayerThrowWeapon, weapon); - } - - public override void ThrowWeapon(int index) - { - //扔掉武器 - var weapon = Holster.GetWeapon(index); - base.ThrowWeapon(index); - EventManager.EmitEvent(EventEnum.OnPlayerThrowWeapon, weapon); + EventManager.EmitEvent(EventEnum.OnPlayerRemoveWeapon, weapon); } protected override int OnHandlerHurt(int damage) @@ -189,8 +182,16 @@ EventManager.EmitEvent(EventEnum.OnPlayerMaxHpChange, maxHp); } - protected override void ChangeInteractiveItem(CheckInteractiveResult result) + protected override void ChangeInteractiveItem(CheckInteractiveResult prev, CheckInteractiveResult result) { + if (prev != null && prev.Target.ShowOutline) + { + prev.Target.OutlineColor = Colors.Black; + } + if (result != null && result.Target.ShowOutline) + { + result.Target.OutlineColor = Colors.White; + } //派发互动对象改变事件 EventManager.EmitEvent(EventEnum.OnPlayerChangeInteractiveItem, result); } @@ -213,7 +214,26 @@ BasisVelocity = Vector2.Zero; MoveController.ClearForce(); UiManager.Open_Settlement(); - //GameApplication.Instance.World.ProcessMode = ProcessModeEnum.WhenPaused; + } + + protected override void OnPickUpActiveProp(ActiveProp activeProp) + { + EventManager.EmitEvent(EventEnum.OnPlayerPickUpProp, activeProp); + } + + protected override void OnRemoveActiveProp(ActiveProp activeProp) + { + EventManager.EmitEvent(EventEnum.OnPlayerRemoveProp, activeProp); + } + + protected override void OnPickUpBuffProp(BuffProp buffProp) + { + EventManager.EmitEvent(EventEnum.OnPlayerPickUpProp, buffProp); + } + + protected override void OnRemoveBuffProp(BuffProp buffProp) + { + EventManager.EmitEvent(EventEnum.OnPlayerRemoveProp, buffProp); } //处理角色移动的输入 diff --git a/DungeonShooting_Godot/src/game/activity/role/Role.cs b/DungeonShooting_Godot/src/game/activity/role/Role.cs index 5bc0694..7782cee 100644 --- a/DungeonShooting_Godot/src/game/activity/role/Role.cs +++ b/DungeonShooting_Godot/src/game/activity/role/Role.cs @@ -39,14 +39,19 @@ public uint AttackLayer { get; set; } = PhysicsLayer.Wall; /// - /// 携带的道具包裹 + /// 携带的被动道具包裹 /// - public List PropsPack { get; } = new List(); + public List BuffPropPack { get; } = new List(); /// - /// 角色携带的武器袋 + /// 携带的主动道具包裹 /// - public Holster Holster { get; private set; } + public Package ActivePropsPack { get; private set; } + + /// + /// 角色携带的武器背包 + /// + public Package WeaponPack { get; private set; } /// /// 武器挂载点 @@ -85,7 +90,7 @@ set { int temp = _hp; - _hp = value; + _hp = Mathf.Clamp(value, 0, _maxHp); if (temp != _hp) { OnChangeHp(_hp); @@ -185,7 +190,7 @@ else //正常状态 { HurtArea.CollisionLayer = _currentLayer; - SetBlendAlpha(1); + SetBlendModulate(new Color(1, 1, 1, 1)); } } @@ -199,13 +204,18 @@ /// 当前角色所看向的对象, 也就是枪口指向的对象 /// public ActivityObject LookTarget { get; set; } + + /// + /// 当前可以互动的物体 + /// + public ActivityObject InteractiveItem { get; private set; } //初始缩放 private Vector2 _startScale; //所有角色碰撞的物体 private readonly List _interactiveItemList = new List(); - - private CheckInteractiveResult _tempResultData; + //当前可互动的物体 + private CheckInteractiveResult _currentResultData; private uint _currentLayer; //闪烁计时器 private float _flashingInvincibleTimer = -1; @@ -217,11 +227,6 @@ private float _shieldRecoveryTimer = 0; /// - /// 可以互动的物体 - /// - public ActivityObject InteractiveItem { get; private set; } - - /// /// 当血量改变时调用 /// protected virtual void OnChangeHp(int hp) @@ -277,8 +282,9 @@ /// /// 当可互动的物体改变时调用, result 参数为 null 表示变为不可互动 /// - /// 检测是否可互动时的返回值 - protected virtual void ChangeInteractiveItem(CheckInteractiveResult result) + /// 上一个互动的物体 + /// 当前物体, 检测是否可互动时的返回值 + protected virtual void ChangeInteractiveItem(CheckInteractiveResult prev, CheckInteractiveResult result) { } @@ -289,9 +295,66 @@ { } + /// + /// 当拾起某个武器时调用 + /// + protected virtual void OnPickUpWeapon(Weapon weapon) + { + } + + /// + /// 当扔掉某个武器时调用 + /// + protected virtual void OnThrowWeapon(Weapon weapon) + { + } + + /// + /// 当切换到某个武器时调用 + /// + protected virtual void OnExchangeWeapon(Weapon weapon) + { + } + + /// + /// 当拾起某个主动道具时调用 + /// + protected virtual void OnPickUpActiveProp(ActiveProp activeProp) + { + } + + /// + /// 当移除某个主动道具时调用 + /// + protected virtual void OnRemoveActiveProp(ActiveProp activeProp) + { + } + + /// + /// 当切换到某个主动道具时调用 + /// + protected virtual void OnExchangeActiveProp(ActiveProp activeProp) + { + } + + /// + /// 当拾起某个被动道具时调用 + /// + protected virtual void OnPickUpBuffProp(BuffProp buffProp) + { + } + + /// + /// 当移除某个被动道具时调用 + /// + protected virtual void OnRemoveBuffProp(BuffProp buffProp) + { + } + public override void OnInit() { - Holster = new Holster(this); + ActivePropsPack = new Package(this, 1); + WeaponPack = new Package(this, 4); _startScale = Scale; MountPoint.Master = this; @@ -341,28 +404,32 @@ if (!findFlag) { var result = item.CheckInteractive(this); + var prev = _currentResultData; + _currentResultData = result; if (result.CanInteractive) //可以互动 { findFlag = true; if (InteractiveItem != item) //更改互动物体 { InteractiveItem = item; - ChangeInteractiveItem(result); + ChangeInteractiveItem(prev, result); } - else if (result.ShowIcon != _tempResultData.ShowIcon) //切换状态 + else if (result.Type != _currentResultData.Type) //切换状态 { - ChangeInteractiveItem(result); + ChangeInteractiveItem(prev, result); } } - _tempResultData = result; + } } } //没有可互动的物体 if (!findFlag && InteractiveItem != null) { + var prev = _currentResultData; + _currentResultData = null; InteractiveItem = null; - ChangeInteractiveItem(null); + ChangeInteractiveItem(prev, null); } //无敌状态, 播放闪烁动画 @@ -375,12 +442,12 @@ if (_flashingInvincibleFlag) { _flashingInvincibleFlag = false; - SetBlendAlpha(0.7f); + SetBlendModulate(new Color(1, 1, 1, 0.7f)); } else { _flashingInvincibleFlag = true; - SetBlendAlpha(0); + SetBlendModulate(new Color(1, 1, 1, 0)); } } @@ -402,13 +469,36 @@ _shieldRecoveryTimer = 0; } } + + //被动道具更新 + if (BuffPropPack.Count > 0) + { + var buffProps = BuffPropPack.ToArray(); + foreach (var prop in buffProps) + { + if (!prop.IsDestroyed) + { + prop.PackProcess(delta); + } + } + } + + //主动道具调用更新 + var props = (Prop[])ActivePropsPack.ItemSlot.Clone(); + foreach (var prop in props) + { + if (prop != null && !prop.IsDestroyed) + { + prop.PackProcess(delta); + } + } } /// /// 当武器放到后背时调用, 用于设置武器位置和角度 /// /// 武器实例 - /// 放入武器袋的位置 + /// 放入武器背包的位置 public virtual void OnPutBackMount(Weapon weapon, int index) { if (index < 8) @@ -435,7 +525,7 @@ protected override void OnAffiliationChange() { //身上的武器的所属区域也得跟着变 - Holster.ForEach((weapon, i) => + WeaponPack.ForEach((weapon, i) => { if (AffiliationArea != null) { @@ -449,6 +539,14 @@ } /// + /// 是否是满血 + /// + public bool IsHpFull() + { + return Hp >= MaxHp; + } + + /// /// 获取当前角色的中心点坐标 /// public Vector2 GetCenterPosition() @@ -493,7 +591,7 @@ /// public bool IsAllWeaponTotalAmmoEmpty() { - foreach (var weapon in Holster.Weapons) + foreach (var weapon in WeaponPack.ItemSlot) { if (weapon != null && !weapon.IsTotalAmmoEmpty()) { @@ -504,17 +602,20 @@ return true; } + //------------------------------------------------------------------------------------- + /// - /// 拾起一个武器, 返回是否成功拾取, 如果不想立刻切换到该武器, exchange 请传 false + /// 拾起一个武器, 返回是否成功拾起, 如果不想立刻切换到该武器, exchange 请传 false /// /// 武器对象 /// 是否立即切换到该武器, 默认 true - public virtual bool PickUpWeapon(Weapon weapon, bool exchange = true) + public bool PickUpWeapon(Weapon weapon, bool exchange = true) { - if (Holster.PickupWeapon(weapon, exchange) != -1) + if (WeaponPack.PickupItem(weapon, exchange) != -1) { //从可互动队列中移除 _interactiveItemList.Remove(weapon); + OnPickUpWeapon(weapon); return true; } @@ -524,34 +625,44 @@ /// /// 切换到下一个武器 /// - public virtual void ExchangeNext() + public void ExchangeNextWeapon() { - Holster.ExchangeNext(); + var weapon = WeaponPack.ActiveItem; + WeaponPack.ExchangeNext(); + if (WeaponPack.ActiveItem != weapon) + { + OnExchangeWeapon(WeaponPack.ActiveItem); + } } /// /// 切换到上一个武器 /// - public virtual void ExchangePrev() + public void ExchangePrevWeapon() { - Holster.ExchangePrev(); + var weapon = WeaponPack.ActiveItem; + WeaponPack.ExchangePrev(); + if (WeaponPack.ActiveItem != weapon) + { + OnExchangeWeapon(WeaponPack.ActiveItem); + } } /// /// 扔掉当前使用的武器, 切换到上一个武器 /// - public virtual void ThrowWeapon() + public void ThrowWeapon() { - ThrowWeapon(Holster.ActiveIndex); + ThrowWeapon(WeaponPack.ActiveIndex); } /// /// 扔掉指定位置的武器 /// - /// 武器在武器袋中的位置 - public virtual void ThrowWeapon(int index) + /// 武器在武器背包中的位置 + public void ThrowWeapon(int index) { - var weapon = Holster.GetWeapon(index); + var weapon = WeaponPack.GetItem(index); if (weapon == null) { return; @@ -563,12 +674,136 @@ temp.Y = -temp.Y; } //var pos = GlobalPosition + temp.Rotated(weapon.GlobalRotation); - Holster.RemoveWeapon(index); + WeaponPack.RemoveItem(index); //播放抛出效果 weapon.ThrowWeapon(this, GlobalPosition); } /// + /// 拾起主动道具, 返回是否成功拾起, 如果不想立刻切换到该道具, exchange 请传 false + /// + /// 主动道具对象 + /// 是否立即切换到该道具, 默认 true + public bool PickUpActiveProp(ActiveProp activeProp, bool exchange = true) + { + if (ActivePropsPack.PickupItem(activeProp, exchange) != -1) + { + //从可互动队列中移除 + _interactiveItemList.Remove(activeProp); + OnPickUpActiveProp(activeProp); + return true; + } + + return false; + } + + /// + /// 切换到下一个武器 + /// + public void ExchangeNextActiveProp() + { + var prop = ActivePropsPack.ActiveItem; + ActivePropsPack.ExchangeNext(); + if (prop != ActivePropsPack.ActiveItem) + { + OnExchangeActiveProp(ActivePropsPack.ActiveItem); + } + } + + /// + /// 切换到上一个武器 + /// + public void ExchangePrevActiveProp() + { + var prop = ActivePropsPack.ActiveItem; + ActivePropsPack.ExchangePrev(); + if (prop != ActivePropsPack.ActiveItem) + { + OnExchangeActiveProp(ActivePropsPack.ActiveItem); + } + } + + /// + /// 扔掉当前使用的道具 + /// + public void ThrowActiveProp() + { + ThrowActiveProp(ActivePropsPack.ActiveIndex); + } + + /// + /// 扔掉指定位置上的主动道具 + /// + public void ThrowActiveProp(int index) + { + var activeProp = ActivePropsPack.GetItem(index); + if (activeProp == null) + { + return; + } + + ActivePropsPack.RemoveItem(index); + OnRemoveActiveProp(activeProp); + //播放抛出效果 + activeProp.ThrowProp(this, GlobalPosition); + } + + /// + /// 拾起被动道具, 返回是否成功拾起 + /// + /// 被动道具对象 + public bool PickUpBuffProp(BuffProp buffProp) + { + if (BuffPropPack.Contains(buffProp)) + { + GD.PrintErr("被动道具已经在背包中了!"); + return false; + } + BuffPropPack.Add(buffProp); + buffProp.Master = this; + OnPickUpBuffProp(buffProp); + buffProp.OnPickUpItem(); + return true; + } + + /// + /// 扔掉指定的被动道具 + /// + /// + public void ThrowBuffProp(BuffProp buffProp) + { + var index = BuffPropPack.IndexOf(buffProp); + if (index < 0) + { + GD.PrintErr("当前道具不在角色背包中!"); + return; + } + + ThrowBuffProp(index); + } + + /// + /// 扔掉指定位置上的被动道具 + /// + public void ThrowBuffProp(int index) + { + if (index < 0 || index >= BuffPropPack.Count) + { + return; + } + + var buffProp = BuffPropPack[index]; + BuffPropPack.RemoveAt(index); + buffProp.OnRemoveItem(); + OnRemoveBuffProp(buffProp); + buffProp.Master = null; + //播放抛出效果 + buffProp.ThrowProp(this, GlobalPosition); + } + + //------------------------------------------------------------------------------------- + + /// /// 返回是否存在可互动的物体 /// public bool HasInteractive() @@ -596,9 +831,9 @@ /// public virtual void Reload() { - if (Holster.ActiveWeapon != null) + if (WeaponPack.ActiveItem != null) { - Holster.ActiveWeapon.Reload(); + WeaponPack.ActiveItem.Reload(); } } @@ -607,9 +842,21 @@ /// public virtual void Attack() { - if (Holster.ActiveWeapon != null) + if (WeaponPack.ActiveItem != null) { - Holster.ActiveWeapon.Trigger(); + WeaponPack.ActiveItem.Trigger(); + } + } + + /// + /// 触发使用道具 + /// + public virtual void UseActiveProp() + { + var activeItem = ActivePropsPack.ActiveItem; + if (activeItem != null) + { + activeItem.Use(); } } @@ -649,7 +896,7 @@ // GameApplication.Instance.Node3D.GetRoot().AddChild(blood); } OnHit(damage, !flag); - + //受伤特效 PlayHitAnimation(); @@ -750,24 +997,23 @@ } if (InteractiveItem == propObject) { + var prev = _currentResultData; + _currentResultData = null; InteractiveItem = null; - ChangeInteractiveItem(null); + ChangeInteractiveItem(prev, null); } } } - /// - /// 添加道具 - /// - /// - public void PushProp(Buff buff) + protected override void OnDestroy() { - if (PropsPack.Contains(buff)) + //销毁道具 + foreach (var buffProp in BuffPropPack) { - GD.PrintErr("道具已经在包裹中了!"); - return; + buffProp.Destroy(); } - PropsPack.Add(buff); - EventManager.EmitEvent(EventEnum.OnPlayerPickUpProp, buff); + BuffPropPack.Clear(); + ActivePropsPack.Destroy(); + WeaponPack.Destroy(); } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs index d2200c6..8979979 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs @@ -16,7 +16,7 @@ /// /// 基础敌人 /// -[Tool, GlobalClass] +[Tool] public partial class Enemy : Role { /// @@ -111,7 +111,7 @@ protected override void OnDie() { //扔掉所有武器 - var weapons = Holster.GetAndClearWeapon(); + var weapons = WeaponPack.GetAndClearItem(); for (var i = 0; i < weapons.Length; i++) { weapons[i].ThrowWeapon(this); @@ -283,16 +283,16 @@ /// public void EnemyAttack(float delta) { - var weapon = Holster.ActiveWeapon; + var weapon = WeaponPack.ActiveItem; if (weapon != null) { if (weapon.IsTotalAmmoEmpty()) //当前武器弹药打空 { //切换到有子弹的武器 - var index = Holster.FindWeapon((we, i) => !we.IsTotalAmmoEmpty()); + var index = WeaponPack.FindIndex((we, i) => !we.IsTotalAmmoEmpty()); if (index != -1) { - Holster.ExchangeByIndex(index); + WeaponPack.ExchangeByIndex(index); } else //所有子弹打光 { @@ -338,9 +338,9 @@ /// 从最小到最大距离的过渡量, 0 - 1, 默认 0.5 public float GetWeaponRange(float weight = 0.5f) { - if (Holster.ActiveWeapon != null) + if (WeaponPack.ActiveItem != null) { - var attribute = Holster.ActiveWeapon.Attribute; + var attribute = WeaponPack.ActiveItem.Attribute; return Mathf.Lerp(attribute.BulletMinDistance, attribute.BulletMaxDistance, weight); } @@ -415,7 +415,7 @@ //拾起地上的武器 if (InteractiveItem is Weapon weapon) { - if (Holster.ActiveWeapon == null) //手上没有武器, 无论如何也要拾起 + if (WeaponPack.ActiveItem == null) //手上没有武器, 无论如何也要拾起 { TriggerInteractive(); return; @@ -427,10 +427,10 @@ return; } - var index = Holster.FindWeapon((we, i) => we.ItemConfig.Id == weapon.ItemConfig.Id); - if (index != -1) //与武器袋中武器类型相同, 补充子弹 + var index = WeaponPack.FindIndex((we, i) => we.ItemConfig.Id == weapon.ItemConfig.Id); + if (index != -1) //与武器背包中武器类型相同, 补充子弹 { - if (!Holster.GetWeapon(index).IsAmmoFull()) + if (!WeaponPack.GetItem(index).IsAmmoFull()) { TriggerInteractive(); } @@ -440,7 +440,7 @@ // var index2 = Holster.FindWeapon((we, i) => // we.Attribute.WeightType == weapon.Attribute.WeightType && we.IsTotalAmmoEmpty()); - var index2 = Holster.FindWeapon((we, i) => we.IsTotalAmmoEmpty()); + var index2 = WeaponPack.FindIndex((we, i) => we.IsTotalAmmoEmpty()); if (index2 != -1) //扔掉没子弹的武器 { ThrowWeapon(index2); diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiFollowUpState.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiFollowUpState.cs index 1e253ea..7bf1d93 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiFollowUpState.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiFollowUpState.cs @@ -64,7 +64,7 @@ //是否在攻击范围内 var inAttackRange = false; - var weapon = Master.Holster.ActiveWeapon; + var weapon = Master.WeaponPack.ActiveItem; if (weapon != null) { inAttackRange = masterPosition.DistanceSquaredTo(playerPos) <= Mathf.Pow(Master.GetWeaponRange(0.7f), 2); diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiSurroundState.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiSurroundState.cs index 9a4c90e..c4a9b39 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiSurroundState.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/state/AiSurroundState.cs @@ -53,7 +53,7 @@ } var playerPos = Player.Current.GetCenterPosition(); - var weapon = Master.Holster.ActiveWeapon; + var weapon = Master.WeaponPack.ActiveItem; //枪口指向玩家 Master.LookTargetPosition(playerPos); @@ -160,7 +160,7 @@ private void RunOver(Vector2 targetPos) { - var weapon = Master.Holster.ActiveWeapon; + var weapon = Master.WeaponPack.ActiveItem; var distance = (int)(weapon == null ? 150 : (weapon.Attribute.BulletMinDistance * 0.7f)); _nextPosition = new Vector2( targetPos.X + Utils.RandomRangeInt(-distance, distance), diff --git a/DungeonShooting_Godot/src/game/activity/shell/Shell.cs b/DungeonShooting_Godot/src/game/activity/shell/Shell.cs index 7496390..f5f9af3 100644 --- a/DungeonShooting_Godot/src/game/activity/shell/Shell.cs +++ b/DungeonShooting_Godot/src/game/activity/shell/Shell.cs @@ -4,7 +4,7 @@ /// /// 弹壳类 /// -[Tool, GlobalClass] +[Tool] public partial class Shell : ActivityObject { public override void OnInit() diff --git a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs index 17ac271..f6f1045 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs @@ -6,7 +6,7 @@ /// /// 武器的基类 /// -public abstract partial class Weapon : ActivityObject +public abstract partial class Weapon : ActivityObject, IPackageItem { /// /// 武器属性数据 @@ -21,10 +21,9 @@ /// public CampEnum TargetCamp { get; set; } - /// - /// 该武器的拥有者 - /// - public Role Master { get; private set; } + public Role Master { get; set; } + + public int PackageIndex { get; set; } = -1; /// /// 当前弹夹弹药剩余量 @@ -110,14 +109,14 @@ public bool IsCharging => _looseShootFlag; /// - /// 返回武器是否在武器袋中 + /// 返回武器是否在武器背包中 /// public bool IsInHolster => Master != null; /// /// 返回是否真正使用该武器 /// - public bool IsActive => Master != null && Master.Holster.ActiveWeapon == this; + public bool IsActive => Master != null && Master.WeaponPack.ActiveItem == this; /// /// 动画播放器 @@ -364,7 +363,7 @@ } /// - /// 当武器从武器袋中移除时调用 + /// 当武器从武器背包中移除时调用 /// /// 移除该武器的角色 protected virtual void OnRemove(Role master) @@ -415,7 +414,7 @@ _noAttackTime += delta; //这把武器被扔在地上, 或者当前武器没有被使用 - if (Master == null || Master.Holster.ActiveWeapon != this) + if (Master == null || Master.WeaponPack.ActiveItem != this) { //_triggerTimer _triggerTimer = _triggerTimer > 0 ? _triggerTimer - delta : 0; @@ -1440,37 +1439,37 @@ { if (Master == null) { - var masterWeapon = roleMaster.Holster.ActiveWeapon; + var masterWeapon = roleMaster.WeaponPack.ActiveItem; //查找是否有同类型武器 - var index = roleMaster.Holster.FindWeapon(ItemConfig.Id); + var index = roleMaster.WeaponPack.FindIndex(ItemConfig.Id); if (index != -1) //如果有这个武器 { if (CurrAmmo + ResidueAmmo != 0) //子弹不为空 { - var targetWeapon = roleMaster.Holster.GetWeapon(index); + var targetWeapon = roleMaster.WeaponPack.GetItem(index); if (!targetWeapon.IsAmmoFull()) //背包里面的武器子弹未满 { //可以互动拾起弹药 result.CanInteractive = true; - result.ShowIcon = ResourcePath.resource_sprite_ui_icon_icon_bullet_png; + result.Type = CheckInteractiveResult.InteractiveType.Bullet; return result; } } } else //没有武器 { - if (roleMaster.Holster.CanPickupWeapon(this)) //能拾起武器 + if (roleMaster.WeaponPack.HasVacancy()) //有空位, 能拾起武器 { //可以互动, 拾起武器 result.CanInteractive = true; - result.ShowIcon = ResourcePath.resource_sprite_ui_icon_icon_pickup_png; + result.Type = CheckInteractiveResult.InteractiveType.PickUp; return result; } else if (masterWeapon != null) //替换武器 // && masterWeapon.Attribute.WeightType == Attribute.WeightType) { //可以互动, 切换武器 result.CanInteractive = true; - result.ShowIcon = ResourcePath.resource_sprite_ui_icon_icon_replace_png; + result.Type = CheckInteractiveResult.InteractiveType.Replace; return result; } } @@ -1484,9 +1483,9 @@ { if (master is Role roleMaster) //与role互动 { - var holster = roleMaster.Holster; + var holster = roleMaster.WeaponPack; //查找是否有同类型武器 - var index = holster.FindWeapon(ItemConfig.Id); + var index = holster.FindIndex(ItemConfig.Id); if (index != -1) //如果有这个武器 { if (CurrAmmo + ResidueAmmo == 0) //没有子弹了 @@ -1494,7 +1493,7 @@ return; } - var weapon = holster.GetWeapon(index); + var weapon = holster.GetItem(index); //子弹上限 var maxCount = Attribute.MaxAmmoCapacity; //是否捡到子弹 @@ -1523,16 +1522,24 @@ if (flag) { Throw(GlobalPosition, 0, Utils.RandomRangeInt(20, 50), Vector2.Zero, Utils.RandomRangeInt(-180, 180)); + //没有子弹了, 停止播放泛白效果 + if (IsTotalAmmoEmpty()) + { + //停止动画 + AnimationPlayer.Stop(); + //清除泛白效果 + SetBlendSchedule(0); + } } } else //没有武器 { - if (holster.PickupWeapon(this) == -1) + if (!holster.HasVacancy()) //没有空位置, 扔掉当前武器 { //替换武器 roleMaster.ThrowWeapon(); - roleMaster.PickUpWeapon(this); } + roleMaster.PickUpWeapon(this); } } } @@ -1546,7 +1553,7 @@ } /// - /// 触发扔掉武器抛出的效果, 并不会管武器是否在武器袋中 + /// 触发扔掉武器时抛出的效果, 并不会管武器是否在武器背包中 /// /// 触发扔掉该武器的的角色 public void ThrowWeapon(Role master) @@ -1555,7 +1562,7 @@ } /// - /// 触发扔掉武器抛出的效果, 并不会管武器是否在武器袋中 + /// 触发扔掉武器时抛出的效果, 并不会管武器是否在武器背包中 /// /// 触发扔掉该武器的的角色 /// 投抛起始位置 @@ -1586,23 +1593,57 @@ { //禁用碰撞 //Collision.Disabled = true; - AnimationPlayer.Play(AnimatorNames.Floodlight); + //AnimationPlayer.Play(AnimatorNames.Floodlight); } protected override void OnThrowOver() { //启用碰撞 //Collision.Disabled = false; - AnimationPlayer.Play(AnimatorNames.Floodlight); + //还有弹药, 播放泛白效果 + if (!IsTotalAmmoEmpty()) + { + AnimationPlayer.Play(AnimatorNames.Floodlight); + } } /// - /// 触发拾起到 Holster, 这个函数由 Holster 对象调用 + /// 触发启用武器, 这个函数由 Holster 对象调用 /// - public void PickUpWeapon(Role master) + private void Active() { - Master = master; - if (master.IsAi) + //调整阴影 + ShadowOffset = new Vector2(0, Master.GlobalPosition.Y - GlobalPosition.Y); + //枪口默认抬起角度 + RotationDegrees = -Attribute.DefaultAngle; + ShowShadowSprite(); + OnActive(); + } + + /// + /// 触发收起武器, 这个函数由 Holster 对象调用 + /// + private void Conceal() + { + HideShadowSprite(); + OnConceal(); + } + + public void OnRemoveItem() + { + GetParent().RemoveChild(this); + CollisionLayer = _tempLayer; + _weaponAttribute = _playerWeaponAttribute; + AnimatedSprite.Position = _tempAnimatedSpritePosition; + //清除 Ai 拾起标记 + RemoveSign(SignNames.AiFindWeaponSign); + OnRemove(Master); + } + + public void OnPickUpItem() + { + Pickup(); + if (Master.IsAi) { _weaponAttribute = _aiWeaponAttribute; } @@ -1626,44 +1667,45 @@ CollisionLayer = PhysicsLayer.OnHand; //清除 Ai 拾起标记 RemoveSign(SignNames.AiFindWeaponSign); - OnPickUp(master); + OnPickUp(Master); } - /// - /// 触发从 Holster 中移除, 这个函数由 Holster 对象调用 - /// - public void RemoveAt() + public void OnActiveItem() { - var master = Master; - Master = null; - CollisionLayer = _tempLayer; - _weaponAttribute = _playerWeaponAttribute; - AnimatedSprite.Position = _tempAnimatedSpritePosition; - //清除 Ai 拾起标记 - RemoveSign(SignNames.AiFindWeaponSign); - OnRemove(master); + //更改父节点 + var parent = GetParentOrNull(); + if (parent == null) + { + Master.MountPoint.AddChild(this); + } + else if (parent != Master.MountPoint) + { + parent.RemoveChild(this); + Master.MountPoint.AddChild(this); + } + + Position = Vector2.Zero; + Scale = Vector2.One; + RotationDegrees = 0; + Visible = true; + Active(); } - /// - /// 触发启用武器 - /// - public void Active() + public void OnConcealItem() { - //调整阴影 - ShadowOffset = new Vector2(0, Master.GlobalPosition.Y - GlobalPosition.Y); - //枪口默认抬起角度 - RotationDegrees = -Attribute.DefaultAngle; - ShowShadowSprite(); - OnActive(); + var tempParent = GetParentOrNull(); + if (tempParent != null) + { + tempParent.RemoveChild(this); + Master.BackMountPoint.AddChild(this); + Master.OnPutBackMount(this, PackageIndex); + Conceal(); + } } - /// - /// 触发收起武器 - /// - public void Conceal() + public void OnOverflowItem() { - HideShadowSprite(); - OnConceal(); + Master.ThrowWeapon(PackageIndex); } //-------------------------- ----- 子弹相关 ----------------------------- diff --git a/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs b/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs index 3cf6b0d..fe01cd4 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/gun/Gun.cs @@ -3,7 +3,7 @@ /// /// 普通的枪 /// -[Tool, GlobalClass] +[Tool] public partial class Gun : Weapon { protected override void OnFire() diff --git a/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs b/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs index 41ada9c..6fbaf80 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs @@ -1,7 +1,7 @@ using Godot; -[Tool, GlobalClass] +[Tool] public partial class Knife : Weapon { diff --git a/DungeonShooting_Godot/src/game/camera/GameCamera.cs b/DungeonShooting_Godot/src/game/camera/GameCamera.cs index 3786268..960c39a 100644 --- a/DungeonShooting_Godot/src/game/camera/GameCamera.cs +++ b/DungeonShooting_Godot/src/game/camera/GameCamera.cs @@ -77,17 +77,17 @@ var mousePosition = InputManager.CursorPosition; var targetPosition = _followTarget.GlobalPosition; Vector2 targetPos; - if (targetPosition.DistanceSquaredTo(mousePosition) >= (60 / 0.3f) * (60 / 0.3f)) + if (targetPosition.DistanceSquaredTo(mousePosition) >= 39999.992F) // >= (60 / 0.3f) * (60 / 0.3f) { targetPos = targetPosition.MoveToward(mousePosition, 60); } else { - targetPos = targetPosition.Lerp(mousePosition, 0.3f); + targetPos = targetPosition.Lerp(mousePosition, 0.3f); //这里的0.3就是上面的 (60 / 0.3f) * (60 / 0.3f) 中的 0.3 } - _camPos = (_camPos.Lerp(targetPos, Mathf.Min(6 * newDelta, 1))).Round(); - GlobalPosition = _camPos; - + _camPos = _camPos.Lerp(targetPos, 20 * newDelta); + GlobalPosition = _camPos.Round(); + Offset = _shakeOffset.Round(); //_temp = _camPos - targetPosition; diff --git a/DungeonShooting_Godot/src/game/effects/EnemyDebris.cs b/DungeonShooting_Godot/src/game/effects/EnemyDebris.cs index 196687f..075e8d5 100644 --- a/DungeonShooting_Godot/src/game/effects/EnemyDebris.cs +++ b/DungeonShooting_Godot/src/game/effects/EnemyDebris.cs @@ -2,7 +2,7 @@ using System.Collections; using Godot; -[Tool, GlobalClass] +[Tool] public partial class EnemyDebris : ActivityObject { diff --git a/DungeonShooting_Godot/src/game/event/EventEnum.cs b/DungeonShooting_Godot/src/game/event/EventEnum.cs index 75274c6..839aa4f 100644 --- a/DungeonShooting_Godot/src/game/event/EventEnum.cs +++ b/DungeonShooting_Godot/src/game/event/EventEnum.cs @@ -43,7 +43,7 @@ /// /// 玩家丢弃武器, 参数为 /// - OnPlayerThrowWeapon, + OnPlayerRemoveWeapon, /// /// 玩家拾起道具, 参数为 /// @@ -51,7 +51,7 @@ /// /// 玩家丢弃道具, 参数为 /// - OnPlayerThrowProp, + OnPlayerRemoveProp, /// /// 当玩家进入地牢时调用, 没有参数 diff --git a/DungeonShooting_Godot/src/game/manager/InputManager.cs b/DungeonShooting_Godot/src/game/manager/InputManager.cs index 4119692..9ebf832 100644 --- a/DungeonShooting_Godot/src/game/manager/InputManager.cs +++ b/DungeonShooting_Godot/src/game/manager/InputManager.cs @@ -7,51 +7,76 @@ public static class InputManager { /// - /// 移动方向 + /// 移动方向, 键鼠: 键盘WASD /// public static Vector2 MoveAxis { get; private set; } /// - /// 鼠标在SubViewport节点下的坐标 + /// 鼠标在SubViewport节点下的坐标, 键鼠: 鼠标移动 /// public static Vector2 CursorPosition { get; private set; } /// - /// 是否按下切换武器 + /// 是否按下打开轮盘按钮, 键鼠: 键盘Tab /// - public static bool Exchange { get; private set; } - - /// - /// 是否按钮投抛武器按钮 - /// - public static bool Throw { get; private set; } + public static bool Roulette { get; set; } /// - /// 是否按钮互动按钮 + /// 是否按下切换上一把武器, 键鼠: 键盘Q + /// + public static bool ExchangeWeapon { get; private set; } + + /// + /// 是否按下投抛武器按钮, 键鼠: 键盘G + /// + public static bool ThrowWeapon { get; private set; } + + /// + /// 是否按下使用道具按钮, 键鼠: 键盘F + /// + public static bool UseActiveProp { get; private set; } + + /// + /// 是否按下切换道具按钮, 键鼠: 键盘Z + /// + public static bool ExchangeProp { get; private set; } + + /// + /// 是否按下丢弃道具按钮, 键鼠: 键盘X + /// + public static bool RemoveProp { get; private set; } + + /// + /// 是否按钮互动按钮, 键鼠: 键盘E /// public static bool Interactive { get; private set; } /// - /// 是否按钮换弹按钮 + /// 是否按钮换弹按钮, 键鼠: 键盘R /// public static bool Reload { get; private set; } /// - /// 是否按钮开火按钮 + /// 是否按钮开火按钮, 键鼠: 鼠标左键 /// public static bool Fire { get; private set; } /// - /// 是否按钮近战攻击按钮 (使用远程武器发起的近战攻击) + /// 是否按钮近战攻击按钮 (使用远程武器发起的近战攻击), 键鼠: 鼠标右键 /// public static bool MeleeAttack { get; private set; } /// - /// 是否按下翻滚按钮 + /// 是否按下翻滚按钮, 键鼠: 键盘Space /// public static bool Roll { get; private set; } /// + /// 是否按下打开地图按钮, 键鼠: 键盘Ctrl + /// + public static bool Map { get; private set; } + + /// /// 更新输入管理器 /// public static void Update(float delta) @@ -59,13 +84,14 @@ var application = GameApplication.Instance; MoveAxis = Input.GetVector("move_left", "move_right", "move_up", "move_down"); CursorPosition = application.GlobalToViewPosition(application.GetGlobalMousePosition()); - Exchange = Input.IsActionJustPressed("exchange"); - Throw = Input.IsActionJustPressed("throw"); + ExchangeWeapon = Input.IsActionJustPressed("exchangeWeapon"); + ThrowWeapon = Input.IsActionJustPressed("throwWeapon"); Interactive = Input.IsActionJustPressed("interactive"); Reload = Input.IsActionJustPressed("reload"); Fire = Input.IsActionPressed("fire"); - MeleeAttack = Input.IsActionPressed("meleeAttack"); - Roll = Input.IsActionPressed("roll"); + MeleeAttack = Input.IsActionJustPressed("meleeAttack"); + Roll = Input.IsActionJustPressed("roll"); + UseActiveProp = Input.IsActionJustPressed("useActiveProp"); + RemoveProp = Input.IsActionJustPressed("removeProp"); } - } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index e5bbc63..ebc986e 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -24,16 +24,20 @@ public const string prefab_map_RoomDoor_N_tscn = "res://prefab/map/RoomDoor_N.tscn"; public const string prefab_map_RoomDoor_S_tscn = "res://prefab/map/RoomDoor_S.tscn"; public const string prefab_map_RoomDoor_W_tscn = "res://prefab/map/RoomDoor_W.tscn"; - public const string prefab_prop_buff_Buff0001_tscn = "res://prefab/prop/buff/Buff0001.tscn"; - public const string prefab_prop_buff_Buff0002_tscn = "res://prefab/prop/buff/Buff0002.tscn"; - public const string prefab_prop_buff_Buff0003_tscn = "res://prefab/prop/buff/Buff0003.tscn"; - public const string prefab_prop_buff_Buff0004_tscn = "res://prefab/prop/buff/Buff0004.tscn"; - public const string prefab_prop_buff_Buff0005_tscn = "res://prefab/prop/buff/Buff0005.tscn"; - public const string prefab_prop_buff_Buff0006_tscn = "res://prefab/prop/buff/Buff0006.tscn"; - public const string prefab_prop_buff_Buff0007_tscn = "res://prefab/prop/buff/Buff0007.tscn"; - public const string prefab_prop_buff_Buff0008_tscn = "res://prefab/prop/buff/Buff0008.tscn"; - public const string prefab_prop_buff_Buff0009_tscn = "res://prefab/prop/buff/Buff0009.tscn"; - public const string prefab_prop_buff_Buff0010_tscn = "res://prefab/prop/buff/Buff0010.tscn"; + public const string prefab_prop_PropTemplate_tscn = "res://prefab/prop/PropTemplate.tscn"; + public const string prefab_prop_active_ActiveProp5000_tscn = "res://prefab/prop/active/ActiveProp5000.tscn"; + public const string prefab_prop_active_ActiveProp5001_tscn = "res://prefab/prop/active/ActiveProp5001.tscn"; + public const string prefab_prop_buff_BuffProp0001_tscn = "res://prefab/prop/buff/BuffProp0001.tscn"; + public const string prefab_prop_buff_BuffProp0002_tscn = "res://prefab/prop/buff/BuffProp0002.tscn"; + public const string prefab_prop_buff_BuffProp0003_tscn = "res://prefab/prop/buff/BuffProp0003.tscn"; + public const string prefab_prop_buff_BuffProp0004_tscn = "res://prefab/prop/buff/BuffProp0004.tscn"; + public const string prefab_prop_buff_BuffProp0005_tscn = "res://prefab/prop/buff/BuffProp0005.tscn"; + public const string prefab_prop_buff_BuffProp0006_tscn = "res://prefab/prop/buff/BuffProp0006.tscn"; + public const string prefab_prop_buff_BuffProp0007_tscn = "res://prefab/prop/buff/BuffProp0007.tscn"; + public const string prefab_prop_buff_BuffProp0008_tscn = "res://prefab/prop/buff/BuffProp0008.tscn"; + public const string prefab_prop_buff_BuffProp0009_tscn = "res://prefab/prop/buff/BuffProp0009.tscn"; + public const string prefab_prop_buff_BuffProp0010_tscn = "res://prefab/prop/buff/BuffProp0010.tscn"; + public const string prefab_prop_buff_Weapon0005_png = "res://prefab/prop/buff/Weapon0005.png"; public const string prefab_role_Enemy0001_tscn = "res://prefab/role/Enemy0001.tscn"; public const string prefab_role_Role0001_tscn = "res://prefab/role/Role0001.tscn"; public const string prefab_role_RoleTemplate_tscn = "res://prefab/role/RoleTemplate.tscn"; @@ -55,6 +59,7 @@ public const string prefab_weapon_Weapon0005_tscn = "res://prefab/weapon/Weapon0005.tscn"; public const string prefab_weapon_Weapon0006_tscn = "res://prefab/weapon/Weapon0006.tscn"; public const string prefab_weapon_WeaponTemplate_tscn = "res://prefab/weapon/WeaponTemplate.tscn"; + public const string resource_Enviromenent_tres = "res://resource/Enviromenent.tres"; public const string resource_config_ActivityObject_json = "res://resource/config/ActivityObject.json"; public const string resource_config_Sound_json = "res://resource/config/Sound.json"; public const string resource_config_Weapon_json = "res://resource/config/Weapon.json"; @@ -126,16 +131,18 @@ public const string resource_sprite_map_map1_16x16dungeoniiwallreconfigv04spritesheet_png = "res://resource/sprite/map/map1/16x16 dungeon ii wall reconfig v04 spritesheet.png"; public const string resource_sprite_map_map1_door1_down_png = "res://resource/sprite/map/map1/door1_down.png"; public const string resource_sprite_map_map1_website_txt = "res://resource/sprite/map/map1/website.txt"; - public const string resource_sprite_prop_buff_Buff0001_png = "res://resource/sprite/prop/buff/Buff0001.png"; - public const string resource_sprite_prop_buff_Buff0002_png = "res://resource/sprite/prop/buff/Buff0002.png"; - public const string resource_sprite_prop_buff_Buff0003_png = "res://resource/sprite/prop/buff/Buff0003.png"; - public const string resource_sprite_prop_buff_Buff0004_png = "res://resource/sprite/prop/buff/Buff0004.png"; - public const string resource_sprite_prop_buff_Buff0005_png = "res://resource/sprite/prop/buff/Buff0005.png"; - public const string resource_sprite_prop_buff_Buff0006_png = "res://resource/sprite/prop/buff/Buff0006.png"; - public const string resource_sprite_prop_buff_Buff0007_png = "res://resource/sprite/prop/buff/Buff0007.png"; - public const string resource_sprite_prop_buff_Buff0008_png = "res://resource/sprite/prop/buff/Buff0008.png"; - public const string resource_sprite_prop_buff_Buff0009_png = "res://resource/sprite/prop/buff/Buff0009.png"; - public const string resource_sprite_prop_buff_Buff0010_png = "res://resource/sprite/prop/buff/Buff0010.png"; + public const string resource_sprite_prop_active_ActiveProp5000_png = "res://resource/sprite/prop/active/ActiveProp5000.png"; + public const string resource_sprite_prop_active_ActiveProp5001_png = "res://resource/sprite/prop/active/ActiveProp5001.png"; + public const string resource_sprite_prop_buff_BuffProp0001_png = "res://resource/sprite/prop/buff/BuffProp0001.png"; + public const string resource_sprite_prop_buff_BuffProp0002_png = "res://resource/sprite/prop/buff/BuffProp0002.png"; + public const string resource_sprite_prop_buff_BuffProp0003_png = "res://resource/sprite/prop/buff/BuffProp0003.png"; + public const string resource_sprite_prop_buff_BuffProp0004_png = "res://resource/sprite/prop/buff/BuffProp0004.png"; + public const string resource_sprite_prop_buff_BuffProp0005_png = "res://resource/sprite/prop/buff/BuffProp0005.png"; + public const string resource_sprite_prop_buff_BuffProp0006_png = "res://resource/sprite/prop/buff/BuffProp0006.png"; + public const string resource_sprite_prop_buff_BuffProp0007_png = "res://resource/sprite/prop/buff/BuffProp0007.png"; + public const string resource_sprite_prop_buff_BuffProp0008_png = "res://resource/sprite/prop/buff/BuffProp0008.png"; + public const string resource_sprite_prop_buff_BuffProp0009_png = "res://resource/sprite/prop/buff/BuffProp0009.png"; + public const string resource_sprite_prop_buff_BuffProp0010_png = "res://resource/sprite/prop/buff/BuffProp0010.png"; public const string resource_sprite_role_role10_png = "res://resource/sprite/role/role10.png"; public const string resource_sprite_role_role2_png = "res://resource/sprite/role/role2.png"; public const string resource_sprite_role_role3_png = "res://resource/sprite/role/role3.png"; @@ -154,25 +161,23 @@ public const string resource_sprite_ui_cursors_png = "res://resource/sprite/ui/cursors.png"; public const string resource_sprite_ui_font_bg_png = "res://resource/sprite/ui/font_bg.png"; public const string resource_sprite_ui_GUI_png = "res://resource/sprite/ui/GUI.png"; - public const string resource_sprite_ui_healthBar_png = "res://resource/sprite/ui/healthBar.png"; - public const string resource_sprite_ui_hpBar_png = "res://resource/sprite/ui/hpBar.png"; - public const string resource_sprite_ui_hpSlot_png = "res://resource/sprite/ui/hpSlot.png"; - public const string resource_sprite_ui_Life_empty_png = "res://resource/sprite/ui/Life_empty.png"; - public const string resource_sprite_ui_Life_full_png = "res://resource/sprite/ui/Life_full.png"; - public const string resource_sprite_ui_Life_half_png = "res://resource/sprite/ui/Life_half.png"; - public const string resource_sprite_ui_mapBar_png = "res://resource/sprite/ui/mapBar.png"; - public const string resource_sprite_ui_reloadBar_png = "res://resource/sprite/ui/reloadBar.png"; - public const string resource_sprite_ui_reloadBarBlock_png = "res://resource/sprite/ui/reloadBarBlock.png"; - public const string resource_sprite_ui_RoomUi_png = "res://resource/sprite/ui/RoomUi.png"; - public const string resource_sprite_ui_shieldBar_png = "res://resource/sprite/ui/shieldBar.png"; - public const string resource_sprite_ui_shieldSlot_png = "res://resource/sprite/ui/shieldSlot.png"; - public const string resource_sprite_ui_Shield_empty_png = "res://resource/sprite/ui/Shield_empty.png"; - public const string resource_sprite_ui_Shield_full_png = "res://resource/sprite/ui/Shield_full.png"; - public const string resource_sprite_ui_templateui_png = "res://resource/sprite/ui/template-ui.png"; - public const string resource_sprite_ui_icon_icon_bullet_png = "res://resource/sprite/ui/icon/icon_bullet.png"; - public const string resource_sprite_ui_icon_icon_pickup_png = "res://resource/sprite/ui/icon/icon_pickup.png"; - public const string resource_sprite_ui_icon_icon_replace_png = "res://resource/sprite/ui/icon/icon_replace.png"; public const string resource_sprite_ui_keyboard_e_png = "res://resource/sprite/ui/keyboard/e.png"; + public const string resource_sprite_ui_roomUI_ChargeProgress_png = "res://resource/sprite/ui/roomUI/ChargeProgress.png"; + public const string resource_sprite_ui_roomUI_ChargeProgressBar_png = "res://resource/sprite/ui/roomUI/ChargeProgressBar.png"; + public const string resource_sprite_ui_roomUI_Cooldown_png = "res://resource/sprite/ui/roomUI/Cooldown.png"; + public const string resource_sprite_ui_roomUI_icon_bullet_png = "res://resource/sprite/ui/roomUI/icon_bullet.png"; + public const string resource_sprite_ui_roomUI_icon_pickup_png = "res://resource/sprite/ui/roomUI/icon_pickup.png"; + public const string resource_sprite_ui_roomUI_icon_replace_png = "res://resource/sprite/ui/roomUI/icon_replace.png"; + public const string resource_sprite_ui_roomUI_Life_empty_png = "res://resource/sprite/ui/roomUI/Life_empty.png"; + public const string resource_sprite_ui_roomUI_Life_full_png = "res://resource/sprite/ui/roomUI/Life_full.png"; + public const string resource_sprite_ui_roomUI_Life_half_png = "res://resource/sprite/ui/roomUI/Life_half.png"; + public const string resource_sprite_ui_roomUI_MapBar_png = "res://resource/sprite/ui/roomUI/MapBar.png"; + public const string resource_sprite_ui_roomUI_Panel_png = "res://resource/sprite/ui/roomUI/Panel.png"; + public const string resource_sprite_ui_roomUI_Panel2_png = "res://resource/sprite/ui/roomUI/Panel2.png"; + public const string resource_sprite_ui_roomUI_ReloadBar_png = "res://resource/sprite/ui/roomUI/ReloadBar.png"; + public const string resource_sprite_ui_roomUI_ReloadBarBlock_png = "res://resource/sprite/ui/roomUI/ReloadBarBlock.png"; + public const string resource_sprite_ui_roomUI_Shield_empty_png = "res://resource/sprite/ui/roomUI/Shield_empty.png"; + public const string resource_sprite_ui_roomUI_Shield_full_png = "res://resource/sprite/ui/roomUI/Shield_full.png"; public const string resource_sprite_weapon_bow_png = "res://resource/sprite/weapon/bow.png"; public const string resource_sprite_weapon_gun1_png = "res://resource/sprite/weapon/gun1.png"; public const string resource_sprite_weapon_gun2_png = "res://resource/sprite/weapon/gun2.png"; @@ -194,16 +199,18 @@ public const string resource_spriteFrames_effect_KnifeHit1_tres = "res://resource/spriteFrames/effect/KnifeHit1.tres"; public const string resource_spriteFrames_other_RoomDoor_EW_tres = "res://resource/spriteFrames/other/RoomDoor_EW.tres"; public const string resource_spriteFrames_other_RoomDoor_NS_tres = "res://resource/spriteFrames/other/RoomDoor_NS.tres"; - public const string resource_spriteFrames_prop_buff_Buff0001_tres = "res://resource/spriteFrames/prop/buff/Buff0001.tres"; - public const string resource_spriteFrames_prop_buff_Buff0002_tres = "res://resource/spriteFrames/prop/buff/Buff0002.tres"; - public const string resource_spriteFrames_prop_buff_Buff0003_tres = "res://resource/spriteFrames/prop/buff/Buff0003.tres"; - public const string resource_spriteFrames_prop_buff_Buff0004_tres = "res://resource/spriteFrames/prop/buff/Buff0004.tres"; - public const string resource_spriteFrames_prop_buff_Buff0005_tres = "res://resource/spriteFrames/prop/buff/Buff0005.tres"; - public const string resource_spriteFrames_prop_buff_Buff0006_tres = "res://resource/spriteFrames/prop/buff/Buff0006.tres"; - public const string resource_spriteFrames_prop_buff_Buff0007_tres = "res://resource/spriteFrames/prop/buff/Buff0007.tres"; - public const string resource_spriteFrames_prop_buff_Buff0008_tres = "res://resource/spriteFrames/prop/buff/Buff0008.tres"; - public const string resource_spriteFrames_prop_buff_Buff0009_tres = "res://resource/spriteFrames/prop/buff/Buff0009.tres"; - public const string resource_spriteFrames_prop_buff_Buff0010_tres = "res://resource/spriteFrames/prop/buff/Buff0010.tres"; + public const string resource_spriteFrames_prop_active_ActiveProp5000_tres = "res://resource/spriteFrames/prop/active/ActiveProp5000.tres"; + public const string resource_spriteFrames_prop_active_ActiveProp5001_tres = "res://resource/spriteFrames/prop/active/ActiveProp5001.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0001_tres = "res://resource/spriteFrames/prop/buff/BuffProp0001.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0002_tres = "res://resource/spriteFrames/prop/buff/BuffProp0002.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0003_tres = "res://resource/spriteFrames/prop/buff/BuffProp0003.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0004_tres = "res://resource/spriteFrames/prop/buff/BuffProp0004.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0005_tres = "res://resource/spriteFrames/prop/buff/BuffProp0005.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0006_tres = "res://resource/spriteFrames/prop/buff/BuffProp0006.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0007_tres = "res://resource/spriteFrames/prop/buff/BuffProp0007.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0008_tres = "res://resource/spriteFrames/prop/buff/BuffProp0008.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0009_tres = "res://resource/spriteFrames/prop/buff/BuffProp0009.tres"; + public const string resource_spriteFrames_prop_buff_BuffProp0010_tres = "res://resource/spriteFrames/prop/buff/BuffProp0010.tres"; public const string resource_spriteFrames_role_Role0001_tres = "res://resource/spriteFrames/role/Role0001.tres"; public const string resource_spriteFrames_role_Role1001_tres = "res://resource/spriteFrames/role/Role1001.tres"; public const string resource_spriteFrames_shell_Shell0001_tres = "res://resource/spriteFrames/shell/Shell0001.tres"; @@ -227,6 +234,7 @@ public const string scene_test_TestNavigationPolygon_tscn = "res://scene/test/TestNavigationPolygon.tscn"; public const string scene_test_TestNewTileMap_tscn = "res://scene/test/TestNewTileMap.tscn"; public const string scene_test_TestOptimizeSprite_tscn = "res://scene/test/TestOptimizeSprite.tscn"; + public const string scene_test_TestOutline_tscn = "res://scene/test/TestOutline.tscn"; public const string scene_test_TestReadExcel_tscn = "res://scene/test/TestReadExcel.tscn"; public const string scene_test_TestTileLayer_tscn = "res://scene/test/TestTileLayer.tscn"; } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/room/DungeonManager.cs b/DungeonShooting_Godot/src/game/room/DungeonManager.cs index cab98e4..0f3d801 100644 --- a/DungeonShooting_Godot/src/game/room/DungeonManager.cs +++ b/DungeonShooting_Godot/src/game/room/DungeonManager.cs @@ -162,8 +162,7 @@ yield return 0; //打开游戏中的ui - var roomUi = UiManager.Open_RoomUI(); - roomUi.InitData(); + UiManager.Open_RoomUI(); //派发进入地牢事件 EventManager.EmitEvent(EventEnum.OnEnterDungeon); @@ -331,29 +330,29 @@ var py2 = py1 + 4 * GameConfig.TileCellSize; if (px1 < minX) { - minX = (int)px1; + minX = px1; } else if (px1 > maxX) { - maxX = (int)px1; + maxX = px1; } if (py1 < minY) { - minY = (int)py1; + minY = py1; } else if (py1 > maxY) { - maxY = (int)py1; + maxY = py1; } if (py2 < minY) { - minY = (int)py2; + minY = py2; } else if (py2 > maxY) { - maxY = (int)py2; + maxY = py2; } } break; @@ -364,29 +363,29 @@ var px2 = px1 + 4 * GameConfig.TileCellSize; if (px1 < minX) { - minX = (int)px1; + minX = px1; } else if (px1 > maxX) { - maxX = (int)px1; + maxX = px1; } if (py1 < minY) { - minY = (int)py1; + minY = py1; } else if (py1 > maxY) { - maxY = (int)py1; + maxY = py1; } if (px2 < minX) { - minX = (int)px2; + minX = px2; } else if (px2 > maxX) { - maxX = (int)px2; + maxX = px2; } } break; diff --git a/DungeonShooting_Godot/src/game/room/RoomDoor.cs b/DungeonShooting_Godot/src/game/room/RoomDoor.cs index 86f06b9..da15cae 100644 --- a/DungeonShooting_Godot/src/game/room/RoomDoor.cs +++ b/DungeonShooting_Godot/src/game/room/RoomDoor.cs @@ -4,7 +4,7 @@ /// /// 房间的门, 门有两种状态, 打开和关闭 /// -[Tool, GlobalClass] +[Tool] public partial class RoomDoor : ActivityObject { /// diff --git a/DungeonShooting_Godot/src/game/ui/bottomTips/BottomTipsPanel.cs b/DungeonShooting_Godot/src/game/ui/bottomTips/BottomTipsPanel.cs index cdfe7dc..7eb02fc 100644 --- a/DungeonShooting_Godot/src/game/ui/bottomTips/BottomTipsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/bottomTips/BottomTipsPanel.cs @@ -3,6 +3,9 @@ namespace UI.BottomTips; +/// +/// 底部提示面板 +/// public partial class BottomTipsPanel : BottomTips { private long _id = -1; diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs index 0589080..314c6a9 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs @@ -2,14 +2,22 @@ using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; -using Generator; using Godot; +#if TOOLS +using Generator; +#endif + namespace UI.EditorTools; +/// +/// Godot编辑器扩展工具 +/// [Tool] public partial class EditorToolsPanel : EditorTools { + +#if TOOLS //Tips 关闭回调 private Action _onTipsClose; @@ -233,7 +241,6 @@ /// private void OnGenerateCurrentUiCode() { -#if TOOLS if (Plugin.Plugin.Instance != null) { var root = Plugin.Plugin.Instance.GetEditorInterface().GetEditedSceneRoot(); @@ -253,7 +260,6 @@ ShowTips("错误", "当前的场景不是受管束的UI场景!"); } } -#endif } /// @@ -417,4 +423,13 @@ editorToolsInstance[0].ShowConfirm(title, message, onClose); } } +#else + public override void OnShowUi() + { + } + + public override void OnHideUi() + { + } +#endif } diff --git a/DungeonShooting_Godot/src/game/ui/loading/LoadingPanel.cs b/DungeonShooting_Godot/src/game/ui/loading/LoadingPanel.cs index bb317f7..50d070e 100644 --- a/DungeonShooting_Godot/src/game/ui/loading/LoadingPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/loading/LoadingPanel.cs @@ -2,6 +2,9 @@ namespace UI.Loading; +/// +/// 加载页面 +/// public partial class LoadingPanel : Loading { diff --git a/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs b/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs index 0c0b36b..fd5222f 100644 --- a/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/main/MainPanel.cs @@ -2,6 +2,9 @@ namespace UI.Main; +/// +/// 主菜单 +/// public partial class MainPanel : Main { diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/ActivePropBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/ActivePropBar.cs new file mode 100644 index 0000000..c037150 --- /dev/null +++ b/DungeonShooting_Godot/src/game/ui/roomUI/ActivePropBar.cs @@ -0,0 +1,204 @@ +using Godot; + +namespace UI.RoomUI; + +public class ActivePropBar +{ + private RoomUI.UiNode_ActivePropBar _activePropBar; + private ShaderMaterial _shaderMaterial; + private Vector2 _startCooldownPos; + private Vector2 _startCooldownSize; + private Vector2 _startChargePos; + private Rect2 _startChargeRect; + + private bool _initCooldown = false; + + public ActivePropBar(RoomUI.UiNode_ActivePropBar activePropBar) + { + _activePropBar = activePropBar; + _shaderMaterial = (ShaderMaterial)_activePropBar.L_ActivePropSprite.Instance.Material; + _startCooldownPos = _activePropBar.L_CooldownProgress.Instance.Position; + _startCooldownSize = _activePropBar.L_CooldownProgress.Instance.Scale; + _startChargePos = _activePropBar.L_ChargeProgress.Instance.Position; + _startChargeRect = _activePropBar.L_ChargeProgress.Instance.RegionRect; + + SetActivePropTexture(null); + SetChargeProgress(1); + } + + public void OnShow() + { + + } + + public void OnHide() + { + + } + + public void Process(float delta) + { + var prop = Player.Current?.ActivePropsPack.ActiveItem; + if (prop != null) + { + SetActivePropCount(prop.Count); + SetActivePropTexture(prop.GetCurrentTexture()); + + //是否可以使用该道具 + if (prop.CheckUse()) + { + _shaderMaterial.SetShaderParameter("schedule", 0); + } + else + { + _shaderMaterial.SetShaderParameter("schedule", 0.6f); + } + + //冷却 + SetCooldownProgress(prop.GetCooldownProgress()); + + //充能进度 + SetChargeProgress(prop.ChargeProgress); + } + else + { + SetActivePropTexture(null); + } + } + + /// + /// 设置道具图标 + /// + public void SetActivePropTexture(Texture2D texture) + { + if (texture != null) + { + _activePropBar.L_ActivePropSprite.Instance.Texture = texture; + _activePropBar.Instance.Visible = true; + } + else + { + _activePropBar.Instance.Visible = false; + } + } + + /// + /// 设置道具数量 + /// + public void SetActivePropCount(int count) + { + if (count > 1) + { + _activePropBar.L_ActivePropCount.Instance.Visible = true; + _activePropBar.L_ActivePropCount.Instance.Text = count.ToString(); + } + else + { + _activePropBar.L_ActivePropCount.Instance.Visible = false; + } + } + + /// + /// 设置道具冷却进度 + /// + /// 进度: 0 - 1 + public void SetCooldownProgress(float progress) + { + progress = 1 - progress; + var colorRect = _activePropBar.L_CooldownProgress.Instance; + if (progress <= 0) + { + colorRect.Visible = false; + } + else + { + colorRect.Visible = true; + + //调整蒙板高度 + var rect = colorRect.RegionRect; + var size = rect.Size; + size.Y = progress; + rect.Size = size; + colorRect.RegionRect = rect; + + //调整蒙板位置 + var height = _startCooldownSize.Y * progress; + var position = colorRect.Position; + position.Y = _startCooldownPos.Y + (_startCooldownSize.Y - height); + colorRect.Position = position; + } + } + + /// + /// 设置充能进度条是否显示 + /// + public void SetChargeProgressVisible(bool visible) + { + var ninePatchRect = _activePropBar.L_ChargeProgressBar.Instance; + _activePropBar.L_ChargeProgress.Instance.Visible = visible; + if (ninePatchRect.Visible == visible && _initCooldown) + { + return; + } + + _initCooldown = true; + + var sprite = _activePropBar.L_CooldownProgress.Instance; + ninePatchRect.Visible = visible; + //调整冷却蒙板大小 + if (visible) + { + var rect = ninePatchRect.GetRect(); + + var position = sprite.Position; + position.X = _startCooldownPos.X + rect.Size.X - 1; + sprite.Position = position; + + var scale = sprite.Scale; + scale.X = _startCooldownSize.X - rect.Size.X + 1; + sprite.Scale = scale; + } + else + { + sprite.Position = _startCooldownPos; + sprite.Scale = _startCooldownSize; + } + } + + /// + /// 设置充能进度 + /// + /// 进度: 0 - 1 + public void SetChargeProgress(float progress) + { + if (progress >= 1) + { + SetChargeProgressVisible(false); + } + else + { + SetChargeProgressVisible(true); + + var height = _startChargeRect.Size.Y * progress; + var rectY = _startChargeRect.Size.Y * (1 - progress); + var posY = _startChargePos.Y + rectY; + + var sprite = _activePropBar.L_ChargeProgress.Instance; + + var position = sprite.Position; + position.Y = posY; + sprite.Position = position; + + var rect = sprite.RegionRect; + var rectPosition = rect.Position; + rectPosition.Y = rectY; + rect.Position = rectPosition; + + var rectSize = rect.Size; + rectSize.Y = height; + rect.Size = rectSize; + + sprite.RegionRect = rect; + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/GunBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/GunBar.cs deleted file mode 100644 index 7484999..0000000 --- a/DungeonShooting_Godot/src/game/ui/roomUI/GunBar.cs +++ /dev/null @@ -1,72 +0,0 @@ -using Godot; - -namespace UI.RoomUI; - -public class GunBar -{ - private RoomUI.UiNode_GunBar _gunBar; - - private int _prevAmmo = -1; - private int _prevResidue = -1; - - public GunBar(RoomUI.UiNode_GunBar gunBar) - { - _gunBar = gunBar; - } - - public void OnShow() - { - } - - public void OnHide() - { - } - - public void Process(float delta) - { - var weapon = Player.Current?.Holster.ActiveWeapon; - if (weapon != null) - { - SetWeaponTexture(weapon.GetCurrentTexture()); - SetWeaponAmmunition(weapon.CurrAmmo, weapon.ResidueAmmo); - } - else - { - SetWeaponTexture(null); - } - } - - /// - /// 设置显示在 ui 上武器的纹理 - /// - /// 纹理 - public void SetWeaponTexture(Texture2D gun) - { - if (gun != null) - { - _gunBar.L_GunSprite.Instance.Texture = gun; - _gunBar.L_GunSprite.Instance.Visible = true; - _gunBar.L_BulletText.Instance.Visible = true; - } - else - { - _gunBar.L_GunSprite.Instance.Visible = false; - _gunBar.L_BulletText.Instance.Visible = false; - } - } - - /// - /// 设置弹药数据 - /// - /// 当前弹夹弹药量 - /// 剩余弹药总数 - public void SetWeaponAmmunition(int curr, int total) - { - if (curr != _prevAmmo || total != _prevResidue) - { - _gunBar.L_BulletText.Instance.Text = curr + " / " + total; - _prevAmmo = curr; - _prevResidue = total; - } - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs index db7ad3c..0779db9 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs @@ -8,7 +8,6 @@ public class InteractiveTipBar { private RoomUI.UiNode_InteractiveTipBar _interactiveTipBar; - private string _currImage; private EventBinder _binder; private ActivityObject _interactiveTarget; @@ -45,14 +44,10 @@ /// 所在坐标 /// 显示文本 /// 显示图标 - public void ShowBar(ActivityObject target, string showText, string icon) + public void ShowBar(ActivityObject target, string showText, Texture2D icon) { _interactiveTipBar.Instance.GlobalPosition = target.GlobalPosition; - if (_currImage != icon) - { - _currImage = icon; - _interactiveTipBar.L_Icon.Instance.Texture = ResourceManager.Load(icon); - } + _interactiveTipBar.L_Icon.Instance.Texture = icon; _interactiveTipBar.Instance.Visible = true; _interactiveTipBar.L_NameLabel.Instance.Text = showText; } @@ -70,11 +65,12 @@ var result = (CheckInteractiveResult)o; var interactiveItem = Player.Current.InteractiveItem; //if (interactiveItem is Weapon) - if (!string.IsNullOrEmpty(result.ShowIcon)) + var icon = result.GetIcon(); + if (icon != null) { _interactiveTarget = interactiveItem; //显示互动提示 - ShowBar(result.Target, result.Target.ItemConfig.Name, result.ShowIcon); + ShowBar(result.Target, result.Target.ItemConfig.Name, icon); } else { diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/LifeBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/LifeBar.cs index 1b9df3c..69b5190 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/LifeBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/LifeBar.cs @@ -17,13 +17,6 @@ var uiNodeLife = lifeBar.L_Life; _grid = new UiGrid(uiNodeLife, typeof(LifeCell), 20, 1, 2); - - - // _grid.Add(LifeIconEnum.FullHeart); - // _grid.Add(LifeIconEnum.HalfHeart); - // _grid.Add(LifeIconEnum.EmptyHeart); - // _grid.Add(LifeIconEnum.FullShield); - // _grid.Add(LifeIconEnum.EmptyShield); } public void OnShow() @@ -33,6 +26,7 @@ _eventFactory.AddEventListener(EventEnum.OnPlayerMaxHpChange, o => RefreshLife()); _eventFactory.AddEventListener(EventEnum.OnPlayerShieldChange, o => RefreshLife()); _eventFactory.AddEventListener(EventEnum.OnPlayerMaxShieldChange, o => RefreshLife()); + RefreshLife(); } public void OnHide() diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs b/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs index c08cd65..821c5f8 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs @@ -17,19 +17,19 @@ switch (data) { case LifeIconEnum.FullHeart: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_Life_full_png); + CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_full_png); break; case LifeIconEnum.HalfHeart: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_Life_half_png); + CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_half_png); break; case LifeIconEnum.EmptyHeart: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_Life_empty_png); + CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_empty_png); break; case LifeIconEnum.FullShield: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_Shield_full_png); + CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Shield_full_png); break; case LifeIconEnum.EmptyShield: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_Shield_empty_png); + CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Shield_empty_png); break; } } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs index e593d8b..71f2327 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs @@ -56,9 +56,9 @@ public void OnCameraPositionUpdate(float delta) { var player = Player.Current; - if (player.Holster.ActiveWeapon != null && player.Holster.ActiveWeapon.Reloading) + if (player.WeaponPack.ActiveItem != null && player.WeaponPack.ActiveItem.Reloading) { - ShowBar(player.GlobalPosition, player.Holster.ActiveWeapon.ReloadProgress); + ShowBar(player.GlobalPosition, player.WeaponPack.ActiveItem.ReloadProgress); } else { diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs index f7e4f7e..9db9d95 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs @@ -240,56 +240,241 @@ } /// - /// 类型: , 路径: RoomUI.Control.GunBar.GunSprite + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropBg /// - public class UiNode_GunSprite : IUiNode + public class UiNode_ActivePropBg : IUiNode { - public UiNode_GunSprite(Godot.TextureRect node) : base(node) { } - public override UiNode_GunSprite Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode_ActivePropBg(Godot.NinePatchRect node) : base(node) { } + public override UiNode_ActivePropBg Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); } /// - /// 类型: , 路径: RoomUI.Control.GunBar.BulletText + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropSprite /// - public class UiNode_BulletText : IUiNode + public class UiNode_ActivePropSprite : IUiNode { - public UiNode_BulletText(Godot.Label node) : base(node) { } - public override UiNode_BulletText Clone() => new ((Godot.Label)Instance.Duplicate()); + public UiNode_ActivePropSprite(Godot.TextureRect node) : base(node) { } + public override UiNode_ActivePropSprite Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// - /// 类型: , 路径: RoomUI.Control.GunBar + /// 类型: , 路径: RoomUI.Control.ActivePropBar.CooldownProgress /// - public class UiNode_GunBar : IUiNode + public class UiNode_CooldownProgress : IUiNode + { + public UiNode_CooldownProgress(Godot.Sprite2D node) : base(node) { } + public override UiNode_CooldownProgress Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropCount + /// + public class UiNode_ActivePropCount : IUiNode + { + public UiNode_ActivePropCount(Godot.Label node) : base(node) { } + public override UiNode_ActivePropCount Clone() => new ((Godot.Label)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropPanel + /// + public class UiNode_ActivePropPanel : IUiNode + { + public UiNode_ActivePropPanel(Godot.NinePatchRect node) : base(node) { } + public override UiNode_ActivePropPanel Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ChargeProgressBar + /// + public class UiNode_ChargeProgressBar : IUiNode + { + public UiNode_ChargeProgressBar(Godot.NinePatchRect node) : base(node) { } + public override UiNode_ChargeProgressBar Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ChargeProgress + /// + public class UiNode_ChargeProgress : IUiNode + { + public UiNode_ChargeProgress(Godot.Sprite2D node) : base(node) { } + public override UiNode_ChargeProgress Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar + /// + public class UiNode_ActivePropBar : IUiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.GunSprite + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropBg /// - public UiNode_GunSprite L_GunSprite + public UiNode_ActivePropBg L_ActivePropBg { get { - if (_L_GunSprite == null) _L_GunSprite = new UiNode_GunSprite(Instance.GetNodeOrNull("GunSprite")); - return _L_GunSprite; + if (_L_ActivePropBg == null) _L_ActivePropBg = new UiNode_ActivePropBg(Instance.GetNodeOrNull("ActivePropBg")); + return _L_ActivePropBg; } } - private UiNode_GunSprite _L_GunSprite; + private UiNode_ActivePropBg _L_ActivePropBg; /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.BulletText + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropSprite /// - public UiNode_BulletText L_BulletText + public UiNode_ActivePropSprite L_ActivePropSprite { get { - if (_L_BulletText == null) _L_BulletText = new UiNode_BulletText(Instance.GetNodeOrNull("BulletText")); - return _L_BulletText; + if (_L_ActivePropSprite == null) _L_ActivePropSprite = new UiNode_ActivePropSprite(Instance.GetNodeOrNull("ActivePropSprite")); + return _L_ActivePropSprite; } } - private UiNode_BulletText _L_BulletText; + private UiNode_ActivePropSprite _L_ActivePropSprite; - public UiNode_GunBar(Godot.Control node) : base(node) { } - public override UiNode_GunBar Clone() => new ((Godot.Control)Instance.Duplicate()); + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.CooldownProgress + /// + public UiNode_CooldownProgress L_CooldownProgress + { + get + { + if (_L_CooldownProgress == null) _L_CooldownProgress = new UiNode_CooldownProgress(Instance.GetNodeOrNull("CooldownProgress")); + return _L_CooldownProgress; + } + } + private UiNode_CooldownProgress _L_CooldownProgress; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropCount + /// + public UiNode_ActivePropCount L_ActivePropCount + { + get + { + if (_L_ActivePropCount == null) _L_ActivePropCount = new UiNode_ActivePropCount(Instance.GetNodeOrNull("ActivePropCount")); + return _L_ActivePropCount; + } + } + private UiNode_ActivePropCount _L_ActivePropCount; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropPanel + /// + public UiNode_ActivePropPanel L_ActivePropPanel + { + get + { + if (_L_ActivePropPanel == null) _L_ActivePropPanel = new UiNode_ActivePropPanel(Instance.GetNodeOrNull("ActivePropPanel")); + return _L_ActivePropPanel; + } + } + private UiNode_ActivePropPanel _L_ActivePropPanel; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ChargeProgressBar + /// + public UiNode_ChargeProgressBar L_ChargeProgressBar + { + get + { + if (_L_ChargeProgressBar == null) _L_ChargeProgressBar = new UiNode_ChargeProgressBar(Instance.GetNodeOrNull("ChargeProgressBar")); + return _L_ChargeProgressBar; + } + } + private UiNode_ChargeProgressBar _L_ChargeProgressBar; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ChargeProgress + /// + public UiNode_ChargeProgress L_ChargeProgress + { + get + { + if (_L_ChargeProgress == null) _L_ChargeProgress = new UiNode_ChargeProgress(Instance.GetNodeOrNull("ChargeProgress")); + return _L_ChargeProgress; + } + } + private UiNode_ChargeProgress _L_ChargeProgress; + + public UiNode_ActivePropBar(Godot.Control node) : base(node) { } + public override UiNode_ActivePropBar Clone() => new ((Godot.Control)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.WeaponBar.WeaponPanel.WeaponSprite + /// + public class UiNode_WeaponSprite : IUiNode + { + public UiNode_WeaponSprite(Godot.TextureRect node) : base(node) { } + public override UiNode_WeaponSprite Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.WeaponBar.WeaponPanel + /// + public class UiNode_WeaponPanel : IUiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.WeaponBar.WeaponSprite + /// + public UiNode_WeaponSprite L_WeaponSprite + { + get + { + if (_L_WeaponSprite == null) _L_WeaponSprite = new UiNode_WeaponSprite(Instance.GetNodeOrNull("WeaponSprite")); + return _L_WeaponSprite; + } + } + private UiNode_WeaponSprite _L_WeaponSprite; + + public UiNode_WeaponPanel(Godot.NinePatchRect node) : base(node) { } + public override UiNode_WeaponPanel Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.WeaponBar.AmmoCount + /// + public class UiNode_AmmoCount : IUiNode + { + public UiNode_AmmoCount(Godot.Label node) : base(node) { } + public override UiNode_AmmoCount Clone() => new ((Godot.Label)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.WeaponBar + /// + public class UiNode_WeaponBar : IUiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.WeaponPanel + /// + public UiNode_WeaponPanel L_WeaponPanel + { + get + { + if (_L_WeaponPanel == null) _L_WeaponPanel = new UiNode_WeaponPanel(Instance.GetNodeOrNull("WeaponPanel")); + return _L_WeaponPanel; + } + } + private UiNode_WeaponPanel _L_WeaponPanel; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.AmmoCount + /// + public UiNode_AmmoCount L_AmmoCount + { + get + { + if (_L_AmmoCount == null) _L_AmmoCount = new UiNode_AmmoCount(Instance.GetNodeOrNull("AmmoCount")); + return _L_AmmoCount; + } + } + private UiNode_AmmoCount _L_AmmoCount; + + public UiNode_WeaponBar(Godot.Control node) : base(node) { } + public override UiNode_WeaponBar Clone() => new ((Godot.Control)Instance.Duplicate()); } /// @@ -324,17 +509,30 @@ private UiNode_MapBar _L_MapBar; /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.GunBar + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ActivePropBar /// - public UiNode_GunBar L_GunBar + public UiNode_ActivePropBar L_ActivePropBar { get { - if (_L_GunBar == null) _L_GunBar = new UiNode_GunBar(Instance.GetNodeOrNull("GunBar")); - return _L_GunBar; + if (_L_ActivePropBar == null) _L_ActivePropBar = new UiNode_ActivePropBar(Instance.GetNodeOrNull("ActivePropBar")); + return _L_ActivePropBar; } } - private UiNode_GunBar _L_GunBar; + private UiNode_ActivePropBar _L_ActivePropBar; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.WeaponBar + /// + public UiNode_WeaponBar L_WeaponBar + { + get + { + if (_L_WeaponBar == null) _L_WeaponBar = new UiNode_WeaponBar(Instance.GetNodeOrNull("WeaponBar")); + return _L_WeaponBar; + } + } + private UiNode_WeaponBar _L_WeaponBar; public UiNode_Control(Godot.Control node) : base(node) { } public override UiNode_Control Clone() => new ((Godot.Control)Instance.Duplicate()); diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs index 26ea940..0f0c3c4 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs @@ -1,25 +1,27 @@ -using Godot; using UI.BottomTips; namespace UI.RoomUI; /// -/// 房间中的ui +/// 地牢房间中的ui /// public partial class RoomUIPanel : RoomUI { private ReloadBar _reloadBar; private InteractiveTipBar _interactiveTipBar; - private GunBar _gunBar; + private WeaponBar _weaponBar; + private ActivePropBar _activePropBar; private LifeBar _lifeBar; + private EventFactory _factory; public override void OnCreateUi() { _reloadBar = new ReloadBar(L_ReloadBar); _interactiveTipBar = new InteractiveTipBar(L_InteractiveTipBar); - _gunBar = new GunBar(L_Control.L_GunBar); + _weaponBar = new WeaponBar(L_Control.L_WeaponBar); + _activePropBar = new ActivePropBar(L_Control.L_ActivePropBar); _lifeBar = new LifeBar(L_Control.L_LifeBar); } @@ -27,7 +29,8 @@ { _reloadBar.OnShow(); _interactiveTipBar.OnShow(); - _gunBar.OnShow(); + _weaponBar.OnShow(); + _activePropBar.OnShow(); _lifeBar.OnShow(); _factory = EventManager.CreateEventFactory(); @@ -38,21 +41,18 @@ { _reloadBar.OnHide(); _interactiveTipBar.OnHide(); - _gunBar.OnHide(); + _weaponBar.OnHide(); + _activePropBar.OnHide(); _lifeBar.OnHide(); _factory.RemoveAllEventListener(); _factory = null; } - public void InitData() - { - _lifeBar.RefreshLife(); - } - public override void Process(float delta) { - _gunBar.Process(delta); + _weaponBar.Process(delta); + _activePropBar.Process(delta); _lifeBar.Process(delta); } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/WeaponBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/WeaponBar.cs new file mode 100644 index 0000000..e6beffc --- /dev/null +++ b/DungeonShooting_Godot/src/game/ui/roomUI/WeaponBar.cs @@ -0,0 +1,71 @@ +using Godot; + +namespace UI.RoomUI; + +public class WeaponBar +{ + private RoomUI.UiNode_WeaponBar _weaponBar; + + private int _prevAmmo = -1; + private int _prevResidue = -1; + + public WeaponBar(RoomUI.UiNode_WeaponBar weaponBar) + { + _weaponBar = weaponBar; + SetWeaponTexture(null); + } + + public void OnShow() + { + } + + public void OnHide() + { + } + + public void Process(float delta) + { + var weapon = Player.Current?.WeaponPack.ActiveItem; + if (weapon != null) + { + SetWeaponTexture(weapon.GetCurrentTexture()); + SetWeaponAmmunition(weapon.CurrAmmo, weapon.ResidueAmmo); + } + else + { + SetWeaponTexture(null); + } + } + + /// + /// 设置显示在 ui 上武器的纹理 + /// + /// 纹理 + public void SetWeaponTexture(Texture2D texture) + { + if (texture != null) + { + _weaponBar.L_WeaponPanel.L_WeaponSprite.Instance.Texture = texture; + _weaponBar.Instance.Visible = true; + } + else + { + _weaponBar.Instance.Visible = false; + } + } + + /// + /// 设置弹药数据 + /// + /// 当前弹夹弹药量 + /// 剩余弹药总数 + public void SetWeaponAmmunition(int curr, int total) + { + if (curr != _prevAmmo || total != _prevResidue) + { + _weaponBar.L_AmmoCount.Instance.Text = curr + " / " + total; + _prevAmmo = curr; + _prevResidue = total; + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/settlement/SettlementPanel.cs b/DungeonShooting_Godot/src/game/ui/settlement/SettlementPanel.cs index 33ffc6d..a3a4a60 100644 --- a/DungeonShooting_Godot/src/game/ui/settlement/SettlementPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/settlement/SettlementPanel.cs @@ -2,6 +2,9 @@ namespace UI.Settlement; +/// +/// 结算面板 +/// public partial class SettlementPanel : Settlement { @@ -17,9 +20,9 @@ L_ButtonList.L_ToMenu.Instance.Pressed -= OnToMenuClick; } + //重新开始 private void OnRestartClick() { - //GD.Print("重新开始还没做..."); HideUi(); GameApplication.Instance.DungeonManager.ExitDungeon(() => { @@ -27,6 +30,7 @@ }); } + //回到主菜单 private void OnToMenuClick() { HideUi(); diff --git a/README.md b/README.md index 82d70a8..817a68a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.1.beta +一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.1 --- ### 游戏定义 @@ -25,6 +25,6 @@ --- ### 其他 -**开发日志:** [开发日志.md](DungeonShooting_Document/开发日志.md) -**项目帮助文档:** [帮助文档.md](DungeonShooting_Document/项目帮助文档.md) -**项目看板:** https://trello.com/b/a8UGxnTl/dungeonshooting \ No newline at end of file +**开发日志:** [开发日志.md](DungeonShooting_Document/开发日志.md) +**项目看板:** https://trello.com/b/a8UGxnTl/dungeonshooting +**哔哩哔哩:** https://space.bilibili.com/259437820 \ No newline at end of file