diff --git a/DungeonShooting_Config/Weapon.xlsx b/DungeonShooting_Config/Weapon.xlsx
deleted file mode 100644
index 83effa6..0000000
--- a/DungeonShooting_Config/Weapon.xlsx
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/DungeonShooting.csproj b/DungeonShooting_Godot/DungeonShooting.csproj
index 8e15ac5..41ef16c 100644
--- a/DungeonShooting_Godot/DungeonShooting.csproj
+++ b/DungeonShooting_Godot/DungeonShooting.csproj
@@ -8,4 +8,7 @@
   <ItemGroup>
     <Folder Include="src\game\ui\editorTools" />
   </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="NPOI" Version="2.6.0" />
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/DungeonShooting_Godot/config/Role.xlsx b/DungeonShooting_Godot/config/Role.xlsx
new file mode 100644
index 0000000..7b0f585
--- /dev/null
+++ b/DungeonShooting_Godot/config/Role.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/config/Weapon.xlsx b/DungeonShooting_Godot/config/Weapon.xlsx
new file mode 100644
index 0000000..3791f6e
--- /dev/null
+++ b/DungeonShooting_Godot/config/Weapon.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/prefab/role/Enemy.tscn b/DungeonShooting_Godot/prefab/role/Enemy.tscn
index 1bdec61..a4ebb0d 100644
--- a/DungeonShooting_Godot/prefab/role/Enemy.tscn
+++ b/DungeonShooting_Godot/prefab/role/Enemy.tscn
@@ -1,71 +1,71 @@
 [gd_scene load_steps=20 format=3 uid="uid://dbrig6dq441wo"]
 
-[ext_resource type="PackedScene" uid="uid://cyrcv2jdgr8cf" path="res://prefab/role/Role.tscn" id="1_urmtb"]
-[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_o06sk"]
-[ext_resource type="Texture2D" uid="uid://chd2vtesap5cf" path="res://resource/sprite/role/enemy0001/enemy0001.png" id="3_7qr11"]
+[ext_resource type="PackedScene" uid="uid://cyrcv2jdgr8cf" path="res://prefab/role/Role.tscn" id="1_p0w41"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_xrpvd"]
+[ext_resource type="Texture2D" uid="uid://chd2vtesap5cf" path="res://resource/sprite/role/enemy0001/Enemy0001.png" id="3_b8g1d"]
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_8vxx6"]
 resource_local_to_scene = true
-shader = ExtResource("2_o06sk")
+shader = ExtResource("2_xrpvd")
 shader_parameter/blend = Color(0, 0, 0, 0.470588)
 shader_parameter/schedule = 1
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_k8mt5"]
 resource_local_to_scene = true
-shader = ExtResource("2_o06sk")
+shader = ExtResource("2_xrpvd")
 shader_parameter/blend = Color(1, 1, 1, 1)
 shader_parameter/schedule = 0
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_0rmv6"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(0, 0, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_3ira8"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(0, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_7fx5y"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(16, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_5wd43"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(32, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_kbrex"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(48, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_bhiip"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(0, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_41c1u"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(16, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_1o2v8"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(32, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_niadr"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(48, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_j73hc"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(48, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_3bgji"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(32, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_besw3"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(16, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_350uy"]
-atlas = ExtResource("3_7qr11")
+atlas = ExtResource("3_b8g1d")
 region = Rect2(0, 48, 16, 24)
 
 [sub_resource type="SpriteFrames" id="SpriteFrames_m7t3e"]
@@ -130,7 +130,7 @@
 "speed": 10.0
 }]
 
-[node name="Enemy" instance=ExtResource("1_urmtb")]
+[node name="Enemy" instance=ExtResource("1_p0w41")]
 collision_layer = 16
 collision_mask = 25
 
diff --git a/DungeonShooting_Godot/prefab/role/Player.tscn b/DungeonShooting_Godot/prefab/role/Player.tscn
index 2edb8ee..1e1804f 100644
--- a/DungeonShooting_Godot/prefab/role/Player.tscn
+++ b/DungeonShooting_Godot/prefab/role/Player.tscn
@@ -1,71 +1,71 @@
 [gd_scene load_steps=20 format=3 uid="uid://cp2uhtlb6h7k2"]
 
-[ext_resource type="PackedScene" uid="uid://cyrcv2jdgr8cf" path="res://prefab/role/Role.tscn" id="1"]
-[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_nvo1u"]
-[ext_resource type="Texture2D" uid="uid://bhwhhg2dfsr26" path="res://resource/sprite/role/role2.png" id="3_55mk2"]
+[ext_resource type="PackedScene" uid="uid://cyrcv2jdgr8cf" path="res://prefab/role/Role.tscn" id="1_4vjqs"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_dgp5f"]
+[ext_resource type="Texture2D" uid="uid://bhwhhg2dfsr26" path="res://resource/sprite/role/role2.png" id="3_i2g22"]
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_vejn8"]
 resource_local_to_scene = true
-shader = ExtResource("2_nvo1u")
+shader = ExtResource("2_dgp5f")
 shader_parameter/blend = Color(0, 0, 0, 0.470588)
 shader_parameter/schedule = 1
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_0gb8j"]
 resource_local_to_scene = true
-shader = ExtResource("2_nvo1u")
+shader = ExtResource("2_dgp5f")
 shader_parameter/blend = Color(1, 1, 1, 1)
 shader_parameter/schedule = 0
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_tmewn"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(0, 0, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_dvg4a"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(0, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_kvuct"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(16, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_5op76"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(32, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_helyc"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(48, 24, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_67mn8"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(48, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_jeywq"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(32, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_oycx8"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(16, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_tjg1t"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(0, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_2ltxw"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(0, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_x1va1"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(16, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_ic2p5"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(32, 48, 16, 24)
 
 [sub_resource type="AtlasTexture" id="AtlasTexture_j3hdu"]
-atlas = ExtResource("3_55mk2")
+atlas = ExtResource("3_i2g22")
 region = Rect2(48, 48, 16, 24)
 
 [sub_resource type="SpriteFrames" id="SpriteFrames_3poqo"]
@@ -130,7 +130,7 @@
 "speed": 10.0
 }]
 
-[node name="Player" instance=ExtResource("1")]
+[node name="Player" instance=ExtResource("1_4vjqs")]
 collision_layer = 8
 collision_mask = 1
 
diff --git a/DungeonShooting_Godot/prefab/role/Role.tscn b/DungeonShooting_Godot/prefab/role/Role.tscn
index 357cae8..ac399cf 100644
--- a/DungeonShooting_Godot/prefab/role/Role.tscn
+++ b/DungeonShooting_Godot/prefab/role/Role.tscn
@@ -1,18 +1,18 @@
 [gd_scene load_steps=9 format=3 uid="uid://cyrcv2jdgr8cf"]
 
-[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_7dvg8"]
-[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_xadty"]
-[ext_resource type="Script" path="res://src/game/role/MountRotation.cs" id="3_wi3uj"]
+[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="1_vnmfw"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_mmtpy"]
+[ext_resource type="Script" path="res://src/game/role/MountRotation.cs" id="3_g6ktd"]
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_v2kfw"]
 resource_local_to_scene = true
-shader = ExtResource("2_xadty")
+shader = ExtResource("2_mmtpy")
 shader_parameter/blend = Color(0, 0, 0, 0.470588)
 shader_parameter/schedule = 1
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_yif6x"]
 resource_local_to_scene = true
-shader = ExtResource("2_xadty")
+shader = ExtResource("2_mmtpy")
 shader_parameter/blend = Color(1, 1, 1, 1)
 shader_parameter/schedule = 0
 
@@ -26,7 +26,7 @@
 size = Vector2(10, 16.5)
 
 [node name="Role" type="Node"]
-script = ExtResource("1_7dvg8")
+script = ExtResource("1_vnmfw")
 
 [node name="ShadowSprite" type="Sprite2D" parent="."]
 z_index = -1
@@ -64,4 +64,4 @@
 
 [node name="MountPoint" type="Marker2D" parent="."]
 position = Vector2(1, -6)
-script = ExtResource("3_wi3uj")
+script = ExtResource("3_g6ktd")
diff --git a/DungeonShooting_Godot/prefab/weapon/WeaponPreview.tscn b/DungeonShooting_Godot/prefab/weapon/WeaponPreview.tscn
index 09d6f69..be64274 100644
--- a/DungeonShooting_Godot/prefab/weapon/WeaponPreview.tscn
+++ b/DungeonShooting_Godot/prefab/weapon/WeaponPreview.tscn
@@ -1,22 +1,22 @@
 [gd_scene load_steps=6 format=3 uid="uid://csd4sk65m46qh"]
 
-[ext_resource type="PackedScene" uid="uid://byy386hv6bko0" path="res://prefab/weapon/Weapon.tscn" id="1_byp1d"]
-[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_hn05o"]
-[ext_resource type="SpriteFrames" uid="uid://djdvlmqsn8bie" path="res://resource/spriteFrames/Weapon0005.tres" id="3_iscyw"]
+[ext_resource type="PackedScene" uid="uid://byy386hv6bko0" path="res://prefab/weapon/Weapon.tscn" id="1_kc66u"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_e70v8"]
+[ext_resource type="SpriteFrames" uid="uid://djdvlmqsn8bie" path="res://resource/spriteFrames/Weapon0005.tres" id="3_53icg"]
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_ki13x"]
 resource_local_to_scene = true
-shader = ExtResource("2_hn05o")
+shader = ExtResource("2_e70v8")
 shader_parameter/blend = Color(0, 0, 0, 0.470588)
 shader_parameter/schedule = 1
 
 [sub_resource type="ShaderMaterial" id="ShaderMaterial_5ojsm"]
 resource_local_to_scene = true
-shader = ExtResource("2_hn05o")
+shader = ExtResource("2_e70v8")
 shader_parameter/blend = Color(1, 1, 1, 1)
 shader_parameter/schedule = 0
 
-[node name="WeaponPreview" instance=ExtResource("1_byp1d")]
+[node name="WeaponPreview" instance=ExtResource("1_kc66u")]
 
 [node name="ShadowSprite" parent="." index="0"]
 material = SubResource("ShaderMaterial_ki13x")
@@ -24,7 +24,7 @@
 [node name="AnimatedSprite" parent="." index="1"]
 material = SubResource("ShaderMaterial_5ojsm")
 position = Vector2(9, 0)
-sprite_frames = ExtResource("3_iscyw")
+sprite_frames = ExtResource("3_53icg")
 
 [node name="ShellPoint" parent="." index="2"]
 position = Vector2(7, -3.5)
diff --git a/DungeonShooting_Godot/project.godot b/DungeonShooting_Godot/project.godot
index 9961bcf..902d60b 100644
--- a/DungeonShooting_Godot/project.godot
+++ b/DungeonShooting_Godot/project.godot
@@ -11,7 +11,7 @@
 [application]
 
 config/name="DungeonShooting"
-run/main_scene="res://scene/Main.tscn"
+run/main_scene="res://scene/test/TestReadExcel.tscn"
 config/features=PackedStringArray("4.1", "C#")
 config/icon="res://icon.png"
 
@@ -32,7 +32,7 @@
 
 [editor_plugins]
 
-enabled=PackedStringArray("res://addons/dungeonShooting_plugin/plugin.cfg", "res://addons/script_comment_menu/plugin.cfg", "res://addons/table_data_editor/plugin.cfg")
+enabled=PackedStringArray("res://addons/dungeonShooting_plugin/plugin.cfg")
 
 [gui]
 
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.gdshader b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.gdshader
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.gdshader
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn
index 2afb888..6945a80 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn
+++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn
@@ -1,50 +1,50 @@
 [gd_scene load_steps=4 format=3 uid="uid://dmeb88jotqro6"]
 
-[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_tsopp"]
-[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="2_0esgy"]
-[ext_resource type="Script" path="res://src/framework/map/mark/ActivityMark.cs" id="3_2xj23"]
+[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_m8ci8"]
+[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="2_d1gn1"]
+[ext_resource type="Script" path="res://src/framework/map/mark/ActivityMark.cs" id="3_w7xdh"]
 
 [node name="Room1" type="TileMap"]
-tile_set = ExtResource("1_tsopp")
+tile_set = ExtResource("1_m8ci8")
 format = 2
 layer_0/tile_data = PackedInt32Array(327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, 327683, 0, 8, 262147, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, 131071, 196608, 3, 65535, 196608, 3, -1, 196608, 4, -65536, 131072, 7, -65535, 131072, 7, 196607, 196608, 3, 262143, 196608, 3, 327679, 196608, 3, 393215, 196608, 3, 393217, 131072, 2, 393216, 131072, 2, 458751, 720896, 2, -65534, 131072, 7, 393218, 131072, 2, -65533, 131072, 7, 393219, 131072, 2, -65532, 131072, 7, 393220, 131072, 2, -65531, 131072, 7, 393221, 131072, 2, -65530, 131072, 7, 393222, 131072, 2, -65529, 131072, 7, 393223, 131072, 2, -65528, 131072, 7, 393224, 131072, 2, -65527, 131072, 7, 393225, 131072, 2, 10, 65536, 3, 65546, 65536, 3, -65526, 65536, 4, 131082, 65536, 3, 196618, 65536, 3, 262154, 65536, 3, 327690, 65536, 3, 393226, 851968, 2)
-script = ExtResource("2_0esgy")
+script = ExtResource("2_d1gn1")
 
 [node name="Player" type="Node2D" parent="."]
 position = Vector2(80, 47)
-script = ExtResource("3_2xj23")
+script = ExtResource("3_w7xdh")
 Type = 1
 Altitude = 0
 
 [node name="ActivityMark" type="Node2D" parent="."]
 position = Vector2(126, 21)
-script = ExtResource("3_2xj23")
+script = ExtResource("3_w7xdh")
 Type = 5
 ItemExpression = "0002(ResidueAmmo:15,CurrAmmon:0)"
 
 [node name="ActivityMark5" type="Node2D" parent="."]
 position = Vector2(78, 24)
-script = ExtResource("3_2xj23")
+script = ExtResource("3_w7xdh")
 Type = 5
 ItemExpression = "0005(ResidueAmmo:30,CurrAmmon:10)"
 
 [node name="ActivityMark2" type="Node2D" parent="."]
 position = Vector2(39, 75)
-script = ExtResource("3_2xj23")
+script = ExtResource("3_w7xdh")
 Type = 5
 ItemExpression = "0001(ResidueAmmo:15,CurrAmmon:0)"
 WaveNumber = 2
 
 [node name="ActivityMark3" type="Node2D" parent="."]
 position = Vector2(128, 74)
-script = ExtResource("3_2xj23")
+script = ExtResource("3_w7xdh")
 Type = 5
 ItemExpression = "0003(ResidueAmmo:12,CurrAmmon:15)"
 WaveNumber = 3
 
 [node name="ActivityMark4" type="Node2D" parent="."]
 position = Vector2(39, 23)
-script = ExtResource("3_2xj23")
+script = ExtResource("3_w7xdh")
 Type = 5
 ItemExpression = "0004(ResidueAmmo:15,CurrAmmon:0)"
 WaveNumber = 4
diff --git a/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres b/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres
index ed27721..324790e 100644
--- a/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres
+++ b/DungeonShooting_Godot/resource/map/tileset/TileSet1.tres
@@ -1,9 +1,9 @@
 [gd_resource type="TileSet" load_steps=3 format=3 uid="uid://b00g22o1cqhe8"]
 
-[ext_resource type="Texture2D" uid="uid://dj8nrd5od4fcl" path="res://resource/sprite/map/map1/16x16 dungeon ii wall reconfig v04 spritesheet.png" id="1_pa3ef"]
+[ext_resource type="Texture2D" uid="uid://dj8nrd5od4fcl" path="res://resource/sprite/map/map1/16x16 dungeon ii wall reconfig v04 spritesheet.png" id="1_vsl1x"]
 
 [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_yvgyd"]
-texture = ExtResource("1_pa3ef")
+texture = ExtResource("1_vsl1x")
 0:0/0 = 0
 0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
 0:0/0/physics_layer_0/angular_velocity = 0.0
diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres
index 8b96b5d..efa096a 100644
--- a/DungeonShooting_Godot/resource/theme/mainTheme.tres
+++ b/DungeonShooting_Godot/resource/theme/mainTheme.tres
@@ -1,6 +1,6 @@
 [gd_resource type="Theme" load_steps=78 format=3 uid="uid://ds668te2rph30"]
 
-[ext_resource type="FontFile" uid="uid://cad0in7dtweo5" path="res://resource/font/VonwaonBitmap-16px.ttf" id="1_h2ixh"]
+[ext_resource type="FontFile" uid="uid://cad0in7dtweo5" path="res://resource/font/VonwaonBitmap-16px.ttf" id="1_rr2q2"]
 
 [sub_resource type="StyleBoxFlat" id="1"]
 content_margin_left = 6.0
@@ -352,7 +352,7 @@
 
 [sub_resource type="ImageTexture" id="58"]
 
-[sub_resource type="Image" id="Image_dbhbp"]
+[sub_resource type="Image" id="Image_st0hw"]
 data = {
 "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
 "format": "RGBA8",
@@ -362,7 +362,7 @@
 }
 
 [sub_resource type="ImageTexture" id="60"]
-image = SubResource("Image_dbhbp")
+image = SubResource("Image_st0hw")
 
 [sub_resource type="StyleBoxTexture" id="61"]
 content_margin_left = 2.0
@@ -372,7 +372,7 @@
 texture = SubResource("60")
 region_rect = Rect2(0, 0, 12, 12)
 
-[sub_resource type="Image" id="Image_0nlsw"]
+[sub_resource type="Image" id="Image_imuys"]
 data = {
 "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
 "format": "RGBA8",
@@ -382,7 +382,7 @@
 }
 
 [sub_resource type="ImageTexture" id="63"]
-image = SubResource("Image_0nlsw")
+image = SubResource("Image_imuys")
 
 [sub_resource type="StyleBoxTexture" id="64"]
 content_margin_left = 2.0
@@ -392,7 +392,7 @@
 texture = SubResource("63")
 region_rect = Rect2(0, 0, 12, 12)
 
-[sub_resource type="Image" id="Image_kdcku"]
+[sub_resource type="Image" id="Image_kcung"]
 data = {
 "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
 "format": "RGBA8",
@@ -402,7 +402,7 @@
 }
 
 [sub_resource type="ImageTexture" id="66"]
-image = SubResource("Image_kdcku")
+image = SubResource("Image_kcung")
 
 [sub_resource type="StyleBoxTexture" id="67"]
 content_margin_left = 2.0
@@ -412,7 +412,7 @@
 texture = SubResource("66")
 region_rect = Rect2(0, 0, 12, 12)
 
-[sub_resource type="Image" id="Image_jkvvb"]
+[sub_resource type="Image" id="Image_sk70d"]
 data = {
 "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
 "format": "RGBA8",
@@ -422,7 +422,7 @@
 }
 
 [sub_resource type="ImageTexture" id="69"]
-image = SubResource("Image_jkvvb")
+image = SubResource("Image_sk70d")
 
 [sub_resource type="StyleBoxTexture" id="70"]
 content_margin_left = 0.0
@@ -446,7 +446,7 @@
 content_margin_right = 4.0
 content_margin_bottom = 4.0
 
-[sub_resource type="Image" id="Image_u72q8"]
+[sub_resource type="Image" id="Image_rpr4c"]
 data = {
 "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 228, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 228, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 18, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 17, 255, 255, 255, 186, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 191, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 186, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 189, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 77, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 77, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
 "format": "RGBA8",
@@ -456,7 +456,7 @@
 }
 
 [sub_resource type="ImageTexture" id="56"]
-image = SubResource("Image_u72q8")
+image = SubResource("Image_rpr4c")
 
 [sub_resource type="StyleBoxFlat" id="57"]
 content_margin_left = 6.0
@@ -506,7 +506,7 @@
 region_rect = Rect2(0, 0, 12, 12)
 
 [resource]
-default_font = ExtResource("1_h2ixh")
+default_font = ExtResource("1_rr2q2")
 default_font_size = 32
 Button/colors/font_color = Color(0.780392, 0.780392, 0.780392, 1)
 Button/colors/font_color_disabled = Color(1, 1, 1, 0.3)
@@ -516,7 +516,7 @@
 Button/colors/icon_color_hover = Color(1.15, 1.15, 1.15, 1)
 Button/colors/icon_color_pressed = Color(0.135294, 0.496079, 1.04176, 1)
 Button/constants/hseparation = 2
-Button/fonts/font = ExtResource("1_h2ixh")
+Button/fonts/font = ExtResource("1_rr2q2")
 Button/styles/disabled = SubResource("1")
 Button/styles/focus = SubResource("2")
 Button/styles/hover = SubResource("3")
@@ -618,7 +618,7 @@
 Label/constants/shadow_as_outline = 0
 Label/constants/shadow_offset_x = 1
 Label/constants/shadow_offset_y = 1
-Label/fonts/font = ExtResource("1_h2ixh")
+Label/fonts/font = ExtResource("1_rr2q2")
 Label/styles/normal = SubResource("54")
 LineEdit/colors/clear_button_color = Color(0.780392, 0.780392, 0.780392, 1)
 LineEdit/colors/clear_button_color_pressed = Color(0.117647, 0.431373, 0.905882, 1)
@@ -629,7 +629,7 @@
 LineEdit/colors/read_only = Color(1, 1, 1, 0.3)
 LineEdit/colors/selection_color = Color(0.117647, 0.431373, 0.905882, 0.4)
 LineEdit/constants/minimum_spaces = 12
-LineEdit/fonts/font = ExtResource("1_h2ixh")
+LineEdit/fonts/font = ExtResource("1_rr2q2")
 LineEdit/icons/clear = SubResource("56")
 LineEdit/styles/focus = SubResource("2")
 LineEdit/styles/normal = SubResource("4")
diff --git a/DungeonShooting_Godot/scene/Main.tscn b/DungeonShooting_Godot/scene/Main.tscn
index 93fb731..99c0ed0 100644
--- a/DungeonShooting_Godot/scene/Main.tscn
+++ b/DungeonShooting_Godot/scene/Main.tscn
@@ -1,7 +1,7 @@
 [gd_scene load_steps=5 format=3 uid="uid://lbe753cb8heb"]
 
-[ext_resource type="Script" path="res://src/game/GameApplication.cs" id="1_7qxy0"]
-[ext_resource type="Script" path="res://src/game/camera/GameCamera.cs" id="2_ipvhp"]
+[ext_resource type="Script" path="res://src/game/GameApplication.cs" id="1_lgroc"]
+[ext_resource type="Script" path="res://src/game/camera/GameCamera.cs" id="2_kdkre"]
 
 [sub_resource type="Shader" id="1"]
 code = "shader_type canvas_item;
@@ -21,7 +21,7 @@
 shader_parameter/offset = Vector2(0, 0)
 
 [node name="Main" type="Node2D" node_paths=PackedStringArray("SubViewport", "SubViewportContainer", "SceneRoot", "GlobalNodeRoot")]
-script = ExtResource("1_7qxy0")
+script = ExtResource("1_lgroc")
 SubViewport = NodePath("ViewCanvas/SubViewportContainer/SubViewport")
 SubViewportContainer = NodePath("ViewCanvas/SubViewportContainer")
 SceneRoot = NodePath("ViewCanvas/SubViewportContainer/SubViewport/SceneRoot")
@@ -49,6 +49,6 @@
 process_callback = 0
 limit_smoothed = true
 editor_draw_drag_margin = true
-script = ExtResource("2_ipvhp")
+script = ExtResource("2_kdkre")
 
 [node name="GlobalNodeRoot" type="Node2D" parent="."]
diff --git a/DungeonShooting_Godot/scene/World.tscn b/DungeonShooting_Godot/scene/World.tscn
index e986861..6c182e2 100644
--- a/DungeonShooting_Godot/scene/World.tscn
+++ b/DungeonShooting_Godot/scene/World.tscn
@@ -1,7 +1,7 @@
 [gd_scene load_steps=4 format=3 uid="uid://bqf2vks5ggnsp"]
 
-[ext_resource type="Script" path="res://src/game/room/World.cs" id="1_6b8pf"]
-[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="2_ur13e"]
+[ext_resource type="Script" path="res://src/game/room/World.cs" id="1_kt3mm"]
+[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="2_p6iui"]
 
 [sub_resource type="Environment" id="Environment_ji6mi"]
 background_mode = 3
@@ -9,7 +9,7 @@
 glow_intensity = 4.74
 
 [node name="World" type="Node2D" node_paths=PackedStringArray("NormalLayer", "YSortLayer", "TileRoot")]
-script = ExtResource("1_6b8pf")
+script = ExtResource("1_kt3mm")
 NormalLayer = NodePath("NormalLayer")
 YSortLayer = NodePath("YSortLayer")
 TileRoot = NodePath("TileRoot")
@@ -20,7 +20,7 @@
 
 [node name="TileRoot" type="TileMap" parent="."]
 y_sort_enabled = true
-tile_set = ExtResource("2_ur13e")
+tile_set = ExtResource("2_p6iui")
 format = 2
 layer_0/name = "Floor"
 layer_0/z_index = -10
diff --git a/DungeonShooting_Godot/scene/test/TestReadExcel.tscn b/DungeonShooting_Godot/scene/test/TestReadExcel.tscn
new file mode 100644
index 0000000..78be4ee
--- /dev/null
+++ b/DungeonShooting_Godot/scene/test/TestReadExcel.tscn
@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=3 uid="uid://deq562id5sngp"]
+
+[ext_resource type="Script" path="res://src/test/TestReadExcel.cs" id="1_8sptd"]
+
+[node name="TestReadExcel" type="Node2D"]
+script = ExtResource("1_8sptd")
diff --git a/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs b/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs
new file mode 100644
index 0000000..d11049e
--- /dev/null
+++ b/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs
@@ -0,0 +1,8 @@
+using System;
+
+namespace Generator;
+
+public class ExcelGenerator
+{
+
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs b/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs
index 14c6649..b2731bc 100644
--- a/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs
+++ b/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs
@@ -23,7 +23,7 @@
     /// </summary>
     public string Icon = ResourcePath.resource_sprite_gun_gun1_png;
     /// <summary>
-    /// 动画序列帧
+    /// 动画序列帧资源名称
     /// </summary>
     public string SpriteFrames;
     /// <summary>
diff --git a/DungeonShooting_Godot/src/test/TestReadExcel.cs b/DungeonShooting_Godot/src/test/TestReadExcel.cs
new file mode 100644
index 0000000..fdf4724
--- /dev/null
+++ b/DungeonShooting_Godot/src/test/TestReadExcel.cs
@@ -0,0 +1,50 @@
+using Godot;
+using System;
+using System.IO;
+using NPOI.SS.UserModel;
+using NPOI.XSSF.UserModel;
+
+public partial class TestReadExcel : Node2D
+{
+    public override void _Ready()
+    {
+        string sourceFile = @"config/Weapon.xlsx";
+ 
+        IWorkbook workbook = new XSSFWorkbook(sourceFile);
+        ISheet sheet1 = workbook.GetSheet("Sheet1");
+
+        int columnCount = -1;
+        foreach (IRow row in sheet1)
+        {
+            foreach (var cell in row)
+            {
+                if (columnCount >= 0 && cell.ColumnIndex >= columnCount)
+                {
+                    break;
+                }
+                var value = cell.StringCellValue;
+                if (string.IsNullOrEmpty(value))
+                {
+                    if (columnCount < 0)
+                    {
+                        columnCount = cell.ColumnIndex;
+                        break;
+                    }
+                    else if (cell.ColumnIndex == 0)
+                    {
+                        break;
+                    }
+                }
+                GD.Print("row: " + row.RowNum + " , Column: " + cell.ColumnIndex + ", value: " + cell.StringCellValue);
+            }
+        }
+        workbook.Close();
+        // sheet1.CreateRow(0).CreateCell(0).SetCellValue(1);
+        // sheet1.CreateRow(1).CreateCell(0).SetCellValue(2);
+        // sheet1.CreateRow(2).CreateCell(0).SetCellValue(3);
+        //
+        // FileStream fs = new FileStream(targetFile, FileMode.Create);
+        // workbook.Write(fs, true);
+        // workbook.Close();
+    }
+}