diff --git a/DungeonShooting_Godot/prefab/role/Role0001.tscn b/DungeonShooting_Godot/prefab/role/Role0001.tscn index 11cf968..afa4f42 100644 --- a/DungeonShooting_Godot/prefab/role/Role0001.tscn +++ b/DungeonShooting_Godot/prefab/role/Role0001.tscn @@ -47,7 +47,7 @@ [node name="AnimatedSprite" parent="." index="2"] material = SubResource("ShaderMaterial_8hgu2") sprite_frames = ExtResource("4_galcc") -animation = &"roll" +animation = &"die" [node name="Collision" parent="." index="3"] position = Vector2(0, 0) diff --git a/DungeonShooting_Godot/prefab/role/enemy/Enemy0003.tscn b/DungeonShooting_Godot/prefab/role/enemy/Enemy0003.tscn new file mode 100644 index 0000000..78ac185 --- /dev/null +++ b/DungeonShooting_Godot/prefab/role/enemy/Enemy0003.tscn @@ -0,0 +1,86 @@ +[gd_scene load_steps=13 format=3 uid="uid://87kfirk3fugd"] + +[ext_resource type="PackedScene" uid="uid://dbrig6dq441wo" path="res://prefab/role/template/AiTemplate.tscn" id="1_34027"] +[ext_resource type="Script" path="res://src/game/activity/role/enemy/Enemy.cs" id="2_pakvr"] +[ext_resource type="Shader" path="res://resource/shader/Blend.gdshader" id="3_egkdu"] +[ext_resource type="SpriteFrames" uid="uid://cnk1wmk3uy4aa" path="res://resource/spriteFrames/role/Enemy0003.tres" id="4_sd22a"] +[ext_resource type="Animation" uid="uid://b4mgiysicdk2b" path="res://resource/animation/enemy/Enemy_reset.res" id="5_5area"] +[ext_resource type="Animation" uid="uid://gvkkxspcdwrp" path="res://resource/animation/enemy/Enemy_astonished.res" id="6_o4vh5"] +[ext_resource type="Animation" uid="uid://16rxpnsgj5tl" path="res://resource/animation/enemy/Enemy_notify.res" id="7_y8dcl"] +[ext_resource type="Animation" uid="uid://cmje7jsgrhgmx" path="res://resource/animation/enemy/Enemy_query.res" id="8_7j8ux"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3nkur"] +resource_local_to_scene = true +shader = ExtResource("3_egkdu") +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 +shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2kup1"] +resource_local_to_scene = true +shader = ExtResource("3_egkdu") +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 +shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_rkrey"] +size = Vector2(12, 18) + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ur1ug"] +_data = { +"RESET": ExtResource("5_5area"), +"astonished": ExtResource("6_o4vh5"), +"notify": ExtResource("7_y8dcl"), +"query": ExtResource("8_7j8ux") +} + +[node name="Enemy0003" node_paths=PackedStringArray("ViewRay", "NavigationAgent2D", "NavigationPoint", "FirePoint", "ViewArea", "ViewAreaCollision", "HurtArea", "HurtCollision", "InteractiveArea", "InteractiveCollision", "TipRoot", "TipSprite", "AnimationPlayer", "MountPoint", "BackMountPoint", "MeleeAttackArea", "MeleeAttackCollision", "ShadowSprite", "AnimatedSprite", "Collision") instance=ExtResource("1_34027")] +script = ExtResource("2_pakvr") +ViewRay = NodePath("ViewRay") +NavigationAgent2D = NodePath("NavigationPoint/NavigationAgent2D") +NavigationPoint = NodePath("NavigationPoint") +FirePoint = NodePath("FirePoint") +ViewArea = NodePath("MountPoint/ViewArea") +ViewAreaCollision = NodePath("MountPoint/ViewArea/ViewAreaCollision") +HurtArea = NodePath("HurtArea") +HurtCollision = NodePath("HurtArea/HurtCollision") +InteractiveArea = NodePath("InteractiveArea") +InteractiveCollision = NodePath("InteractiveArea/InteractiveCollision") +TipRoot = NodePath("TipRoot") +TipSprite = NodePath("TipRoot/TipSprite") +AnimationPlayer = NodePath("AnimationPlayer") +MountPoint = NodePath("MountPoint") +BackMountPoint = NodePath("BackMountPoint") +MeleeAttackArea = NodePath("MountPoint/MeleeAttackArea") +MeleeAttackCollision = NodePath("MountPoint/MeleeAttackArea/MeleeAttackCollision") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" parent="." index="0"] +material = SubResource("ShaderMaterial_3nkur") + +[node name="AnimatedSprite" parent="." index="2"] +material = SubResource("ShaderMaterial_2kup1") +sprite_frames = ExtResource("4_sd22a") + +[node name="HurtCollision" parent="HurtArea" index="0"] +shape = SubResource("RectangleShape2D_rkrey") + +[node name="FirePoint" parent="." index="8"] +position = Vector2(2, -9) + +[node name="AnimationPlayer" parent="." index="11"] +libraries = { +"": SubResource("AnimationLibrary_ur1ug") +} diff --git a/DungeonShooting_Godot/resource/material/BleB865.tmp b/DungeonShooting_Godot/resource/material/BleB865.tmp deleted file mode 100644 index a40db2f..0000000 --- a/DungeonShooting_Godot/resource/material/BleB865.tmp +++ /dev/null @@ -1,51 +0,0 @@ -shader_type canvas_item; - -//混合颜色 -uniform vec4 blend : source_color = vec4(1.0, 1.0, 1.0, 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() { - //显示轮廓 - 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/BleFA6E.tmp b/DungeonShooting_Godot/resource/material/BleFA6E.tmp deleted file mode 100644 index a40db2f..0000000 --- a/DungeonShooting_Godot/resource/material/BleFA6E.tmp +++ /dev/null @@ -1,51 +0,0 @@ -shader_type canvas_item; - -//混合颜色 -uniform vec4 blend : source_color = vec4(1.0, 1.0, 1.0, 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() { - //显示轮廓 - 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/sprite/role/enemy0003/enemy0003.png b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003.png new file mode 100644 index 0000000..56d00a6 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003.png.import new file mode 100644 index 0000000..23761ad --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdf1al6kpv3ta" +path="res://.godot/imported/enemy0003.png-2aff5a98bb5dd4db23d6f75b0e990221.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0003/enemy0003.png" +dest_files=["res://.godot/imported/enemy0003.png-2aff5a98bb5dd4db23d6f75b0e990221.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/enemy0003/enemy0003_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Debris.png new file mode 100644 index 0000000..0c428a8 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Debris.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Debris.png.import new file mode 100644 index 0000000..82f98bd --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Debris.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dj68fnvd2qrm4" +path="res://.godot/imported/enemy0003_Debris.png-0d49499ec67ee7fedfebc509ec159ea0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0003/enemy0003_Debris.png" +dest_files=["res://.godot/imported/enemy0003_Debris.png-0d49499ec67ee7fedfebc509ec159ea0.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/enemy0003/enemy0003_Icon.png b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Icon.png new file mode 100644 index 0000000..ef31ab5 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Icon.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Icon.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Icon.png.import new file mode 100644 index 0000000..6ae8808 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0003/enemy0003_Icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0n3ncp68nnk6" +path="res://.godot/imported/enemy0003_Icon.png-b9629b2c5194b2a54d5cd4d819d3b505.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0003/enemy0003_Icon.png" +dest_files=["res://.godot/imported/enemy0003_Icon.png-b9629b2c5194b2a54d5cd4d819d3b505.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/enemy0004/enemy0004.png b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004.png new file mode 100644 index 0000000..81348f6 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004.png.import new file mode 100644 index 0000000..50561a7 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://digotsm6pux62" +path="res://.godot/imported/enemy0004.png-48437bd7fc483bcc9164f9278838c427.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0004/enemy0004.png" +dest_files=["res://.godot/imported/enemy0004.png-48437bd7fc483bcc9164f9278838c427.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/enemy0004/enemy0004_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Debris.png new file mode 100644 index 0000000..b531577 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Debris.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Debris.png.import new file mode 100644 index 0000000..2fc93e2 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Debris.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v63ex2nsmve8" +path="res://.godot/imported/enemy0004_Debris.png-8490ea147f0c0301c8ff1081373d661a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0004/enemy0004_Debris.png" +dest_files=["res://.godot/imported/enemy0004_Debris.png-8490ea147f0c0301c8ff1081373d661a.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/enemy0004/enemy0004_Icon.png b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Icon.png new file mode 100644 index 0000000..73333fe --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Icon.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Icon.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Icon.png.import new file mode 100644 index 0000000..e91bc90 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0004/enemy0004_Icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbw81vt8cv47a" +path="res://.godot/imported/enemy0004_Icon.png-afab614bd8c989b6254232cbe479a533.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0004/enemy0004_Icon.png" +dest_files=["res://.godot/imported/enemy0004_Icon.png-afab614bd8c989b6254232cbe479a533.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/enemy0005/enemy0005.png b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005.png new file mode 100644 index 0000000..6162fc8 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005.png.import new file mode 100644 index 0000000..cf72c61 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5tge3befo7le" +path="res://.godot/imported/enemy0005.png-e2e97973c857a4e2da0bd848aff0b022.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0005/enemy0005.png" +dest_files=["res://.godot/imported/enemy0005.png-e2e97973c857a4e2da0bd848aff0b022.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/enemy0005/enemy0005_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Debris.png new file mode 100644 index 0000000..8675634 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Debris.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Debris.png.import new file mode 100644 index 0000000..bcdda13 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Debris.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dw4jvgt7iwi2d" +path="res://.godot/imported/enemy0005_Debris.png-8cdee7278caf6047bdf1b37bc055bc6e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0005/enemy0005_Debris.png" +dest_files=["res://.godot/imported/enemy0005_Debris.png-8cdee7278caf6047bdf1b37bc055bc6e.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/enemy0005/enemy0005_Icon.png b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Icon.png new file mode 100644 index 0000000..c1dd6d1 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Icon.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Icon.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Icon.png.import new file mode 100644 index 0000000..be68958 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0005/enemy0005_Icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mvpyaurvr278" +path="res://.godot/imported/enemy0005_Icon.png-6c35e6f3e277f42cce227ff83451f989.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0005/enemy0005_Icon.png" +dest_files=["res://.godot/imported/enemy0005_Icon.png-6c35e6f3e277f42cce227ff83451f989.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/enemy0006/enemy0005.png b/DungeonShooting_Godot/resource/sprite/role/enemy0006/enemy0005.png new file mode 100644 index 0000000..e299d9e --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0006/enemy0005.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0006/enemy0005.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0006/enemy0005.png.import new file mode 100644 index 0000000..0735258 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0006/enemy0005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdin8mr0sj5v0" +path="res://.godot/imported/enemy0005.png-d7d5d324302d03139b72cada5c03b905.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy0006/enemy0005.png" +dest_files=["res://.godot/imported/enemy0005.png-d7d5d324302d03139b72cada5c03b905.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/enemy0006/enemy005.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0006/enemy005.png.import new file mode 100644 index 0000000..542466b --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/role/enemy0006/enemy005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpujly44rboun" +path="res://.godot/imported/enemy005.png-6312988475feeb1cbcc99baeb7ad3e72.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/role/enemy005/enemy005.png" +dest_files=["res://.godot/imported/enemy005.png-6312988475feeb1cbcc99baeb7ad3e72.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/enemy002/enemy0002_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png deleted file mode 100644 index 0c428a8..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png.import deleted file mode 100644 index eb9fba6..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bf7pd4t5qf41" -path="res://.godot/imported/enemy0002_Debris.png-dba5b9e1a44c0c4607b398d6a4ad1f6b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy002/enemy0002_Debris.png" -dest_files=["res://.godot/imported/enemy0002_Debris.png-dba5b9e1a44c0c4607b398d6a4ad1f6b.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/enemy002/enemy0002_Icon.png b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Icon.png deleted file mode 100644 index ef31ab5..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Icon.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Icon.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Icon.png.import deleted file mode 100644 index d6eb325..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Icon.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b20uscfsk47o5" -path="res://.godot/imported/enemy0002_Icon.png-b53f87074dd0d6e7ec829630c12aed3b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy002/enemy0002_Icon.png" -dest_files=["res://.godot/imported/enemy0002_Icon.png-b53f87074dd0d6e7ec829630c12aed3b.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/enemy002/enemy002.png b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy002.png deleted file mode 100644 index 56d00a6..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy002.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy002.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy002.png.import deleted file mode 100644 index 78596ce..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy002.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c133a7elsjedc" -path="res://.godot/imported/enemy002.png-31ab39c6db5ef9c63253e2a46071bc80.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy002/enemy002.png" -dest_files=["res://.godot/imported/enemy002.png-31ab39c6db5ef9c63253e2a46071bc80.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/enemy002/role3.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy002/role3.png.import deleted file mode 100644 index f035be1..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy002/role3.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cd47r554va1h2" -path="res://.godot/imported/role3.png-03fa3f4e21f02035205dd8b89a4b74a0.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/role3.png" -dest_files=["res://.godot/imported/role3.png-03fa3f4e21f02035205dd8b89a4b74a0.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/enemy003/enemy0002_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Debris.png deleted file mode 100644 index b531577..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Debris.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Debris.png.import deleted file mode 100644 index f9e52b7..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Debris.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dbbyyfituaef1" -path="res://.godot/imported/enemy0002_Debris.png-98d3289fe562ce71a2f03eae55431604.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy003/enemy0002_Debris.png" -dest_files=["res://.godot/imported/enemy0002_Debris.png-98d3289fe562ce71a2f03eae55431604.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/enemy003/enemy0002_Icon.png b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Icon.png deleted file mode 100644 index 73333fe..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Icon.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Icon.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Icon.png.import deleted file mode 100644 index a2a85ec..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy0002_Icon.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dn3y80mi8fw16" -path="res://.godot/imported/enemy0002_Icon.png-ef381e4281ee7852711ffa5942ec9b89.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy003/enemy0002_Icon.png" -dest_files=["res://.godot/imported/enemy0002_Icon.png-ef381e4281ee7852711ffa5942ec9b89.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/enemy003/enemy003.png b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy003.png deleted file mode 100644 index 81348f6..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy003.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy003.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy003.png.import deleted file mode 100644 index 07635f5..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy003.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b56d4da0bra6e" -path="res://.godot/imported/enemy003.png-4d0a2901f3c5768b88cdbcb2314c3290.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy003/enemy003.png" -dest_files=["res://.godot/imported/enemy003.png-4d0a2901f3c5768b88cdbcb2314c3290.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/enemy004/enemy0004_Debris.png b/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Debris.png deleted file mode 100644 index 8675634..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Debris.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Debris.png.import deleted file mode 100644 index 9fbb98d..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Debris.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c5wwwotumy7wo" -path="res://.godot/imported/enemy0004_Debris.png-502689251ad6d860c299fabd91873cc5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy004/enemy0004_Debris.png" -dest_files=["res://.godot/imported/enemy0004_Debris.png-502689251ad6d860c299fabd91873cc5.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/enemy004/enemy0004_Icon.png b/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Icon.png deleted file mode 100644 index c1dd6d1..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Icon.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Icon.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Icon.png.import deleted file mode 100644 index 6109ed6..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy0004_Icon.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://vhlxx2npduje" -path="res://.godot/imported/enemy0004_Icon.png-8f67c32ca3dbbe19d435a136d19df109.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy004/enemy0004_Icon.png" -dest_files=["res://.godot/imported/enemy0004_Icon.png-8f67c32ca3dbbe19d435a136d19df109.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/enemy004/enemy004.png b/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy004.png deleted file mode 100644 index 6162fc8..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy004.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy004.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy004.png.import deleted file mode 100644 index b4cf96f..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy004/enemy004.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bhwhhg2dfsr26" -path="res://.godot/imported/Role0001.png-a280ed1e3e1104599514e71a50bb47f4.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy004/Role0001.png" -dest_files=["res://.godot/imported/Role0001.png-a280ed1e3e1104599514e71a50bb47f4.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/enemy005/enemy005.png b/DungeonShooting_Godot/resource/sprite/role/enemy005/enemy005.png deleted file mode 100644 index e299d9e..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy005/enemy005.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy005/enemy005.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy005/enemy005.png.import deleted file mode 100644 index 542466b..0000000 --- a/DungeonShooting_Godot/resource/sprite/role/enemy005/enemy005.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bpujly44rboun" -path="res://.godot/imported/enemy005.png-6312988475feeb1cbcc99baeb7ad3e72.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/role/enemy005/enemy005.png" -dest_files=["res://.godot/imported/enemy005.png-6312988475feeb1cbcc99baeb7ad3e72.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/role/Enemy0003.tres b/DungeonShooting_Godot/resource/spriteFrames/role/Enemy0003.tres new file mode 100644 index 0000000..935369a --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/role/Enemy0003.tres @@ -0,0 +1,114 @@ +[gd_resource type="SpriteFrames" load_steps=15 format=3 uid="uid://cnk1wmk3uy4aa"] + +[ext_resource type="Texture2D" uid="uid://d0n3ncp68nnk6" path="res://resource/sprite/role/enemy0003/enemy0003_Icon.png" id="1_4n7kk"] +[ext_resource type="Texture2D" uid="uid://cdf1al6kpv3ta" path="res://resource/sprite/role/enemy0003/enemy0003.png" id="2_gvc60"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_fiqik"] +atlas = ExtResource("2_gvc60") +region = Rect2(0, 24, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_algye"] +atlas = ExtResource("2_gvc60") +region = Rect2(16, 24, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rovd5"] +atlas = ExtResource("2_gvc60") +region = Rect2(32, 24, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k7bjp"] +atlas = ExtResource("2_gvc60") +region = Rect2(48, 24, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yyuaf"] +atlas = ExtResource("2_gvc60") +region = Rect2(48, 48, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ijjls"] +atlas = ExtResource("2_gvc60") +region = Rect2(32, 48, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e2uc8"] +atlas = ExtResource("2_gvc60") +region = Rect2(16, 48, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_id4xp"] +atlas = ExtResource("2_gvc60") +region = Rect2(0, 48, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hof3c"] +atlas = ExtResource("2_gvc60") +region = Rect2(0, 48, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3n1od"] +atlas = ExtResource("2_gvc60") +region = Rect2(16, 48, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3jmh0"] +atlas = ExtResource("2_gvc60") +region = Rect2(32, 48, 16, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ddpq5"] +atlas = ExtResource("2_gvc60") +region = Rect2(48, 48, 16, 24) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_4n7kk") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_fiqik") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_algye") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rovd5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_k7bjp") +}], +"loop": true, +"name": &"idle", +"speed": 7.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_yyuaf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ijjls") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e2uc8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_id4xp") +}], +"loop": true, +"name": &"reverseRun", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_hof3c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3n1od") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3jmh0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ddpq5") +}], +"loop": true, +"name": &"run", +"speed": 10.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/role/Role0001.tres b/DungeonShooting_Godot/resource/spriteFrames/role/Role0001.tres index 99a459a..acc4ab3 100644 --- a/DungeonShooting_Godot/resource/spriteFrames/role/Role0001.tres +++ b/DungeonShooting_Godot/resource/spriteFrames/role/Role0001.tres @@ -1,19 +1,27 @@ -[gd_resource type="SpriteFrames" load_steps=26 format=3 uid="uid://n11thtali6es"] +[gd_resource type="SpriteFrames" load_steps=48 format=3 uid="uid://n11thtali6es"] [ext_resource type="Texture2D" uid="uid://ekas4lqprrml" path="res://resource/sprite/role/role0001/idle/Sprite-0002.png" id="1_le6bk"] +[ext_resource type="Texture2D" uid="uid://d2tl87f4vgcl4" path="res://resource/sprite/role/role0001/dle/Sprite-0002-Sheet-export.png" id="2_8n6o4"] [ext_resource type="Texture2D" uid="uid://b81k08ofpf2oo" path="res://resource/sprite/role/role0001/idle/Sprite-0003.png" id="2_whsc2"] [ext_resource type="Texture2D" uid="uid://obelhor4gdmh" path="res://resource/sprite/role/role0001/idle/Sprite-0004.png" id="3_peq88"] [ext_resource type="Texture2D" uid="uid://dvv73cbc818e4" path="res://resource/sprite/role/role0001/idle/Sprite-0005.png" id="4_arikg"] [ext_resource type="Texture2D" uid="uid://dfom06raof2fw" path="res://resource/sprite/role/role0001/idle/Sprite-0006.png" id="5_0bq3k"] [ext_resource type="Texture2D" uid="uid://c7dsfoaupj4qo" path="res://resource/sprite/role/role0001/idle/Sprite-0007.png" id="6_hw6v8"] [ext_resource type="Texture2D" uid="uid://cwrsm1ui33d6b" path="res://resource/sprite/role/role0001/idle/Sprite-0008.png" id="7_heo28"] -[ext_resource type="Texture2D" uid="uid://clqgeyii6lkm6" path="res://resource/sprite/role/role0001/run/Sprite-0008.png" id="8_scwvl"] -[ext_resource type="Texture2D" uid="uid://dfxsecrlc85pi" path="res://resource/sprite/role/role0001/run/Sprite-0007.png" id="9_yjs5f"] -[ext_resource type="Texture2D" uid="uid://de24cv2v45gkf" path="res://resource/sprite/role/role0001/run/Sprite-0006.png" id="10_uafyp"] -[ext_resource type="Texture2D" uid="uid://pqn660nyk82t" path="res://resource/sprite/role/role0001/run/Sprite-0005.png" id="11_ndgr1"] -[ext_resource type="Texture2D" uid="uid://d32g0f5vk68sj" path="res://resource/sprite/role/role0001/run/Sprite-0004.png" id="12_cbabh"] -[ext_resource type="Texture2D" uid="uid://cw83liyy6gnln" path="res://resource/sprite/role/role0001/run/Sprite-0003.png" id="13_u0cmp"] -[ext_resource type="Texture2D" uid="uid://b1gh481w2xvsl" path="res://resource/sprite/role/role0001/run/Sprite-0002.png" id="14_nlfq5"] +[ext_resource type="Texture2D" uid="uid://clqgeyii6lkm6" path="res://resource/sprite/role/role0001/before/Sprite-0008.png" id="8_scwvl"] +[ext_resource type="Texture2D" uid="uid://cbx2rqaka0ocs" path="res://resource/sprite/role/role0001/backward/Sprite-0002.png" id="9_xjn7y"] +[ext_resource type="Texture2D" uid="uid://dfxsecrlc85pi" path="res://resource/sprite/role/role0001/before/Sprite-0007.png" id="9_yjs5f"] +[ext_resource type="Texture2D" uid="uid://de24cv2v45gkf" path="res://resource/sprite/role/role0001/before/Sprite-0006.png" id="10_uafyp"] +[ext_resource type="Texture2D" uid="uid://0gyjuaeqcqa4" path="res://resource/sprite/role/role0001/backward/Sprite-0003.png" id="10_y65up"] +[ext_resource type="Texture2D" uid="uid://bdf273admb6w" path="res://resource/sprite/role/role0001/backward/Sprite-0004.png" id="11_n5cgn"] +[ext_resource type="Texture2D" uid="uid://pqn660nyk82t" path="res://resource/sprite/role/role0001/before/Sprite-0005.png" id="11_ndgr1"] +[ext_resource type="Texture2D" uid="uid://d32g0f5vk68sj" path="res://resource/sprite/role/role0001/before/Sprite-0004.png" id="12_cbabh"] +[ext_resource type="Texture2D" uid="uid://p8h28jechawi" path="res://resource/sprite/role/role0001/backward/Sprite-0005.png" id="12_v4tvy"] +[ext_resource type="Texture2D" uid="uid://c6x4qn8r7k1yr" path="res://resource/sprite/role/role0001/backward/Sprite-0006.png" id="13_a6idy"] +[ext_resource type="Texture2D" uid="uid://cw83liyy6gnln" path="res://resource/sprite/role/role0001/before/Sprite-0003.png" id="13_u0cmp"] +[ext_resource type="Texture2D" uid="uid://c7wx2h6ra4eyn" path="res://resource/sprite/role/role0001/backward/Sprite-0007.png" id="14_8wkl8"] +[ext_resource type="Texture2D" uid="uid://b1gh481w2xvsl" path="res://resource/sprite/role/role0001/before/Sprite-0002.png" id="14_nlfq5"] +[ext_resource type="Texture2D" uid="uid://dt0ocjl0doowp" path="res://resource/sprite/role/role0001/backward/Sprite-0008.png" id="15_8065h"] [ext_resource type="Texture2D" uid="uid://do6ybmo0r04pp" path="res://resource/sprite/role/role0001/roll/Sprite-0010.png" id="17_e31g7"] [ext_resource type="Texture2D" uid="uid://b3itgraiw7mns" path="res://resource/sprite/role/role0001/roll/Sprite-0011.png" id="18_g0o3y"] [ext_resource type="Texture2D" uid="uid://cisayo3amq6sv" path="res://resource/sprite/role/role0001/roll/Sprite-0012.png" id="19_s6xfs"] @@ -26,6 +34,62 @@ [ext_resource type="Texture2D" uid="uid://b7s4yf5ic37cd" path="res://resource/sprite/role/role0001/roll/Sprite-0017.png" id="24_83arr"] [ext_resource type="Texture2D" uid="uid://c0ik1lwfjlr7y" path="res://resource/sprite/role/role0001/roll/Sprite-0018.png" id="25_6hy4b"] +[sub_resource type="AtlasTexture" id="AtlasTexture_u4d02"] +atlas = ExtResource("2_8n6o4") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pnh1y"] +atlas = ExtResource("2_8n6o4") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gtiys"] +atlas = ExtResource("2_8n6o4") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o720b"] +atlas = ExtResource("2_8n6o4") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1ot4k"] +atlas = ExtResource("2_8n6o4") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nbogm"] +atlas = ExtResource("2_8n6o4") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xb60w"] +atlas = ExtResource("2_8n6o4") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0n8c4"] +atlas = ExtResource("2_8n6o4") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2cgpn"] +atlas = ExtResource("2_8n6o4") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mgacx"] +atlas = ExtResource("2_8n6o4") +region = Rect2(432, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ssyna"] +atlas = ExtResource("2_8n6o4") +region = Rect2(480, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_871m0"] +atlas = ExtResource("2_8n6o4") +region = Rect2(528, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kpc6c"] +atlas = ExtResource("2_8n6o4") +region = Rect2(576, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_icnau"] +atlas = ExtResource("2_8n6o4") +region = Rect2(624, 0, 48, 48) + [resource] animations = [{ "frames": [{ @@ -38,6 +102,59 @@ }, { "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_u4d02") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pnh1y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gtiys") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_o720b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1ot4k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nbogm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xb60w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0n8c4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2cgpn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mgacx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ssyna") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_871m0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kpc6c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_icnau") +}, { +"duration": 1.0, +"texture": null +}, { +"duration": 1.0, +"texture": null +}], +"loop": false, +"name": &"die", +"speed": 13.0 +}, { +"frames": [{ +"duration": 1.0, "texture": ExtResource("1_le6bk") }, { "duration": 1.0, @@ -64,25 +181,25 @@ }, { "frames": [{ "duration": 1.0, -"texture": ExtResource("9_yjs5f") +"texture": ExtResource("9_xjn7y") }, { "duration": 1.0, -"texture": ExtResource("10_uafyp") +"texture": ExtResource("10_y65up") }, { "duration": 1.0, -"texture": ExtResource("11_ndgr1") +"texture": ExtResource("11_n5cgn") }, { "duration": 1.0, -"texture": ExtResource("12_cbabh") +"texture": ExtResource("12_v4tvy") }, { "duration": 1.0, -"texture": ExtResource("13_u0cmp") +"texture": ExtResource("13_a6idy") }, { "duration": 1.0, -"texture": ExtResource("14_nlfq5") +"texture": ExtResource("14_8wkl8") }, { "duration": 1.0, -"texture": ExtResource("8_scwvl") +"texture": ExtResource("15_8065h") }], "loop": true, "name": &"reverseRun", diff --git a/DungeonShooting_Godot/src/framework/activity/components/IStateController.cs b/DungeonShooting_Godot/src/framework/activity/components/IStateController.cs new file mode 100644 index 0000000..5fb7c0f --- /dev/null +++ b/DungeonShooting_Godot/src/framework/activity/components/IStateController.cs @@ -0,0 +1,8 @@ + +/// +/// 状态控制器接口 +/// +public interface IStateController +{ + +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/activity/components/StateController.cs b/DungeonShooting_Godot/src/framework/activity/components/StateController.cs index 942dd5f..5c86eb0 100644 --- a/DungeonShooting_Godot/src/framework/activity/components/StateController.cs +++ b/DungeonShooting_Godot/src/framework/activity/components/StateController.cs @@ -5,7 +5,7 @@ /// /// 对象状态机控制器 /// -public class StateController : Component where T : ActivityObject where S : Enum +public class StateController : Component, IStateController where T : ActivityObject where S : Enum { /// /// 获取当前状态 diff --git a/DungeonShooting_Godot/src/game/activity/role/Role.cs b/DungeonShooting_Godot/src/game/activity/role/Role.cs index 7b36d4d..27c7d34 100644 --- a/DungeonShooting_Godot/src/game/activity/role/Role.cs +++ b/DungeonShooting_Godot/src/game/activity/role/Role.cs @@ -824,7 +824,6 @@ return null; } - /// /// 触发使用道具 /// @@ -845,8 +844,8 @@ /// 伤害角度(弧度制) public virtual void HurtHandler(ActivityObject target, int damage, float angle) { - //受伤闪烁, 无敌状态 - if (Invincible) + //受伤闪烁, 无敌状态, 或者已经死亡 + if (Invincible || IsDie) { return; } @@ -893,13 +892,53 @@ if (!IsDie) { IsDie = true; - OnDie(); - //死亡事件 - World.OnRoleDie(this); + + //禁用状态机控制器 + var stateController = GetComponent(typeof(IStateController)); + if (stateController != null) + { + stateController.Enable = false; + } + + //播放死亡动画 + if (AnimationPlayer.HasAnimation(AnimatorNames.Die)) + { + StartCoroutine(DoDieWithAnimationPlayer()); + } + else if (AnimatedSprite.SpriteFrames.HasAnimation(AnimatorNames.Die)) + { + StartCoroutine(DoDieWithAnimatedSprite()); + } + else + { + DoDieHandler(); + } } } } + private IEnumerator DoDieWithAnimationPlayer() + { + AnimationPlayer.Play(AnimatorNames.Die); + yield return ToSignal(AnimationPlayer, AnimationMixer.SignalName.AnimationFinished); + DoDieHandler(); + } + + private IEnumerator DoDieWithAnimatedSprite() + { + AnimatedSprite.Play(AnimatorNames.Die); + yield return ToSignal(AnimatedSprite, AnimatedSprite2D.SignalName.AnimationFinished); + DoDieHandler(); + } + + //死亡逻辑 + private void DoDieHandler() + { + OnDie(); + //死亡事件 + World.OnRoleDie(this); + } + /// /// 播放无敌状态闪烁动画 /// diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs index 3dd5f63..e0d6d6e 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs @@ -41,6 +41,10 @@ /// public virtual void OnAttack() { + if (LookTarget == null) + { + return; + } //攻击特效 var effect = ObjectManager.GetPoolItem(ResourcePath.prefab_effect_weapon_ShotFire0003_tscn); var node = (Node2D)effect; diff --git a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs index f3c85f3..57fec73 100644 --- a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs +++ b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs @@ -300,6 +300,12 @@ { PlayInvincibleFlashing(RoleState.ShieldInvincibleTime); } + + //血量为0, 扔掉所有武器 + if (Hp <= 0) + { + ThrowAllWeapon(); + } } protected override void OnChangeHp(int hp) @@ -346,12 +352,16 @@ GameCamera.Main.SetFollowTarget(null); BasisVelocity = Vector2.Zero; MoveController.ClearForce(); + Visible = false; - //暂停游戏 - World.Current.Pause = true; - //弹出结算面板 - GameApplication.Instance.Cursor.SetGuiMode(true); - UiManager.Open_Settlement(); + World.CallDelay(0.5f, () => + { + //暂停游戏 + World.Current.Pause = true; + //弹出结算面板 + GameApplication.Instance.Cursor.SetGuiMode(true); + UiManager.Open_Settlement(); + }); } protected override void OnPickUpActiveProp(ActiveProp activeProp) diff --git a/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs b/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs index 88ae1af..aa5170c 100644 --- a/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs +++ b/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs @@ -101,6 +101,10 @@ /// public static readonly StringName Pull = "pull"; + /// + /// 死亡 + /// + public static readonly StringName Die = "die"; public static readonly StringName HalfStart = "half_start"; public static readonly StringName HalfEnd = "half_end";