diff --git a/DungeonShooting_Godot/excel/EnemyBase.xlsx b/DungeonShooting_Godot/excel/EnemyBase.xlsx
index 362bdeb..8e304ea 100644
--- a/DungeonShooting_Godot/excel/EnemyBase.xlsx
+++ b/DungeonShooting_Godot/excel/EnemyBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/resource/config/EnemyBase.json b/DungeonShooting_Godot/resource/config/EnemyBase.json
index 054f597..e8c56ec 100644
--- a/DungeonShooting_Godot/resource/config/EnemyBase.json
+++ b/DungeonShooting_Godot/resource/config/EnemyBase.json
@@ -10,8 +10,8 @@
"AttackInterval": 0,
"CanPickUpWeapon": true,
"ViewRange": 250,
- "TailAfterViewRange": 400,
- "BackViewRange": 50,
+ "TailAfterViewRange": 300,
+ "ViewAngleRange": 150,
"Gold": [
-2,
3
@@ -29,7 +29,7 @@
"CanPickUpWeapon": false,
"ViewRange": 200,
"TailAfterViewRange": 300,
- "BackViewRange": 50,
+ "ViewAngleRange": 150,
"Gold": [
-2,
4
diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png.import
new file mode 100644
index 0000000..eb9fba6
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Debris.png.import
@@ -0,0 +1,34 @@
+[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.import b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Icon.png.import
new file mode 100644
index 0000000..d6eb325
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy0002_Icon.png.import
@@ -0,0 +1,34 @@
+[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.import b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy002.png.import
new file mode 100644
index 0000000..78596ce
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy002/enemy002.png.import
@@ -0,0 +1,34 @@
+[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/enemy003/enemy003.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy003.png.import
new file mode 100644
index 0000000..07635f5
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy003/enemy003.png.import
@@ -0,0 +1,34 @@
+[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.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy004.png.import
new file mode 100644
index 0000000..0633bd9
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy004.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dhdrfq2sujlwi"
+path="res://.godot/imported/enemy004.png-edee3234fcf023701ba8f39d633728bd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/enemy004.png"
+dest_files=["res://.godot/imported/enemy004.png-edee3234fcf023701ba8f39d633728bd.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/Role0001.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy004/Role0001.png.import
index eec1f3f..b4cf96f 100644
--- a/DungeonShooting_Godot/resource/sprite/role/enemy004/Role0001.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy004/Role0001.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bhwhhg2dfsr26"
-path="res://.godot/imported/Role0001.png-6999fc593f104cd54766f96578820516.ctex"
+path="res://.godot/imported/Role0001.png-a280ed1e3e1104599514e71a50bb47f4.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/Role0001.png"
-dest_files=["res://.godot/imported/Role0001.png-6999fc593f104cd54766f96578820516.ctex"]
+source_file="res://resource/sprite/role/enemy004/Role0001.png"
+dest_files=["res://.godot/imported/Role0001.png-a280ed1e3e1104599514e71a50bb47f4.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0002.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0002.png.import
new file mode 100644
index 0000000..9ed923a
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0002.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cbx2rqaka0ocs"
+path="res://.godot/imported/Sprite-0002.png-633116a6824823fae344e909a045ed1e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/backward/Sprite-0002.png"
+dest_files=["res://.godot/imported/Sprite-0002.png-633116a6824823fae344e909a045ed1e.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/role0001/backward/Sprite-0003.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0003.png.import
new file mode 100644
index 0000000..3216b2f
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0003.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://0gyjuaeqcqa4"
+path="res://.godot/imported/Sprite-0003.png-f04c6081d0b6770f3955828a993cee9b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/backward/Sprite-0003.png"
+dest_files=["res://.godot/imported/Sprite-0003.png-f04c6081d0b6770f3955828a993cee9b.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/role0001/backward/Sprite-0004.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0004.png.import
new file mode 100644
index 0000000..6662658
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0004.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bdf273admb6w"
+path="res://.godot/imported/Sprite-0004.png-a0a6cce26b5cae453cbb5bd47d1c746a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/backward/Sprite-0004.png"
+dest_files=["res://.godot/imported/Sprite-0004.png-a0a6cce26b5cae453cbb5bd47d1c746a.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/role0001/backward/Sprite-0005.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0005.png.import
new file mode 100644
index 0000000..53ef3d4
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0005.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://p8h28jechawi"
+path="res://.godot/imported/Sprite-0005.png-88d59060d073f3b45f220303788722f4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/backward/Sprite-0005.png"
+dest_files=["res://.godot/imported/Sprite-0005.png-88d59060d073f3b45f220303788722f4.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/role0001/backward/Sprite-0006.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0006.png.import
new file mode 100644
index 0000000..49decfc
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0006.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c6x4qn8r7k1yr"
+path="res://.godot/imported/Sprite-0006.png-a2e0eaf7fab93d7494cddea4c83e1dde.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/backward/Sprite-0006.png"
+dest_files=["res://.godot/imported/Sprite-0006.png-a2e0eaf7fab93d7494cddea4c83e1dde.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/role0001/backward/Sprite-0007.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0007.png.import
new file mode 100644
index 0000000..9073ad7
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0007.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c7wx2h6ra4eyn"
+path="res://.godot/imported/Sprite-0007.png-ba73abeaa78577753c7d1a60cabbc5d2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/backward/Sprite-0007.png"
+dest_files=["res://.godot/imported/Sprite-0007.png-ba73abeaa78577753c7d1a60cabbc5d2.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/role0001/backward/Sprite-0008.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0008.png.import
new file mode 100644
index 0000000..51c2f3d
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/backward/Sprite-0008.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dt0ocjl0doowp"
+path="res://.godot/imported/Sprite-0008.png-b416ef9be8cbedc81d4a53256f8a9498.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/backward/Sprite-0008.png"
+dest_files=["res://.godot/imported/Sprite-0008.png-b416ef9be8cbedc81d4a53256f8a9498.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/role0001/before/Sprite-0002.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0002.png.import
index b724b0f..a2658c4 100644
--- a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0002.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0002.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b1gh481w2xvsl"
-path="res://.godot/imported/Sprite-0002.png-071631cbf3e4907d8ef6d018f7604aed.ctex"
+path="res://.godot/imported/Sprite-0002.png-e7c2aff206a6365b5b7fdd6a6cc0cdf2.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/run/Sprite-0002.png"
-dest_files=["res://.godot/imported/Sprite-0002.png-071631cbf3e4907d8ef6d018f7604aed.ctex"]
+source_file="res://resource/sprite/role/role0001/before/Sprite-0002.png"
+dest_files=["res://.godot/imported/Sprite-0002.png-e7c2aff206a6365b5b7fdd6a6cc0cdf2.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0003.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0003.png.import
index c688303..3b48a0a 100644
--- a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0003.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0003.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cw83liyy6gnln"
-path="res://.godot/imported/Sprite-0003.png-358677bca18cac4d1b8ea9279ea6300a.ctex"
+path="res://.godot/imported/Sprite-0003.png-b367fb5e7707acc02a0471837b4027ea.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/run/Sprite-0003.png"
-dest_files=["res://.godot/imported/Sprite-0003.png-358677bca18cac4d1b8ea9279ea6300a.ctex"]
+source_file="res://resource/sprite/role/role0001/before/Sprite-0003.png"
+dest_files=["res://.godot/imported/Sprite-0003.png-b367fb5e7707acc02a0471837b4027ea.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0004.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0004.png.import
index 880ba0d..0449d00 100644
--- a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0004.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0004.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://d32g0f5vk68sj"
-path="res://.godot/imported/Sprite-0004.png-f6093d543ecb8d8231548f55dd0990ab.ctex"
+path="res://.godot/imported/Sprite-0004.png-cf62052cb55359d7a126f6f1af85e7d6.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/run/Sprite-0004.png"
-dest_files=["res://.godot/imported/Sprite-0004.png-f6093d543ecb8d8231548f55dd0990ab.ctex"]
+source_file="res://resource/sprite/role/role0001/before/Sprite-0004.png"
+dest_files=["res://.godot/imported/Sprite-0004.png-cf62052cb55359d7a126f6f1af85e7d6.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0005.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0005.png.import
index b06668e..d70c1d0 100644
--- a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0005.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0005.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://pqn660nyk82t"
-path="res://.godot/imported/Sprite-0005.png-c552ad0bee6498090790449be66db4cf.ctex"
+path="res://.godot/imported/Sprite-0005.png-0b66228cb9ac1d97e784d7a8daad9c98.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/run/Sprite-0005.png"
-dest_files=["res://.godot/imported/Sprite-0005.png-c552ad0bee6498090790449be66db4cf.ctex"]
+source_file="res://resource/sprite/role/role0001/before/Sprite-0005.png"
+dest_files=["res://.godot/imported/Sprite-0005.png-0b66228cb9ac1d97e784d7a8daad9c98.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0006.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0006.png.import
index cc40179..8ea53e1 100644
--- a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0006.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0006.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://de24cv2v45gkf"
-path="res://.godot/imported/Sprite-0006.png-e1227fdd50ae95e39bb2de41e6b1ca38.ctex"
+path="res://.godot/imported/Sprite-0006.png-84c0fcc160dc434958ce8d3efd376135.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/run/Sprite-0006.png"
-dest_files=["res://.godot/imported/Sprite-0006.png-e1227fdd50ae95e39bb2de41e6b1ca38.ctex"]
+source_file="res://resource/sprite/role/role0001/before/Sprite-0006.png"
+dest_files=["res://.godot/imported/Sprite-0006.png-84c0fcc160dc434958ce8d3efd376135.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0007.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0007.png.import
index c0743aa..f772058 100644
--- a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0007.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0007.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dfxsecrlc85pi"
-path="res://.godot/imported/Sprite-0007.png-828f576b712f54a843f8a774a88ef801.ctex"
+path="res://.godot/imported/Sprite-0007.png-b6db6729273f7465f6ef8d2e4cb25a25.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/run/Sprite-0007.png"
-dest_files=["res://.godot/imported/Sprite-0007.png-828f576b712f54a843f8a774a88ef801.ctex"]
+source_file="res://resource/sprite/role/role0001/before/Sprite-0007.png"
+dest_files=["res://.godot/imported/Sprite-0007.png-b6db6729273f7465f6ef8d2e4cb25a25.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0008.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0008.png.import
index ec5eb01..fd68562 100644
--- a/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0008.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/before/Sprite-0008.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://clqgeyii6lkm6"
-path="res://.godot/imported/Sprite-0008.png-a7167d5a14030137253ea6b864c2c5d4.ctex"
+path="res://.godot/imported/Sprite-0008.png-2f1808a94fc9473dc60506b849f9014a.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/role0001/run/Sprite-0008.png"
-dest_files=["res://.godot/imported/Sprite-0008.png-a7167d5a14030137253ea6b864c2c5d4.ctex"]
+source_file="res://resource/sprite/role/role0001/before/Sprite-0008.png"
+dest_files=["res://.godot/imported/Sprite-0008.png-2f1808a94fc9473dc60506b849f9014a.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/role0001/dle/Sprite-0002-Sheet-export.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/dle/Sprite-0002-Sheet-export.png.import
new file mode 100644
index 0000000..deda458
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/dle/Sprite-0002-Sheet-export.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d2tl87f4vgcl4"
+path="res://.godot/imported/Sprite-0002-Sheet-export.png-2abb636cc5171f887ec942bd98ca08b0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/dle/Sprite-0002-Sheet-export.png"
+dest_files=["res://.godot/imported/Sprite-0002-Sheet-export.png-2abb636cc5171f887ec942bd98ca08b0.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/role0001/dle/Sprite-0002.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/dle/Sprite-0002.png.import
new file mode 100644
index 0000000..80b9926
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/dle/Sprite-0002.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bj788pb8rpckl"
+path="res://.godot/imported/Sprite-0002.png-7eff6999eafc5876b533b2312cd065d5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/dle/Sprite-0002.png"
+dest_files=["res://.godot/imported/Sprite-0002.png-7eff6999eafc5876b533b2312cd065d5.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/role0001/run/Sprite-0002.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0002.png.import
new file mode 100644
index 0000000..0898df1
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0002.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://elnppvl0wo8s"
+path="res://.godot/imported/Sprite-0002.png-071631cbf3e4907d8ef6d018f7604aed.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/run/Sprite-0002.png"
+dest_files=["res://.godot/imported/Sprite-0002.png-071631cbf3e4907d8ef6d018f7604aed.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/role0001/run/Sprite-0003.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0003.png.import
new file mode 100644
index 0000000..39dd91a
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0003.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://csvabgcr1lpkg"
+path="res://.godot/imported/Sprite-0003.png-358677bca18cac4d1b8ea9279ea6300a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/run/Sprite-0003.png"
+dest_files=["res://.godot/imported/Sprite-0003.png-358677bca18cac4d1b8ea9279ea6300a.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/role0001/run/Sprite-0004.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0004.png.import
new file mode 100644
index 0000000..589114b
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0004.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://qbaic144k6t0"
+path="res://.godot/imported/Sprite-0004.png-f6093d543ecb8d8231548f55dd0990ab.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/run/Sprite-0004.png"
+dest_files=["res://.godot/imported/Sprite-0004.png-f6093d543ecb8d8231548f55dd0990ab.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/role0001/run/Sprite-0005.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0005.png.import
new file mode 100644
index 0000000..6c0827d
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0005.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d2b6n102rnw7q"
+path="res://.godot/imported/Sprite-0005.png-c552ad0bee6498090790449be66db4cf.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/run/Sprite-0005.png"
+dest_files=["res://.godot/imported/Sprite-0005.png-c552ad0bee6498090790449be66db4cf.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/role0001/run/Sprite-0006.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0006.png.import
new file mode 100644
index 0000000..255d80a
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0006.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://jps0gijbldju"
+path="res://.godot/imported/Sprite-0006.png-e1227fdd50ae95e39bb2de41e6b1ca38.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/run/Sprite-0006.png"
+dest_files=["res://.godot/imported/Sprite-0006.png-e1227fdd50ae95e39bb2de41e6b1ca38.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/role0001/run/Sprite-0007.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0007.png.import
new file mode 100644
index 0000000..2337053
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0007.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c8j4xfpk0oalj"
+path="res://.godot/imported/Sprite-0007.png-828f576b712f54a843f8a774a88ef801.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/run/Sprite-0007.png"
+dest_files=["res://.godot/imported/Sprite-0007.png-828f576b712f54a843f8a774a88ef801.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/role0001/run/Sprite-0008.png.import b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0008.png.import
new file mode 100644
index 0000000..b9fed63
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/role/role0001/run/Sprite-0008.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cd5mxl0vkddkn"
+path="res://.godot/imported/Sprite-0008.png-a7167d5a14030137253ea6b864c2c5d4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/role/role0001/run/Sprite-0008.png"
+dest_files=["res://.godot/imported/Sprite-0008.png-a7167d5a14030137253ea6b864c2c5d4.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/src/config/ExcelConfig.cs b/DungeonShooting_Godot/src/config/ExcelConfig.cs
index 42d5e0a..df8bd8d 100644
--- a/DungeonShooting_Godot/src/config/ExcelConfig.cs
+++ b/DungeonShooting_Godot/src/config/ExcelConfig.cs
@@ -8,31 +8,22 @@
public static partial class ExcelConfig
{
///
- /// BuffPropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
+ /// ActivePropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
///
- public static List BuffPropBase_List { get; private set; }
+ public static List ActivePropBase_List { get; private set; }
///
- /// BuffPropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
+ /// ActivePropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
///
- public static Dictionary BuffPropBase_Map { get; private set; }
+ public static Dictionary ActivePropBase_Map { get; private set; }
///
- /// Sound.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
+ /// ActivityBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
///
- public static List Sound_List { get; private set; }
+ public static List ActivityBase_List { get; private set; }
///
- /// Sound.xlsx表数据集合, 里 Map 形式存储, key 为 Id
+ /// ActivityBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
///
- public static Dictionary Sound_Map { get; private set; }
-
- ///
- /// WeaponBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
- ///
- public static List WeaponBase_List { get; private set; }
- ///
- /// WeaponBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
- ///
- public static Dictionary WeaponBase_Map { get; private set; }
+ public static Dictionary ActivityBase_Map { get; private set; }
///
/// ActivityMaterial.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
@@ -53,6 +44,15 @@
public static Dictionary AiAttackAttr_Map { get; private set; }
///
+ /// BuffPropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
+ ///
+ public static List BuffPropBase_List { get; private set; }
+ ///
+ /// BuffPropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
+ ///
+ public static Dictionary BuffPropBase_Map { get; private set; }
+
+ ///
/// BulletBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
///
public static List BulletBase_List { get; private set; }
@@ -62,15 +62,6 @@
public static Dictionary BulletBase_Map { get; private set; }
///
- /// ActivePropBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
- ///
- public static List ActivePropBase_List { get; private set; }
- ///
- /// ActivePropBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
- ///
- public static Dictionary ActivePropBase_Map { get; private set; }
-
- ///
/// EnemyBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
///
public static List EnemyBase_List { get; private set; }
@@ -80,15 +71,6 @@
public static Dictionary EnemyBase_Map { get; private set; }
///
- /// ActivityBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
- ///
- public static List ActivityBase_List { get; private set; }
- ///
- /// ActivityBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
- ///
- public static Dictionary ActivityBase_Map { get; private set; }
-
- ///
/// LiquidMaterial.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
///
public static List LiquidMaterial_List { get; private set; }
@@ -97,6 +79,24 @@
///
public static Dictionary LiquidMaterial_Map { get; private set; }
+ ///
+ /// Sound.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
+ ///
+ public static List Sound_List { get; private set; }
+ ///
+ /// Sound.xlsx表数据集合, 里 Map 形式存储, key 为 Id
+ ///
+ public static Dictionary Sound_Map { get; private set; }
+
+ ///
+ /// WeaponBase.xlsx表数据集合, 以 List 形式存储, 数据顺序与 Excel 表相同
+ ///
+ public static List WeaponBase_List { get; private set; }
+ ///
+ /// WeaponBase.xlsx表数据集合, 里 Map 形式存储, key 为 Id
+ ///
+ public static Dictionary WeaponBase_Map { get; private set; }
+
private static bool _init = false;
///
@@ -107,75 +107,57 @@
if (_init) return;
_init = true;
- _InitBuffPropBaseConfig();
- _InitSoundConfig();
- _InitWeaponBaseConfig();
+ _InitActivePropBaseConfig();
+ _InitActivityBaseConfig();
_InitActivityMaterialConfig();
_InitAiAttackAttrConfig();
+ _InitBuffPropBaseConfig();
_InitBulletBaseConfig();
- _InitActivePropBaseConfig();
_InitEnemyBaseConfig();
- _InitActivityBaseConfig();
_InitLiquidMaterialConfig();
+ _InitSoundConfig();
+ _InitWeaponBaseConfig();
- _InitBuffPropBaseRef();
- _InitWeaponBaseRef();
_InitActivePropBaseRef();
- _InitEnemyBaseRef();
_InitActivityBaseRef();
+ _InitBuffPropBaseRef();
+ _InitEnemyBaseRef();
+ _InitWeaponBaseRef();
}
- private static void _InitBuffPropBaseConfig()
+ private static void _InitActivePropBaseConfig()
{
try
{
- var text = _ReadConfigAsText("res://resource/config/BuffPropBase.json");
- BuffPropBase_List = new List(JsonSerializer.Deserialize>(text));
- BuffPropBase_Map = new Dictionary();
- foreach (var item in BuffPropBase_List)
+ var text = _ReadConfigAsText("res://resource/config/ActivePropBase.json");
+ ActivePropBase_List = new List(JsonSerializer.Deserialize>(text));
+ ActivePropBase_Map = new Dictionary();
+ foreach (var item in ActivePropBase_List)
{
- BuffPropBase_Map.Add(item.Id, item);
+ ActivePropBase_Map.Add(item.Id, item);
}
}
catch (Exception e)
{
GD.PrintErr(e.ToString());
- throw new Exception("初始化表'BuffPropBase'失败!");
+ throw new Exception("初始化表'ActivePropBase'失败!");
}
}
- private static void _InitSoundConfig()
+ private static void _InitActivityBaseConfig()
{
try
{
- var text = _ReadConfigAsText("res://resource/config/Sound.json");
- Sound_List = JsonSerializer.Deserialize>(text);
- Sound_Map = new Dictionary();
- foreach (var item in Sound_List)
+ var text = _ReadConfigAsText("res://resource/config/ActivityBase.json");
+ ActivityBase_List = new List(JsonSerializer.Deserialize>(text));
+ ActivityBase_Map = new Dictionary();
+ foreach (var item in ActivityBase_List)
{
- Sound_Map.Add(item.Id, item);
+ ActivityBase_Map.Add(item.Id, item);
}
}
catch (Exception e)
{
GD.PrintErr(e.ToString());
- throw new Exception("初始化表'Sound'失败!");
- }
- }
- private static void _InitWeaponBaseConfig()
- {
- try
- {
- var text = _ReadConfigAsText("res://resource/config/WeaponBase.json");
- WeaponBase_List = new List(JsonSerializer.Deserialize>(text));
- WeaponBase_Map = new Dictionary();
- foreach (var item in WeaponBase_List)
- {
- WeaponBase_Map.Add(item.Id, item);
- }
- }
- catch (Exception e)
- {
- GD.PrintErr(e.ToString());
- throw new Exception("初始化表'WeaponBase'失败!");
+ throw new Exception("初始化表'ActivityBase'失败!");
}
}
private static void _InitActivityMaterialConfig()
@@ -214,6 +196,24 @@
throw new Exception("初始化表'AiAttackAttr'失败!");
}
}
+ private static void _InitBuffPropBaseConfig()
+ {
+ try
+ {
+ var text = _ReadConfigAsText("res://resource/config/BuffPropBase.json");
+ BuffPropBase_List = new List(JsonSerializer.Deserialize>(text));
+ BuffPropBase_Map = new Dictionary();
+ foreach (var item in BuffPropBase_List)
+ {
+ BuffPropBase_Map.Add(item.Id, item);
+ }
+ }
+ catch (Exception e)
+ {
+ GD.PrintErr(e.ToString());
+ throw new Exception("初始化表'BuffPropBase'失败!");
+ }
+ }
private static void _InitBulletBaseConfig()
{
try
@@ -232,24 +232,6 @@
throw new Exception("初始化表'BulletBase'失败!");
}
}
- private static void _InitActivePropBaseConfig()
- {
- try
- {
- var text = _ReadConfigAsText("res://resource/config/ActivePropBase.json");
- ActivePropBase_List = new List(JsonSerializer.Deserialize>(text));
- ActivePropBase_Map = new Dictionary();
- foreach (var item in ActivePropBase_List)
- {
- ActivePropBase_Map.Add(item.Id, item);
- }
- }
- catch (Exception e)
- {
- GD.PrintErr(e.ToString());
- throw new Exception("初始化表'ActivePropBase'失败!");
- }
- }
private static void _InitEnemyBaseConfig()
{
try
@@ -268,24 +250,6 @@
throw new Exception("初始化表'EnemyBase'失败!");
}
}
- private static void _InitActivityBaseConfig()
- {
- try
- {
- var text = _ReadConfigAsText("res://resource/config/ActivityBase.json");
- ActivityBase_List = new List(JsonSerializer.Deserialize>(text));
- ActivityBase_Map = new Dictionary();
- foreach (var item in ActivityBase_List)
- {
- ActivityBase_Map.Add(item.Id, item);
- }
- }
- catch (Exception e)
- {
- GD.PrintErr(e.ToString());
- throw new Exception("初始化表'ActivityBase'失败!");
- }
- }
private static void _InitLiquidMaterialConfig()
{
try
@@ -304,7 +268,81 @@
throw new Exception("初始化表'LiquidMaterial'失败!");
}
}
+ private static void _InitSoundConfig()
+ {
+ try
+ {
+ var text = _ReadConfigAsText("res://resource/config/Sound.json");
+ Sound_List = JsonSerializer.Deserialize>(text);
+ Sound_Map = new Dictionary();
+ foreach (var item in Sound_List)
+ {
+ Sound_Map.Add(item.Id, item);
+ }
+ }
+ catch (Exception e)
+ {
+ GD.PrintErr(e.ToString());
+ throw new Exception("初始化表'Sound'失败!");
+ }
+ }
+ private static void _InitWeaponBaseConfig()
+ {
+ try
+ {
+ var text = _ReadConfigAsText("res://resource/config/WeaponBase.json");
+ WeaponBase_List = new List(JsonSerializer.Deserialize>(text));
+ WeaponBase_Map = new Dictionary();
+ foreach (var item in WeaponBase_List)
+ {
+ WeaponBase_Map.Add(item.Id, item);
+ }
+ }
+ catch (Exception e)
+ {
+ GD.PrintErr(e.ToString());
+ throw new Exception("初始化表'WeaponBase'失败!");
+ }
+ }
+ private static void _InitActivePropBaseRef()
+ {
+ foreach (Ref_ActivePropBase item in ActivePropBase_List)
+ {
+ try
+ {
+ if (!string.IsNullOrEmpty(item.__Activity))
+ {
+ item.Activity = ActivityBase_Map[item.__Activity];
+ }
+
+ }
+ catch (Exception e)
+ {
+ GD.PrintErr(e.ToString());
+ throw new Exception("初始化'ActivePropBase'引用其他表数据失败, 当前行id: " + item.Id);
+ }
+ }
+ }
+ private static void _InitActivityBaseRef()
+ {
+ foreach (Ref_ActivityBase item in ActivityBase_List)
+ {
+ try
+ {
+ if (!string.IsNullOrEmpty(item.__Material))
+ {
+ item.Material = ActivityMaterial_Map[item.__Material];
+ }
+
+ }
+ catch (Exception e)
+ {
+ GD.PrintErr(e.ToString());
+ throw new Exception("初始化'ActivityBase'引用其他表数据失败, 当前行id: " + item.Id);
+ }
+ }
+ }
private static void _InitBuffPropBaseRef()
{
foreach (Ref_BuffPropBase item in BuffPropBase_List)
@@ -324,6 +362,25 @@
}
}
}
+ private static void _InitEnemyBaseRef()
+ {
+ foreach (Ref_EnemyBase item in EnemyBase_List)
+ {
+ try
+ {
+ if (!string.IsNullOrEmpty(item.__Activity))
+ {
+ item.Activity = ActivityBase_Map[item.__Activity];
+ }
+
+ }
+ catch (Exception e)
+ {
+ GD.PrintErr(e.ToString());
+ throw new Exception("初始化'EnemyBase'引用其他表数据失败, 当前行id: " + item.Id);
+ }
+ }
+ }
private static void _InitWeaponBaseRef()
{
foreach (Ref_WeaponBase item in WeaponBase_List)
@@ -392,63 +449,6 @@
}
}
}
- private static void _InitActivePropBaseRef()
- {
- foreach (Ref_ActivePropBase item in ActivePropBase_List)
- {
- try
- {
- if (!string.IsNullOrEmpty(item.__Activity))
- {
- item.Activity = ActivityBase_Map[item.__Activity];
- }
-
- }
- catch (Exception e)
- {
- GD.PrintErr(e.ToString());
- throw new Exception("初始化'ActivePropBase'引用其他表数据失败, 当前行id: " + item.Id);
- }
- }
- }
- private static void _InitEnemyBaseRef()
- {
- foreach (Ref_EnemyBase item in EnemyBase_List)
- {
- try
- {
- if (!string.IsNullOrEmpty(item.__Activity))
- {
- item.Activity = ActivityBase_Map[item.__Activity];
- }
-
- }
- catch (Exception e)
- {
- GD.PrintErr(e.ToString());
- throw new Exception("初始化'EnemyBase'引用其他表数据失败, 当前行id: " + item.Id);
- }
- }
- }
- private static void _InitActivityBaseRef()
- {
- foreach (Ref_ActivityBase item in ActivityBase_List)
- {
- try
- {
- if (!string.IsNullOrEmpty(item.__Material))
- {
- item.Material = ActivityMaterial_Map[item.__Material];
- }
-
- }
- catch (Exception e)
- {
- GD.PrintErr(e.ToString());
- throw new Exception("初始化'ActivityBase'引用其他表数据失败, 当前行id: " + item.Id);
- }
- }
- }
private static string _ReadConfigAsText(string path)
{
var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);
diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_EnemyBase.cs b/DungeonShooting_Godot/src/config/ExcelConfig_EnemyBase.cs
index 99bf73c..7e9aaa9 100644
--- a/DungeonShooting_Godot/src/config/ExcelConfig_EnemyBase.cs
+++ b/DungeonShooting_Godot/src/config/ExcelConfig_EnemyBase.cs
@@ -74,10 +74,10 @@
public float TailAfterViewRange;
///
- /// 背后的视野半径, 单位像素
+ /// 视野角度范围, 角度制
///
[JsonInclude]
- public float BackViewRange;
+ public float ViewAngleRange;
///
/// 掉落金币数量区间, 如果为负数或者0则不会掉落金币
@@ -103,7 +103,7 @@
inst.CanPickUpWeapon = CanPickUpWeapon;
inst.ViewRange = ViewRange;
inst.TailAfterViewRange = TailAfterViewRange;
- inst.BackViewRange = BackViewRange;
+ inst.ViewAngleRange = ViewAngleRange;
inst.Gold = Gold;
return inst;
}
diff --git a/DungeonShooting_Godot/src/game/activity/role/ai/AiRole.cs b/DungeonShooting_Godot/src/game/activity/role/ai/AiRole.cs
index e782e18..8d5e16a 100644
--- a/DungeonShooting_Godot/src/game/activity/role/ai/AiRole.cs
+++ b/DungeonShooting_Godot/src/game/activity/role/ai/AiRole.cs
@@ -1,4 +1,5 @@
+using System;
using System.Collections.Generic;
using AiState;
using Godot;
@@ -87,11 +88,11 @@
get => _viewRange;
set
{
- if (_viewRange != value)
+ if (Math.Abs(_viewRange - value) > 0.001f)
{
if (ViewAreaCollision != null)
{
- ViewAreaCollision.Polygon = Utils.CreateSectorPolygon(0, value, 120, 4);
+ ViewAreaCollision.Polygon = Utils.CreateSectorPolygon(0, value, ViewAngleRange, 4);
}
}
_viewRange = value;
@@ -111,6 +112,11 @@
public float TailAfterViewRange { get; set; } = 400;
///
+ /// 视野角度, 角度制
+ ///
+ public float ViewAngleRange { get; set; } = 150;
+
+ ///
/// 攻击间隔时间, 秒
///
public float AttackInterval { get; set; } = 0;
@@ -189,6 +195,19 @@
TargetInView = !TargetHasOcclusion && TargetInViewRange;
}
}
+
+ //更新视野范围
+ switch (StateController.CurrState)
+ {
+ case AIStateEnum.AiNormal:
+ case AIStateEnum.AiNotify:
+ case AIStateEnum.AiAstonished:
+ ViewRange = DefaultViewRange;
+ break;
+ default:
+ ViewRange = TailAfterViewRange;
+ break;
+ }
}
///
diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs
index f057560..82237bc 100644
--- a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs
+++ b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs
@@ -87,6 +87,7 @@
DefaultViewRange = enemyBase.ViewRange;
TailAfterViewRange = enemyBase.TailAfterViewRange;
AttackInterval = enemyBase.AttackInterval;
+ ViewAngleRange = enemyBase.ViewAngleRange;
roleState.Gold = Mathf.Max(0, Utils.Random.RandomConfigRange(enemyBase.Gold));
return roleState;
diff --git a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs
index ca2e85f..f3c85f3 100644
--- a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs
+++ b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs
@@ -264,7 +264,7 @@
}
//测试刷地
- DrawLiquid(_brushData2);
+ //DrawLiquid(_brushData2);
}
protected override void OnAffiliationChange(AffiliationArea prevArea)