diff --git a/DungeonShooting_Godot/excel/ActivityBase.xlsx b/DungeonShooting_Godot/excel/ActivityBase.xlsx
index 5cd0698..9f73677 100644
--- a/DungeonShooting_Godot/excel/ActivityBase.xlsx
+++ b/DungeonShooting_Godot/excel/ActivityBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/BulletBase.xlsx b/DungeonShooting_Godot/excel/BulletBase.xlsx
index 6ee6491..c98d2c4 100644
--- a/DungeonShooting_Godot/excel/BulletBase.xlsx
+++ b/DungeonShooting_Godot/excel/BulletBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/WeaponBase.xlsx b/DungeonShooting_Godot/excel/WeaponBase.xlsx
index e3c81e8..a535b25 100644
--- a/DungeonShooting_Godot/excel/WeaponBase.xlsx
+++ b/DungeonShooting_Godot/excel/WeaponBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/prefab/bullet/laser/Laser0002.tscn b/DungeonShooting_Godot/prefab/bullet/laser/Laser0002.tscn
new file mode 100644
index 0000000..fc415cf
--- /dev/null
+++ b/DungeonShooting_Godot/prefab/bullet/laser/Laser0002.tscn
@@ -0,0 +1,23 @@
+[gd_scene load_steps=4 format=3 uid="uid://cjt68qk2mm7km"]
+
+[ext_resource type="Script" path="res://src/game/activity/bullet/laser/Laser.cs" id="1_t3xbd"]
+[ext_resource type="Texture2D" uid="uid://clfpbq1c1ilp1" path="res://resource/sprite/bullet/laser/Laser0001.png" id="2_ga23q"]
+
+[sub_resource type="RectangleShape2D" id="RectangleShape2D_l4vuk"]
+resource_local_to_scene = true
+
+[node name="Laser0001" type="Area2D" node_paths=PackedStringArray("Particles2D")]
+collision_layer = 2
+monitorable = false
+script = ExtResource("1_t3xbd")
+Particles2D = []
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+shape = SubResource("RectangleShape2D_l4vuk")
+
+[node name="LineSprite" type="Sprite2D" parent="."]
+modulate = Color(1.5, 1.5, 1.5, 1)
+position = Vector2(0, 1.19209e-07)
+texture = ExtResource("2_ga23q")
+centered = false
+offset = Vector2(0, -8)
diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0001.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0001.tscn
index 6c95617..1dd7c32 100644
--- a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0001.tscn
+++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0001.tscn
@@ -1,8 +1,8 @@
-[gd_scene load_steps=8 format=3 uid="uid://bj4kmvt8jg1cf"]
+[gd_scene load_steps=7 format=3 uid="uid://bj4kmvt8jg1cf"]
[ext_resource type="Script" path="res://src/game/activity/bullet/normal/Bullet.cs" id="1_3d3df"]
[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_mxa72"]
-[ext_resource type="Texture2D" uid="uid://bu0b11hiuecxy" path="res://resource/sprite/bullet/normal/bullet0001.png" id="3_pm4pr"]
+[ext_resource type="SpriteFrames" uid="uid://baoxep7vami72" path="res://resource/spriteFrames/bullet/Bullet0001.tres" id="3_q4a0o"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_w5w0i"]
resource_local_to_scene = true
@@ -28,17 +28,6 @@
shader_parameter/outline_use_blend = false
shader_parameter/grey = 0.0
-[sub_resource type="SpriteFrames" id="SpriteFrames_5wvmf"]
-animations = [{
-"frames": [{
-"duration": 1.0,
-"texture": ExtResource("3_pm4pr")
-}],
-"loop": true,
-"name": &"default",
-"speed": 5.0
-}]
-
[sub_resource type="RectangleShape2D" id="RectangleShape2D_lcqb8"]
size = Vector2(9, 4)
@@ -59,7 +48,7 @@
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."]
modulate = Color(1.6, 1.6, 1.6, 1)
material = SubResource("ShaderMaterial_qhkgc")
-sprite_frames = SubResource("SpriteFrames_5wvmf")
+sprite_frames = ExtResource("3_q4a0o")
[node name="CollisionArea" type="Area2D" parent="AnimatedSprite"]
collision_layer = 0
diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0006.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0006.tscn
new file mode 100644
index 0000000..c29f36a
--- /dev/null
+++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0006.tscn
@@ -0,0 +1,75 @@
+[gd_scene load_steps=9 format=3 uid="uid://c1fx7c1jwil26"]
+
+[ext_resource type="Script" path="res://src/game/activity/bullet/normal/TrailBullet.cs" id="1_b8pov"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_iolc6"]
+[ext_resource type="SpriteFrames" uid="uid://dx4t45bq8ehhq" path="res://resource/spriteFrames/bullet/Bullet0006.tres" id="3_v2y7a"]
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_w5w0i"]
+resource_local_to_scene = true
+shader = ExtResource("2_iolc6")
+shader_parameter/blend = Color(0, 0, 0, 0.470588)
+shader_parameter/schedule = 1.0
+shader_parameter/modulate = Color(1, 1, 1, 1)
+shader_parameter/show_outline = false
+shader_parameter/outline_color = Color(0, 0, 0, 1)
+shader_parameter/outline_rainbow = false
+shader_parameter/outline_use_blend = true
+shader_parameter/grey = 0.0
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_qhkgc"]
+resource_local_to_scene = true
+shader = ExtResource("2_iolc6")
+shader_parameter/blend = Color(1, 1, 1, 1)
+shader_parameter/schedule = 0.0
+shader_parameter/modulate = Color(1, 1, 1, 1)
+shader_parameter/show_outline = false
+shader_parameter/outline_color = Color(0, 0, 0, 1)
+shader_parameter/outline_rainbow = false
+shader_parameter/outline_use_blend = false
+shader_parameter/grey = 0.0
+
+[sub_resource type="Gradient" id="Gradient_lp1h8"]
+colors = PackedColorArray(0.964706, 0.494118, 0.478431, 1, 0.960784, 0.494118, 0.478431, 0)
+
+[sub_resource type="CircleShape2D" id="CircleShape2D_4mw2b"]
+radius = 4.0
+
+[sub_resource type="CircleShape2D" id="CircleShape2D_vqdkp"]
+radius = 4.0
+
+[node name="Bullet0006" type="CharacterBody2D" node_paths=PackedStringArray("Trail", "CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")]
+collision_layer = 2
+script = ExtResource("1_b8pov")
+Trail = NodePath("AnimatedSprite/Trail")
+CollisionArea = NodePath("AnimatedSprite/CollisionArea")
+CollisionShape2D = NodePath("AnimatedSprite/CollisionArea/CollisionShape2D")
+Particles2D = []
+ShadowSprite = NodePath("ShadowSprite")
+AnimatedSprite = NodePath("AnimatedSprite")
+Collision = NodePath("Collision")
+
+[node name="ShadowSprite" type="Sprite2D" parent="."]
+z_index = -1
+material = SubResource("ShaderMaterial_w5w0i")
+
+[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."]
+modulate = Color(1.6, 1.6, 1.6, 1)
+material = SubResource("ShaderMaterial_qhkgc")
+sprite_frames = ExtResource("3_v2y7a")
+
+[node name="Trail" type="Line2D" parent="AnimatedSprite"]
+width = 2.0
+gradient = SubResource("Gradient_lp1h8")
+joint_mode = 1
+end_cap_mode = 2
+
+[node name="CollisionArea" type="Area2D" parent="AnimatedSprite"]
+collision_layer = 0
+collision_mask = 0
+monitorable = false
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimatedSprite/CollisionArea"]
+shape = SubResource("CircleShape2D_4mw2b")
+
+[node name="Collision" type="CollisionShape2D" parent="."]
+shape = SubResource("CircleShape2D_vqdkp")
diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0010.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0010.tscn
new file mode 100644
index 0000000..d8afea6
--- /dev/null
+++ b/DungeonShooting_Godot/prefab/weapon/Weapon0010.tscn
@@ -0,0 +1,166 @@
+[gd_scene load_steps=11 format=3 uid="uid://dhnrfqcojc367"]
+
+[ext_resource type="Script" path="res://src/game/activity/weapon/gun/Gun.cs" id="1_bw5v7"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_pht5a"]
+[ext_resource type="SpriteFrames" uid="uid://cd7fhaqk587o2" path="res://resource/spriteFrames/weapon/Weapon0010.tres" id="3_nj0c6"]
+[ext_resource type="Animation" uid="uid://v3dltmdstqad" path="res://resource/animation/weapon/Weapon_floodlight.res" id="4_2cd01"]
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_cbiyh"]
+resource_local_to_scene = true
+shader = ExtResource("2_pht5a")
+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_0oy4o"]
+resource_local_to_scene = true
+shader = ExtResource("2_pht5a")
+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_evjpf"]
+size = Vector2(26, 6)
+
+[sub_resource type="Animation" id="Animation_x136i"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("AnimatedSprite:material:shader_parameter/schedule")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [0.0]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("AnimatedSprite:animation")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 1,
+"values": [&"default"]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("AnimatedSprite:frame")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 1,
+"values": [0]
+}
+tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath("AnimatedSprite:rotation")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [0.0]
+}
+
+[sub_resource type="Animation" id="Animation_8xqs8"]
+resource_name = "reloading"
+length = 1.3
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("AnimatedSprite:animation")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 1.3),
+"transitions": PackedFloat32Array(1, 1),
+"update": 1,
+"values": [&"reloading_frame", &"default"]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("AnimatedSprite:frame")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 1.3),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [0, 18]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("AnimatedSprite:rotation")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0, 0.2, 1.1, 1.3),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
+"update": 0,
+"values": [0.0, -0.436332, -0.436332, 0.0]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_trkjd"]
+_data = {
+"RESET": SubResource("Animation_x136i"),
+"floodlight": ExtResource("4_2cd01"),
+"reloading": SubResource("Animation_8xqs8")
+}
+
+[node name="Weapon0010" type="CharacterBody2D" node_paths=PackedStringArray("FirePoint", "ShellPoint", "AnimationPlayer", "ShadowSprite", "AnimatedSprite", "Collision")]
+collision_layer = 4
+script = ExtResource("1_bw5v7")
+FirePoint = NodePath("AnimatedSprite/FirePoint")
+ShellPoint = NodePath("AnimatedSprite/ShellPoint")
+AnimationPlayer = NodePath("AnimationPlayer")
+ShadowSprite = NodePath("ShadowSprite")
+AnimatedSprite = NodePath("AnimatedSprite")
+Collision = NodePath("Collision")
+
+[node name="ShadowSprite" type="Sprite2D" parent="."]
+z_index = -1
+material = SubResource("ShaderMaterial_cbiyh")
+
+[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."]
+modulate = Color(1.9, 1.9, 1.9, 1)
+material = SubResource("ShaderMaterial_0oy4o")
+sprite_frames = ExtResource("3_nj0c6")
+offset = Vector2(4, -2.015)
+
+[node name="ShellPoint" type="Marker2D" parent="AnimatedSprite"]
+position = Vector2(-3, -3)
+
+[node name="FirePoint" type="Marker2D" parent="AnimatedSprite"]
+position = Vector2(21, -1)
+
+[node name="Collision" type="CollisionShape2D" parent="."]
+position = Vector2(4, -1)
+shape = SubResource("RectangleShape2D_evjpf")
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
+libraries = {
+"": SubResource("AnimationLibrary_trkjd")
+}
diff --git a/DungeonShooting_Godot/resource/config/ActivityBase.json b/DungeonShooting_Godot/resource/config/ActivityBase.json
index da0ffac..705f8e1 100644
--- a/DungeonShooting_Godot/resource/config/ActivityBase.json
+++ b/DungeonShooting_Godot/resource/config/ActivityBase.json
@@ -4,6 +4,7 @@
"Type": 3,
"Name": "\u73A9\u5BB6",
"Quality": 0,
+ "Price": 0,
"Intro": "\u73A9\u5BB6",
"Details": "",
"IsStatic": false,
@@ -17,6 +18,7 @@
"Type": 4,
"Name": "\u654C\u4EBA",
"Quality": 0,
+ "Price": 0,
"Intro": "\u654C\u4EBA",
"Details": "",
"IsStatic": false,
@@ -30,6 +32,7 @@
"Type": 4,
"Name": "\u654C\u4EBA2",
"Quality": 0,
+ "Price": 0,
"Intro": "\u654C\u4EBA2",
"Details": "",
"IsStatic": false,
@@ -43,6 +46,7 @@
"Type": 5,
"Name": "\u6B65\u67AA",
"Quality": 3,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -56,6 +60,7 @@
"Type": 5,
"Name": "\u9730\u5F39\u67AA",
"Quality": 3,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -69,6 +74,7 @@
"Type": 5,
"Name": "\u624B\u67AA",
"Quality": 2,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -82,6 +88,7 @@
"Type": 5,
"Name": "\u5200",
"Quality": 4,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -95,6 +102,7 @@
"Type": 5,
"Name": "\u72D9\u51FB\u67AA",
"Quality": 4,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -108,6 +116,7 @@
"Type": 5,
"Name": "\u51B2\u950B\u67AA",
"Quality": 2,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -121,6 +130,7 @@
"Type": 5,
"Name": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA",
"Quality": 4,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -133,7 +143,8 @@
"Id": "weapon0008",
"Type": 5,
"Name": "\u6FC0\u5149\u624B\u67AA",
- "Quality": 4,
+ "Quality": 3,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -147,6 +158,7 @@
"Type": 5,
"Name": "\u69B4\u5F39\u53D1\u5C04\u5668",
"Quality": 4,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -156,10 +168,25 @@
"ShowInMapEditor": true
},
{
+ "Id": "weapon0010",
+ "Type": 5,
+ "Name": "weapon0010",
+ "Quality": 4,
+ "Price": 0,
+ "Intro": "",
+ "Details": "",
+ "IsStatic": false,
+ "__Material": "",
+ "Prefab": "res://prefab/weapon/Weapon0010.tscn",
+ "Icon": "res://resource/sprite/weapon/weapon0010/Weapon0010.png",
+ "ShowInMapEditor": true
+ },
+ {
"Id": "bullet0001",
"Type": 6,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -173,6 +200,7 @@
"Type": 6,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -186,6 +214,7 @@
"Type": 6,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -199,6 +228,7 @@
"Type": 6,
"Name": "\u69B4\u5F39\u70AE",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -212,6 +242,7 @@
"Type": 6,
"Name": "\u629B\u7269\u7EBF\u7C98\u6DB2\u5B50\u5F39",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -221,10 +252,25 @@
"ShowInMapEditor": false
},
{
+ "Id": "bullet0006",
+ "Type": 6,
+ "Name": "\u62D6\u5C3E\u5B50\u5F39",
+ "Quality": 0,
+ "Price": 0,
+ "Intro": "",
+ "Details": "",
+ "IsStatic": false,
+ "__Material": "0003",
+ "Prefab": "res://prefab/bullet/normal/Bullet0006.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
+ },
+ {
"Id": "shell0001",
"Type": 7,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -238,6 +284,7 @@
"Type": 7,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -251,6 +298,7 @@
"Type": 7,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -264,6 +312,7 @@
"Type": 7,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "",
"Details": "",
"IsStatic": false,
@@ -277,6 +326,7 @@
"Type": 8,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "\u654C\u4EBA1\u6B7B\u4EA1\u788E\u7247",
"Details": "",
"IsStatic": false,
@@ -290,6 +340,7 @@
"Type": 8,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "\u654C\u4EBA2\u6B7B\u4EA1",
"Details": "",
"IsStatic": false,
@@ -303,6 +354,7 @@
"Type": 9,
"Name": "\u978B\u5B50",
"Quality": 4,
+ "Price": 0,
"Intro": "\u63D0\u9AD8\u79FB\u52A8\u901F\u5EA6",
"Details": "",
"IsStatic": false,
@@ -316,6 +368,7 @@
"Type": 9,
"Name": "\u5FC3\u4E4B\u5BB9\u5668",
"Quality": 3,
+ "Price": 0,
"Intro": "\u63D0\u9AD8\u8840\u91CF\u4E0A\u9650",
"Details": "",
"IsStatic": false,
@@ -329,6 +382,7 @@
"Type": 9,
"Name": "\u62A4\u76FE",
"Quality": 3,
+ "Price": 0,
"Intro": "\u53EF\u4EE5\u62B5\u6321\u5B50\u5F39\uFF0C\u968F\u65F6\u95F4\u63A8\u79FB\u81EA\u52A8\u6062\u590D",
"Details": "",
"IsStatic": false,
@@ -342,6 +396,7 @@
"Type": 9,
"Name": "\u62A4\u76FE\u8BA1\u65F6\u5668",
"Quality": 4,
+ "Price": 0,
"Intro": "\u63D0\u9AD8\u62A4\u76FE\u6062\u590D\u901F\u5EA6",
"Details": "",
"IsStatic": false,
@@ -355,6 +410,7 @@
"Type": 9,
"Name": "\u6740\u4F24\u5F39",
"Quality": 4,
+ "Price": 0,
"Intro": "\u63D0\u9AD8\u5B50\u5F39\u4F24\u5BB3",
"Details": "",
"IsStatic": false,
@@ -368,6 +424,7 @@
"Type": 9,
"Name": "\u7EA2\u5B9D\u77F3\u6212\u6307",
"Quality": 4,
+ "Price": 0,
"Intro": "\u53D7\u4F24\u540E\u5EF6\u957F\u65E0\u654C\u65F6\u95F4",
"Details": "",
"IsStatic": false,
@@ -381,6 +438,7 @@
"Type": 9,
"Name": "\u5907\u7528\u62A4\u76FE",
"Quality": 3,
+ "Price": 0,
"Intro": "\u53D7\u4F24\u65F6\u6709\u4E00\u5B9A\u6982\u7387\u62B5\u6D88\u4F24\u5BB3",
"Details": "",
"IsStatic": false,
@@ -394,6 +452,7 @@
"Type": 9,
"Name": "\u773C\u955C",
"Quality": 3,
+ "Price": 0,
"Intro": "\u63D0\u9AD8\u6B66\u5668\u7CBE\u51C6\u5EA6",
"Details": "",
"IsStatic": false,
@@ -407,6 +466,7 @@
"Type": 9,
"Name": "\u9AD8\u901F\u5B50\u5F39",
"Quality": 3,
+ "Price": 0,
"Intro": "\u63D0\u9AD8\u5B50\u5F39\u901F\u5EA6\u548C\u5C04\u7A0B",
"Details": "",
"IsStatic": false,
@@ -420,6 +480,7 @@
"Type": 9,
"Name": "\u5206\u88C2\u5B50\u5F39",
"Quality": 4,
+ "Price": 0,
"Intro": "\u5B50\u5F39\u6570\u91CF\u7FFB\u500D, \u4F46\u662F\u7CBE\u51C6\u5EA6, \u51FB\u9000\u548C\u4F24\u5BB3\u964D\u4F4E",
"Details": "",
"IsStatic": false,
@@ -433,6 +494,7 @@
"Type": 9,
"Name": "\u5F39\u5C04\u5B50\u5F39",
"Quality": 4,
+ "Price": 0,
"Intro": "\u5B50\u5F39\u53CD\u5F39\u6B21\u6570\u002B2",
"Details": "",
"IsStatic": false,
@@ -446,6 +508,7 @@
"Type": 9,
"Name": "\u7A7F\u900F\u5B50\u5F39",
"Quality": 4,
+ "Price": 0,
"Intro": "\u5B50\u5F39\u7A7F\u900F\u002B1",
"Details": "",
"IsStatic": false,
@@ -459,6 +522,7 @@
"Type": 9,
"Name": "\u6B66\u5668\u80CC\u5305",
"Quality": 2,
+ "Price": 0,
"Intro": "\u6B66\u5668\u5BB9\u91CF\u002B1",
"Details": "",
"IsStatic": false,
@@ -472,6 +536,7 @@
"Type": 9,
"Name": "\u9053\u5177\u80CC\u5305",
"Quality": 2,
+ "Price": 0,
"Intro": "\u9053\u5177\u5BB9\u91CF\u002B1",
"Details": "",
"IsStatic": false,
@@ -485,6 +550,7 @@
"Type": 9,
"Name": "\u533B\u836F\u7BB1",
"Quality": 1,
+ "Price": 0,
"Intro": "\u4F7F\u7528\u540E\u56DE\u590D\u4E00\u9897\u7EA2\u5FC3",
"Details": "",
"IsStatic": false,
@@ -498,6 +564,7 @@
"Type": 9,
"Name": "\u5F39\u836F\u7BB1",
"Quality": 1,
+ "Price": 0,
"Intro": "\u4F7F\u7528\u540E\u8865\u5145\u5F53\u524D\u6B66\u5668\u5907\u7528\u5F39\u836F",
"Details": "",
"IsStatic": false,
@@ -511,6 +578,7 @@
"Type": 99,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u4E1C\u4FA7)",
"Details": "",
"IsStatic": true,
@@ -524,6 +592,7 @@
"Type": 99,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u897F\u4FA7)",
"Details": "",
"IsStatic": true,
@@ -537,6 +606,7 @@
"Type": 99,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5357\u4FA7)",
"Details": "",
"IsStatic": true,
@@ -550,6 +620,7 @@
"Type": 99,
"Name": "",
"Quality": 0,
+ "Price": 0,
"Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5317\u4FA7)",
"Details": "",
"IsStatic": true,
diff --git a/DungeonShooting_Godot/resource/config/BulletBase.json b/DungeonShooting_Godot/resource/config/BulletBase.json
index 5985b17..3ca89bd 100644
--- a/DungeonShooting_Godot/resource/config/BulletBase.json
+++ b/DungeonShooting_Godot/resource/config/BulletBase.json
@@ -211,6 +211,41 @@
]
},
{
+ "Id": "0007",
+ "Name": "\u62D6\u5C3E\u5B50\u5F391",
+ "Type": 1,
+ "Prefab": "bullet0006",
+ "HarmRange": [
+ 4
+ ],
+ "RepelRange": [
+ 20
+ ],
+ "DeviationAngleRange": [
+ 0
+ ],
+ "SpeedRange": [
+ 300,
+ 320
+ ],
+ "LifeTimeRange": [
+ -1
+ ],
+ "DistanceRange": [
+ 600,
+ 600
+ ],
+ "VerticalSpeed": [
+ 0
+ ],
+ "BounceCount": [
+ 2
+ ],
+ "Penetration": [
+ 0
+ ]
+ },
+ {
"Id": "1001",
"Name": "\u6FC0\u51491",
"Type": 2,
@@ -225,8 +260,8 @@
0
],
"SpeedRange": [
- 300,
- 330
+ 2000,
+ 2000
],
"LifeTimeRange": [
-1
diff --git a/DungeonShooting_Godot/resource/config/WeaponBase.json b/DungeonShooting_Godot/resource/config/WeaponBase.json
index 3cbe120..d93ed7d 100644
--- a/DungeonShooting_Godot/resource/config/WeaponBase.json
+++ b/DungeonShooting_Godot/resource/config/WeaponBase.json
@@ -74,11 +74,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0002",
"__AiAttackAttr": ""
},
{
- "Id": "0002",
+ "Id": "0001_ai",
"Remark": "\u6B65\u67AA",
"__Activity": "",
"Weight": 40,
@@ -152,11 +151,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0001"
},
{
- "Id": "0003",
+ "Id": "0002",
"Remark": "\u9730\u5F39\u67AA",
"__Activity": "weapon0002",
"Weight": 40,
@@ -230,11 +228,10 @@
"__BeLoadedSound": "beLoaded0005",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0004",
"__AiAttackAttr": ""
},
{
- "Id": "0004",
+ "Id": "0002_ai",
"Remark": "\u9730\u5F39\u67AA",
"__Activity": "",
"Weight": 40,
@@ -308,11 +305,10 @@
"__BeLoadedSound": "beLoaded0005",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0002"
},
{
- "Id": "0005",
+ "Id": "0003",
"Remark": "\u624B\u67AA",
"__Activity": "weapon0003",
"Weight": 20,
@@ -386,11 +382,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0006",
"__AiAttackAttr": ""
},
{
- "Id": "0006",
+ "Id": "0003_ai",
"Remark": "\u624B\u67AA",
"__Activity": "",
"Weight": 20,
@@ -464,11 +459,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0003"
},
{
- "Id": "0007",
+ "Id": "0004",
"Remark": "\u5200",
"__Activity": "weapon0004",
"Weight": 40,
@@ -541,11 +535,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0008",
"__AiAttackAttr": ""
},
{
- "Id": "0008",
+ "Id": "0004_ai",
"Remark": "\u5200",
"__Activity": "",
"Weight": 40,
@@ -618,11 +611,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0004"
},
{
- "Id": "0009",
+ "Id": "0005",
"Remark": "\u72D9\u51FB\u67AA",
"__Activity": "weapon0005",
"Weight": 50,
@@ -696,11 +688,10 @@
"__BeLoadedSound": "beLoaded0007",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0010",
"__AiAttackAttr": ""
},
{
- "Id": "0010",
+ "Id": "0005_ai",
"Remark": "\u72D9\u51FB\u67AA",
"__Activity": "",
"Weight": 50,
@@ -774,11 +765,10 @@
"__BeLoadedSound": "beLoaded0007",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0005"
},
{
- "Id": "0011",
+ "Id": "0006",
"Remark": "\u51B2\u950B\u67AA",
"__Activity": "weapon0006",
"Weight": 30,
@@ -852,11 +842,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0012",
"__AiAttackAttr": ""
},
{
- "Id": "0012",
+ "Id": "0006_ai",
"Remark": "\u51B2\u950B\u67AA",
"__Activity": "",
"Weight": 30,
@@ -930,11 +919,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0004"
},
{
- "Id": "0013",
+ "Id": "0007",
"Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA",
"__Activity": "weapon0007",
"Weight": 40,
@@ -1008,11 +996,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0014",
"__AiAttackAttr": ""
},
{
- "Id": "0014",
+ "Id": "0007_ai",
"Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA",
"__Activity": "",
"Weight": 40,
@@ -1086,11 +1073,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0006"
},
{
- "Id": "0015",
+ "Id": "0008",
"Remark": "\u6FC0\u5149\u624B\u67AA",
"__Activity": "weapon0008",
"Weight": 40,
@@ -1164,11 +1150,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0016",
"__AiAttackAttr": ""
},
{
- "Id": "0016",
+ "Id": "0008_ai",
"Remark": "\u6FC0\u5149\u624B\u67AA",
"__Activity": "",
"Weight": 40,
@@ -1242,11 +1227,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0007"
},
{
- "Id": "0017",
+ "Id": "0009",
"Remark": "\u69B4\u5F39\u53D1\u5C04\u5668",
"__Activity": "weapon0009",
"Weight": 40,
@@ -1320,11 +1304,10 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "0018",
"__AiAttackAttr": ""
},
{
- "Id": "0018",
+ "Id": "0009_ai",
"Remark": "\u69B4\u5F39\u53D1\u5C04\u5668",
"__Activity": "",
"Weight": 40,
@@ -1398,7 +1381,160 @@
"__BeLoadedSound": "",
"BeLoadedSoundDelayTime": 0,
"__OtherSoundMap": null,
- "__AiUseAttribute": "",
"__AiAttackAttr": "0008"
+ },
+ {
+ "Id": "0010",
+ "Remark": "weapon0010",
+ "__Activity": "weapon0010",
+ "Weight": 40,
+ "WeightType": 2,
+ "IsMelee": false,
+ "ContinuousShoot": false,
+ "AmmoCapacity": 10,
+ "MaxAmmoCapacity": 240,
+ "StandbyAmmoCapacity": 120,
+ "ReloadTime": 1.8,
+ "AloneReload": false,
+ "AloneReloadCount": 1,
+ "AloneReloadBeginIntervalTime": 0,
+ "AloneReloadFinishIntervalTime": 0,
+ "AloneReloadCanShoot": false,
+ "LooseShoot": false,
+ "MinChargeTime": 0,
+ "ManualBeLoaded": false,
+ "AutoManualBeLoaded": false,
+ "BeLoadedTime": 0,
+ "ContinuousCountRange": [
+ 1
+ ],
+ "TriggerInterval": 0,
+ "StartFiringSpeed": 300,
+ "FinalFiringSpeed": 300,
+ "FiringSpeedAddSpeed": 0,
+ "FiringSpeedBackSpeed": 0,
+ "FiringSpeedBackTime": 0,
+ "FireBulletCountRange": [
+ 1
+ ],
+ "DelayedTime": 0,
+ "StartScatteringRange": 0,
+ "FinalScatteringRange": 8,
+ "ScatteringRangeAddValue": 3,
+ "ScatteringRangeBackSpeed": 20,
+ "ScatteringRangeBackDelayTime": 0.5,
+ "CameraShake": 2,
+ "BacklashRange": [
+ 2,
+ 3
+ ],
+ "BacklashRegressionSpeed": 25,
+ "UpliftAngle": 13,
+ "DefaultAngle": 0,
+ "UpliftAngleRestore": 1,
+ "FireEffect": "res://prefab/effect/weapon/ShotFire2.tscn",
+ "__Bullet": "0007",
+ "__Shell": "",
+ "ReloadThrowShell": false,
+ "ThrowShellDelayTime": 0,
+ "ThrowCollisionSize": {
+ "X": 20,
+ "Y": 15
+ },
+ "CanMeleeAttack": true,
+ "MeleeAttackHarmRange": [
+ 10
+ ],
+ "MeleeAttackRepelRange": [
+ 100
+ ],
+ "__ShootSound": "shooting0010",
+ "__BeginReloadSound": "reloadBegin0011",
+ "BeginReloadSoundDelayTime": 0,
+ "__ReloadSound": "",
+ "ReloadSoundDelayTime": 0,
+ "__ReloadFinishSound": "reloadFinish0003",
+ "ReloadFinishSoundAdvanceTime": 0.8,
+ "__BeLoadedSound": "",
+ "BeLoadedSoundDelayTime": 0,
+ "__OtherSoundMap": null,
+ "__AiAttackAttr": ""
+ },
+ {
+ "Id": "0010_ai",
+ "Remark": "weapon0010",
+ "__Activity": "",
+ "Weight": 40,
+ "WeightType": 2,
+ "IsMelee": false,
+ "ContinuousShoot": false,
+ "AmmoCapacity": 10,
+ "MaxAmmoCapacity": 240,
+ "StandbyAmmoCapacity": 120,
+ "ReloadTime": 1.8,
+ "AloneReload": false,
+ "AloneReloadCount": 1,
+ "AloneReloadBeginIntervalTime": 0,
+ "AloneReloadFinishIntervalTime": 0,
+ "AloneReloadCanShoot": false,
+ "LooseShoot": false,
+ "MinChargeTime": 0,
+ "ManualBeLoaded": false,
+ "AutoManualBeLoaded": false,
+ "BeLoadedTime": 0,
+ "ContinuousCountRange": [
+ 1
+ ],
+ "TriggerInterval": 4,
+ "StartFiringSpeed": 300,
+ "FinalFiringSpeed": 300,
+ "FiringSpeedAddSpeed": 0,
+ "FiringSpeedBackSpeed": 0,
+ "FiringSpeedBackTime": 0,
+ "FireBulletCountRange": [
+ 1
+ ],
+ "DelayedTime": 0,
+ "StartScatteringRange": 0,
+ "FinalScatteringRange": 8,
+ "ScatteringRangeAddValue": 3,
+ "ScatteringRangeBackSpeed": 20,
+ "ScatteringRangeBackDelayTime": 0.5,
+ "CameraShake": 2,
+ "BacklashRange": [
+ 2,
+ 3
+ ],
+ "BacklashRegressionSpeed": 25,
+ "UpliftAngle": 13,
+ "DefaultAngle": 0,
+ "UpliftAngleRestore": 1,
+ "FireEffect": "res://prefab/effect/weapon/ShotFire2.tscn",
+ "__Bullet": "0007",
+ "__Shell": "",
+ "ReloadThrowShell": false,
+ "ThrowShellDelayTime": 0,
+ "ThrowCollisionSize": {
+ "X": 20,
+ "Y": 15
+ },
+ "CanMeleeAttack": true,
+ "MeleeAttackHarmRange": [
+ 10
+ ],
+ "MeleeAttackRepelRange": [
+ 100
+ ],
+ "__ShootSound": "shooting0010",
+ "__BeginReloadSound": "reloadBegin0011",
+ "BeginReloadSoundDelayTime": 0,
+ "__ReloadSound": "",
+ "ReloadSoundDelayTime": 0,
+ "__ReloadFinishSound": "reloadFinish0003",
+ "ReloadFinishSoundAdvanceTime": 0.8,
+ "__BeLoadedSound": "",
+ "BeLoadedSoundDelayTime": 0,
+ "__OtherSoundMap": null,
+ "__AiAttackAttr": "0007"
}
]
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/RoomInfo.json
index 6ee53d4..7930a66 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/RoomInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/RoomInfo.json
@@ -1 +1 @@
-{"Position":{"X":-4,"Y":-8},"Size":{"X":16,"Y":14},"DoorAreaInfos":[{"Direction":3,"Start":0,"End":128},{"Direction":1,"Start":0,"End":64},{"Direction":2,"Start":64,"End":192},{"Direction":0,"Start":16,"End":144}],"GroupName":"Test1","RoomType":0,"RoomName":"Battle1","Weight":100,"Remark":""}
\ No newline at end of file
+{"Position":{"X":-4,"Y":-8},"Size":{"X":16,"Y":14},"DoorAreaInfos":[{"Direction":3,"Start":0,"End":128},{"Direction":1,"Start":0,"End":64},{"Direction":2,"Start":64,"End":192},{"Direction":0,"Start":16,"End":144}],"GroupName":"Test1","RoomType":1,"RoomName":"Battle1","Weight":100,"Remark":""}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle2/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle2/RoomInfo.json
index 097757d..6f8b7ec 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle2/RoomInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle2/RoomInfo.json
@@ -1 +1 @@
-{"Position":{"X":-9,"Y":-10},"Size":{"X":27,"Y":21},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":0,"RoomName":"Battle2","Weight":100,"Remark":""}
\ No newline at end of file
+{"Position":{"X":-9,"Y":-10},"Size":{"X":27,"Y":21},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":1,"RoomName":"Battle2","Weight":100,"Remark":""}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/boss/Boss1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/boss/Boss1/RoomInfo.json
index adba4d9..bb3bf54 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/boss/Boss1/RoomInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/boss/Boss1/RoomInfo.json
@@ -1 +1 @@
-{"Position":{"X":-7,"Y":-13},"Size":{"X":24,"Y":20},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":3,"RoomName":"Boss1","Weight":100,"Remark":""}
\ No newline at end of file
+{"Position":{"X":-7,"Y":-13},"Size":{"X":24,"Y":20},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":8,"RoomName":"Boss1","Weight":100,"Remark":""}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json
index d237444..a789ff7 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json
@@ -1 +1 @@
-[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[{"Position":{"X":39,"Y":8},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-16,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":6},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]}]]}]
\ No newline at end of file
+[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[{"Position":{"X":39,"Y":8},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-16,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":6},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0010","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":47,"Y":-32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0008","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]}]]}]
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preview.png
index ca8f4da..8fb50a7 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preview.png
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preview.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/RoomInfo.json
index 5182eed..d6fd35d 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/RoomInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/RoomInfo.json
@@ -1 +1 @@
-{"Position":{"X":-9,"Y":-7},"Size":{"X":20,"Y":17},"DoorAreaInfos":[{"Direction":3,"Start":64,"End":208},{"Direction":0,"Start":16,"End":144},{"Direction":2,"Start":48,"End":176},{"Direction":1,"Start":16,"End":160}],"GroupName":"Test1","RoomType":1,"RoomName":"Start","Weight":100,"Remark":""}
\ No newline at end of file
+{"Position":{"X":-9,"Y":-7},"Size":{"X":20,"Y":17},"DoorAreaInfos":[{"Direction":3,"Start":64,"End":208},{"Direction":0,"Start":16,"End":144},{"Direction":2,"Start":48,"End":176},{"Direction":1,"Start":16,"End":160}],"GroupName":"Test1","RoomType":2,"RoomName":"Start","Weight":100,"Remark":""}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/TileInfo.json
index a18030c..a8bff43 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/TileInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/TileInfo.json
@@ -1 +1 @@
-{"NavigationVertices":[{"X":138,"Y":-42},{"X":138,"Y":82},{"X":134,"Y":22},{"X":134,"Y":-14},{"X":58,"Y":82},{"X":54,"Y":54},{"X":74,"Y":38},{"X":118,"Y":38},{"X":22,"Y":118},{"X":58,"Y":130},{"X":-58,"Y":130},{"X":-22,"Y":118},{"X":-26,"Y":22},{"X":-26,"Y":-14},{"X":-22,"Y":18},{"X":-22,"Y":54},{"X":54,"Y":18},{"X":74,"Y":2},{"X":22,"Y":82},{"X":-58,"Y":98},{"X":-22,"Y":82},{"X":90,"Y":-42},{"X":90,"Y":-14},{"X":90,"Y":2},{"X":-42,"Y":-42},{"X":118,"Y":22},{"X":-42,"Y":-58},{"X":90,"Y":-58},{"X":-86,"Y":-14},{"X":-106,"Y":-42},{"X":-106,"Y":98},{"X":-86,"Y":22}],"NavigationPolygon":[[0,1,2,3],[4,5,6,7,1],[8,9,10,11],[12,13,14,15],[6,5,16,17],[4,9,8,18,5],[11,10,19,20],[21,0,3,22],[22,23,17,24],[7,25,2,1],[15,5,18,20],[24,26,27,21],[24,21,22],[24,17,16,13],[16,14,13],[24,13,28,29],[30,29,28,31],[19,30,31,12,15,20]],"Floor":[-3,-4,0,3,-2,-4,0,3,-2,-3,0,3,-3,-3,0,3,-7,-3,0,3,-7,-2,0,3,-7,-1,0,3,-7,0,0,3,-7,1,0,3,-7,2,0,3,-7,3,0,3,-7,4,0,3,-7,5,0,3,-6,-3,0,3,-6,-2,0,3,-6,-1,0,3,-6,0,0,3,-6,1,0,3,-6,2,0,3,-6,3,0,3,-6,4,0,3,-6,5,0,3,-5,-3,0,3,-5,-2,0,3,-5,1,0,3,-5,2,0,3,-5,3,0,3,-5,4,0,3,-5,5,0,3,-4,-3,0,3,-4,-2,0,3,-4,1,0,3,-4,2,0,3,-4,3,0,3,-4,4,0,3,-4,5,0,3,-3,-2,0,3,-3,1,0,3,-3,2,0,3,-3,3,0,3,-3,4,0,3,-3,5,0,3,-2,-2,0,3,-2,-1,0,3,-2,0,0,3,-2,1,0,3,-2,2,0,3,-2,3,0,3,-2,4,0,3,-2,5,0,3,-4,6,0,3,-4,7,0,3,-3,6,0,3,-3,7,0,3,-2,6,0,3,-2,7,0,3,-1,3,0,3,-1,4,0,3,-1,7,0,3,0,3,0,3,0,4,0,3,0,7,0,3,1,3,0,3,1,4,0,3,1,5,0,3,1,6,0,3,1,7,0,3,2,3,0,3,2,4,0,3,2,5,0,3,2,6,0,3,2,7,0,3,3,3,0,3,3,4,0,3,3,5,0,3,3,6,0,3,3,7,0,3,-1,-4,0,3,-1,-3,0,3,-1,-2,0,3,-1,-1,0,3,-1,0,0,3,0,-4,0,3,0,-3,0,3,0,-2,0,3,0,-1,0,3,0,0,0,3,1,-4,0,3,1,-3,0,3,1,-2,0,3,1,-1,0,3,1,0,0,3,2,-4,0,3,2,-3,0,3,2,-2,0,3,2,-1,0,3,2,0,0,3,3,-4,0,3,3,-3,0,3,3,-2,0,3,3,-1,0,3,3,0,0,3,4,-4,0,3,4,-3,0,3,4,-2,0,3,4,-1,0,3,4,0,0,3,5,-4,0,3,5,-3,0,3,5,-2,0,3,5,-1,0,3,3,1,0,3,3,2,0,3,4,1,0,3,4,2,0,3,4,3,0,3,4,4,0,3,5,2,0,3,5,3,0,3,5,4,0,3,6,2,0,3,6,3,0,3,6,4,0,3,6,-3,0,3,6,-2,0,3,7,-3,0,3,7,-2,0,3,7,1,0,3,7,2,0,3,7,3,0,3,7,4,0,3,8,-3,0,3,8,-2,0,3,8,-1,0,3,8,0,0,3,8,1,0,3,8,2,0,3,8,3,0,3,8,4,0,3],"Middle":[-7,-5,63,1,-7,-4,2,2,-6,-5,63,1,-6,-4,2,2,-5,-5,63,1,-5,-4,2,2,-5,-1,48,1,-5,0,1,2,-4,-5,27,1,-4,-4,3,2,-4,-1,56,1,-4,0,2,2,-3,-6,63,1,-3,-5,2,2,-3,-1,24,1,-3,0,3,2,-2,-6,63,1,-2,-5,2,2,-1,-6,63,1,-1,-5,2,2,-1,1,48,1,-1,2,1,2,-1,5,48,1,-1,6,1,2,0,-6,63,1,0,-5,2,2,0,1,56,1,0,2,2,2,0,5,24,1,0,6,3,2,1,-6,63,1,1,-5,2,2,1,1,56,1,1,2,2,2,2,-6,63,1,2,-5,2,2,2,1,24,1,2,2,3,2,3,-6,63,1,3,-5,2,2,4,-6,63,1,4,-5,2,2,5,-6,63,1,5,-5,2,2,5,0,48,1,5,1,1,2,6,-5,54,1,6,-4,1,2,6,0,26,1,6,1,3,2,7,-5,63,1,7,-4,2,2,7,-1,24,1,7,0,3,2,8,-5,63,1,8,-4,2,2],"Top":[-9,-6,511,1,-9,-5,511,1,-9,-4,511,1,-9,-3,511,1,-9,-2,511,1,-9,-1,511,1,-9,0,511,1,-9,1,511,1,-9,2,511,1,-9,3,511,1,-9,4,511,1,-9,5,511,1,-9,6,511,1,-9,7,511,1,-8,-6,511,1,-8,-5,255,1,-8,-4,219,1,-8,-3,219,1,-8,-2,219,1,-8,-1,219,1,-8,0,219,1,-8,1,219,1,-8,2,219,1,-8,3,219,1,-8,4,219,1,-8,5,219,1,-8,6,507,1,-8,7,511,1,-7,-6,511,1,-7,6,504,1,-7,7,511,1,-6,-6,511,1,-6,6,504,1,-6,7,511,1,-6,8,511,1,-6,9,511,1,-5,-7,511,1,-5,-6,511,1,-5,6,216,1,-5,7,219,1,-5,8,507,1,-5,9,511,1,-4,-7,511,1,-4,-6,255,1,-4,8,504,1,-4,9,511,1,-3,-7,511,1,-3,8,504,1,-3,9,511,1,-2,-7,511,1,-2,8,504,1,-2,9,511,1,-1,-7,511,1,-1,8,504,1,-1,9,511,1,0,-7,511,1,0,8,504,1,0,9,511,1,1,-7,511,1,1,8,504,1,1,9,511,1,2,-7,511,1,2,8,504,1,2,9,511,1,3,-7,511,1,3,8,504,1,3,9,511,1,4,-7,511,1,4,5,432,1,4,6,438,1,4,7,438,1,4,8,510,1,4,9,511,1,5,-7,511,1,5,5,504,1,5,6,511,1,5,7,511,1,5,8,511,1,5,9,511,1,6,-7,511,1,6,-6,447,1,6,-1,176,1,6,5,504,1,6,6,511,1,7,-7,511,1,7,-6,511,1,7,5,504,1,7,6,511,1,8,-6,511,1,8,5,504,1,8,6,511,1,9,-6,511,1,9,-5,447,1,9,-4,438,1,9,-3,438,1,9,-2,438,1,9,-1,438,1,9,0,438,1,9,1,438,1,9,2,438,1,9,3,438,1,9,4,438,1,9,5,510,1,9,6,511,1,10,-6,511,1,10,-5,511,1,10,-4,511,1,10,-3,511,1,10,-2,511,1,10,-1,511,1,10,0,511,1,10,1,511,1,10,2,511,1,10,3,511,1,10,4,511,1,10,5,511,1,10,6,511,1],"CustomFloor1":[-2,-3,1,6,14,-1,-3,1,7,14,-4,2,1,7,14,-3,3,1,8,15,-4,3,1,7,15,-5,3,1,6,15,6,4,1,8,15,5,4,1,7,15,-14,-6,0,24,7,-14,-5,0,24,7,-13,-5,0,24,7,-13,-6,0,25,7,-14,-4,0,24,8,-13,-4,0,24,8,-12,-4,0,24,8,-12,-5,0,24,7,-11,-4,0,24,8,-11,-5,0,24,7,-10,-4,0,24,7,-10,-5,0,24,7,-9,-4,0,24,7,-9,-5,0,25,7,-10,-3,0,24,8,-9,-3,0,24,8,-8,-3,0,24,8,-8,-4,0,24,7,-7,-3,1,0,9,-7,-4,0,24,7,-6,-3,1,1,9,-6,-4,0,24,7,-5,-3,1,2,9,-5,-4,0,25,7,-6,-2,0,24,7,-5,-2,1,2,10,-6,-1,1,1,11,-4,-3,0,24,7,-3,-3,0,25,7,-7,-2,1,0,10,-7,-1,1,0,11,-5,2,1,6,14,4,3,1,6,14,4,4,1,6,15,6,3,1,8,14,5,3,1,7,14],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[3,-4,1,5,5,3,-3,1,5,6,2,-4,1,5,5,2,-3,1,5,6,3,-2,1,10,5,3,-1,1,10,6,-3,4,1,10,5,-3,5,1,10,6,2,4,1,10,5,2,5,1,10,6,0,-1,1,18,12,1,-1,1,19,12,1,-2,1,19,11,0,-2,1,18,11,-6,4,1,18,12,-5,4,1,19,12,-5,3,1,19,11,-6,3,1,18,11,4,2,1,12,13,4,3,1,12,14,-6,-3,1,12,13,-6,-2,1,12,14,6,-3,1,15,13,7,-3,1,16,13,7,-2,1,16,14,6,-2,1,15,14,-1,3,1,15,13,0,3,1,16,13,0,4,1,16,14,-1,4,1,15,14],"CustomMiddle2":[-2,-4,1,14,4,-2,-3,1,14,5,-1,-3,1,15,5,-1,-4,1,15,4,-4,1,1,14,4,-4,2,1,14,5,-3,2,1,15,5,-3,1,1,15,4,7,2,1,13,6,-6,1,1,14,6,-4,-3,1,8,11,-4,7,1,6,11,5,-4,1,6,0,5,-3,1,6,1,-2,-1,1,5,0,-2,0,1,5,1],"CustomTop":[]}
\ No newline at end of file
+{"NavigationVertices":[{"X":138,"Y":-42},{"X":138,"Y":82},{"X":134,"Y":22},{"X":134,"Y":-14},{"X":58,"Y":82},{"X":54,"Y":54},{"X":74,"Y":38},{"X":118,"Y":38},{"X":22,"Y":118},{"X":58,"Y":130},{"X":-58,"Y":130},{"X":-22,"Y":118},{"X":-26,"Y":22},{"X":-26,"Y":-14},{"X":-22,"Y":18},{"X":-22,"Y":54},{"X":54,"Y":18},{"X":74,"Y":2},{"X":22,"Y":82},{"X":-58,"Y":98},{"X":-22,"Y":82},{"X":90,"Y":-42},{"X":90,"Y":-14},{"X":90,"Y":2},{"X":-42,"Y":-42},{"X":118,"Y":22},{"X":-42,"Y":-58},{"X":90,"Y":-58},{"X":-86,"Y":-14},{"X":-106,"Y":-42},{"X":-106,"Y":98},{"X":-86,"Y":22}],"NavigationPolygon":[[0,1,2,3],[4,5,6,7,1],[8,9,10,11],[12,13,14,15],[6,5,16,17],[4,9,8,18,5],[11,10,19,20],[21,0,3,22],[22,23,17,24],[7,25,2,1],[15,5,18,20],[24,26,27,21],[24,21,22],[24,17,16,13],[16,14,13],[24,13,28,29],[30,29,28,31],[19,30,31,12,15,20]],"Floor":[-3,-4,0,3,-2,-4,0,3,-2,-3,0,3,-3,-3,0,3,-7,-3,0,3,-7,-2,0,3,-7,-1,0,3,-7,0,0,3,-7,1,0,3,-7,2,0,3,-7,3,0,3,-7,4,0,3,-7,5,0,3,-6,-3,0,3,-6,-2,0,3,-6,-1,0,3,-6,0,0,3,-6,1,0,3,-6,2,0,3,-6,3,0,3,-6,4,0,3,-6,5,0,3,-5,-3,0,3,-5,-2,0,3,-5,1,0,3,-5,2,0,3,-5,3,0,3,-5,4,0,3,-5,5,0,3,-4,-3,0,3,-4,-2,0,3,-4,1,0,3,-4,2,0,3,-4,3,0,3,-4,4,0,3,-4,5,0,3,-3,-2,0,3,-3,1,0,3,-3,2,0,3,-3,3,0,3,-3,4,0,3,-3,5,0,3,-2,-2,0,3,-2,-1,0,3,-2,0,0,3,-2,1,0,3,-2,2,0,3,-2,3,0,3,-2,4,0,3,-2,5,0,3,-4,6,0,3,-4,7,0,3,-3,6,0,3,-3,7,0,3,-2,6,0,3,-2,7,0,3,-1,3,0,3,-1,4,0,3,-1,7,0,3,0,3,0,3,0,4,0,3,0,7,0,3,1,3,0,3,1,4,0,3,1,5,0,3,1,6,0,3,1,7,0,3,2,3,0,3,2,4,0,3,2,5,0,3,2,6,0,3,2,7,0,3,3,3,0,3,3,4,0,3,3,5,0,3,3,6,0,3,3,7,0,3,-1,-4,0,3,-1,-3,0,3,-1,-2,0,3,-1,-1,0,3,-1,0,0,3,0,-4,0,3,0,-3,0,3,0,-2,0,3,0,-1,0,3,0,0,0,3,1,-4,0,3,1,-3,0,3,1,-2,0,3,1,-1,0,3,1,0,0,3,2,-4,0,3,2,-3,0,3,2,-2,0,3,2,-1,0,3,2,0,0,3,3,-4,0,3,3,-3,0,3,3,-2,0,3,3,-1,0,3,3,0,0,3,4,-4,0,3,4,-3,0,3,4,-2,0,3,4,-1,0,3,4,0,0,3,5,-4,0,3,5,-3,0,3,5,-2,0,3,5,-1,0,3,3,1,0,3,3,2,0,3,4,1,0,3,4,2,0,3,4,3,0,3,4,4,0,3,5,2,0,3,5,3,0,3,5,4,0,3,6,2,0,3,6,3,0,3,6,4,0,3,6,-3,0,3,6,-2,0,3,7,-3,0,3,7,-2,0,3,7,1,0,3,7,2,0,3,7,3,0,3,7,4,0,3,8,-3,0,3,8,-2,0,3,8,-1,0,3,8,0,0,3,8,1,0,3,8,2,0,3,8,3,0,3,8,4,0,3],"Middle":[-7,-5,63,1,-7,-4,2,2,-6,-5,63,1,-6,-4,2,2,-5,-5,63,1,-5,-4,2,2,-5,-1,48,1,-5,0,1,2,-4,-5,27,1,-4,-4,3,2,-4,-1,56,1,-4,0,2,2,-3,-6,63,1,-3,-5,2,2,-3,-1,24,1,-3,0,3,2,-2,-6,63,1,-2,-5,2,2,-1,-6,63,1,-1,-5,2,2,-1,1,48,1,-1,2,1,2,-1,5,48,1,-1,6,1,2,0,-6,63,1,0,-5,2,2,0,1,56,1,0,2,2,2,0,5,24,1,0,6,3,2,1,-6,63,1,1,-5,2,2,1,1,56,1,1,2,2,2,2,-6,63,1,2,-5,2,2,2,1,24,1,2,2,3,2,3,-6,63,1,3,-5,2,2,4,-6,63,1,4,-5,2,2,5,-6,63,1,5,-5,2,2,5,0,48,1,5,1,1,2,6,-5,54,1,6,-4,1,2,6,0,26,1,6,1,3,2,7,-5,63,1,7,-4,2,2,7,-1,24,1,7,0,3,2,8,-5,63,1,8,-4,2,2],"Top":[-9,-6,511,1,-9,-5,511,1,-9,-4,511,1,-9,-3,511,1,-9,-2,511,1,-9,-1,511,1,-9,0,511,1,-9,1,511,1,-9,2,511,1,-9,3,511,1,-9,4,511,1,-9,5,511,1,-9,6,511,1,-9,7,511,1,-8,-6,511,1,-8,-5,255,1,-8,-4,219,1,-8,-3,219,1,-8,-2,219,1,-8,-1,219,1,-8,0,219,1,-8,1,219,1,-8,2,219,1,-8,3,219,1,-8,4,219,1,-8,5,219,1,-8,6,507,1,-8,7,511,1,-7,-6,511,1,-7,6,504,1,-7,7,511,1,-6,-6,511,1,-6,6,504,1,-6,7,511,1,-6,8,511,1,-6,9,511,1,-5,-7,511,1,-5,-6,511,1,-5,6,216,1,-5,7,219,1,-5,8,507,1,-5,9,511,1,-4,-7,511,1,-4,-6,255,1,-4,8,504,1,-4,9,511,1,-3,-7,511,1,-3,8,504,1,-3,9,511,1,-2,-7,511,1,-2,8,504,1,-2,9,511,1,-1,-7,511,1,-1,8,504,1,-1,9,511,1,0,-7,511,1,0,8,504,1,0,9,511,1,1,-7,511,1,1,8,504,1,1,9,511,1,2,-7,511,1,2,8,504,1,2,9,511,1,3,-7,511,1,3,8,504,1,3,9,511,1,4,-7,511,1,4,5,432,1,4,6,438,1,4,7,438,1,4,8,510,1,4,9,511,1,5,-7,511,1,5,5,504,1,5,6,511,1,5,7,511,1,5,8,511,1,5,9,511,1,6,-7,511,1,6,-6,447,1,6,-1,176,1,6,5,504,1,6,6,511,1,7,-7,511,1,7,-6,511,1,7,5,504,1,7,6,511,1,8,-6,511,1,8,5,504,1,8,6,511,1,9,-6,511,1,9,-5,447,1,9,-4,438,1,9,-3,438,1,9,-2,438,1,9,-1,438,1,9,0,438,1,9,1,438,1,9,2,438,1,9,3,438,1,9,4,438,1,9,5,510,1,9,6,511,1,10,-6,511,1,10,-5,511,1,10,-4,511,1,10,-3,511,1,10,-2,511,1,10,-1,511,1,10,0,511,1,10,1,511,1,10,2,511,1,10,3,511,1,10,4,511,1,10,5,511,1,10,6,511,1],"CustomFloor1":[-4,2,1,7,14,-3,3,1,8,15,-4,3,1,7,15,-5,3,1,6,15,6,4,1,8,15,5,4,1,7,15,-14,-6,0,24,7,-14,-5,0,24,7,-13,-5,0,24,7,-13,-6,0,25,7,-14,-4,0,24,8,-13,-4,0,24,8,-12,-4,0,24,8,-12,-5,0,24,7,-11,-4,0,24,8,-11,-5,0,24,7,-10,-4,0,24,7,-10,-5,0,24,7,-9,-4,0,24,7,-9,-5,0,25,7,-10,-3,0,24,8,-9,-3,0,24,8,-5,2,1,6,14,4,3,1,6,14,4,4,1,6,15,6,3,1,8,14,5,3,1,7,14],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[-3,4,1,10,5,-3,5,1,10,6,2,4,1,10,5,2,5,1,10,6],"CustomMiddle2":[5,-4,1,6,0,5,-3,1,6,1,-2,-1,1,5,0,-2,0,1,5,1],"CustomTop":[]}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/RoomInfo.json
index c7f87ac..c75a9d0 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/RoomInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/RoomInfo.json
@@ -1 +1 @@
-{"Position":{"X":-4,"Y":-6},"Size":{"X":9,"Y":10},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":2,"RoomName":"End1","Weight":100,"Remark":""}
\ No newline at end of file
+{"Position":{"X":-4,"Y":-6},"Size":{"X":9,"Y":10},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":4,"RoomName":"End1","Weight":100,"Remark":""}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/RoomInfo.json
index 3434cd9..46ab0bb 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/RoomInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/RoomInfo.json
@@ -1 +1 @@
-{"Position":{"X":-7,"Y":-6},"Size":{"X":11,"Y":12},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":4,"RoomName":"Award1","Weight":100,"Remark":""}
\ No newline at end of file
+{"Position":{"X":-7,"Y":-6},"Size":{"X":11,"Y":12},"DoorAreaInfos":[],"GroupName":"Test1","RoomType":26,"RoomName":"Award1","Weight":100,"Remark":""}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/RoomInfo.json
index a3813cd..083719b 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/RoomInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/RoomInfo.json
@@ -1 +1 @@
-{"Position":{"X":-12,"Y":-8},"Size":{"X":21,"Y":22},"DoorAreaInfos":[{"Direction":3,"Start":48,"End":224},{"Direction":0,"Start":48,"End":208},{"Direction":2,"Start":80,"End":208},{"Direction":1,"Start":48,"End":208}],"GroupName":"Test1","RoomType":32,"RoomName":"Shop1","Weight":100,"Remark":""}
\ No newline at end of file
+{"Position":{"X":-12,"Y":-8},"Size":{"X":21,"Y":22},"DoorAreaInfos":[{"Direction":3,"Start":48,"End":224},{"Direction":0,"Start":48,"End":208},{"Direction":2,"Start":80,"End":208},{"Direction":1,"Start":48,"End":208}],"GroupName":"Test1","RoomType":82,"RoomName":"Shop1","Weight":100,"Remark":""}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0004 .png b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0004 .png
deleted file mode 100644
index d476fc1..0000000
--- a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0004 .png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0004 .png.import b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0004 .png.import
deleted file mode 100644
index 930467a..0000000
--- a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0004 .png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cintp6u83g3wf"
-path="res://.godot/imported/bullet0004 .png-5a9763fc816fc8d74fd567b6735df5da.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/bullet/normal/bullet0004 .png"
-dest_files=["res://.godot/imported/bullet0004 .png-5a9763fc816fc8d74fd567b6735df5da.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0006.png b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0006.png
new file mode 100644
index 0000000..b71a05e
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0006.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0006.png.import b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0006.png.import
new file mode 100644
index 0000000..3aa8d10
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0006.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bn8k07n2y6lmr"
+path="res://.godot/imported/bullet0006.png-7a22d278d8906f52f8fe1d151125dd27.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/bullet/normal/bullet0006.png"
+dest_files=["res://.godot/imported/bullet0006.png-7a22d278d8906f52f8fe1d151125dd27.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010.png
new file mode 100644
index 0000000..e7997d0
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010.png.import
new file mode 100644
index 0000000..a15a246
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://7uvgno67d1aq"
+path="res://.godot/imported/Weapon0010.png-81895ae43c7fb76772f8c51d14f4b78e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/weapon/weapon0010/Weapon0010.png"
+dest_files=["res://.godot/imported/Weapon0010.png-81895ae43c7fb76772f8c51d14f4b78e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010_reloading.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010_reloading.png
new file mode 100644
index 0000000..f4b5ae0
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010_reloading.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010_reloading.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010_reloading.png.import
new file mode 100644
index 0000000..9844f79
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/Weapon0010_reloading.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://drhwb6yaqfocm"
+path="res://.godot/imported/Weapon0010_reloading.png-992da254579c65f8c0e81d226fb3f4c6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/weapon/weapon0010/Weapon0010_reloading.png"
+dest_files=["res://.godot/imported/Weapon0010_reloading.png-992da254579c65f8c0e81d226fb3f4c6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20.png
deleted file mode 100644
index 6b2d15e..0000000
--- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20.png.import
deleted file mode 100644
index ab753af..0000000
--- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://b2266sb3sbd5y"
-path="res://.godot/imported/scar-20.png-a4a07689e2e3b62ecb927ac42c9a9da5.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/weapon/weapon0010/scar-20.png"
-dest_files=["res://.godot/imported/scar-20.png-a4a07689e2e3b62ecb927ac42c9a9da5.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20_reloading.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20_reloading.png
deleted file mode 100644
index 2d6c43d..0000000
--- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20_reloading.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20_reloading.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20_reloading.png.import
deleted file mode 100644
index a0be66b..0000000
--- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0010/scar-20_reloading.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://c5krnv4dpvpbb"
-path="res://.godot/imported/scar-20_reloading.png-3742dafeecbf78acc177719c43b08eb0.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/weapon/weapon0010/scar-20_reloading.png"
-dest_files=["res://.godot/imported/scar-20_reloading.png-3742dafeecbf78acc177719c43b08eb0.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0006.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0006.tres
new file mode 100644
index 0000000..4e845c6
--- /dev/null
+++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0006.tres
@@ -0,0 +1,14 @@
+[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://dx4t45bq8ehhq"]
+
+[ext_resource type="Texture2D" uid="uid://bn8k07n2y6lmr" path="res://resource/sprite/bullet/normal/bullet0006.png" id="1_xjtjd"]
+
+[resource]
+animations = [{
+"frames": [{
+"duration": 1.0,
+"texture": ExtResource("1_xjtjd")
+}],
+"loop": true,
+"name": &"default",
+"speed": 5.0
+}]
diff --git a/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0010.tres b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0010.tres
new file mode 100644
index 0000000..fd083c4
--- /dev/null
+++ b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0010.tres
@@ -0,0 +1,97 @@
+[gd_resource type="SpriteFrames" load_steps=14 format=3 uid="uid://cd7fhaqk587o2"]
+
+[ext_resource type="Texture2D" uid="uid://7uvgno67d1aq" path="res://resource/sprite/weapon/weapon0010/Weapon0010.png" id="1_4kjnn"]
+[ext_resource type="Texture2D" uid="uid://drhwb6yaqfocm" path="res://resource/sprite/weapon/weapon0010/Weapon0010_reloading.png" id="2_rwx4o"]
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_0dydo"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(0, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_dfwtc"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(37, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_gak18"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(74, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_rv7be"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(111, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_5t03e"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(148, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_lyx3v"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(185, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_gpgko"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(222, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_vovwl"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(259, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_2eogh"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(296, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_ushsg"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(333, 0, 37, 17)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_a4yk5"]
+atlas = ExtResource("2_rwx4o")
+region = Rect2(370, 0, 37, 17)
+
+[resource]
+animations = [{
+"frames": [{
+"duration": 1.0,
+"texture": ExtResource("1_4kjnn")
+}],
+"loop": true,
+"name": &"default",
+"speed": 5.0
+}, {
+"frames": [{
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_0dydo")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_dfwtc")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_gak18")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_rv7be")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_5t03e")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_lyx3v")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_gpgko")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_vovwl")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_2eogh")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_ushsg")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_a4yk5")
+}],
+"loop": false,
+"name": &"reloading_frame",
+"speed": 5.0
+}]
diff --git a/DungeonShooting_Godot/src/config/ExcelConfig.cs b/DungeonShooting_Godot/src/config/ExcelConfig.cs
index bf3c620..0f3fe56 100644
--- a/DungeonShooting_Godot/src/config/ExcelConfig.cs
+++ b/DungeonShooting_Godot/src/config/ExcelConfig.cs
@@ -340,11 +340,6 @@
}
}
- if (!string.IsNullOrEmpty(item.__AiUseAttribute))
- {
- item.AiUseAttribute = WeaponBase_Map[item.__AiUseAttribute];
- }
-
if (!string.IsNullOrEmpty(item.__AiAttackAttr))
{
item.AiAttackAttr = AiAttackAttr_Map[item.__AiAttackAttr];
diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_ActivityBase.cs b/DungeonShooting_Godot/src/config/ExcelConfig_ActivityBase.cs
index 421c3e4..894ac82 100644
--- a/DungeonShooting_Godot/src/config/ExcelConfig_ActivityBase.cs
+++ b/DungeonShooting_Godot/src/config/ExcelConfig_ActivityBase.cs
@@ -48,6 +48,12 @@
public ActivityQuality Quality;
///
+ /// 商店售价
+ ///
+ [JsonInclude]
+ public uint Price;
+
+ ///
/// 物体简介
/// 一句对物体简短的介绍, 比如拾起物体时弹出的描述
///
@@ -102,6 +108,7 @@
inst.Type = Type;
inst.Name = Name;
inst.Quality = Quality;
+ inst.Price = Price;
inst.Intro = Intro;
inst.Details = Details;
inst.IsStatic = IsStatic;
diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs
index e3de8cf..1f6e85d 100644
--- a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs
+++ b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs
@@ -368,13 +368,6 @@
public Dictionary OtherSoundMap;
///
- /// Ai属性
- /// Ai 使用该武器时的武器数据, 设置该字段, 可让同一把武器在敌人和玩家手上有不同属性
- /// 如果不填则Ai和玩家使用同一种属性
- ///
- public WeaponBase AiUseAttribute;
-
- ///
/// Ai使用该武器开火时的一些额外配置属性
/// 玩家使用的武器不需要填写该字段
///
@@ -446,7 +439,6 @@
inst.BeLoadedSound = BeLoadedSound;
inst.BeLoadedSoundDelayTime = BeLoadedSoundDelayTime;
inst.OtherSoundMap = OtherSoundMap;
- inst.AiUseAttribute = AiUseAttribute;
inst.AiAttackAttr = AiAttackAttr;
return inst;
}
@@ -481,9 +473,6 @@
public Dictionary __OtherSoundMap;
[JsonInclude]
- public string __AiUseAttribute;
-
- [JsonInclude]
public string __AiAttackAttr;
}
diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs
index 79056c5..5b4672b 100644
--- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs
+++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs
@@ -69,6 +69,11 @@
///
public const string Id_weapon0009 = "weapon0009";
///
+ /// 名称: weapon0010
+ /// 简介:
+ ///
+ public const string Id_weapon0010 = "weapon0010";
+ ///
/// 名称:
/// 简介:
///
@@ -94,6 +99,11 @@
///
public const string Id_bullet0005 = "bullet0005";
///
+ /// 名称: 拖尾子弹
+ /// 简介:
+ ///
+ public const string Id_bullet0006 = "bullet0006";
+ ///
/// 名称:
/// 简介:
///
diff --git a/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs b/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs
index de08f5b..0558ef3 100644
--- a/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs
+++ b/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs
@@ -45,7 +45,6 @@
//开启的协程
private List _coroutineList;
private float _pixelScale;
- private float _speed = 2000;
private Tween _tween;
private bool _init = false;
@@ -112,7 +111,7 @@
}
//激光飞行时间
- var time = distance / _speed;
+ var time = distance / data.FlySpeed;
_tween = CreateTween();
_tween.SetParallel();
diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/TrailBullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/TrailBullet.cs
new file mode 100644
index 0000000..a617deb
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/TrailBullet.cs
@@ -0,0 +1,44 @@
+
+using System.Collections.Generic;
+using Godot;
+
+[Tool]
+public partial class TrailBullet : Bullet
+{
+ [Export, ExportFillNode]
+ public Line2D Trail { get; set; }
+
+ private int _pointCount = 30;
+ private readonly List points = new List();
+
+ protected override void Process(float delta)
+ {
+ base.Process(delta);
+
+ if (points.Count < _pointCount)
+ {
+ points.Add(AnimatedSprite.GlobalPosition);
+ }
+ else
+ {
+ points.RemoveAt(0);
+ points.Add(AnimatedSprite.GlobalPosition);
+ }
+
+ var tempPos = new Vector2[points.Count];
+ tempPos[points.Count - 1] = Vector2.Zero;
+ for (var i = points.Count - 2; i >= 0; i--)
+ {
+ tempPos[i] = AnimatedSprite.ToLocal(points[i]);
+ }
+ //更新line2d点坐标
+ Trail.Points = tempPos;
+ }
+
+ public override void OnLeavePool()
+ {
+ base.OnLeavePool();
+ points.Clear();
+ Trail.Points = new Vector2[0];
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs
index 34008d9..26be02e 100644
--- a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs
+++ b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs
@@ -307,12 +307,13 @@
{
_playerWeaponAttribute = attribute;
SetCurrentWeaponAttribute(attribute);
- if (attribute.AiUseAttribute != null)
+ if (ExcelConfig.WeaponBase_Map.TryGetValue(attribute.Id + "_ai", out var aiAttr))
{
- _aiWeaponAttribute = attribute.AiUseAttribute;
+ _aiWeaponAttribute = aiAttr;
}
else
{
+ Debug.LogError("警告: 未找到 AI 武器属性: " + attribute.Id);
_aiWeaponAttribute = attribute;
}
diff --git a/DungeonShooting_Godot/src/game/manager/FireManager.cs b/DungeonShooting_Godot/src/game/manager/FireManager.cs
index 65e7fa8..375765e 100644
--- a/DungeonShooting_Godot/src/game/manager/FireManager.cs
+++ b/DungeonShooting_Godot/src/game/manager/FireManager.cs
@@ -272,6 +272,7 @@
BounceCount = Utils.Random.RandomConfigRange(bullet.BounceCount),
LifeTime = Utils.Random.RandomConfigRange(bullet.LifeTimeRange),
Position = weapon.FirePoint.GlobalPosition,
+ FlySpeed = Utils.Random.RandomConfigRange(bullet.SpeedRange),
};
var deviationAngle = Utils.Random.RandomConfigRange(bullet.DeviationAngleRange);
diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
index 2e45225..6aecf16 100644
--- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
+++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
@@ -20,11 +20,13 @@
public const string prefab_Cursor_tscn = "res://prefab/Cursor.tscn";
public const string prefab_bullet_explode_Explode0001_tscn = "res://prefab/bullet/explode/Explode0001.tscn";
public const string prefab_bullet_laser_Laser0001_tscn = "res://prefab/bullet/laser/Laser0001.tscn";
+ public const string prefab_bullet_laser_Laser0002_tscn = "res://prefab/bullet/laser/Laser0002.tscn";
public const string prefab_bullet_normal_Bullet0001_tscn = "res://prefab/bullet/normal/Bullet0001.tscn";
public const string prefab_bullet_normal_Bullet0002_tscn = "res://prefab/bullet/normal/Bullet0002.tscn";
public const string prefab_bullet_normal_Bullet0003_tscn = "res://prefab/bullet/normal/Bullet0003.tscn";
public const string prefab_bullet_normal_Bullet0004_tscn = "res://prefab/bullet/normal/Bullet0004.tscn";
public const string prefab_bullet_normal_Bullet0005_tscn = "res://prefab/bullet/normal/Bullet0005.tscn";
+ public const string prefab_bullet_normal_Bullet0006_tscn = "res://prefab/bullet/normal/Bullet0006.tscn";
public const string prefab_effect_Blood_tscn = "res://prefab/effect/Blood.tscn";
public const string prefab_effect_bullet_BulletDisappear0001_tscn = "res://prefab/effect/bullet/BulletDisappear0001.tscn";
public const string prefab_effect_bullet_BulletDisappear0002_tscn = "res://prefab/effect/bullet/BulletDisappear0002.tscn";
@@ -114,6 +116,7 @@
public const string prefab_weapon_Weapon0007_tscn = "res://prefab/weapon/Weapon0007.tscn";
public const string prefab_weapon_Weapon0008_tscn = "res://prefab/weapon/Weapon0008.tscn";
public const string prefab_weapon_Weapon0009_tscn = "res://prefab/weapon/Weapon0009.tscn";
+ public const string prefab_weapon_Weapon0010_tscn = "res://prefab/weapon/Weapon0010.tscn";
public const string prefab_weapon_WeaponTemplate_tscn = "res://prefab/weapon/WeaponTemplate.tscn";
public const string resource_config_ActivityBase_json = "res://resource/config/ActivityBase.json";
public const string resource_config_ActivityMaterial_json = "res://resource/config/ActivityMaterial.json";
@@ -204,7 +207,6 @@
public const string resource_sound_sfx_shooting_Shooting0009_ogg = "res://resource/sound/sfx/shooting/Shooting0009.ogg";
public const string resource_sound_sfx_shooting_Shooting0010_ogg = "res://resource/sound/sfx/shooting/Shooting0010.ogg";
public const string resource_sound_sfx_shooting_Shooting0011_ogg = "res://resource/sound/sfx/shooting/Shooting0011.ogg";
- public const string resource_sprite_1234_txt = "res://resource/sprite/1234.txt";
public const string resource_sprite_brush_Brush1_png = "res://resource/sprite/brush/Brush1.png";
public const string resource_sprite_brush_Brush2_png = "res://resource/sprite/brush/Brush2.png";
public const string resource_sprite_brush_Brush3_png = "res://resource/sprite/brush/Brush3.png";
@@ -219,6 +221,7 @@
public const string resource_sprite_bullet_normal_bullet0003_png = "res://resource/sprite/bullet/normal/bullet0003.png";
public const string resource_sprite_bullet_normal_bullet0004_png = "res://resource/sprite/bullet/normal/bullet0004.png";
public const string resource_sprite_bullet_normal_bullet0005_png = "res://resource/sprite/bullet/normal/bullet0005.png";
+ public const string resource_sprite_bullet_normal_bullet0006_png = "res://resource/sprite/bullet/normal/bullet0006.png";
public const string resource_sprite_bullet_normal_bullet2_png = "res://resource/sprite/bullet/normal/bullet2.png";
public const string resource_sprite_common_Circle_png = "res://resource/sprite/common/Circle.png";
public const string resource_sprite_common_Circle2_png = "res://resource/sprite/common/Circle2.png";
@@ -252,6 +255,7 @@
public const string resource_sprite_map_WallTransition3_png = "res://resource/sprite/map/WallTransition3.png";
public const string resource_sprite_prop_active_ActiveProp5000_png = "res://resource/sprite/prop/active/ActiveProp5000.png";
public const string resource_sprite_prop_active_ActiveProp5001_png = "res://resource/sprite/prop/active/ActiveProp5001.png";
+ public const string resource_sprite_prop_buff_BuffProp0001export_png = "res://resource/sprite/prop/buff/BuffProp0001-export.png";
public const string resource_sprite_prop_buff_BuffProp0001_png = "res://resource/sprite/prop/buff/BuffProp0001.png";
public const string resource_sprite_prop_buff_BuffProp0002_png = "res://resource/sprite/prop/buff/BuffProp0002.png";
public const string resource_sprite_prop_buff_BuffProp0003_png = "res://resource/sprite/prop/buff/BuffProp0003.png";
@@ -274,6 +278,7 @@
public const string resource_sprite_role_role7_png = "res://resource/sprite/role/role7.png";
public const string resource_sprite_role_role8_png = "res://resource/sprite/role/role8.png";
public const string resource_sprite_role_role9_png = "res://resource/sprite/role/role9.png";
+ public const string resource_sprite_role_scarecrow0001_png = "res://resource/sprite/role/scarecrow0001.png";
public const string resource_sprite_role_common_Role_astonished_png = "res://resource/sprite/role/common/Role_astonished.png";
public const string resource_sprite_role_common_Role_notify_png = "res://resource/sprite/role/common/Role_notify.png";
public const string resource_sprite_role_common_Role_query_png = "res://resource/sprite/role/common/Role_query.png";
@@ -382,15 +387,6 @@
public const string resource_sprite_ui_sursors_CursorCenter_png = "res://resource/sprite/ui/sursors/CursorCenter.png";
public const string resource_sprite_ui_sursors_Cursors_png = "res://resource/sprite/ui/sursors/Cursors.png";
public const string resource_sprite_ui_sursors_Cursors_Ui_png = "res://resource/sprite/ui/sursors/Cursors_Ui.png";
- public const string resource_sprite_weapon_bow_png = "res://resource/sprite/weapon/bow.png";
- public const string resource_sprite_weapon_gun1_png = "res://resource/sprite/weapon/gun1.png";
- public const string resource_sprite_weapon_gun2_png = "res://resource/sprite/weapon/gun2.png";
- public const string resource_sprite_weapon_gun3_png = "res://resource/sprite/weapon/gun3.png";
- public const string resource_sprite_weapon_gun4_png = "res://resource/sprite/weapon/gun4.png";
- public const string resource_sprite_weapon_gun5_png = "res://resource/sprite/weapon/gun5.png";
- public const string resource_sprite_weapon_gun6_png = "res://resource/sprite/weapon/gun6.png";
- public const string resource_sprite_weapon_gun7_png = "res://resource/sprite/weapon/gun7.png";
- public const string resource_sprite_weapon_gun8_png = "res://resource/sprite/weapon/gun8.png";
public const string resource_sprite_weapon_weapon0001_Weapon0001_png = "res://resource/sprite/weapon/weapon0001/Weapon0001.png";
public const string resource_sprite_weapon_weapon0002_Weapon0002_png = "res://resource/sprite/weapon/weapon0002/Weapon0002.png";
public const string resource_sprite_weapon_weapon0002_Weapon0002_reloading_png = "res://resource/sprite/weapon/weapon0002/Weapon0002_reloading.png";
@@ -404,11 +400,25 @@
public const string resource_sprite_weapon_weapon0008_Weapon0008_reloading_png = "res://resource/sprite/weapon/weapon0008/Weapon0008_reloading.png";
public const string resource_sprite_weapon_weapon0009_weapon0009_png = "res://resource/sprite/weapon/weapon0009/weapon0009.png";
public const string resource_sprite_weapon_weapon0009_Weapon0009_reload_png = "res://resource/sprite/weapon/weapon0009/Weapon0009_reload.png";
+ public const string resource_sprite_weapon_weapon0010_Weapon0010_png = "res://resource/sprite/weapon/weapon0010/Weapon0010.png";
+ public const string resource_sprite_weapon_weapon0010_Weapon0010_reloading_png = "res://resource/sprite/weapon/weapon0010/Weapon0010_reloading.png";
+ public const string resource_sprite_weapon_weapon0011_gun10_png = "res://resource/sprite/weapon/weapon0011/gun10.png";
+ public const string resource_sprite_weapon_weapon0012_bow_png = "res://resource/sprite/weapon/weapon0012/bow.png";
+ public const string resource_sprite_weapon_weapon0013_weapon0013_png = "res://resource/sprite/weapon/weapon0013/weapon0013.png";
+ public const string resource_sprite_weapon_weapon0013_weapon0014export_png = "res://resource/sprite/weapon/weapon0013/weapon0014-export.png";
+ public const string resource_sprite_weapon_weapon0013_weapon0014_png = "res://resource/sprite/weapon/weapon0013/weapon0014.png";
+ public const string resource_sprite_weapon_weapon0015_gun3_png = "res://resource/sprite/weapon/weapon0015/gun3.png";
+ public const string resource_sprite_weapon_weapon0016_gun4_png = "res://resource/sprite/weapon/weapon0016/gun4.png";
+ public const string resource_sprite_weapon_weapon0017_gun5_png = "res://resource/sprite/weapon/weapon0017/gun5.png";
+ public const string resource_sprite_weapon_weapon0018_gun6_png = "res://resource/sprite/weapon/weapon0018/gun6.png";
+ public const string resource_sprite_weapon_weapon0019_gun7_png = "res://resource/sprite/weapon/weapon0019/gun7.png";
+ public const string resource_sprite_weapon_weapon0020_gun8_png = "res://resource/sprite/weapon/weapon0020/gun8.png";
public const string resource_spriteFrames_bullet_Bullet0001_tres = "res://resource/spriteFrames/bullet/Bullet0001.tres";
public const string resource_spriteFrames_bullet_Bullet0002_tres = "res://resource/spriteFrames/bullet/Bullet0002.tres";
public const string resource_spriteFrames_bullet_Bullet0003_tres = "res://resource/spriteFrames/bullet/Bullet0003.tres";
public const string resource_spriteFrames_bullet_Bullet0004_tres = "res://resource/spriteFrames/bullet/Bullet0004.tres";
public const string resource_spriteFrames_bullet_Bullet0005_tres = "res://resource/spriteFrames/bullet/Bullet0005.tres";
+ public const string resource_spriteFrames_bullet_Bullet0006_tres = "res://resource/spriteFrames/bullet/Bullet0006.tres";
public const string resource_spriteFrames_bullet_Collision0001_tres = "res://resource/spriteFrames/bullet/Collision0001.tres";
public const string resource_spriteFrames_bullet_Collision0002_tres = "res://resource/spriteFrames/bullet/Collision0002.tres";
public const string resource_spriteFrames_other_RoomDoor_E_Down_tres = "res://resource/spriteFrames/other/RoomDoor_E_Down.tres";
@@ -451,6 +461,7 @@
public const string resource_spriteFrames_weapon_Weapon0007_tres = "res://resource/spriteFrames/weapon/Weapon0007.tres";
public const string resource_spriteFrames_weapon_Weapon0008_tres = "res://resource/spriteFrames/weapon/Weapon0008.tres";
public const string resource_spriteFrames_weapon_Weapon0009_tres = "res://resource/spriteFrames/weapon/Weapon0009.tres";
+ public const string resource_spriteFrames_weapon_Weapon0010_tres = "res://resource/spriteFrames/weapon/Weapon0010.tres";
public const string resource_theme_mainTheme_tres = "res://resource/theme/mainTheme.tres";
public const string resource_theme_theme1_tres = "res://resource/theme/theme1.tres";
public const string scene_Main_tscn = "res://scene/Main.tscn";