diff --git a/.gitignore b/.gitignore index 796f2c4..7227cb3 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ /DungeonShooting_ExcelTool/bin /DungeonShooting_Godot/DungeonShooting.sln.DotSettings.user /DungeonShooting_Godot/.VSCodeCounter +**/*.txt diff --git a/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ResourcePathGenerator.cs b/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ResourcePathGenerator.cs index c824d0f..e0e6599 100644 --- a/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ResourcePathGenerator.cs +++ b/DungeonShooting_Godot/addons/dungeonShooting_plugin/generator/ResourcePathGenerator.cs @@ -40,12 +40,12 @@ ".git", ".import", ".mono", + ".VSCodeCounter", "android", "addons", ".godot", ".vs", - "resource/map/tiledata", - "resource/map/tileMaps" + "resource/map" }; private static string resultStr = ""; diff --git a/DungeonShooting_Godot/excel/ActivityBase.xlsx b/DungeonShooting_Godot/excel/ActivityBase.xlsx index e6240ec..a839ad2 100644 --- a/DungeonShooting_Godot/excel/ActivityBase.xlsx +++ b/DungeonShooting_Godot/excel/ActivityBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/AiAttackAttr.xlsx b/DungeonShooting_Godot/excel/AiAttackAttr.xlsx index 8d3cdf5..937aafc 100644 --- a/DungeonShooting_Godot/excel/AiAttackAttr.xlsx +++ b/DungeonShooting_Godot/excel/AiAttackAttr.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/BulletBase.xlsx b/DungeonShooting_Godot/excel/BulletBase.xlsx index 6ee6491..e3f1e11 100644 --- a/DungeonShooting_Godot/excel/BulletBase.xlsx +++ b/DungeonShooting_Godot/excel/BulletBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/EnemyBase.xlsx b/DungeonShooting_Godot/excel/EnemyBase.xlsx index cec7fac..e54451e 100644 --- a/DungeonShooting_Godot/excel/EnemyBase.xlsx +++ b/DungeonShooting_Godot/excel/EnemyBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/Sound.xlsx b/DungeonShooting_Godot/excel/Sound.xlsx index ff7944e..47c6585 100644 --- a/DungeonShooting_Godot/excel/Sound.xlsx +++ b/DungeonShooting_Godot/excel/Sound.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/WeaponBase.xlsx b/DungeonShooting_Godot/excel/WeaponBase.xlsx index e3c81e8..d4ad41a 100644 --- a/DungeonShooting_Godot/excel/WeaponBase.xlsx +++ b/DungeonShooting_Godot/excel/WeaponBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excelTool/ExcelGenerator.cs b/DungeonShooting_Godot/excelTool/ExcelGenerator.cs index 0268b2a..c206007 100644 --- a/DungeonShooting_Godot/excelTool/ExcelGenerator.cs +++ b/DungeonShooting_Godot/excelTool/ExcelGenerator.cs @@ -524,7 +524,20 @@ var cellStringValue = GetCellStringValue(cell); if (cellStringValue.Length == 0) { - data.Add(field, null); + if (mappingData.TypeStr == nameof(ActivityQuality)) + { + ActivityQuality v = default; + data.Add(field, v); + } + else if (mappingData.TypeStr == nameof(ActivityType)) + { + ActivityType v = default; + data.Add(field, v); + } + else + { + data.Add(field, null); + } } else { @@ -691,6 +704,8 @@ case "vector2": return "SerializeVector2"; case "vector3": return "SerializeVector3"; case "color": return "SerializeColor"; + case "activityType": return "ActivityType"; + case "activityQuality": return "ActivityQuality"; } return typeName; @@ -716,6 +731,8 @@ case "vector2": return "SerializeVector2"; case "vector3": return "SerializeVector3"; case "color": return "SerializeColor"; + case "activityType": return "ActivityType"; + case "activityQuality": return "ActivityQuality"; } return typeName; diff --git a/DungeonShooting_Godot/excelTool/serialize/ActivityQuality.cs b/DungeonShooting_Godot/excelTool/serialize/ActivityQuality.cs new file mode 100644 index 0000000..9d5641d --- /dev/null +++ b/DungeonShooting_Godot/excelTool/serialize/ActivityQuality.cs @@ -0,0 +1,39 @@ + +/// +/// 物体品质 +/// +public enum ActivityQuality +{ + /// + /// 未设置 + /// + None = 0, + /// + /// 通用物品 + /// + Common = 1, + /// + /// 基础 + /// + Basic = 2, + /// + /// 普通 + /// + Ordinary = 3, + /// + /// 稀有 + /// + Rare = 4, + /// + /// 史诗 + /// + Epic = 5, + /// + /// 传说 + /// + Legend = 6, + /// + /// 独一无二 + /// + Unique = 7 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/excelTool/serialize/ActivityType.cs b/DungeonShooting_Godot/excelTool/serialize/ActivityType.cs new file mode 100644 index 0000000..d094992 --- /dev/null +++ b/DungeonShooting_Godot/excelTool/serialize/ActivityType.cs @@ -0,0 +1,55 @@ + +/// +/// 物体类型 +/// +public enum ActivityType +{ + /// + /// 无类型 + /// + None, + /// + /// 玩家 + /// + Player, + /// + /// 测试对象 + /// + Test, + /// + /// 角色 + /// + Role, + /// + /// 敌人 + /// + Enemy, + /// + /// 武器 + /// + Weapon, + /// + /// 子弹 + /// + Bullet, + /// + /// 弹壳 + /// + Shell, + /// + /// 特效 + /// + Effect, + /// + /// 道具 + /// + Prop, + /// + /// 宝箱 + /// + Treasure, + /// + /// 其它类型 + /// + Other = 99, +} \ No newline at end of file diff --git a/DungeonShooting_Godot/excelTool/version b/DungeonShooting_Godot/excelTool/version index 56a6051..bf0d87a 100644 --- a/DungeonShooting_Godot/excelTool/version +++ b/DungeonShooting_Godot/excelTool/version @@ -1 +1 @@ -1 \ No newline at end of file +4 \ No newline at end of file diff --git a/DungeonShooting_Godot/prefab/box/TreasureBox0001.tscn b/DungeonShooting_Godot/prefab/box/TreasureBox0001.tscn new file mode 100644 index 0000000..804110c --- /dev/null +++ b/DungeonShooting_Godot/prefab/box/TreasureBox0001.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=12 format=3 uid="uid://d2gj0yuup0gdb"] + +[ext_resource type="Script" path="res://src/game/activity/box/TreasureBox.cs" id="1_wxils"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_l4sas"] +[ext_resource type="Texture2D" uid="uid://dladvmgql1pwe" path="res://resource/sprite/box/TreasureBox0001.png" id="3_eed5t"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1v1is"] +resource_local_to_scene = true +shader = ExtResource("2_l4sas") +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_lewo8"] +resource_local_to_scene = true +shader = ExtResource("2_l4sas") +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="AtlasTexture" id="AtlasTexture_hserg"] +atlas = ExtResource("3_eed5t") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8d3br"] +atlas = ExtResource("3_eed5t") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fp844"] +atlas = ExtResource("3_eed5t") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_151ky"] +atlas = ExtResource("3_eed5t") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="SpriteFrames" id="SpriteFrames_e74dc"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_hserg") +}], +"loop": false, +"name": &"default", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_8d3br") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fp844") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_151ky") +}], +"loop": false, +"name": &"open", +"speed": 8.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_j3yup"] +size = Vector2(26, 11) + +[node name="TreasureBox0001" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 516 +script = ExtResource("1_wxils") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_1v1is") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_lewo8") +position = Vector2(0, -11) +sprite_frames = SubResource("SpriteFrames_e74dc") +animation = &"open" + +[node name="Collision" type="CollisionShape2D" parent="."] +position = Vector2(0, -1.5) +shape = SubResource("RectangleShape2D_j3yup") diff --git a/DungeonShooting_Godot/prefab/bullet/explode/Explode0001.tscn b/DungeonShooting_Godot/prefab/bullet/explode/Explode0001.tscn index fad5129..bd7ca13 100644 --- a/DungeonShooting_Godot/prefab/bullet/explode/Explode0001.tscn +++ b/DungeonShooting_Godot/prefab/bullet/explode/Explode0001.tscn @@ -307,6 +307,7 @@ modulate = Color(1.3, 1.3, 1.3, 1) z_index = 1 collision_layer = 0 +collision_mask = 0 monitorable = false script = ExtResource("1_qn5pu") diff --git a/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn b/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn index 9189dc9..04de455 100644 --- a/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn +++ b/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn @@ -8,6 +8,7 @@ [node name="Laser0001" type="Area2D" node_paths=PackedStringArray("Particles2D")] collision_layer = 2 +collision_mask = 0 monitorable = false script = ExtResource("1_3w0rp") Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/bullet/laser/Laser0002.tscn b/DungeonShooting_Godot/prefab/bullet/laser/Laser0002.tscn new file mode 100644 index 0000000..c989324 --- /dev/null +++ b/DungeonShooting_Godot/prefab/bullet/laser/Laser0002.tscn @@ -0,0 +1,24 @@ +[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 +collision_mask = 0 +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..e1ddde3 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,22 +28,12 @@ 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) [node name="Bullet0001" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 2 +collision_mask = 0 script = ExtResource("1_3d3df") CollisionArea = NodePath("AnimatedSprite/CollisionArea") CollisionShape2D = NodePath("AnimatedSprite/CollisionArea/CollisionShape2D") @@ -59,7 +49,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/Bullet0002.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0002.tscn index ecabf2f..4441bc7 100644 --- a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0002.tscn +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0002.tscn @@ -36,6 +36,7 @@ [node name="Bullet0002" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 2 +collision_mask = 0 script = ExtResource("1_hepay") CollisionArea = NodePath("AnimatedSprite/CollisionArea") CollisionShape2D = NodePath("AnimatedSprite/CollisionArea/CollisionShape2D") diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0003.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0003.tscn index b87d8e0..88082d7 100644 --- a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0003.tscn +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0003.tscn @@ -33,6 +33,7 @@ [node name="Bullet0003" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 2 +collision_mask = 0 script = ExtResource("1_h6lfm") CollisionArea = NodePath("AnimatedSprite/CollisionArea") CollisionShape2D = NodePath("AnimatedSprite/CollisionArea/CollisionShape2D") diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn index 3c96ac3..57e55ab 100644 --- a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn @@ -62,6 +62,7 @@ [node name="Bullet0003" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 2 +collision_mask = 0 script = ExtResource("1_1jbgr") CollisionArea = NodePath("AnimatedSprite/CollisionArea") CollisionShape2D = NodePath("AnimatedSprite/CollisionArea/CollisionShape2D") diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn index 3203560..a6a0493 100644 --- a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn @@ -62,6 +62,8 @@ [node name="Bullet0005" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 2 +collision_mask = 0 +platform_wall_layers = 512 script = ExtResource("1_13wdl") BrushId = "0004" EffectiveAltitude = 1.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..9e58d27 --- /dev/null +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0006.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=8 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="CircleShape2D" id="CircleShape2D_4mw2b"] +radius = 3.0 + +[sub_resource type="CircleShape2D" id="CircleShape2D_vqdkp"] +radius = 3.0 + +[node name="Bullet0006" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 2 +collision_mask = 0 +script = ExtResource("1_b8pov") +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="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/bullet/normal/Bullet0007.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0007.tscn new file mode 100644 index 0000000..4dfced6 --- /dev/null +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0007.tscn @@ -0,0 +1,67 @@ +[gd_scene load_steps=8 format=3 uid="uid://cybey66bhe4ro"] + +[ext_resource type="Script" path="res://src/game/activity/bullet/normal/Bullet.cs" id="1_h4tn7"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_fgeyt"] +[ext_resource type="SpriteFrames" uid="uid://bkwoy70bnm74k" path="res://resource/spriteFrames/bullet/Bullet0007.tres" id="3_c1ec6"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_v77gw"] +resource_local_to_scene = true +shader = ExtResource("2_fgeyt") +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_r6pkp"] +resource_local_to_scene = true +shader = ExtResource("2_fgeyt") +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="CircleShape2D" id="CircleShape2D_0vxfv"] +radius = 2.0 + +[sub_resource type="CircleShape2D" id="CircleShape2D_e2yn3"] +radius = 2.0 + +[node name="Bullet0007" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 2 +collision_mask = 0 +script = ExtResource("1_h4tn7") +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_v77gw") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +modulate = Color(2, 2, 2, 1) +material = SubResource("ShaderMaterial_r6pkp") +sprite_frames = ExtResource("3_c1ec6") + +[node name="CollisionArea" type="Area2D" parent="AnimatedSprite"] +collision_layer = 0 +collision_mask = 0 +monitorable = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimatedSprite/CollisionArea"] +position = Vector2(-2.38419e-07, 0) +shape = SubResource("CircleShape2D_0vxfv") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_e2yn3") diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0008.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0008.tscn new file mode 100644 index 0000000..838ada7 --- /dev/null +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0008.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=8 format=3 uid="uid://d3dcmte122p6t"] + +[ext_resource type="Script" path="res://src/game/activity/bullet/normal/ColorBullet.cs" id="1_qqm5l"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_t3qw6"] +[ext_resource type="SpriteFrames" uid="uid://ubdvau75andr" path="res://resource/spriteFrames/bullet/Bullet0008.tres" id="3_aoni0"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_v77gw"] +resource_local_to_scene = true +shader = ExtResource("2_t3qw6") +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_jypdq"] +resource_local_to_scene = true +shader = ExtResource("2_t3qw6") +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="RectangleShape2D" id="RectangleShape2D_5x14b"] +size = Vector2(22, 3) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_72d75"] +size = Vector2(22, 3) + +[node name="Bullet0008" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 2 +collision_mask = 0 +script = ExtResource("1_qqm5l") +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_v77gw") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +modulate = Color(1.6, 1.6, 1.6, 1) +material = SubResource("ShaderMaterial_jypdq") +sprite_frames = ExtResource("3_aoni0") + +[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("RectangleShape2D_5x14b") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_72d75") diff --git a/DungeonShooting_Godot/prefab/currency/Gold1.tscn b/DungeonShooting_Godot/prefab/currency/Gold1.tscn new file mode 100644 index 0000000..5db5a1c --- /dev/null +++ b/DungeonShooting_Godot/prefab/currency/Gold1.tscn @@ -0,0 +1,160 @@ +[gd_scene load_steps=24 format=3 uid="uid://bayga6rue4ldm"] + +[ext_resource type="PackedScene" uid="uid://c7i2q4mx5qp2h" path="res://prefab/currency/GoldTemplate.tscn" id="1_7anjj"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_p7xui"] +[ext_resource type="Texture2D" uid="uid://benn0iaclw8dk" path="res://resource/sprite/currency/Gold_1.png" id="3_lhsna"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2tpx1"] +resource_local_to_scene = true +shader = ExtResource("2_p7xui") +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="AtlasTexture" id="AtlasTexture_e75yg"] +atlas = ExtResource("3_lhsna") +region = Rect2(0, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vipr3"] +atlas = ExtResource("3_lhsna") +region = Rect2(8, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c2w8t"] +atlas = ExtResource("3_lhsna") +region = Rect2(16, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4u1py"] +atlas = ExtResource("3_lhsna") +region = Rect2(24, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ejbhm"] +atlas = ExtResource("3_lhsna") +region = Rect2(32, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_obptk"] +atlas = ExtResource("3_lhsna") +region = Rect2(40, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xdxp6"] +atlas = ExtResource("3_lhsna") +region = Rect2(48, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j2dug"] +atlas = ExtResource("3_lhsna") +region = Rect2(56, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0yf5k"] +atlas = ExtResource("3_lhsna") +region = Rect2(64, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aew3e"] +atlas = ExtResource("3_lhsna") +region = Rect2(72, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0uljq"] +atlas = ExtResource("3_lhsna") +region = Rect2(80, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fu3cl"] +atlas = ExtResource("3_lhsna") +region = Rect2(88, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c1vcu"] +atlas = ExtResource("3_lhsna") +region = Rect2(96, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8sqp3"] +atlas = ExtResource("3_lhsna") +region = Rect2(104, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_htbwa"] +atlas = ExtResource("3_lhsna") +region = Rect2(112, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hei3a"] +atlas = ExtResource("3_lhsna") +region = Rect2(120, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0e87y"] +atlas = ExtResource("3_lhsna") +region = Rect2(128, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_i2rar"] +atlas = ExtResource("3_lhsna") +region = Rect2(136, 0, 8, 8) + +[sub_resource type="SpriteFrames" id="SpriteFrames_3te8s"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_e75yg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vipr3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c2w8t") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4u1py") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ejbhm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_obptk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xdxp6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j2dug") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0yf5k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_aew3e") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0uljq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fu3cl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c1vcu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8sqp3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_htbwa") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hei3a") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0e87y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_i2rar") +}], +"loop": true, +"name": &"default", +"speed": 10.0 +}] + +[node name="Gold1" instance=ExtResource("1_7anjj")] +GoldCount = 1 + +[node name="AnimatedSprite" parent="." index="1"] +material = SubResource("ShaderMaterial_2tpx1") +sprite_frames = SubResource("SpriteFrames_3te8s") +autoplay = "default" +frame_progress = 0.578976 diff --git a/DungeonShooting_Godot/prefab/currency/Gold10.tscn b/DungeonShooting_Godot/prefab/currency/Gold10.tscn new file mode 100644 index 0000000..e723646 --- /dev/null +++ b/DungeonShooting_Godot/prefab/currency/Gold10.tscn @@ -0,0 +1,160 @@ +[gd_scene load_steps=24 format=3 uid="uid://cpfeog5xk7frv"] + +[ext_resource type="PackedScene" uid="uid://c7i2q4mx5qp2h" path="res://prefab/currency/GoldTemplate.tscn" id="1_q6rqs"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_fwuy2"] +[ext_resource type="Texture2D" uid="uid://7dy6itvggpwy" path="res://resource/sprite/currency/Gold_10.png" id="3_x42g4"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2tpx1"] +resource_local_to_scene = true +shader = ExtResource("2_fwuy2") +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="AtlasTexture" id="AtlasTexture_x41wb"] +atlas = ExtResource("3_x42g4") +region = Rect2(0, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_03ih4"] +atlas = ExtResource("3_x42g4") +region = Rect2(8, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qdoke"] +atlas = ExtResource("3_x42g4") +region = Rect2(16, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3wdhp"] +atlas = ExtResource("3_x42g4") +region = Rect2(24, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vgpiy"] +atlas = ExtResource("3_x42g4") +region = Rect2(32, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jfxvm"] +atlas = ExtResource("3_x42g4") +region = Rect2(40, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hqk1i"] +atlas = ExtResource("3_x42g4") +region = Rect2(48, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j4okn"] +atlas = ExtResource("3_x42g4") +region = Rect2(56, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nohmj"] +atlas = ExtResource("3_x42g4") +region = Rect2(64, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_blcne"] +atlas = ExtResource("3_x42g4") +region = Rect2(72, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_018qf"] +atlas = ExtResource("3_x42g4") +region = Rect2(80, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kb863"] +atlas = ExtResource("3_x42g4") +region = Rect2(88, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nrald"] +atlas = ExtResource("3_x42g4") +region = Rect2(96, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4rlwh"] +atlas = ExtResource("3_x42g4") +region = Rect2(104, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7qdiq"] +atlas = ExtResource("3_x42g4") +region = Rect2(112, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l7tjk"] +atlas = ExtResource("3_x42g4") +region = Rect2(120, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_thd0w"] +atlas = ExtResource("3_x42g4") +region = Rect2(128, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_js8fg"] +atlas = ExtResource("3_x42g4") +region = Rect2(136, 0, 8, 8) + +[sub_resource type="SpriteFrames" id="SpriteFrames_3te8s"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_x41wb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_03ih4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qdoke") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3wdhp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vgpiy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jfxvm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hqk1i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j4okn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nohmj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_blcne") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_018qf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kb863") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nrald") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4rlwh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7qdiq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l7tjk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_thd0w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_js8fg") +}], +"loop": true, +"name": &"default", +"speed": 10.0 +}] + +[node name="Gold10" instance=ExtResource("1_q6rqs")] +GoldCount = 10 + +[node name="AnimatedSprite" parent="." index="1"] +material = SubResource("ShaderMaterial_2tpx1") +sprite_frames = SubResource("SpriteFrames_3te8s") +autoplay = "default" +frame_progress = 0.578976 diff --git a/DungeonShooting_Godot/prefab/currency/Gold5.tscn b/DungeonShooting_Godot/prefab/currency/Gold5.tscn new file mode 100644 index 0000000..88de932 --- /dev/null +++ b/DungeonShooting_Godot/prefab/currency/Gold5.tscn @@ -0,0 +1,160 @@ +[gd_scene load_steps=24 format=3 uid="uid://dqeph6v1y3ycm"] + +[ext_resource type="PackedScene" uid="uid://c7i2q4mx5qp2h" path="res://prefab/currency/GoldTemplate.tscn" id="1_t3bsk"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_r5r64"] +[ext_resource type="Texture2D" uid="uid://bfpcqj2x8t2os" path="res://resource/sprite/currency/Gold_5.png" id="3_rf7nc"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2tpx1"] +resource_local_to_scene = true +shader = ExtResource("2_r5r64") +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="AtlasTexture" id="AtlasTexture_kpbsl"] +atlas = ExtResource("3_rf7nc") +region = Rect2(0, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tpaps"] +atlas = ExtResource("3_rf7nc") +region = Rect2(8, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gfmw0"] +atlas = ExtResource("3_rf7nc") +region = Rect2(16, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kh76b"] +atlas = ExtResource("3_rf7nc") +region = Rect2(24, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h71d5"] +atlas = ExtResource("3_rf7nc") +region = Rect2(32, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_irvf2"] +atlas = ExtResource("3_rf7nc") +region = Rect2(40, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6upf3"] +atlas = ExtResource("3_rf7nc") +region = Rect2(48, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_th3rv"] +atlas = ExtResource("3_rf7nc") +region = Rect2(56, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2nwhu"] +atlas = ExtResource("3_rf7nc") +region = Rect2(64, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3f1xk"] +atlas = ExtResource("3_rf7nc") +region = Rect2(72, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4edoa"] +atlas = ExtResource("3_rf7nc") +region = Rect2(80, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_t7eeg"] +atlas = ExtResource("3_rf7nc") +region = Rect2(88, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_x22g0"] +atlas = ExtResource("3_rf7nc") +region = Rect2(96, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_14m0u"] +atlas = ExtResource("3_rf7nc") +region = Rect2(104, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4s0em"] +atlas = ExtResource("3_rf7nc") +region = Rect2(112, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ncscs"] +atlas = ExtResource("3_rf7nc") +region = Rect2(120, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gwnv8"] +atlas = ExtResource("3_rf7nc") +region = Rect2(128, 0, 8, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aw75c"] +atlas = ExtResource("3_rf7nc") +region = Rect2(136, 0, 8, 8) + +[sub_resource type="SpriteFrames" id="SpriteFrames_3te8s"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_kpbsl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tpaps") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gfmw0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kh76b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_h71d5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_irvf2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6upf3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_th3rv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2nwhu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3f1xk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4edoa") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_t7eeg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_x22g0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_14m0u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4s0em") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ncscs") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gwnv8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_aw75c") +}], +"loop": true, +"name": &"default", +"speed": 10.0 +}] + +[node name="Gold5" instance=ExtResource("1_t3bsk")] +GoldCount = 5 + +[node name="AnimatedSprite" parent="." index="1"] +material = SubResource("ShaderMaterial_2tpx1") +sprite_frames = SubResource("SpriteFrames_3te8s") +autoplay = "default" +frame_progress = 0.578976 diff --git a/DungeonShooting_Godot/prefab/currency/GoldTemplate.tscn b/DungeonShooting_Godot/prefab/currency/GoldTemplate.tscn new file mode 100644 index 0000000..a759eeb --- /dev/null +++ b/DungeonShooting_Godot/prefab/currency/GoldTemplate.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=6 format=3 uid="uid://c7i2q4mx5qp2h"] + +[ext_resource type="Script" path="res://src/game/activity/currency/Gold.cs" id="1_p60kl"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_5nps8"] +[ext_resource type="Texture2D" uid="uid://cthwlbqve6i1l" path="res://resource/sprite/currency/Gold_shadow.png" id="3_6xm1s"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_qdjhs"] +resource_local_to_scene = true +shader = ExtResource("2_5nps8") +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_jvlsd"] +size = Vector2(6, 4) + +[node name="GoldTemplate" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +collision_mask = 0 +script = ExtResource("1_p60kl") +GoldCount = 0 +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +texture = ExtResource("3_6xm1s") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_qdjhs") +offset = Vector2(0, -4) + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_jvlsd") diff --git a/DungeonShooting_Godot/prefab/effect/common/Trail0001.tscn b/DungeonShooting_Godot/prefab/effect/common/Trail0001.tscn new file mode 100644 index 0000000..d7d9242 --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/common/Trail0001.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=3 uid="uid://ddwikcidm0gsi"] + +[ext_resource type="Script" path="res://src/game/effects/Trail.cs" id="1_i68ib"] + +[sub_resource type="Curve" id="Curve_fnvhf"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.5), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="Gradient" id="Gradient_cjh8g"] +resource_local_to_scene = true +offsets = PackedFloat32Array(0.825949, 1) +colors = PackedColorArray(1, 1, 1, 0.705882, 1, 1, 1, 0) + +[node name="Trail" type="Line2D"] +width = 3.0 +width_curve = SubResource("Curve_fnvhf") +gradient = SubResource("Gradient_cjh8g") +script = ExtResource("1_i68ib") diff --git a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire.tscn b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire.tscn deleted file mode 100644 index 159734f..0000000 --- a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire.tscn +++ /dev/null @@ -1,51 +0,0 @@ -[gd_scene load_steps=8 format=3 uid="uid://433h6huyctl1"] - -[ext_resource type="Texture2D" uid="uid://b0jsyrbk4bydt" path="res://resource/sprite/shootFire/ShotFire0001.png" id="1_sencp"] -[ext_resource type="Script" path="res://src/game/effects/AutoDestroySprite.cs" id="2_lnwju"] - -[sub_resource type="AtlasTexture" id="AtlasTexture_asq5h"] -atlas = ExtResource("1_sencp") -region = Rect2(0, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_n77w8"] -atlas = ExtResource("1_sencp") -region = Rect2(16, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_10rnx"] -atlas = ExtResource("1_sencp") -region = Rect2(32, 0, 16, 16) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qi1pq"] -atlas = ExtResource("1_sencp") -region = Rect2(48, 0, 16, 16) - -[sub_resource type="SpriteFrames" id="SpriteFrames_73j16"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_asq5h") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_n77w8") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_10rnx") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_qi1pq") -}, { -"duration": 1.0, -"texture": null -}], -"loop": false, -"name": &"default", -"speed": 20.0 -}] - -[node name="ShotFire" type="AnimatedSprite2D" node_paths=PackedStringArray("Particles2D")] -modulate = Color(1.6, 1.6, 1.6, 1) -sprite_frames = SubResource("SpriteFrames_73j16") -offset = Vector2(8, 0) -script = ExtResource("2_lnwju") -DelayTime = 0.5 -Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0001.tscn b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0001.tscn new file mode 100644 index 0000000..159734f --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0001.tscn @@ -0,0 +1,51 @@ +[gd_scene load_steps=8 format=3 uid="uid://433h6huyctl1"] + +[ext_resource type="Texture2D" uid="uid://b0jsyrbk4bydt" path="res://resource/sprite/shootFire/ShotFire0001.png" id="1_sencp"] +[ext_resource type="Script" path="res://src/game/effects/AutoDestroySprite.cs" id="2_lnwju"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_asq5h"] +atlas = ExtResource("1_sencp") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n77w8"] +atlas = ExtResource("1_sencp") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_10rnx"] +atlas = ExtResource("1_sencp") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qi1pq"] +atlas = ExtResource("1_sencp") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_73j16"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_asq5h") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_n77w8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_10rnx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qi1pq") +}, { +"duration": 1.0, +"texture": null +}], +"loop": false, +"name": &"default", +"speed": 20.0 +}] + +[node name="ShotFire" type="AnimatedSprite2D" node_paths=PackedStringArray("Particles2D")] +modulate = Color(1.6, 1.6, 1.6, 1) +sprite_frames = SubResource("SpriteFrames_73j16") +offset = Vector2(8, 0) +script = ExtResource("2_lnwju") +DelayTime = 0.5 +Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0002.tscn b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0002.tscn new file mode 100644 index 0000000..5a3355d --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0002.tscn @@ -0,0 +1,52 @@ +[gd_scene load_steps=8 format=3 uid="uid://drcvbo0xam6q"] + +[ext_resource type="Texture2D" uid="uid://cj8gb5dxnk8ov" path="res://resource/sprite/shootFire/ShotFire0002.png" id="1_02pnb"] +[ext_resource type="Script" path="res://src/game/effects/AutoDestroySprite.cs" id="2_uoe2l"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_2nk6j"] +atlas = ExtResource("1_02pnb") +region = Rect2(0, 0, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ht7ag"] +atlas = ExtResource("1_02pnb") +region = Rect2(9, 0, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jwqy0"] +atlas = ExtResource("1_02pnb") +region = Rect2(18, 0, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ud7n7"] +atlas = ExtResource("1_02pnb") +region = Rect2(27, 0, 9, 11) + +[sub_resource type="SpriteFrames" id="SpriteFrames_rry1m"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_2nk6j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ht7ag") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jwqy0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ud7n7") +}, { +"duration": 1.0, +"texture": null +}], +"loop": false, +"name": &"default", +"speed": 20.0 +}] + +[node name="ShotFire2" type="AnimatedSprite2D" node_paths=PackedStringArray("Particles2D")] +modulate = Color(1.6, 1.6, 1.6, 1) +position = Vector2(-1, 0) +sprite_frames = SubResource("SpriteFrames_rry1m") +offset = Vector2(5.5, 0) +script = ExtResource("2_uoe2l") +DelayTime = 0.5 +Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0003.tscn b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0003.tscn new file mode 100644 index 0000000..751fef8 --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0003.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=7 format=3 uid="uid://dbas3vph0i2ro"] + +[ext_resource type="Script" path="res://src/game/effects/AutoDestroyParticles.cs" id="1_pdyqx"] +[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/sprite/common/Smoke.png" id="1_r2unj"] + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_4wcis"] +particles_animation = true +particles_anim_h_frames = 3 +particles_anim_v_frames = 1 +particles_anim_loop = false + +[sub_resource type="Curve" id="Curve_86ye5"] +_data = [Vector2(0.0215054, 1), 0.0, 0.0, 0, 0, Vector2(0.512545, 0.882353), 0.0, 0.0, 0, 0, Vector2(1, 0.152941), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_j77i6"] +curve = SubResource("Curve_86ye5") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8n28q"] +lifetime_randomness = 0.3 +particle_flag_disable_z = true +angle_max = 360.0 +initial_velocity_min = 5.0 +initial_velocity_max = 35.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.6 +scale_max = 1.5 +scale_curve = SubResource("CurveTexture_j77i6") +anim_offset_max = 1.0 + +[node name="ShotFire3" type="GPUParticles2D" node_paths=PackedStringArray("Particles2D")] +modulate = Color(0.95, 0.70965, 0.6365, 0.470588) +material = SubResource("CanvasItemMaterial_4wcis") +emitting = false +process_material = SubResource("ParticleProcessMaterial_8n28q") +texture = ExtResource("1_r2unj") +lifetime = 0.7 +one_shot = true +explosiveness = 1.0 +randomness = 0.5 +fixed_fps = 20 +script = ExtResource("1_pdyqx") +Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0004.tscn b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0004.tscn new file mode 100644 index 0000000..448192f --- /dev/null +++ b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire0004.tscn @@ -0,0 +1,52 @@ +[gd_scene load_steps=8 format=3 uid="uid://yg8n8xi3ucqi"] + +[ext_resource type="Texture2D" uid="uid://dw3amegyt2ehh" path="res://resource/sprite/shootFire/ShotFire0003.png" id="1_lxoh4"] +[ext_resource type="Script" path="res://src/game/effects/AutoDestroySprite.cs" id="2_qlt57"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_1cqk8"] +atlas = ExtResource("1_lxoh4") +region = Rect2(0, 0, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hfpwi"] +atlas = ExtResource("1_lxoh4") +region = Rect2(9, 0, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dvimy"] +atlas = ExtResource("1_lxoh4") +region = Rect2(18, 0, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bk1sq"] +atlas = ExtResource("1_lxoh4") +region = Rect2(27, 0, 9, 11) + +[sub_resource type="SpriteFrames" id="SpriteFrames_rry1m"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_1cqk8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hfpwi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dvimy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bk1sq") +}, { +"duration": 1.0, +"texture": null +}], +"loop": false, +"name": &"default", +"speed": 20.0 +}] + +[node name="ShotFire4" type="AnimatedSprite2D" node_paths=PackedStringArray("Particles2D")] +modulate = Color(1.6, 1.6, 1.6, 1) +position = Vector2(-1, 0) +sprite_frames = SubResource("SpriteFrames_rry1m") +offset = Vector2(5.5, 0) +script = ExtResource("2_qlt57") +DelayTime = 0.5 +Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire2.tscn b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire2.tscn deleted file mode 100644 index 768d4d4..0000000 --- a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire2.tscn +++ /dev/null @@ -1,51 +0,0 @@ -[gd_scene load_steps=8 format=3 uid="uid://drcvbo0xam6q"] - -[ext_resource type="Texture2D" uid="uid://cj8gb5dxnk8ov" path="res://resource/sprite/shootFire/ShotFire0002.png" id="1_ljjfn"] -[ext_resource type="Script" path="res://src/game/effects/AutoDestroySprite.cs" id="2_4ecjw"] - -[sub_resource type="AtlasTexture" id="AtlasTexture_2nk6j"] -atlas = ExtResource("1_ljjfn") -region = Rect2(0, 0, 9, 11) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ht7ag"] -atlas = ExtResource("1_ljjfn") -region = Rect2(9, 0, 9, 11) - -[sub_resource type="AtlasTexture" id="AtlasTexture_jwqy0"] -atlas = ExtResource("1_ljjfn") -region = Rect2(18, 0, 9, 11) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ud7n7"] -atlas = ExtResource("1_ljjfn") -region = Rect2(27, 0, 9, 11) - -[sub_resource type="SpriteFrames" id="SpriteFrames_rry1m"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_2nk6j") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ht7ag") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_jwqy0") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_ud7n7") -}, { -"duration": 1.0, -"texture": null -}], -"loop": false, -"name": &"default", -"speed": 20.0 -}] - -[node name="ShotFire2" type="AnimatedSprite2D" node_paths=PackedStringArray("Particles2D")] -modulate = Color(1.6, 1.6, 1.6, 1) -sprite_frames = SubResource("SpriteFrames_rry1m") -offset = Vector2(5.5, 0) -script = ExtResource("2_4ecjw") -DelayTime = 0.5 -Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire3.tscn b/DungeonShooting_Godot/prefab/effect/weapon/ShotFire3.tscn deleted file mode 100644 index 751fef8..0000000 --- a/DungeonShooting_Godot/prefab/effect/weapon/ShotFire3.tscn +++ /dev/null @@ -1,43 +0,0 @@ -[gd_scene load_steps=7 format=3 uid="uid://dbas3vph0i2ro"] - -[ext_resource type="Script" path="res://src/game/effects/AutoDestroyParticles.cs" id="1_pdyqx"] -[ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/sprite/common/Smoke.png" id="1_r2unj"] - -[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_4wcis"] -particles_animation = true -particles_anim_h_frames = 3 -particles_anim_v_frames = 1 -particles_anim_loop = false - -[sub_resource type="Curve" id="Curve_86ye5"] -_data = [Vector2(0.0215054, 1), 0.0, 0.0, 0, 0, Vector2(0.512545, 0.882353), 0.0, 0.0, 0, 0, Vector2(1, 0.152941), 0.0, 0.0, 0, 0] -point_count = 3 - -[sub_resource type="CurveTexture" id="CurveTexture_j77i6"] -curve = SubResource("Curve_86ye5") - -[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8n28q"] -lifetime_randomness = 0.3 -particle_flag_disable_z = true -angle_max = 360.0 -initial_velocity_min = 5.0 -initial_velocity_max = 35.0 -gravity = Vector3(0, 0, 0) -scale_min = 0.6 -scale_max = 1.5 -scale_curve = SubResource("CurveTexture_j77i6") -anim_offset_max = 1.0 - -[node name="ShotFire3" type="GPUParticles2D" node_paths=PackedStringArray("Particles2D")] -modulate = Color(0.95, 0.70965, 0.6365, 0.470588) -material = SubResource("CanvasItemMaterial_4wcis") -emitting = false -process_material = SubResource("ParticleProcessMaterial_8n28q") -texture = ExtResource("1_r2unj") -lifetime = 0.7 -one_shot = true -explosiveness = 1.0 -randomness = 0.5 -fixed_fps = 20 -script = ExtResource("1_pdyqx") -Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/role/Role0001.tscn b/DungeonShooting_Godot/prefab/role/Role0001.tscn index 04aa1b8..cb1c9cb 100644 --- a/DungeonShooting_Godot/prefab/role/Role0001.tscn +++ b/DungeonShooting_Godot/prefab/role/Role0001.tscn @@ -55,8 +55,8 @@ [node name="HurtCollision" parent="HurtArea" index="0"] shape = SubResource("RectangleShape2D_ve262") -[node name="InteractiveArea" parent="." index="5"] -visible = true +[node name="InteractiveCollision" parent="InteractiveArea" index="0"] +position = Vector2(0, 0) [node name="AnimationPlayer" parent="." index="8"] libraries = { diff --git a/DungeonShooting_Godot/prefab/role/template/EnemyTemplate.tscn b/DungeonShooting_Godot/prefab/role/template/EnemyTemplate.tscn index 3625be0..4247548 100644 --- a/DungeonShooting_Godot/prefab/role/template/EnemyTemplate.tscn +++ b/DungeonShooting_Godot/prefab/role/template/EnemyTemplate.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=4 format=3 uid="uid://dbrig6dq441wo"] +[gd_scene load_steps=5 format=3 uid="uid://dbrig6dq441wo"] [ext_resource type="PackedScene" uid="uid://cyrcv2jdgr8cf" path="res://prefab/role/template/RoleTemplate.tscn" id="1_5po38"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="3_x8agd"] @@ -15,6 +15,9 @@ shader_parameter/outline_use_blend = true shader_parameter/grey = 0.0 +[sub_resource type="CircleShape2D" id="CircleShape2D_wu0xv"] +radius = 8.06226 + [node name="EnemyTemplate" instance=ExtResource("1_5po38")] collision_layer = 16 collision_mask = 25 @@ -22,6 +25,9 @@ [node name="AnimatedSprite" parent="." index="2"] material = SubResource("ShaderMaterial_k8mt5") +[node name="InteractiveCollision" parent="InteractiveArea" index="0"] +shape = SubResource("CircleShape2D_wu0xv") + [node name="ViewRay" type="RayCast2D" parent="." index="6"] position = Vector2(0, -8) enabled = false diff --git a/DungeonShooting_Godot/prefab/role/template/RoleTemplate.tscn b/DungeonShooting_Godot/prefab/role/template/RoleTemplate.tscn index d6187e3..be6716b 100644 --- a/DungeonShooting_Godot/prefab/role/template/RoleTemplate.tscn +++ b/DungeonShooting_Godot/prefab/role/template/RoleTemplate.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=8 format=3 uid="uid://cyrcv2jdgr8cf"] +[gd_scene load_steps=9 format=3 uid="uid://cyrcv2jdgr8cf"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_xk5yk"] [ext_resource type="Script" path="res://src/game/activity/role/MountRotation.cs" id="2_5ddpw"] +[ext_resource type="Script" path="res://src/framework/activity/hurt/HurtArea.cs" id="2_8jnvr"] [ext_resource type="SpriteFrames" uid="uid://c8h5svp76h3kw" path="res://resource/spriteFrames/role/Role_tip.tres" id="3_bo78w"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_yif6x"] @@ -22,11 +23,13 @@ [sub_resource type="RectangleShape2D" id="RectangleShape2D_1eja2"] size = Vector2(12, 18) -[sub_resource type="RectangleShape2D" id="RectangleShape2D_n68nu"] -size = Vector2(10, 16.5) +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_843d5"] +radius = 8.0 +height = 16.0 [node name="RoleTemplate" type="CharacterBody2D"] collision_layer = 0 +collision_mask = 513 [node name="ShadowSprite" type="Sprite2D" parent="."] z_index = -1 @@ -46,26 +49,27 @@ collision_layer = 0 collision_mask = 0 monitoring = false +script = ExtResource("2_8jnvr") [node name="HurtCollision" type="CollisionShape2D" parent="HurtArea"] position = Vector2(0, -9) shape = SubResource("RectangleShape2D_1eja2") [node name="InteractiveArea" type="Area2D" parent="."] -visible = false collision_layer = 0 collision_mask = 4 monitorable = false [node name="InteractiveCollision" type="CollisionShape2D" parent="InteractiveArea"] -position = Vector2(0, -5) -shape = SubResource("RectangleShape2D_n68nu") +position = Vector2(0, -2) +shape = SubResource("CapsuleShape2D_843d5") [node name="MountPoint" type="Marker2D" parent="."] position = Vector2(2, -8) script = ExtResource("2_5ddpw") [node name="MeleeAttackArea" type="Area2D" parent="MountPoint"] +visible = false collision_layer = 0 collision_mask = 0 monitorable = false diff --git a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn index a16d493..8a8bc45 100644 --- a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn +++ b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=3 uid="uid://bvpmtfupny8iu"] +[gd_scene load_steps=22 format=3 uid="uid://bvpmtfupny8iu"] [ext_resource type="Script" path="res://src/game/ui/roomUI/RoomUIPanel.cs" id="1_tfcrp"] [ext_resource type="Texture2D" uid="uid://b67i86mtqrn32" path="res://resource/sprite/ui/roomUI/icon_bullet.png" id="2_ruc0p"] @@ -6,6 +6,8 @@ [ext_resource type="Texture2D" uid="uid://cukrx5yyqw86o" path="res://resource/sprite/ui/roomUI/ReloadBar.png" id="4_hy44s"] [ext_resource type="Texture2D" uid="uid://cx3i1nkcc4307" path="res://resource/sprite/ui/roomUI/ReloadBarBlock.png" id="5_w3lq2"] [ext_resource type="Texture2D" uid="uid://blywnftxn1cfd" path="res://resource/sprite/ui/roomUI/Life_full.png" id="6_ggviq"] +[ext_resource type="Material" uid="uid://j8t31iuumvhr" path="res://resource/material/Outline.tres" id="7_iw6pa"] +[ext_resource type="Texture2D" uid="uid://cysv0dpvm52xw" path="res://resource/sprite/ui/commonIcon/Gold_10.png" id="7_lyxvi"] [ext_resource type="Texture2D" uid="uid://cu0wlvrbntvyd" path="res://resource/sprite/prop/active/ActiveProp5000.png" id="10_5d4np"] [ext_resource type="Texture2D" uid="uid://b8u6s5n37157" path="res://resource/sprite/ui/roomUI/Panel2.png" id="10_eokvx"] [ext_resource type="Texture2D" uid="uid://0swkya4hn82c" path="res://resource/sprite/ui/roomUI/Panel.png" id="10_q3fs8"] @@ -159,17 +161,54 @@ mouse_filter = 2 metadata/_edit_lock_ = true -[node name="LifeBar" type="Control" parent="Control"] -anchors_preset = 0 -offset_right = 40.0 -offset_bottom = 40.0 -scale = Vector2(4, 4) +[node name="LifeBar" type="VBoxContainer" parent="Control"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = -280.0 +grow_horizontal = 2 +grow_vertical = 2 -[node name="Life" type="TextureRect" parent="Control/LifeBar"] +[node name="Life" type="Control" parent="Control/LifeBar"] +custom_minimum_size = Vector2(48, 40) layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 + +[node name="LifeIcon" type="TextureRect" parent="Control/LifeBar/Life"] +layout_mode = 1 offset_right = 12.0 offset_bottom = 10.0 +scale = Vector2(4, 4) +size_flags_horizontal = 0 +size_flags_vertical = 0 texture = ExtResource("6_ggviq") +stretch_mode = 2 + +[node name="Gold" type="Control" parent="Control/LifeBar"] +custom_minimum_size = Vector2(0, 32) +layout_mode = 2 + +[node name="GoldIcon" type="TextureRect" parent="Control/LifeBar/Gold"] +material = ExtResource("7_iw6pa") +layout_mode = 1 +offset_right = 8.0 +offset_bottom = 8.0 +scale = Vector2(4, 4) +texture = ExtResource("7_lyxvi") +stretch_mode = 2 + +[node name="GoldText" type="Label" parent="Control/LifeBar/Gold"] +layout_mode = 1 +anchors_preset = 9 +anchor_bottom = 1.0 +offset_left = 32.0 +offset_top = -4.0 +offset_right = 285.0 +offset_bottom = 4.0 +grow_vertical = 2 +text = "0" [node name="ActivePropBar" type="Control" parent="Control"] layout_mode = 1 diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0010.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0010.tscn new file mode 100644 index 0000000..571ff9f --- /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.7 +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.7), +"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.7), +"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.5, 1.7), +"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) + +[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(5, -1) +shape = SubResource("RectangleShape2D_evjpf") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_trkjd") +} diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0011.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0011.tscn new file mode 100644 index 0000000..278775a --- /dev/null +++ b/DungeonShooting_Godot/prefab/weapon/Weapon0011.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=8 format=3 uid="uid://c17ol2s34ehp7"] + +[ext_resource type="PackedScene" uid="uid://cxltmhhp4rbyk" path="res://prefab/weapon/WeaponTemplate.tscn" id="1_fgcwf"] +[ext_resource type="Script" path="res://src/game/activity/weapon/gun/Gun.cs" id="2_m84k4"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="3_4rq0j"] +[ext_resource type="SpriteFrames" uid="uid://xvfg1a0xj7ng" path="res://resource/spriteFrames/weapon/Weapon0011.tres" id="4_bnkqc"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_m6bme"] +resource_local_to_scene = true +shader = ExtResource("3_4rq0j") +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_fqjj0"] +resource_local_to_scene = true +shader = ExtResource("3_4rq0j") +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_iq77m"] +size = Vector2(20, 8) + +[node name="Weapon0011" node_paths=PackedStringArray("FirePoint", "ShellPoint", "AnimationPlayer", "ShadowSprite", "AnimatedSprite", "Collision") instance=ExtResource("1_fgcwf")] +script = ExtResource("2_m84k4") +FirePoint = NodePath("AnimatedSprite/FirePoint") +ShellPoint = NodePath("AnimatedSprite/ShellPoint") +AnimationPlayer = NodePath("AnimationPlayer") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" parent="." index="0"] +material = SubResource("ShaderMaterial_m6bme") + +[node name="AnimatedSprite" parent="." index="1"] +material = SubResource("ShaderMaterial_fqjj0") +position = Vector2(3, -1) +sprite_frames = ExtResource("4_bnkqc") + +[node name="ShellPoint" parent="AnimatedSprite" index="0"] +position = Vector2(-4, -2) + +[node name="FirePoint" parent="AnimatedSprite" index="1"] +position = Vector2(15, -0.5) + +[node name="Collision" parent="." index="2"] +visible = true +position = Vector2(3, 0) +shape = SubResource("RectangleShape2D_iq77m") diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0013.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0013.tscn new file mode 100644 index 0000000..c7c9280 --- /dev/null +++ b/DungeonShooting_Godot/prefab/weapon/Weapon0013.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=8 format=3 uid="uid://chxa5inh7hgxs"] + +[ext_resource type="PackedScene" uid="uid://cxltmhhp4rbyk" path="res://prefab/weapon/WeaponTemplate.tscn" id="1_f1h8o"] +[ext_resource type="Script" path="res://src/game/activity/weapon/gun/Gun.cs" id="2_bpgfu"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="3_0l3ip"] +[ext_resource type="SpriteFrames" uid="uid://cawsi08vaqfrn" path="res://resource/spriteFrames/weapon/Weapon0013.tres" id="4_w7ibl"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_sy2aq"] +resource_local_to_scene = true +shader = ExtResource("3_0l3ip") +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_1rqqj"] +resource_local_to_scene = true +shader = ExtResource("3_0l3ip") +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_4pn1i"] +size = Vector2(20, 6) + +[node name="Weapon0013" node_paths=PackedStringArray("FirePoint", "ShellPoint", "AnimationPlayer", "ShadowSprite", "AnimatedSprite", "Collision") instance=ExtResource("1_f1h8o")] +script = ExtResource("2_bpgfu") +FirePoint = NodePath("AnimatedSprite/FirePoint") +ShellPoint = NodePath("AnimatedSprite/ShellPoint") +AnimationPlayer = NodePath("AnimationPlayer") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" parent="." index="0"] +material = SubResource("ShaderMaterial_sy2aq") + +[node name="AnimatedSprite" parent="." index="1"] +material = SubResource("ShaderMaterial_1rqqj") +position = Vector2(4, -1) +sprite_frames = ExtResource("4_w7ibl") + +[node name="ShellPoint" parent="AnimatedSprite" index="0"] +position = Vector2(2, -1) + +[node name="FirePoint" parent="AnimatedSprite" index="1"] +position = Vector2(12, -1) + +[node name="Collision" parent="." index="2"] +visible = true +position = Vector2(4, 0) +shape = SubResource("RectangleShape2D_4pn1i") diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0014.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0014.tscn new file mode 100644 index 0000000..b880d0d --- /dev/null +++ b/DungeonShooting_Godot/prefab/weapon/Weapon0014.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=8 format=3 uid="uid://dvhan2bubtey0"] + +[ext_resource type="PackedScene" uid="uid://cxltmhhp4rbyk" path="res://prefab/weapon/WeaponTemplate.tscn" id="1_3op5w"] +[ext_resource type="Script" path="res://src/game/activity/weapon/gun/Gun.cs" id="2_toxwq"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="3_ch83c"] +[ext_resource type="SpriteFrames" uid="uid://taxfr2lcy0f3" path="res://resource/spriteFrames/weapon/Weapon0014.tres" id="4_xdmw2"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_sy2aq"] +resource_local_to_scene = true +shader = ExtResource("3_ch83c") +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_x2qcg"] +resource_local_to_scene = true +shader = ExtResource("3_ch83c") +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_4pn1i"] +size = Vector2(10.75, 7.75) + +[node name="Weapon0014" node_paths=PackedStringArray("FirePoint", "ShellPoint", "AnimationPlayer", "ShadowSprite", "AnimatedSprite", "Collision") instance=ExtResource("1_3op5w")] +script = ExtResource("2_toxwq") +FirePoint = NodePath("AnimatedSprite/FirePoint") +ShellPoint = NodePath("AnimatedSprite/ShellPoint") +AnimationPlayer = NodePath("AnimationPlayer") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" parent="." index="0"] +material = SubResource("ShaderMaterial_sy2aq") + +[node name="AnimatedSprite" parent="." index="1"] +material = SubResource("ShaderMaterial_x2qcg") +position = Vector2(4, 0) +sprite_frames = ExtResource("4_xdmw2") + +[node name="ShellPoint" parent="AnimatedSprite" index="0"] +position = Vector2(-3, -2) + +[node name="FirePoint" parent="AnimatedSprite" index="1"] +position = Vector2(9, -2) + +[node name="Collision" parent="." index="2"] +visible = true +position = Vector2(4, 0) +shape = SubResource("RectangleShape2D_4pn1i") diff --git a/DungeonShooting_Godot/project.godot b/DungeonShooting_Godot/project.godot index 2588b93..45426b8 100644 --- a/DungeonShooting_Godot/project.godot +++ b/DungeonShooting_Godot/project.godot @@ -10,7 +10,7 @@ [application] -config/name="DungeonShooting" +config/name="枪火地牢" run/main_scene="res://scene/Main.tscn" config/features=PackedStringArray("4.2", "C#") config/icon="res://icon.png" @@ -118,36 +118,43 @@ fire={ "deadzone": 0.5, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":true,"script":null) ] } move_left={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) ] } move_right={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) ] } move_up={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null) ] } move_down={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) ] } exchangeWeapon={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":113,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":true,"script":null) ] } throwWeapon={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"key_label":0,"unicode":103,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":71,"physical_keycode":71,"key_label":71,"unicode":103,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":true,"script":null) ] } mouse_roll_up={ @@ -163,31 +170,37 @@ interactive={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null) ] } reload={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null) ] } meleeAttack={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null) ] } roll={ "deadzone": 0.5, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(75, 15),"global_position":Vector2(79, 56),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":true,"script":null) ] } useActiveProp={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null) ] } removeProp={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":88,"key_label":0,"unicode":120,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":true,"script":null) ] } exchangeProp={ @@ -198,11 +211,13 @@ map={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null) ] } menu={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":4,"pressure":0.0,"pressed":true,"script":null) ] } mouse_left={ @@ -229,7 +244,7 @@ 2d_physics/layer_4="player" 2d_physics/layer_5="enemy" 2d_physics/layer_6="affiliation" -2d_physics/layer_7="onHead" +2d_physics/layer_7="onHand" 2d_physics/layer_8="debris" 2d_physics/layer_9="throwing" diff --git a/DungeonShooting_Godot/resource/config/ActivityBase.json b/DungeonShooting_Godot/resource/config/ActivityBase.json index 42cb08e..f4b0604 100644 --- a/DungeonShooting_Godot/resource/config/ActivityBase.json +++ b/DungeonShooting_Godot/resource/config/ActivityBase.json @@ -3,6 +3,8 @@ "Id": "role0001", "Type": 3, "Name": "\u73A9\u5BB6", + "Quality": 0, + "Price": 0, "Intro": "\u73A9\u5BB6", "Details": "", "IsStatic": false, @@ -15,6 +17,8 @@ "Id": "enemy0001", "Type": 4, "Name": "\u654C\u4EBA", + "Quality": 0, + "Price": 0, "Intro": "\u654C\u4EBA", "Details": "", "IsStatic": false, @@ -27,6 +31,8 @@ "Id": "enemy0002", "Type": 4, "Name": "\u654C\u4EBA2", + "Quality": 0, + "Price": 0, "Intro": "\u654C\u4EBA2", "Details": "", "IsStatic": false, @@ -39,6 +45,8 @@ "Id": "weapon0001", "Type": 5, "Name": "\u6B65\u67AA", + "Quality": 3, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -51,6 +59,8 @@ "Id": "weapon0002", "Type": 5, "Name": "\u9730\u5F39\u67AA", + "Quality": 3, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -63,6 +73,8 @@ "Id": "weapon0003", "Type": 5, "Name": "\u624B\u67AA", + "Quality": 2, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -75,6 +87,8 @@ "Id": "weapon0004", "Type": 5, "Name": "\u5200", + "Quality": 4, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -87,6 +101,8 @@ "Id": "weapon0005", "Type": 5, "Name": "\u72D9\u51FB\u67AA", + "Quality": 4, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -99,6 +115,8 @@ "Id": "weapon0006", "Type": 5, "Name": "\u51B2\u950B\u67AA", + "Quality": 2, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -111,6 +129,8 @@ "Id": "weapon0007", "Type": 5, "Name": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", + "Quality": 4, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -123,6 +143,8 @@ "Id": "weapon0008", "Type": 5, "Name": "\u6FC0\u5149\u624B\u67AA", + "Quality": 3, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -135,6 +157,8 @@ "Id": "weapon0009", "Type": 5, "Name": "\u69B4\u5F39\u53D1\u5C04\u5668", + "Quality": 4, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -144,9 +168,67 @@ "ShowInMapEditor": true }, { + "Id": "weapon0010", + "Type": 5, + "Name": "M1\u578B\u70ED\u80FD\u72D9\u51FB\u67AA", + "Quality": 5, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/weapon/Weapon0010.tscn", + "Icon": "res://resource/sprite/weapon/weapon0010/Weapon0010.png", + "ShowInMapEditor": true + }, + { + "Id": "weapon0011", + "Type": 5, + "Name": "weapon0011", + "Quality": 5, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/weapon/Weapon0011.tscn", + "Icon": "res://resource/sprite/weapon/weapon0011/Weapon0011.png", + "ShowInMapEditor": true + }, + { + "Id": "weapon0013", + "Type": 5, + "Name": "P90", + "Quality": 4, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/weapon/Weapon0013.tscn", + "Icon": "res://resource/sprite/weapon/weapon0013/Weapon0013.png", + "ShowInMapEditor": true + }, + { + "Id": "weapon0014", + "Type": 5, + "Name": "\u5DE6\u8F6E", + "Quality": 4, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/weapon/Weapon0014.tscn", + "Icon": "res://resource/sprite/weapon/weapon0014/Weapon0014.png", + "ShowInMapEditor": true + }, + { "Id": "bullet0001", "Type": 6, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -159,6 +241,8 @@ "Id": "bullet0002", "Type": 6, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -171,6 +255,8 @@ "Id": "bullet0003", "Type": 6, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -183,6 +269,8 @@ "Id": "bullet0004", "Type": 6, "Name": "\u69B4\u5F39\u70AE", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -195,6 +283,8 @@ "Id": "bullet0005", "Type": 6, "Name": "\u629B\u7269\u7EBF\u7C98\u6DB2\u5B50\u5F39", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -204,9 +294,53 @@ "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": "bullet0007", + "Type": 6, + "Name": "", + "Quality": 0, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "0003", + "Prefab": "res://prefab/bullet/normal/Bullet0007.tscn", + "Icon": "", + "ShowInMapEditor": false + }, + { + "Id": "bullet0008", + "Type": 6, + "Name": "", + "Quality": 0, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "0003", + "Prefab": "res://prefab/bullet/normal/Bullet0008.tscn", + "Icon": "", + "ShowInMapEditor": false + }, + { "Id": "shell0001", "Type": 7, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -219,6 +353,8 @@ "Id": "shell0002", "Type": 7, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -231,6 +367,8 @@ "Id": "shell0003", "Type": 7, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -243,6 +381,8 @@ "Id": "shell0004", "Type": 7, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "", "Details": "", "IsStatic": false, @@ -255,6 +395,8 @@ "Id": "enemy_dead0001", "Type": 8, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "\u654C\u4EBA1\u6B7B\u4EA1\u788E\u7247", "Details": "", "IsStatic": false, @@ -267,6 +409,8 @@ "Id": "enemy_dead0002", "Type": 8, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "\u654C\u4EBA2\u6B7B\u4EA1", "Details": "", "IsStatic": false, @@ -279,6 +423,8 @@ "Id": "prop0001", "Type": 9, "Name": "\u978B\u5B50", + "Quality": 4, + "Price": 0, "Intro": "\u63D0\u9AD8\u79FB\u52A8\u901F\u5EA6", "Details": "", "IsStatic": false, @@ -291,6 +437,8 @@ "Id": "prop0002", "Type": 9, "Name": "\u5FC3\u4E4B\u5BB9\u5668", + "Quality": 3, + "Price": 0, "Intro": "\u63D0\u9AD8\u8840\u91CF\u4E0A\u9650", "Details": "", "IsStatic": false, @@ -303,6 +451,8 @@ "Id": "prop0003", "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, @@ -315,6 +465,8 @@ "Id": "prop0004", "Type": 9, "Name": "\u62A4\u76FE\u8BA1\u65F6\u5668", + "Quality": 4, + "Price": 0, "Intro": "\u63D0\u9AD8\u62A4\u76FE\u6062\u590D\u901F\u5EA6", "Details": "", "IsStatic": false, @@ -327,6 +479,8 @@ "Id": "prop0005", "Type": 9, "Name": "\u6740\u4F24\u5F39", + "Quality": 4, + "Price": 0, "Intro": "\u63D0\u9AD8\u5B50\u5F39\u4F24\u5BB3", "Details": "", "IsStatic": false, @@ -339,6 +493,8 @@ "Id": "prop0006", "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, @@ -351,6 +507,8 @@ "Id": "prop0007", "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, @@ -363,6 +521,8 @@ "Id": "prop0008", "Type": 9, "Name": "\u773C\u955C", + "Quality": 3, + "Price": 0, "Intro": "\u63D0\u9AD8\u6B66\u5668\u7CBE\u51C6\u5EA6", "Details": "", "IsStatic": false, @@ -375,6 +535,8 @@ "Id": "prop0009", "Type": 9, "Name": "\u9AD8\u901F\u5B50\u5F39", + "Quality": 3, + "Price": 0, "Intro": "\u63D0\u9AD8\u5B50\u5F39\u901F\u5EA6\u548C\u5C04\u7A0B", "Details": "", "IsStatic": false, @@ -387,6 +549,8 @@ "Id": "prop0010", "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, @@ -399,6 +563,8 @@ "Id": "prop0011", "Type": 9, "Name": "\u5F39\u5C04\u5B50\u5F39", + "Quality": 4, + "Price": 0, "Intro": "\u5B50\u5F39\u53CD\u5F39\u6B21\u6570\u002B2", "Details": "", "IsStatic": false, @@ -411,6 +577,8 @@ "Id": "prop0012", "Type": 9, "Name": "\u7A7F\u900F\u5B50\u5F39", + "Quality": 4, + "Price": 0, "Intro": "\u5B50\u5F39\u7A7F\u900F\u002B1", "Details": "", "IsStatic": false, @@ -423,6 +591,8 @@ "Id": "prop0013", "Type": 9, "Name": "\u6B66\u5668\u80CC\u5305", + "Quality": 2, + "Price": 0, "Intro": "\u6B66\u5668\u5BB9\u91CF\u002B1", "Details": "", "IsStatic": false, @@ -435,6 +605,8 @@ "Id": "prop0014", "Type": 9, "Name": "\u9053\u5177\u80CC\u5305", + "Quality": 2, + "Price": 0, "Intro": "\u9053\u5177\u5BB9\u91CF\u002B1", "Details": "", "IsStatic": false, @@ -447,6 +619,8 @@ "Id": "prop5000", "Type": 9, "Name": "\u533B\u836F\u7BB1", + "Quality": 1, + "Price": 0, "Intro": "\u4F7F\u7528\u540E\u56DE\u590D\u4E00\u9897\u7EA2\u5FC3", "Details": "", "IsStatic": false, @@ -459,6 +633,8 @@ "Id": "prop5001", "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, @@ -468,9 +644,25 @@ "ShowInMapEditor": true }, { + "Id": "treasure_box0001", + "Type": 10, + "Name": "\u6728\u8D28\u5B9D\u7BB1", + "Quality": 0, + "Price": 0, + "Intro": "\u6728\u8D28\u5B9D\u7BB1", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/box/TreasureBox0001.tscn", + "Icon": "res://resource/sprite/box/TreasureBox0001.png", + "ShowInMapEditor": true + }, + { "Id": "other_door_e", "Type": 99, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u4E1C\u4FA7)", "Details": "", "IsStatic": true, @@ -483,6 +675,8 @@ "Id": "other_door_w", "Type": 99, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u897F\u4FA7)", "Details": "", "IsStatic": true, @@ -495,6 +689,8 @@ "Id": "other_door_s", "Type": 99, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5357\u4FA7)", "Details": "", "IsStatic": true, @@ -507,6 +703,8 @@ "Id": "other_door_n", "Type": 99, "Name": "", + "Quality": 0, + "Price": 0, "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5317\u4FA7)", "Details": "", "IsStatic": true, @@ -514,5 +712,47 @@ "Prefab": "res://prefab/map/RoomDoor_N.tscn", "Icon": "", "ShowInMapEditor": false + }, + { + "Id": "gold_10", + "Type": 99, + "Name": "\u91D1\u5E01", + "Quality": 0, + "Price": 0, + "Intro": "\u83B7\u5F9710\u91D1\u5E01", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/currency/Gold10.tscn", + "Icon": "res://resource/sprite/ui/commonIcon/Gold_10.png", + "ShowInMapEditor": true + }, + { + "Id": "gold_5", + "Type": 99, + "Name": "\u94F6\u5E01", + "Quality": 0, + "Price": 0, + "Intro": "\u83B7\u5F975\u91D1\u5E01", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/currency/Gold5.tscn", + "Icon": "res://resource/sprite/ui/commonIcon/Gold_5.png", + "ShowInMapEditor": true + }, + { + "Id": "gold_1", + "Type": 99, + "Name": "\u94DC\u5E01", + "Quality": 0, + "Price": 0, + "Intro": "\u83B7\u5F971\u91D1\u5E01", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/currency/Gold1.tscn", + "Icon": "res://resource/sprite/ui/commonIcon/Gold_1.png", + "ShowInMapEditor": true } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/config/AiAttackAttr.json b/DungeonShooting_Godot/resource/config/AiAttackAttr.json index 251daae..ebc5579 100644 --- a/DungeonShooting_Godot/resource/config/AiAttackAttr.json +++ b/DungeonShooting_Godot/resource/config/AiAttackAttr.json @@ -1,7 +1,7 @@ [ { "Id": "0001", - "Remark": "", + "Remark": "\u6B65\u67AA", "LockingStand": true, "FiringStand": true, "ShowSubline": false, @@ -13,7 +13,7 @@ }, { "Id": "0002", - "Remark": "", + "Remark": "\u9730\u5F39\u67AA", "LockingStand": true, "FiringStand": true, "ShowSubline": false, @@ -25,7 +25,7 @@ }, { "Id": "0003", - "Remark": "", + "Remark": "\u624B\u67AA", "LockingStand": true, "FiringStand": true, "ShowSubline": false, @@ -94,5 +94,17 @@ "AttackLockAngle": true, "BulletSpeedScale": 0.8, "AmmoConsumptionProbability": 0 + }, + { + "Id": "0009", + "Remark": "Weapon0010", + "LockingStand": true, + "FiringStand": true, + "ShowSubline": false, + "LockingTime": 1.5, + "LockAngleTime": 0.5, + "AttackLockAngle": true, + "BulletSpeedScale": 0.4, + "AmmoConsumptionProbability": 0 } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/config/BulletBase.json b/DungeonShooting_Godot/resource/config/BulletBase.json index 5985b17..6c5d4f9 100644 --- a/DungeonShooting_Godot/resource/config/BulletBase.json +++ b/DungeonShooting_Godot/resource/config/BulletBase.json @@ -211,6 +211,111 @@ ] }, { + "Id": "0007", + "Name": "\u62D6\u5C3E\u5B50\u5F391", + "Type": 1, + "Prefab": "bullet0006", + "HarmRange": [ + 10 + ], + "RepelRange": [ + 45 + ], + "DeviationAngleRange": [ + 0 + ], + "SpeedRange": [ + 350, + 350 + ], + "LifeTimeRange": [ + -1 + ], + "DistanceRange": [ + 600, + 600 + ], + "VerticalSpeed": [ + 0 + ], + "BounceCount": [ + 3 + ], + "Penetration": [ + 1 + ] + }, + { + "Id": "0008", + "Name": "\u5B50\u5F394", + "Type": 1, + "Prefab": "bullet0007", + "HarmRange": [ + 4 + ], + "RepelRange": [ + 15 + ], + "DeviationAngleRange": [ + 0 + ], + "SpeedRange": [ + 350, + 380 + ], + "LifeTimeRange": [ + -1 + ], + "DistanceRange": [ + 400, + 450 + ], + "VerticalSpeed": [ + 0 + ], + "BounceCount": [ + 0 + ], + "Penetration": [ + 0 + ] + }, + { + "Id": "0009", + "Name": "\u5B50\u5F395", + "Type": 1, + "Prefab": "bullet0008", + "HarmRange": [ + 4 + ], + "RepelRange": [ + 15 + ], + "DeviationAngleRange": [ + 0 + ], + "SpeedRange": [ + 350, + 380 + ], + "LifeTimeRange": [ + -1 + ], + "DistanceRange": [ + 400, + 450 + ], + "VerticalSpeed": [ + 0 + ], + "BounceCount": [ + 0 + ], + "Penetration": [ + 0 + ] + }, + { "Id": "1001", "Name": "\u6FC0\u51491", "Type": 2, @@ -225,8 +330,8 @@ 0 ], "SpeedRange": [ - 300, - 330 + 2000, + 2000 ], "LifeTimeRange": [ -1 diff --git a/DungeonShooting_Godot/resource/config/EnemyBase.json b/DungeonShooting_Godot/resource/config/EnemyBase.json index 968950a..657b2b7 100644 --- a/DungeonShooting_Godot/resource/config/EnemyBase.json +++ b/DungeonShooting_Godot/resource/config/EnemyBase.json @@ -3,24 +3,34 @@ "Id": "0001", "__Activity": "enemy0001", "Remark": "\u654C\u4EBA1", - "MoveSpeed": 120, + "Hp": 20, + "MoveSpeed": 80, "Acceleration": 1500, "Friction": 900, "CanPickUpWeapon": true, "ViewRange": 250, "TailAfterViewRange": 400, - "BackViewRange": 50 + "BackViewRange": 50, + "Gold": [ + -2, + 3 + ] }, { "Id": "0002", "__Activity": "enemy0002", "Remark": "\u654C\u4EBA2", + "Hp": 25, "MoveSpeed": 120, "Acceleration": 1500, "Friction": 900, "CanPickUpWeapon": false, "ViewRange": 250, "TailAfterViewRange": 400, - "BackViewRange": 50 + "BackViewRange": 50, + "Gold": [ + -2, + 4 + ] } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/config/Sound.json b/DungeonShooting_Godot/resource/config/Sound.json index 73d3cb1..76bbf8c 100644 --- a/DungeonShooting_Godot/resource/config/Sound.json +++ b/DungeonShooting_Godot/resource/config/Sound.json @@ -66,6 +66,18 @@ "Remark": "\u69B4\u5F39\u53D1\u5C04\u5668" }, { + "Id": "shooting0012", + "Path": "res://resource/sound/sfx/shooting/Shooting0012.ogg", + "Volume": 1, + "Remark": "\u6FC0\u5149\u6B66\u5668" + }, + { + "Id": "shooting0013", + "Path": "res://resource/sound/sfx/shooting/Shooting0013.ogg", + "Volume": 0.6, + "Remark": "P90" + }, + { "Id": "reloading0001", "Path": "res://resource/sound/sfx/reloading/Reloading0001.ogg", "Volume": 1, @@ -111,7 +123,13 @@ "Id": "reloadBegin0006", "Path": "res://resource/sound/sfx/reloading/Reloading_begin0006.ogg", "Volume": 1, - "Remark": "" + "Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA" + }, + { + "Id": "reloadBegin0007", + "Path": "res://resource/sound/sfx/reloading/Reloading_begin0007.ogg", + "Volume": 1, + "Remark": "P90" }, { "Id": "reloadBegin0009", @@ -138,6 +156,12 @@ "Remark": "" }, { + "Id": "reloadBegin0013", + "Path": "res://resource/sound/sfx/reloading/Reloading_begin0013.ogg", + "Volume": 1.2, + "Remark": "" + }, + { "Id": "reloadFinish0002", "Path": "res://resource/sound/sfx/reloading/Reloading_finish0002.ogg", "Volume": 1, @@ -156,6 +180,12 @@ "Remark": "" }, { + "Id": "reloadFinish0005", + "Path": "res://resource/sound/sfx/reloading/Reloading_finish0005.ogg", + "Volume": 1.2, + "Remark": "" + }, + { "Id": "beLoaded0001", "Path": "res://resource/sound/sfx/beLoaded/BeLoaded0001.ogg", "Volume": 1, @@ -212,8 +242,8 @@ { "Id": "beLoaded0010", "Path": "res://resource/sound/sfx/beLoaded/BeLoaded0010.ogg", - "Volume": 1, - "Remark": "\u6B65\u67AA" + "Volume": 0.7, + "Remark": "P90" }, { "Id": "beLoaded0011", @@ -280,5 +310,11 @@ "Path": "res://resource/sound/sfx/collision/Collision0001.ogg", "Volume": 0.7, "Remark": "\u78B0\u649E" + }, + { + "Id": "gold", + "Path": "res://resource/sound/sfx/common/gold.ogg", + "Volume": 1.5, + "Remark": "\u91D1\u5E01" } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/config/WeaponBase.json b/DungeonShooting_Godot/resource/config/WeaponBase.json index 3cbe120..357052f 100644 --- a/DungeonShooting_Godot/resource/config/WeaponBase.json +++ b/DungeonShooting_Godot/resource/config/WeaponBase.json @@ -10,7 +10,7 @@ "AmmoCapacity": 30, "MaxAmmoCapacity": 420, "StandbyAmmoCapacity": 390, - "ReloadTime": 2.2, + "ReloadTime": 2, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -48,15 +48,12 @@ "UpliftAngle": 10, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -74,11 +71,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0002", "__AiAttackAttr": "" }, { - "Id": "0002", + "Id": "0001_ai", "Remark": "\u6B65\u67AA", "__Activity": "", "Weight": 40, @@ -88,7 +84,7 @@ "AmmoCapacity": 30, "MaxAmmoCapacity": 420, "StandbyAmmoCapacity": 390, - "ReloadTime": 2.2, + "ReloadTime": 2, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -102,7 +98,7 @@ "ContinuousCountRange": [ 3 ], - "TriggerInterval": 3, + "TriggerInterval": 2.5, "StartFiringSpeed": 480, "FinalFiringSpeed": 480, "FiringSpeedAddSpeed": 0, @@ -126,15 +122,12 @@ "UpliftAngle": 10, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -152,11 +145,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0001" }, { - "Id": "0003", + "Id": "0002", "Remark": "\u9730\u5F39\u67AA", "__Activity": "weapon0002", "Weight": 40, @@ -166,11 +158,11 @@ "AmmoCapacity": 7, "MaxAmmoCapacity": 140, "StandbyAmmoCapacity": 133, - "ReloadTime": 0.4, + "ReloadTime": 0.26, "AloneReload": true, "AloneReloadCount": 1, - "AloneReloadBeginIntervalTime": 0.6, - "AloneReloadFinishIntervalTime": 0.6, + "AloneReloadBeginIntervalTime": 0.5, + "AloneReloadFinishIntervalTime": 0.45, "AloneReloadCanShoot": true, "LooseShoot": false, "MinChargeTime": 0, @@ -204,15 +196,12 @@ "UpliftAngle": 15, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0002", "__Shell": "shell0002", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0.2, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -230,11 +219,10 @@ "__BeLoadedSound": "beLoaded0005", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0004", "__AiAttackAttr": "" }, { - "Id": "0004", + "Id": "0002_ai", "Remark": "\u9730\u5F39\u67AA", "__Activity": "", "Weight": 40, @@ -244,11 +232,11 @@ "AmmoCapacity": 7, "MaxAmmoCapacity": 140, "StandbyAmmoCapacity": 133, - "ReloadTime": 0.4, + "ReloadTime": 0.26, "AloneReload": true, "AloneReloadCount": 1, - "AloneReloadBeginIntervalTime": 0.6, - "AloneReloadFinishIntervalTime": 0.6, + "AloneReloadBeginIntervalTime": 0.5, + "AloneReloadFinishIntervalTime": 0.45, "AloneReloadCanShoot": true, "LooseShoot": false, "MinChargeTime": 0, @@ -258,7 +246,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 3.5, + "TriggerInterval": 3, "StartFiringSpeed": 120, "FinalFiringSpeed": 120, "FiringSpeedAddSpeed": 0, @@ -282,15 +270,12 @@ "UpliftAngle": 15, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0002", "__Shell": "shell0002", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0.2, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -308,11 +293,10 @@ "__BeLoadedSound": "beLoaded0005", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0002" }, { - "Id": "0005", + "Id": "0003", "Remark": "\u624B\u67AA", "__Activity": "weapon0003", "Weight": 20, @@ -322,7 +306,7 @@ "AmmoCapacity": 12, "MaxAmmoCapacity": 180, "StandbyAmmoCapacity": 168, - "ReloadTime": 1.5, + "ReloadTime": 1.4, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -360,15 +344,12 @@ "UpliftAngle": 20, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -386,11 +367,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0006", "__AiAttackAttr": "" }, { - "Id": "0006", + "Id": "0003_ai", "Remark": "\u624B\u67AA", "__Activity": "", "Weight": 20, @@ -400,7 +380,7 @@ "AmmoCapacity": 12, "MaxAmmoCapacity": 180, "StandbyAmmoCapacity": 168, - "ReloadTime": 1.5, + "ReloadTime": 1.4, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -414,7 +394,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 1.3, + "TriggerInterval": 1, "StartFiringSpeed": 300, "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, @@ -438,15 +418,12 @@ "UpliftAngle": 20, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -464,11 +441,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0003" }, { - "Id": "0007", + "Id": "0004", "Remark": "\u5200", "__Activity": "weapon0004", "Weight": 40, @@ -519,11 +495,8 @@ "__Bullet": "2001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -541,11 +514,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0008", "__AiAttackAttr": "" }, { - "Id": "0008", + "Id": "0004_ai", "Remark": "\u5200", "__Activity": "", "Weight": 40, @@ -596,11 +568,8 @@ "__Bullet": "2001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -618,11 +587,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0004" }, { - "Id": "0009", + "Id": "0005", "Remark": "\u72D9\u51FB\u67AA", "__Activity": "weapon0005", "Weight": 50, @@ -632,7 +600,7 @@ "AmmoCapacity": 10, "MaxAmmoCapacity": 80, "StandbyAmmoCapacity": 70, - "ReloadTime": 3, + "ReloadTime": 2.8, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -670,15 +638,12 @@ "UpliftAngle": 15, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0004", "__Shell": "shell0003", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0.2, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -696,11 +661,10 @@ "__BeLoadedSound": "beLoaded0007", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0010", "__AiAttackAttr": "" }, { - "Id": "0010", + "Id": "0005_ai", "Remark": "\u72D9\u51FB\u67AA", "__Activity": "", "Weight": 50, @@ -710,7 +674,7 @@ "AmmoCapacity": 10, "MaxAmmoCapacity": 80, "StandbyAmmoCapacity": 70, - "ReloadTime": 3, + "ReloadTime": 2.8, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -724,7 +688,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 5, + "TriggerInterval": 4, "StartFiringSpeed": 150, "FinalFiringSpeed": 150, "FiringSpeedAddSpeed": 0, @@ -748,15 +712,12 @@ "UpliftAngle": 15, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0004", "__Shell": "shell0003", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0.2, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -774,11 +735,10 @@ "__BeLoadedSound": "beLoaded0007", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0005" }, { - "Id": "0011", + "Id": "0006", "Remark": "\u51B2\u950B\u67AA", "__Activity": "weapon0006", "Weight": 30, @@ -788,7 +748,7 @@ "AmmoCapacity": 20, "MaxAmmoCapacity": 600, "StandbyAmmoCapacity": 580, - "ReloadTime": 2.2, + "ReloadTime": 1.8, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -826,15 +786,12 @@ "UpliftAngle": 5, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0002", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -844,19 +801,18 @@ ], "__ShootSound": "shooting0002", "__BeginReloadSound": "reloadBegin0005", - "BeginReloadSoundDelayTime": 0.2, + "BeginReloadSoundDelayTime": 0, "__ReloadSound": "", "ReloadSoundDelayTime": 0, "__ReloadFinishSound": "beLoaded0016", - "ReloadFinishSoundAdvanceTime": 0.5, + "ReloadFinishSoundAdvanceTime": 0.6, "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0012", "__AiAttackAttr": "" }, { - "Id": "0012", + "Id": "0006_ai", "Remark": "\u51B2\u950B\u67AA", "__Activity": "", "Weight": 30, @@ -866,7 +822,7 @@ "AmmoCapacity": 20, "MaxAmmoCapacity": 600, "StandbyAmmoCapacity": 580, - "ReloadTime": 2.2, + "ReloadTime": 1.8, "AloneReload": false, "AloneReloadCount": 1, "AloneReloadBeginIntervalTime": 0, @@ -880,7 +836,7 @@ "ContinuousCountRange": [ 5 ], - "TriggerInterval": 3.5, + "TriggerInterval": 3, "StartFiringSpeed": 700, "FinalFiringSpeed": 700, "FiringSpeedAddSpeed": 0, @@ -904,15 +860,12 @@ "UpliftAngle": 5, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0002", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -922,19 +875,18 @@ ], "__ShootSound": "shooting0002", "__BeginReloadSound": "reloadBegin0005", - "BeginReloadSoundDelayTime": 0.2, + "BeginReloadSoundDelayTime": 0, "__ReloadSound": "", "ReloadSoundDelayTime": 0, "__ReloadFinishSound": "beLoaded0016", - "ReloadFinishSoundAdvanceTime": 0.5, + "ReloadFinishSoundAdvanceTime": 0.6, "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0004" }, { - "Id": "0013", + "Id": "0007", "Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", "__Activity": "weapon0007", "Weight": 40, @@ -982,15 +934,12 @@ "UpliftAngle": 5, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0003", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -1008,11 +957,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0014", "__AiAttackAttr": "" }, { - "Id": "0014", + "Id": "0007_ai", "Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", "__Activity": "", "Weight": 40, @@ -1036,7 +984,7 @@ "ContinuousCountRange": [ 10 ], - "TriggerInterval": 4.5, + "TriggerInterval": 4, "StartFiringSpeed": 200, "FinalFiringSpeed": 200, "FiringSpeedAddSpeed": 0, @@ -1060,15 +1008,12 @@ "UpliftAngle": 5, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0003", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -1086,11 +1031,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0006" }, { - "Id": "0015", + "Id": "0008", "Remark": "\u6FC0\u5149\u624B\u67AA", "__Activity": "weapon0008", "Weight": 40, @@ -1138,15 +1082,12 @@ "UpliftAngle": 13, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire2.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0002.tscn", "__Bullet": "1001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -1164,11 +1105,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0016", "__AiAttackAttr": "" }, { - "Id": "0016", + "Id": "0008_ai", "Remark": "\u6FC0\u5149\u624B\u67AA", "__Activity": "", "Weight": 40, @@ -1192,7 +1132,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 4, + "TriggerInterval": 3, "StartFiringSpeed": 300, "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, @@ -1216,15 +1156,12 @@ "UpliftAngle": 13, "DefaultAngle": 0, "UpliftAngleRestore": 1, - "FireEffect": "res://prefab/effect/weapon/ShotFire2.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0002.tscn", "__Bullet": "1001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -1242,11 +1179,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0007" }, { - "Id": "0017", + "Id": "0009", "Remark": "\u69B4\u5F39\u53D1\u5C04\u5668", "__Activity": "weapon0009", "Weight": 40, @@ -1294,15 +1230,12 @@ "UpliftAngle": 16, "DefaultAngle": 0, "UpliftAngleRestore": 3, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0005", "__Shell": "shell0004", "ReloadThrowShell": true, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0.46, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -1320,11 +1253,10 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "0018", "__AiAttackAttr": "" }, { - "Id": "0018", + "Id": "0009_ai", "Remark": "\u69B4\u5F39\u53D1\u5C04\u5668", "__Activity": "", "Weight": 40, @@ -1348,7 +1280,7 @@ "ContinuousCountRange": [ 1 ], - "TriggerInterval": 5, + "TriggerInterval": 4, "StartFiringSpeed": 60, "FinalFiringSpeed": 60, "FiringSpeedAddSpeed": 0, @@ -1372,15 +1304,12 @@ "UpliftAngle": 16, "DefaultAngle": 0, "UpliftAngleRestore": 3, - "FireEffect": "res://prefab/effect/weapon/ShotFire.tscn", + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", "__Bullet": "0005", "__Shell": "shell0004", "ReloadThrowShell": true, + "ThrowShellCount": 1, "ThrowShellDelayTime": 0.46, - "ThrowCollisionSize": { - "X": 20, - "Y": 15 - }, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ 10 @@ -1398,7 +1327,598 @@ "__BeLoadedSound": "", "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, - "__AiUseAttribute": "", "__AiAttackAttr": "0008" + }, + { + "Id": "0010", + "Remark": "M1\u578B\u70ED\u80FD\u72D9\u51FB\u67AA", + "__Activity": "weapon0010", + "Weight": 40, + "WeightType": 2, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 5, + "MaxAmmoCapacity": 150, + "StandbyAmmoCapacity": 80, + "ReloadTime": 2, + "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": 210, + "FinalFiringSpeed": 210, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 0, + "FinalScatteringRange": 20, + "ScatteringRangeAddValue": 7, + "ScatteringRangeBackSpeed": 20, + "ScatteringRangeBackDelayTime": 0.5, + "CameraShake": 2, + "BacklashRange": [ + 2, + 3 + ], + "BacklashRegressionSpeed": 25, + "UpliftAngle": 16, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0004.tscn", + "__Bullet": "0007", + "__Shell": "", + "ReloadThrowShell": false, + "ThrowShellCount": 1, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0012", + "__BeginReloadSound": "reloadBegin0013", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "reloadFinish0005", + "ReloadFinishSoundAdvanceTime": 0.6, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "" + }, + { + "Id": "0010_ai", + "Remark": "M1\u578B\u70ED\u80FD\u72D9\u51FB\u67AA", + "__Activity": "", + "Weight": 40, + "WeightType": 2, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 5, + "MaxAmmoCapacity": 150, + "StandbyAmmoCapacity": 80, + "ReloadTime": 2, + "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": 210, + "FinalFiringSpeed": 210, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 0, + "FinalScatteringRange": 20, + "ScatteringRangeAddValue": 7, + "ScatteringRangeBackSpeed": 20, + "ScatteringRangeBackDelayTime": 0.5, + "CameraShake": 2, + "BacklashRange": [ + 2, + 3 + ], + "BacklashRegressionSpeed": 25, + "UpliftAngle": 16, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0004.tscn", + "__Bullet": "0007", + "__Shell": "", + "ReloadThrowShell": false, + "ThrowShellCount": 1, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0012", + "__BeginReloadSound": "reloadBegin0013", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "reloadFinish0005", + "ReloadFinishSoundAdvanceTime": 0.6, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "0009" + }, + { + "Id": "0011", + "Remark": "weapon0011", + "__Activity": "weapon0011", + "Weight": 30, + "WeightType": 2, + "IsMelee": false, + "ContinuousShoot": true, + "AmmoCapacity": 20, + "MaxAmmoCapacity": 600, + "StandbyAmmoCapacity": 580, + "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": 700, + "FinalFiringSpeed": 700, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 3, + "FinalScatteringRange": 30, + "ScatteringRangeAddValue": 2, + "ScatteringRangeBackSpeed": 40, + "ScatteringRangeBackDelayTime": 0.3, + "CameraShake": 2, + "BacklashRange": [ + 1, + 2 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 5, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0009", + "__Shell": "", + "ReloadThrowShell": false, + "ThrowShellCount": 0, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0002", + "__BeginReloadSound": "reloadBegin0005", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0016", + "ReloadFinishSoundAdvanceTime": 0.6, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "" + }, + { + "Id": "0011_ai", + "Remark": "weapon0011", + "__Activity": "", + "Weight": 30, + "WeightType": 2, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 20, + "MaxAmmoCapacity": 600, + "StandbyAmmoCapacity": 580, + "ReloadTime": 1.8, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0, + "ContinuousCountRange": [ + 5 + ], + "TriggerInterval": 3, + "StartFiringSpeed": 700, + "FinalFiringSpeed": 700, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 3, + "FinalScatteringRange": 30, + "ScatteringRangeAddValue": 2, + "ScatteringRangeBackSpeed": 30, + "ScatteringRangeBackDelayTime": 0.3, + "CameraShake": 2, + "BacklashRange": [ + 1, + 2 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 5, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0009", + "__Shell": "", + "ReloadThrowShell": false, + "ThrowShellCount": 0, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0002", + "__BeginReloadSound": "reloadBegin0005", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0016", + "ReloadFinishSoundAdvanceTime": 0.6, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "0004" + }, + { + "Id": "0013", + "Remark": "P90", + "__Activity": "weapon0013", + "Weight": 40, + "WeightType": 2, + "IsMelee": false, + "ContinuousShoot": true, + "AmmoCapacity": 50, + "MaxAmmoCapacity": 500, + "StandbyAmmoCapacity": 350, + "ReloadTime": 2, + "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": 900, + "FinalFiringSpeed": 900, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0.5, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 5, + "FinalScatteringRange": 35, + "ScatteringRangeAddValue": 2, + "ScatteringRangeBackSpeed": 50, + "ScatteringRangeBackDelayTime": 0.3, + "CameraShake": 2, + "BacklashRange": [ + 1, + 1 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 3, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0003", + "__Shell": "shell0001", + "ReloadThrowShell": false, + "ThrowShellCount": 1, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0013", + "__BeginReloadSound": "reloadBegin0007", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0010", + "ReloadFinishSoundAdvanceTime": 0.35, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "" + }, + { + "Id": "0013_ai", + "Remark": "P90", + "__Activity": "", + "Weight": 40, + "WeightType": 2, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 50, + "MaxAmmoCapacity": 500, + "StandbyAmmoCapacity": 350, + "ReloadTime": 2, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0, + "ContinuousCountRange": [ + 25 + ], + "TriggerInterval": 4, + "StartFiringSpeed": 500, + "FinalFiringSpeed": 500, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 10, + "FinalScatteringRange": 30, + "ScatteringRangeAddValue": 3, + "ScatteringRangeBackSpeed": 50, + "ScatteringRangeBackDelayTime": 0.3, + "CameraShake": 2, + "BacklashRange": [ + 1, + 1 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 3, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0003", + "__Shell": "shell0001", + "ReloadThrowShell": false, + "ThrowShellCount": 1, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0013", + "__BeginReloadSound": "reloadBegin0007", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0010", + "ReloadFinishSoundAdvanceTime": 0.35, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "0006" + }, + { + "Id": "0014", + "Remark": "\u5DE6\u8F6E", + "__Activity": "weapon0014", + "Weight": 20, + "WeightType": 1, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 5, + "MaxAmmoCapacity": 120, + "StandbyAmmoCapacity": 80, + "ReloadTime": 1, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0.05, + "ContinuousCountRange": [ + 1 + ], + "TriggerInterval": 0, + "StartFiringSpeed": 600, + "FinalFiringSpeed": 600, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 2, + "FinalScatteringRange": 25, + "ScatteringRangeAddValue": 5, + "ScatteringRangeBackSpeed": 25, + "ScatteringRangeBackDelayTime": 0.5, + "CameraShake": 4, + "BacklashRange": [ + 3, + 5 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 20, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0008", + "__Shell": "shell0001", + "ReloadThrowShell": true, + "ThrowShellCount": 5, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0004", + "__BeginReloadSound": "reloading0001", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0015", + "ReloadFinishSoundAdvanceTime": 0.43, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "" + }, + { + "Id": "0014_ai", + "Remark": "\u5DE6\u8F6E", + "__Activity": "", + "Weight": 20, + "WeightType": 1, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 5, + "MaxAmmoCapacity": 120, + "StandbyAmmoCapacity": 80, + "ReloadTime": 1, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0.05, + "ContinuousCountRange": [ + 1 + ], + "TriggerInterval": 0.8, + "StartFiringSpeed": 300, + "FinalFiringSpeed": 300, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 2, + "FinalScatteringRange": 25, + "ScatteringRangeAddValue": 5, + "ScatteringRangeBackSpeed": 25, + "ScatteringRangeBackDelayTime": 0.5, + "CameraShake": 4, + "BacklashRange": [ + 3, + 5 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 20, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0008", + "__Shell": "shell0001", + "ReloadThrowShell": true, + "ThrowShellCount": 5, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0004", + "__BeginReloadSound": "reloading0001", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0015", + "ReloadFinishSoundAdvanceTime": 0.43, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "0003" } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json b/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json index fc14eb8..9b89740 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/GroupConfig.json @@ -10,6 +10,18 @@ { "ErrorType": 0, "Path": "resource/map/tileMaps/Test1/battle/Battle2" + }, + { + "ErrorType": 0, + "Path": "resource/map/tileMaps/Test1/battle/Battle3" + }, + { + "ErrorType": 0, + "Path": "resource/map/tileMaps/Test1/battle/Battle4" + }, + { + "ErrorType": 0, + "Path": "resource/map/tileMaps/Test1/battle/Battle5" } ], "InletList": [ @@ -36,7 +48,12 @@ "Path": "resource/map/tileMaps/Test1/reward/Award1" } ], - "ShopList": [], + "ShopList": [ + { + "ErrorType": 0, + "Path": "resource/map/tileMaps/Test1/shop/Shop1" + } + ], "EventList": [], "Remark": "" } 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/battle/Battle3/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preinstall.json new file mode 100644 index 0000000..a9f951a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preinstall.json @@ -0,0 +1 @@ +[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preview.png new file mode 100644 index 0000000..0885a05 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preview.png.import b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preview.png.import new file mode 100644 index 0000000..3a15cae --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/Preview.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djatlwx25yc04" +path="res://.godot/imported/Preview.png-059b7ebb6f66594cdd23b790819a4a0c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/map/tileMaps/Test1/battle/Battle3/Preview.png" +dest_files=["res://.godot/imported/Preview.png-059b7ebb6f66594cdd23b790819a4a0c.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/map/tileMaps/Test1/battle/Battle3/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/RoomInfo.json new file mode 100644 index 0000000..d3e0245 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/RoomInfo.json @@ -0,0 +1 @@ +{"Position":{"X":-10,"Y":-12},"Size":{"X":28,"Y":22},"DoorAreaInfos":[{"Direction":3,"Start":0,"End":128},{"Direction":3,"Start":256,"End":384},{"Direction":2,"Start":256,"End":384},{"Direction":2,"Start":0,"End":128},{"Direction":1,"Start":0,"End":272},{"Direction":0,"Start":0,"End":272}],"GroupName":"Test1","RoomType":1,"RoomName":"Battle3","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/TileInfo.json new file mode 100644 index 0000000..6e8cc90 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle3/TileInfo.json @@ -0,0 +1 @@ +{"NavigationVertices":[{"X":134,"Y":-74},{"X":134,"Y":-138},{"X":250,"Y":-138},{"X":250,"Y":130},{"X":134,"Y":130},{"X":134,"Y":82},{"X":-6,"Y":-74},{"X":-6,"Y":82},{"X":-122,"Y":-138},{"X":-6,"Y":130},{"X":-122,"Y":130},{"X":-6,"Y":-138}],"NavigationPolygon":[[0,1,2,3],[3,4,5],[0,3,5,6],[6,5,7,8],[7,9,10,8],[11,6,8]],"Floor":[-3,-5,0,3,-3,-4,0,3,-3,-3,0,3,-3,-2,0,3,-3,-1,0,3,-3,0,0,3,-3,1,0,3,-3,2,0,3,-3,3,0,3,-3,4,0,3,-2,-5,0,3,-2,-4,0,3,-2,-3,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,-1,-5,0,3,-1,-4,0,3,-1,-3,0,3,-1,-2,0,3,-1,-1,0,3,-1,0,0,3,-1,1,0,3,-1,2,0,3,-1,3,0,3,-1,4,0,3,0,-5,0,3,0,-4,0,3,0,-3,0,3,0,-2,0,3,0,-1,0,3,0,0,0,3,0,1,0,3,0,2,0,3,0,3,0,3,0,4,0,3,1,-5,0,3,1,-4,0,3,1,-3,0,3,1,-2,0,3,1,-1,0,3,1,0,0,3,1,1,0,3,1,2,0,3,1,3,0,3,1,4,0,3,2,-5,0,3,2,-4,0,3,2,-3,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,3,-5,0,3,3,-4,0,3,3,-3,0,3,3,-2,0,3,3,-1,0,3,3,0,0,3,3,1,0,3,3,2,0,3,3,3,0,3,3,4,0,3,4,-5,0,3,4,-4,0,3,4,-3,0,3,4,-2,0,3,4,-1,0,3,4,0,0,3,4,1,0,3,4,2,0,3,4,3,0,3,4,4,0,3,5,-5,0,3,5,-4,0,3,5,-3,0,3,5,-2,0,3,5,-1,0,3,5,0,0,3,5,1,0,3,5,2,0,3,5,3,0,3,5,4,0,3,6,-5,0,3,6,-4,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,7,-5,0,3,7,-4,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,8,-5,0,3,8,-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,9,-5,0,3,9,-4,0,3,9,-3,0,3,9,-2,0,3,9,-1,0,3,9,0,0,3,9,1,0,3,9,2,0,3,9,3,0,3,9,4,0,3,10,-5,0,3,10,-4,0,3,10,-3,0,3,10,-2,0,3,10,-1,0,3,10,0,0,3,10,1,0,3,10,2,0,3,10,3,0,3,10,4,0,3,-8,-9,0,3,-8,-8,0,3,-8,-7,0,3,-8,-6,0,3,-8,-5,0,3,-8,-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,-8,5,0,3,-8,6,0,3,-8,7,0,3,-7,-9,0,3,-7,-8,0,3,-7,-7,0,3,-7,-6,0,3,-7,-5,0,3,-7,-4,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,-7,6,0,3,-7,7,0,3,-6,-9,0,3,-6,-8,0,3,-6,-7,0,3,-6,-6,0,3,-6,-5,0,3,-6,-4,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,-6,6,0,3,-6,7,0,3,-5,-9,0,3,-5,-8,0,3,-5,-7,0,3,-5,-6,0,3,-5,-5,0,3,-5,-4,0,3,-5,-3,0,3,-5,-2,0,3,-5,-1,0,3,-5,0,0,3,-5,1,0,3,-5,2,0,3,-5,3,0,3,-5,4,0,3,-5,5,0,3,-5,6,0,3,-5,7,0,3,-4,-9,0,3,-4,-8,0,3,-4,-7,0,3,-4,-6,0,3,-4,-5,0,3,-4,-4,0,3,-4,-3,0,3,-4,-2,0,3,-4,-1,0,3,-4,0,0,3,-4,1,0,3,-4,2,0,3,-4,3,0,3,-4,4,0,3,-4,5,0,3,-4,6,0,3,-4,7,0,3,-3,-9,0,3,-3,-8,0,3,-3,-7,0,3,-3,-6,0,3,-3,5,0,3,-3,6,0,3,-3,7,0,3,-2,-9,0,3,-2,-8,0,3,-2,-7,0,3,-2,-6,0,3,-2,5,0,3,-2,6,0,3,-2,7,0,3,-1,-9,0,3,-1,-8,0,3,-1,-7,0,3,-1,-6,0,3,-1,5,0,3,-1,6,0,3,-1,7,0,3,8,-9,0,3,8,-8,0,3,8,-7,0,3,8,-6,0,3,8,5,0,3,8,6,0,3,8,7,0,3,9,-9,0,3,9,-8,0,3,9,-7,0,3,9,-6,0,3,9,5,0,3,9,6,0,3,9,7,0,3,10,-9,0,3,10,-8,0,3,10,-7,0,3,10,-6,0,3,10,5,0,3,10,6,0,3,10,7,0,3,11,-9,0,3,11,-8,0,3,11,-7,0,3,11,-6,0,3,11,-5,0,3,11,-4,0,3,11,-3,0,3,11,-2,0,3,11,-1,0,3,11,0,0,3,11,1,0,3,11,2,0,3,11,3,0,3,11,4,0,3,11,5,0,3,11,6,0,3,11,7,0,3,12,-9,0,3,12,-8,0,3,12,-7,0,3,12,-6,0,3,12,-5,0,3,12,-4,0,3,12,-3,0,3,12,-2,0,3,12,-1,0,3,12,0,0,3,12,1,0,3,12,2,0,3,12,3,0,3,12,4,0,3,12,5,0,3,12,6,0,3,12,7,0,3,13,-9,0,3,13,-8,0,3,13,-7,0,3,13,-6,0,3,13,-5,0,3,13,-4,0,3,13,-3,0,3,13,-2,0,3,13,-1,0,3,13,0,0,3,13,1,0,3,13,2,0,3,13,3,0,3,13,4,0,3,13,5,0,3,13,6,0,3,13,7,0,3,14,-9,0,3,14,-8,0,3,14,-7,0,3,14,-6,0,3,14,-5,0,3,14,-4,0,3,14,-3,0,3,14,-2,0,3,14,-1,0,3,14,0,0,3,14,1,0,3,14,2,0,3,14,3,0,3,14,4,0,3,14,5,0,3,14,6,0,3,14,7,0,3,15,-9,0,3,15,-8,0,3,15,-7,0,3,15,-6,0,3,15,-5,0,3,15,-4,0,3,15,-3,0,3,15,-2,0,3,15,-1,0,3,15,0,0,3,15,1,0,3,15,2,0,3,15,3,0,3,15,4,0,3,15,5,0,3,15,6,0,3,15,7,0,3],"Middle":[-8,-11,63,1,-8,-10,2,2,-7,-11,63,1,-7,-10,2,2,-6,-11,63,1,-6,-10,2,2,-5,-11,63,1,-5,-10,2,2,-4,-11,63,1,-4,-10,2,2,-3,-11,63,1,-3,-10,2,2,-2,-11,63,1,-2,-10,2,2,-1,-11,63,1,-1,-10,2,2,0,-7,54,1,0,-6,1,2,1,-7,63,1,1,-6,2,2,2,-7,63,1,2,-6,2,2,3,-7,63,1,3,-6,2,2,4,-7,63,1,4,-6,2,2,5,-7,63,1,5,-6,2,2,6,-7,63,1,6,-6,2,2,7,-7,27,1,7,-6,3,2,8,-11,63,1,8,-10,2,2,9,-11,63,1,9,-10,2,2,10,-11,63,1,10,-10,2,2,11,-11,63,1,11,-10,2,2,12,-11,63,1,12,-10,2,2,13,-11,63,1,13,-10,2,2,14,-11,63,1,14,-10,2,2,15,-11,63,1,15,-10,2,2],"Top":[-10,-12,511,1,-10,-11,511,1,-10,-10,511,1,-10,-9,511,1,-10,-8,511,1,-10,-7,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,-10,7,511,1,-10,8,511,1,-10,9,511,1,-9,-12,511,1,-9,-11,255,1,-9,-10,219,1,-9,-9,219,1,-9,-8,219,1,-9,-7,219,1,-9,-6,219,1,-9,-5,219,1,-9,-4,219,1,-9,-3,219,1,-9,-2,219,1,-9,-1,219,1,-9,0,219,1,-9,1,219,1,-9,2,219,1,-9,3,219,1,-9,4,219,1,-9,5,219,1,-9,6,219,1,-9,7,219,1,-9,8,507,1,-9,9,511,1,-8,-12,511,1,-8,8,504,1,-8,9,511,1,-7,-12,511,1,-7,8,504,1,-7,9,511,1,-6,-12,511,1,-6,8,504,1,-6,9,511,1,-5,-12,511,1,-5,8,504,1,-5,9,511,1,-4,-12,511,1,-4,8,504,1,-4,9,511,1,-3,-12,511,1,-3,8,504,1,-3,9,511,1,-2,-12,511,1,-2,8,504,1,-2,9,511,1,-1,-12,511,1,-1,8,504,1,-1,9,511,1,0,-12,511,1,0,-11,447,1,0,-10,438,1,0,-9,438,1,0,-8,438,1,0,5,432,1,0,6,438,1,0,7,438,1,0,8,510,1,0,9,511,1,1,-12,511,1,1,-11,511,1,1,-10,511,1,1,-9,511,1,1,-8,511,1,1,5,504,1,1,6,511,1,1,7,511,1,1,8,511,1,1,9,511,1,2,-8,511,1,2,5,504,1,2,6,511,1,3,-8,511,1,3,5,504,1,3,6,511,1,4,-8,511,1,4,5,504,1,4,6,511,1,5,-8,511,1,5,5,504,1,5,6,511,1,6,-12,511,1,6,-11,511,1,6,-10,511,1,6,-9,511,1,6,-8,511,1,6,5,504,1,6,6,511,1,6,7,511,1,6,8,511,1,6,9,511,1,7,-12,511,1,7,-11,255,1,7,-10,219,1,7,-9,219,1,7,-8,219,1,7,5,216,1,7,6,219,1,7,7,219,1,7,8,507,1,7,9,511,1,8,-12,511,1,8,8,504,1,8,9,511,1,9,-12,511,1,9,8,504,1,9,9,511,1,10,-12,511,1,10,8,504,1,10,9,511,1,11,-12,511,1,11,8,504,1,11,9,511,1,12,-12,511,1,12,8,504,1,12,9,511,1,13,-12,511,1,13,8,504,1,13,9,511,1,14,-12,511,1,14,8,504,1,14,9,511,1,15,-12,511,1,15,8,504,1,15,9,511,1,16,-12,511,1,16,-11,447,1,16,-10,438,1,16,-9,438,1,16,-8,438,1,16,-7,438,1,16,-6,438,1,16,-5,438,1,16,-4,438,1,16,-3,438,1,16,-2,438,1,16,-1,438,1,16,0,438,1,16,1,438,1,16,2,438,1,16,3,438,1,16,4,438,1,16,5,438,1,16,6,438,1,16,7,438,1,16,8,510,1,16,9,511,1,17,-12,511,1,17,-11,511,1,17,-10,511,1,17,-9,511,1,17,-8,511,1,17,-7,511,1,17,-6,511,1,17,-5,511,1,17,-4,511,1,17,-3,511,1,17,-2,511,1,17,-1,511,1,17,0,511,1,17,1,511,1,17,2,511,1,17,3,511,1,17,4,511,1,17,5,511,1,17,6,511,1,17,7,511,1,17,8,511,1,17,9,511,1],"CustomFloor1":[-6,-8,2,2,6,-6,-7,2,2,7,-7,-7,2,1,7,-7,-8,2,1,6,-5,-8,2,2,6,-5,-7,2,2,7,-4,-8,2,2,6,-4,-7,2,2,7,-3,-8,2,2,6,-3,-7,2,2,7,-2,-8,2,3,6,-2,-7,2,3,7,-2,-6,2,3,7,-3,-6,2,2,7,-2,-5,2,3,7,-3,-5,2,2,7,-2,-4,2,4,9,-3,-4,2,2,7,-2,-3,2,2,7,-3,-3,2,2,7,-4,-3,2,2,7,-4,-4,2,2,7,-3,-2,2,2,7,-4,-2,2,2,7,-3,-1,2,2,7,-4,-1,2,2,7,-3,0,2,2,7,-4,0,2,2,7,-6,-6,2,2,7,-7,-6,2,1,7,-6,-5,2,2,7,-7,-5,2,1,7,-6,-4,2,2,7,-7,-4,2,1,7,-6,-3,2,2,7,-7,-3,2,1,7,-6,-2,2,2,7,-7,-2,2,1,7,-6,-1,2,2,7,-7,-1,2,1,7,-6,0,2,2,7,-7,0,2,1,7,-6,1,2,2,7,-7,1,2,1,7,-6,2,2,2,7,-7,2,2,1,7,-6,3,2,2,7,-7,3,2,1,7,-6,4,2,2,7,-7,4,2,1,7,-6,5,2,2,7,-7,5,2,1,7,-6,6,2,2,8,-7,6,2,1,8,-5,5,2,2,7,-5,6,2,2,8,-4,5,2,2,7,-4,6,2,2,8,-3,5,2,2,7,-3,6,2,2,8,-2,5,2,3,7,-2,6,2,3,8,-2,4,2,3,7,-3,4,2,2,7,-2,3,2,4,8,-3,3,2,2,7,-2,2,2,2,7,-3,2,2,2,7,-2,1,2,2,7,-3,1,2,2,7,-2,0,2,2,7,-2,-1,2,2,7,-2,-2,2,2,7,-4,-6,2,2,7,-4,-5,2,2,7,-5,-5,2,2,7,-5,-6,2,2,7,-5,-4,2,2,7,-5,-3,2,2,7,-5,-2,2,2,7,-5,-1,2,2,7,-5,0,2,2,7,-4,1,2,2,7,-5,1,2,2,7,-4,2,2,2,7,-5,2,2,2,7,-4,3,2,2,7,-5,3,2,2,7,-4,4,2,2,7,-5,4,2,2,7,0,-4,2,2,6,0,-3,2,2,7,-1,-3,2,2,7,-1,-4,2,2,6,1,-4,2,2,6,1,-3,2,2,7,2,-4,2,2,6,2,-3,2,2,7,3,-4,2,2,6,3,-3,2,2,7,4,-4,2,2,6,4,-3,2,2,7,5,-4,2,2,6,5,-3,2,2,7,6,-4,2,2,6,6,-3,2,2,7,7,-4,2,2,6,7,-3,2,2,7,8,-4,2,2,6,8,-3,2,2,7,-1,2,2,2,7,-1,3,2,2,8,0,2,2,2,7,0,3,2,2,8,1,2,2,2,7,1,3,2,2,8,2,2,2,2,7,2,3,2,2,8,3,2,2,2,7,3,3,2,2,8,4,2,2,2,7,4,3,2,2,8,5,2,2,2,7,5,3,2,2,8,6,2,2,2,7,6,3,2,2,8,7,2,2,2,7,7,3,2,2,8,8,2,2,2,7,8,3,2,2,8,9,2,2,2,7,9,3,2,5,8,10,2,2,2,7,10,3,2,2,7,11,2,2,2,7,11,3,2,2,7,11,1,2,2,7,10,1,2,2,7,11,0,2,2,7,10,0,2,2,7,9,1,2,2,7,9,0,2,2,7,10,-1,2,2,7,9,-1,2,2,7,10,-2,2,2,7,9,-2,2,2,7,8,-1,2,2,7,8,-2,2,2,7,7,-1,2,2,7,7,-2,2,2,7,6,-1,2,2,7,6,-2,2,2,7,5,-1,2,2,7,5,-2,2,2,7,4,-1,2,2,7,4,-2,2,2,7,3,-1,2,2,7,3,-2,2,2,7,2,-1,2,2,7,2,-2,2,2,7,1,-1,2,2,7,1,-2,2,2,7,0,-1,2,2,7,0,-2,2,2,7,-1,-1,2,2,7,-1,-2,2,2,7,-1,0,2,2,7,-1,1,2,2,7,0,1,2,2,7,1,1,2,2,7,2,1,2,2,7,3,1,2,2,7,4,1,2,2,7,5,1,2,2,7,6,1,2,2,7,7,1,2,2,7,7,0,2,2,7,6,0,2,2,7,5,0,2,2,7,4,0,2,2,7,3,0,2,2,7,2,0,2,2,7,1,0,2,2,7,0,0,2,2,7,8,0,2,2,7,8,1,2,2,7,10,4,2,2,7,9,4,2,1,7,10,5,2,2,7,9,5,2,1,7,10,6,2,2,8,9,6,2,1,8,11,5,2,2,7,11,6,2,2,8,12,5,2,2,7,12,6,2,2,8,13,5,2,2,7,13,6,2,2,8,14,5,2,3,7,14,6,2,3,8,14,4,2,3,7,13,4,2,2,7,14,3,2,3,7,13,3,2,2,7,14,2,2,3,7,13,2,2,2,7,14,1,2,3,7,13,1,2,2,7,14,0,2,3,7,13,0,2,2,7,14,-1,2,3,7,14,-2,2,3,7,14,-3,2,3,7,14,-4,2,3,7,14,-5,2,3,7,14,-6,2,3,7,14,-7,2,3,7,13,-1,2,2,7,13,-2,2,2,7,13,-3,2,2,7,13,-4,2,2,7,13,-5,2,2,7,13,-6,2,2,7,13,-7,2,2,7,12,4,2,2,7,12,3,2,2,7,12,2,2,2,7,12,1,2,2,7,12,0,2,2,7,12,-1,2,2,7,12,-2,2,2,7,12,-3,2,2,7,12,-4,2,2,7,12,-5,2,2,7,12,-6,2,2,7,12,-7,2,2,7,11,4,2,2,7,11,-1,2,2,7,11,-2,2,2,7,11,-3,2,2,7,11,-4,2,2,7,11,-5,2,2,7,11,-6,2,2,7,11,-7,2,2,7,10,-3,2,2,7,10,-4,2,2,7,10,-5,2,2,7,10,-6,2,2,7,10,-7,2,2,7,9,-3,2,2,7,9,-4,2,5,9,9,-5,2,1,7,9,-6,2,1,7,9,-7,2,1,7,14,-8,2,3,6,13,-8,2,2,6,12,-8,2,2,6,11,-8,2,2,6,10,-8,2,2,6,9,-8,2,1,6],"CustomFloor2":[-5,-1,1,12,4,-4,-1,1,13,4,-2,1,1,14,6,11,3,1,13,6,12,-5,1,13,5,-6,-7,1,8,11,8,0,1,6,14,8,1,1,6,15,9,1,1,7,15,10,1,1,8,15,10,0,1,8,14,9,0,1,7,14,2,-3,1,6,14,2,-2,1,6,15,3,-2,1,7,15,4,-2,1,8,15,4,-3,1,8,14,3,-3,1,7,14,10,-3,1,7,12,10,-2,1,7,13,11,-2,1,8,13,11,-3,1,8,12],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preinstall.json new file mode 100644 index 0000000..a9f951a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preinstall.json @@ -0,0 +1 @@ +[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preview.png new file mode 100644 index 0000000..782fcd0 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preview.png.import b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preview.png.import new file mode 100644 index 0000000..dba2a30 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/Preview.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8mo2r2lt12sx" +path="res://.godot/imported/Preview.png-b0ff3b32424b16028ed7b4659c78de50.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/map/tileMaps/Test1/battle/Battle4/Preview.png" +dest_files=["res://.godot/imported/Preview.png-b0ff3b32424b16028ed7b4659c78de50.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/map/tileMaps/Test1/battle/Battle4/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/RoomInfo.json new file mode 100644 index 0000000..c9960e1 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/RoomInfo.json @@ -0,0 +1 @@ +{"Position":{"X":-13,"Y":-26},"Size":{"X":36,"Y":33},"DoorAreaInfos":[{"Direction":1,"Start":0,"End":448},{"Direction":2,"Start":0,"End":512},{"Direction":0,"Start":0,"End":448},{"Direction":3,"Start":0,"End":512}],"GroupName":"Test1","RoomType":1,"RoomName":"Battle4","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/TileInfo.json new file mode 100644 index 0000000..3b4762a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle4/TileInfo.json @@ -0,0 +1 @@ +{"NavigationVertices":[{"X":278,"Y":-218},{"X":278,"Y":-302},{"X":330,"Y":-362},{"X":330,"Y":82},{"X":-170,"Y":-362},{"X":186,"Y":-302},{"X":278,"Y":6},{"X":-170,"Y":82},{"X":186,"Y":6},{"X":-10,"Y":6},{"X":186,"Y":-78},{"X":-102,"Y":6},{"X":-102,"Y":-78},{"X":-10,"Y":-78},{"X":186,"Y":-218},{"X":-10,"Y":-218},{"X":-10,"Y":-302},{"X":-102,"Y":-302},{"X":-102,"Y":-218},{"X":278,"Y":-78}],"NavigationPolygon":[[0,1,2,3],[4,2,1,5],[6,3,7,8],[8,7,9,10],[11,9,7],[11,7,4,12],[10,9,13],[5,14,15,16],[4,5,16],[4,16,17],[4,17,18],[12,4,18],[13,12,18,15],[10,13,15,14],[19,10,14,0],[19,0,3],[19,3,6]],"Floor":[-11,-23,0,3,-11,-22,0,3,-11,-21,0,3,-11,-20,0,3,-11,-19,0,3,-11,-18,0,3,-11,-17,0,3,-11,-16,0,3,-11,-15,0,3,-11,-14,0,3,-11,-13,0,3,-11,-12,0,3,-11,-11,0,3,-11,-10,0,3,-11,-9,0,3,-11,-8,0,3,-11,-7,0,3,-11,-6,0,3,-11,-5,0,3,-11,-4,0,3,-11,-3,0,3,-11,-2,0,3,-11,-1,0,3,-11,0,0,3,-11,1,0,3,-11,2,0,3,-11,3,0,3,-11,4,0,3,-10,-23,0,3,-10,-22,0,3,-10,-21,0,3,-10,-20,0,3,-10,-19,0,3,-10,-18,0,3,-10,-17,0,3,-10,-16,0,3,-10,-15,0,3,-10,-14,0,3,-10,-13,0,3,-10,-12,0,3,-10,-11,0,3,-10,-10,0,3,-10,-9,0,3,-10,-8,0,3,-10,-7,0,3,-10,-6,0,3,-10,-5,0,3,-10,-4,0,3,-10,-3,0,3,-10,-2,0,3,-10,-1,0,3,-10,0,0,3,-10,1,0,3,-10,2,0,3,-10,3,0,3,-10,4,0,3,-9,-23,0,3,-9,-22,0,3,-9,-21,0,3,-9,-20,0,3,-9,-19,0,3,-9,-18,0,3,-9,-17,0,3,-9,-16,0,3,-9,-15,0,3,-9,-14,0,3,-9,-13,0,3,-9,-12,0,3,-9,-11,0,3,-9,-10,0,3,-9,-9,0,3,-9,-8,0,3,-9,-7,0,3,-9,-6,0,3,-9,-5,0,3,-9,-4,0,3,-9,-3,0,3,-9,-2,0,3,-9,-1,0,3,-9,0,0,3,-9,1,0,3,-9,2,0,3,-9,3,0,3,-9,4,0,3,-8,-23,0,3,-8,-22,0,3,-8,-21,0,3,-8,-20,0,3,-8,-19,0,3,-8,-18,0,3,-8,-17,0,3,-8,-16,0,3,-8,-15,0,3,-8,-14,0,3,-8,-13,0,3,-8,-12,0,3,-8,-11,0,3,-8,-10,0,3,-8,-9,0,3,-8,-8,0,3,-8,-7,0,3,-8,-6,0,3,-8,-5,0,3,-8,-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,-7,-23,0,3,-7,-22,0,3,-7,-21,0,3,-7,-20,0,3,-7,-19,0,3,-7,-18,0,3,-7,-17,0,3,-7,-16,0,3,-7,-15,0,3,-7,-14,0,3,-7,-13,0,3,-7,-12,0,3,-7,-11,0,3,-7,-10,0,3,-7,-9,0,3,-7,-8,0,3,-7,-7,0,3,-7,-6,0,3,-7,-5,0,3,-7,-4,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,-6,-23,0,3,-6,-22,0,3,-6,-21,0,3,-6,-20,0,3,-6,-14,0,3,-6,-13,0,3,-6,-12,0,3,-6,-11,0,3,-6,-10,0,3,-6,-9,0,3,-6,-8,0,3,-6,-7,0,3,-6,-6,0,3,-6,0,0,3,-6,1,0,3,-6,2,0,3,-6,3,0,3,-6,4,0,3,-5,-23,0,3,-5,-22,0,3,-5,-21,0,3,-5,-20,0,3,-5,-14,0,3,-5,-13,0,3,-5,-12,0,3,-5,-11,0,3,-5,-10,0,3,-5,-9,0,3,-5,-8,0,3,-5,-7,0,3,-5,-6,0,3,-5,0,0,3,-5,1,0,3,-5,2,0,3,-5,3,0,3,-5,4,0,3,-4,-23,0,3,-4,-22,0,3,-4,-21,0,3,-4,-20,0,3,-4,-14,0,3,-4,-13,0,3,-4,-12,0,3,-4,-11,0,3,-4,-10,0,3,-4,-9,0,3,-4,-8,0,3,-4,-7,0,3,-4,-6,0,3,-4,0,0,3,-4,1,0,3,-4,2,0,3,-4,3,0,3,-4,4,0,3,-3,-23,0,3,-3,-22,0,3,-3,-21,0,3,-3,-20,0,3,-3,-14,0,3,-3,-13,0,3,-3,-12,0,3,-3,-11,0,3,-3,-10,0,3,-3,-9,0,3,-3,-8,0,3,-3,-7,0,3,-3,-6,0,3,-3,0,0,3,-3,1,0,3,-3,2,0,3,-3,3,0,3,-3,4,0,3,-2,-23,0,3,-2,-22,0,3,-2,-21,0,3,-2,-20,0,3,-2,-14,0,3,-2,-13,0,3,-2,-12,0,3,-2,-11,0,3,-2,-10,0,3,-2,-9,0,3,-2,-8,0,3,-2,-7,0,3,-2,-6,0,3,-2,0,0,3,-2,1,0,3,-2,2,0,3,-2,3,0,3,-2,4,0,3,-1,-23,0,3,-1,-22,0,3,-1,-21,0,3,-1,-20,0,3,-1,-19,0,3,-1,-18,0,3,-1,-17,0,3,-1,-16,0,3,-1,-15,0,3,-1,-14,0,3,-1,-13,0,3,-1,-12,0,3,-1,-11,0,3,-1,-10,0,3,-1,-9,0,3,-1,-8,0,3,-1,-7,0,3,-1,-6,0,3,-1,-5,0,3,-1,-4,0,3,-1,-3,0,3,-1,-2,0,3,-1,-1,0,3,-1,0,0,3,-1,1,0,3,-1,2,0,3,-1,3,0,3,-1,4,0,3,0,-23,0,3,0,-22,0,3,0,-21,0,3,0,-20,0,3,0,-19,0,3,0,-18,0,3,0,-17,0,3,0,-16,0,3,0,-15,0,3,0,-14,0,3,0,-13,0,3,0,-12,0,3,0,-11,0,3,0,-10,0,3,0,-9,0,3,0,-8,0,3,0,-7,0,3,0,-6,0,3,0,-5,0,3,0,-4,0,3,0,-3,0,3,0,-2,0,3,0,-1,0,3,0,0,0,3,0,1,0,3,0,2,0,3,0,3,0,3,0,4,0,3,1,-23,0,3,1,-22,0,3,1,-21,0,3,1,-20,0,3,1,-19,0,3,1,-18,0,3,1,-17,0,3,1,-16,0,3,1,-15,0,3,1,-14,0,3,1,-13,0,3,1,-12,0,3,1,-11,0,3,1,-10,0,3,1,-9,0,3,1,-8,0,3,1,-7,0,3,1,-6,0,3,1,-5,0,3,1,-4,0,3,1,-3,0,3,1,-2,0,3,1,-1,0,3,1,0,0,3,1,1,0,3,1,2,0,3,1,3,0,3,1,4,0,3,2,-23,0,3,2,-22,0,3,2,-21,0,3,2,-20,0,3,2,-19,0,3,2,-18,0,3,2,-17,0,3,2,-16,0,3,2,-15,0,3,2,-14,0,3,2,-13,0,3,2,-12,0,3,2,-11,0,3,2,-10,0,3,2,-9,0,3,2,-8,0,3,2,-7,0,3,2,-6,0,3,2,-5,0,3,2,-4,0,3,2,-3,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,3,-23,0,3,3,-22,0,3,3,-21,0,3,3,-20,0,3,3,-19,0,3,3,-18,0,3,3,-17,0,3,3,-16,0,3,3,-15,0,3,3,-14,0,3,3,-13,0,3,3,-12,0,3,3,-11,0,3,3,-10,0,3,3,-9,0,3,3,-8,0,3,3,-7,0,3,3,-6,0,3,3,-5,0,3,3,-4,0,3,3,-3,0,3,3,-2,0,3,3,-1,0,3,3,0,0,3,3,1,0,3,3,2,0,3,3,3,0,3,3,4,0,3,4,-23,0,3,4,-22,0,3,4,-21,0,3,4,-20,0,3,4,-19,0,3,4,-18,0,3,4,-17,0,3,4,-16,0,3,4,-15,0,3,4,-14,0,3,4,-13,0,3,4,-12,0,3,4,-11,0,3,4,-10,0,3,4,-9,0,3,4,-8,0,3,4,-7,0,3,4,-6,0,3,4,-5,0,3,4,-4,0,3,4,-3,0,3,4,-2,0,3,4,-1,0,3,4,0,0,3,4,1,0,3,4,2,0,3,4,3,0,3,4,4,0,3,5,-23,0,3,5,-22,0,3,5,-21,0,3,5,-20,0,3,5,-19,0,3,5,-18,0,3,5,-17,0,3,5,-16,0,3,5,-15,0,3,5,-14,0,3,5,-13,0,3,5,-12,0,3,5,-11,0,3,5,-10,0,3,5,-9,0,3,5,-8,0,3,5,-7,0,3,5,-6,0,3,5,-5,0,3,5,-4,0,3,5,-3,0,3,5,-2,0,3,5,-1,0,3,5,0,0,3,5,1,0,3,5,2,0,3,5,3,0,3,5,4,0,3,6,-23,0,3,6,-22,0,3,6,-21,0,3,6,-20,0,3,6,-19,0,3,6,-18,0,3,6,-17,0,3,6,-16,0,3,6,-15,0,3,6,-14,0,3,6,-13,0,3,6,-12,0,3,6,-11,0,3,6,-10,0,3,6,-9,0,3,6,-8,0,3,6,-7,0,3,6,-6,0,3,6,-5,0,3,6,-4,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,7,-23,0,3,7,-22,0,3,7,-21,0,3,7,-20,0,3,7,-19,0,3,7,-18,0,3,7,-17,0,3,7,-16,0,3,7,-15,0,3,7,-14,0,3,7,-13,0,3,7,-12,0,3,7,-11,0,3,7,-10,0,3,7,-9,0,3,7,-8,0,3,7,-7,0,3,7,-6,0,3,7,-5,0,3,7,-4,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,8,-23,0,3,8,-22,0,3,8,-21,0,3,8,-20,0,3,8,-19,0,3,8,-18,0,3,8,-17,0,3,8,-16,0,3,8,-15,0,3,8,-14,0,3,8,-13,0,3,8,-12,0,3,8,-11,0,3,8,-10,0,3,8,-9,0,3,8,-8,0,3,8,-7,0,3,8,-6,0,3,8,-5,0,3,8,-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,9,-23,0,3,9,-22,0,3,9,-21,0,3,9,-20,0,3,9,-19,0,3,9,-18,0,3,9,-17,0,3,9,-16,0,3,9,-15,0,3,9,-14,0,3,9,-13,0,3,9,-12,0,3,9,-11,0,3,9,-10,0,3,9,-9,0,3,9,-8,0,3,9,-7,0,3,9,-6,0,3,9,-5,0,3,9,-4,0,3,9,-3,0,3,9,-2,0,3,9,-1,0,3,9,0,0,3,9,1,0,3,9,2,0,3,9,3,0,3,9,4,0,3,10,-23,0,3,10,-22,0,3,10,-21,0,3,10,-20,0,3,10,-19,0,3,10,-18,0,3,10,-17,0,3,10,-16,0,3,10,-15,0,3,10,-14,0,3,10,-13,0,3,10,-12,0,3,10,-11,0,3,10,-10,0,3,10,-9,0,3,10,-8,0,3,10,-7,0,3,10,-6,0,3,10,-5,0,3,10,-4,0,3,10,-3,0,3,10,-2,0,3,10,-1,0,3,10,0,0,3,10,1,0,3,10,2,0,3,10,3,0,3,10,4,0,3,11,-23,0,3,11,-22,0,3,11,-21,0,3,11,-20,0,3,11,-19,0,3,11,-18,0,3,11,-17,0,3,11,-16,0,3,11,-15,0,3,11,-14,0,3,11,-13,0,3,11,-12,0,3,11,-11,0,3,11,-10,0,3,11,-9,0,3,11,-8,0,3,11,-7,0,3,11,-6,0,3,11,-5,0,3,11,-4,0,3,11,-3,0,3,11,-2,0,3,11,-1,0,3,11,0,0,3,11,1,0,3,11,2,0,3,11,3,0,3,11,4,0,3,12,-23,0,3,12,-22,0,3,12,-21,0,3,12,-20,0,3,12,-14,0,3,12,-13,0,3,12,-12,0,3,12,-11,0,3,12,-10,0,3,12,-9,0,3,12,-8,0,3,12,-7,0,3,12,-6,0,3,12,0,0,3,12,1,0,3,12,2,0,3,12,3,0,3,12,4,0,3,13,-23,0,3,13,-22,0,3,13,-21,0,3,13,-20,0,3,13,-14,0,3,13,-13,0,3,13,-12,0,3,13,-11,0,3,13,-10,0,3,13,-9,0,3,13,-8,0,3,13,-7,0,3,13,-6,0,3,13,0,0,3,13,1,0,3,13,2,0,3,13,3,0,3,13,4,0,3,14,-23,0,3,14,-22,0,3,14,-21,0,3,14,-20,0,3,14,-14,0,3,14,-13,0,3,14,-12,0,3,14,-11,0,3,14,-10,0,3,14,-9,0,3,14,-8,0,3,14,-7,0,3,14,-6,0,3,14,0,0,3,14,1,0,3,14,2,0,3,14,3,0,3,14,4,0,3,15,-23,0,3,15,-22,0,3,15,-21,0,3,15,-20,0,3,15,-14,0,3,15,-13,0,3,15,-12,0,3,15,-11,0,3,15,-10,0,3,15,-9,0,3,15,-8,0,3,15,-7,0,3,15,-6,0,3,15,0,0,3,15,1,0,3,15,2,0,3,15,3,0,3,15,4,0,3,16,-23,0,3,16,-22,0,3,16,-21,0,3,16,-20,0,3,16,-14,0,3,16,-13,0,3,16,-12,0,3,16,-11,0,3,16,-10,0,3,16,-9,0,3,16,-8,0,3,16,-7,0,3,16,-6,0,3,16,0,0,3,16,1,0,3,16,2,0,3,16,3,0,3,16,4,0,3,17,-23,0,3,17,-22,0,3,17,-21,0,3,17,-20,0,3,17,-19,0,3,17,-18,0,3,17,-17,0,3,17,-16,0,3,17,-15,0,3,17,-14,0,3,17,-13,0,3,17,-12,0,3,17,-11,0,3,17,-10,0,3,17,-9,0,3,17,-8,0,3,17,-7,0,3,17,-6,0,3,17,-5,0,3,17,-4,0,3,17,-3,0,3,17,-2,0,3,17,-1,0,3,17,0,0,3,17,1,0,3,17,2,0,3,17,3,0,3,17,4,0,3,18,-23,0,3,18,-22,0,3,18,-21,0,3,18,-20,0,3,18,-19,0,3,18,-18,0,3,18,-17,0,3,18,-16,0,3,18,-15,0,3,18,-14,0,3,18,-13,0,3,18,-12,0,3,18,-11,0,3,18,-10,0,3,18,-9,0,3,18,-8,0,3,18,-7,0,3,18,-6,0,3,18,-5,0,3,18,-4,0,3,18,-3,0,3,18,-2,0,3,18,-1,0,3,18,0,0,3,18,1,0,3,18,2,0,3,18,3,0,3,18,4,0,3,19,-23,0,3,19,-22,0,3,19,-21,0,3,19,-20,0,3,19,-19,0,3,19,-18,0,3,19,-17,0,3,19,-16,0,3,19,-15,0,3,19,-14,0,3,19,-13,0,3,19,-12,0,3,19,-11,0,3,19,-10,0,3,19,-9,0,3,19,-8,0,3,19,-7,0,3,19,-6,0,3,19,-5,0,3,19,-4,0,3,19,-3,0,3,19,-2,0,3,19,-1,0,3,19,0,0,3,19,1,0,3,19,2,0,3,19,3,0,3,19,4,0,3,20,-23,0,3,20,-22,0,3,20,-21,0,3,20,-20,0,3,20,-19,0,3,20,-18,0,3,20,-17,0,3,20,-16,0,3,20,-15,0,3,20,-14,0,3,20,-13,0,3,20,-12,0,3,20,-11,0,3,20,-10,0,3,20,-9,0,3,20,-8,0,3,20,-7,0,3,20,-6,0,3,20,-5,0,3,20,-4,0,3,20,-3,0,3,20,-2,0,3,20,-1,0,3,20,0,0,3,20,1,0,3,20,2,0,3,20,3,0,3,20,4,0,3],"Middle":[-11,-25,63,1,-11,-24,2,2,-10,-25,63,1,-10,-24,2,2,-9,-25,63,1,-9,-24,2,2,-8,-25,63,1,-8,-24,2,2,-7,-25,63,1,-7,-24,2,2,-6,-25,63,1,-6,-24,2,2,-6,-16,54,1,-6,-15,1,2,-6,-2,54,1,-6,-1,1,2,-5,-25,63,1,-5,-24,2,2,-5,-16,63,1,-5,-15,2,2,-5,-2,63,1,-5,-1,2,2,-4,-25,63,1,-4,-24,2,2,-4,-16,63,1,-4,-15,2,2,-4,-2,63,1,-4,-1,2,2,-3,-25,63,1,-3,-24,2,2,-3,-16,63,1,-3,-15,2,2,-3,-2,63,1,-3,-1,2,2,-2,-25,63,1,-2,-24,2,2,-2,-16,27,1,-2,-15,3,2,-2,-2,27,1,-2,-1,3,2,-1,-25,63,1,-1,-24,2,2,0,-25,63,1,0,-24,2,2,1,-25,63,1,1,-24,2,2,2,-25,63,1,2,-24,2,2,3,-25,63,1,3,-24,2,2,4,-25,63,1,4,-24,2,2,5,-25,63,1,5,-24,2,2,6,-25,63,1,6,-24,2,2,7,-25,63,1,7,-24,2,2,8,-25,63,1,8,-24,2,2,9,-25,63,1,9,-24,2,2,10,-25,63,1,10,-24,2,2,11,-25,63,1,11,-24,2,2,12,-25,63,1,12,-24,2,2,12,-16,54,1,12,-15,1,2,12,-2,54,1,12,-1,1,2,13,-25,63,1,13,-24,2,2,13,-16,63,1,13,-15,2,2,13,-2,63,1,13,-1,2,2,14,-25,63,1,14,-24,2,2,14,-16,63,1,14,-15,2,2,14,-2,63,1,14,-1,2,2,15,-25,63,1,15,-24,2,2,15,-16,63,1,15,-15,2,2,15,-2,63,1,15,-1,2,2,16,-25,63,1,16,-24,2,2,16,-16,27,1,16,-15,3,2,16,-2,27,1,16,-1,3,2,17,-25,63,1,17,-24,2,2,18,-25,63,1,18,-24,2,2,19,-25,63,1,19,-24,2,2,20,-25,63,1,20,-24,2,2],"Top":[-13,-26,511,1,-13,-25,511,1,-13,-24,511,1,-13,-23,511,1,-13,-22,511,1,-13,-21,511,1,-13,-20,511,1,-13,-19,511,1,-13,-18,511,1,-13,-17,511,1,-13,-16,511,1,-13,-15,511,1,-13,-14,511,1,-13,-13,511,1,-13,-12,511,1,-13,-11,511,1,-13,-10,511,1,-13,-9,511,1,-13,-8,511,1,-13,-7,511,1,-13,-6,511,1,-13,-5,511,1,-13,-4,511,1,-13,-3,511,1,-13,-2,511,1,-13,-1,511,1,-13,0,511,1,-13,1,511,1,-13,2,511,1,-13,3,511,1,-13,4,511,1,-13,5,511,1,-13,6,511,1,-12,-26,511,1,-12,-25,255,1,-12,-24,219,1,-12,-23,219,1,-12,-22,219,1,-12,-21,219,1,-12,-20,219,1,-12,-19,219,1,-12,-18,219,1,-12,-17,219,1,-12,-16,219,1,-12,-15,219,1,-12,-14,219,1,-12,-13,219,1,-12,-12,219,1,-12,-11,219,1,-12,-10,219,1,-12,-9,219,1,-12,-8,219,1,-12,-7,219,1,-12,-6,219,1,-12,-5,219,1,-12,-4,219,1,-12,-3,219,1,-12,-2,219,1,-12,-1,219,1,-12,0,219,1,-12,1,219,1,-12,2,219,1,-12,3,219,1,-12,4,219,1,-12,5,507,1,-12,6,511,1,-11,-26,511,1,-11,5,504,1,-11,6,511,1,-10,-26,511,1,-10,5,504,1,-10,6,511,1,-9,-26,511,1,-9,5,504,1,-9,6,511,1,-8,-26,511,1,-8,5,504,1,-8,6,511,1,-7,-26,511,1,-7,5,504,1,-7,6,511,1,-6,-26,511,1,-6,-19,432,1,-6,-18,438,1,-6,-17,438,1,-6,-5,432,1,-6,-4,438,1,-6,-3,438,1,-6,5,504,1,-6,6,511,1,-5,-26,511,1,-5,-19,504,1,-5,-18,511,1,-5,-17,511,1,-5,-5,504,1,-5,-4,511,1,-5,-3,511,1,-5,5,504,1,-5,6,511,1,-4,-26,511,1,-4,-19,504,1,-4,-18,511,1,-4,-17,511,1,-4,-5,504,1,-4,-4,511,1,-4,-3,511,1,-4,5,504,1,-4,6,511,1,-3,-26,511,1,-3,-19,504,1,-3,-18,511,1,-3,-17,511,1,-3,-5,504,1,-3,-4,511,1,-3,-3,511,1,-3,5,504,1,-3,6,511,1,-2,-26,511,1,-2,-19,216,1,-2,-18,219,1,-2,-17,219,1,-2,-5,216,1,-2,-4,219,1,-2,-3,219,1,-2,5,504,1,-2,6,511,1,-1,-26,511,1,-1,5,504,1,-1,6,511,1,0,-26,511,1,0,5,504,1,0,6,511,1,1,-26,511,1,1,5,504,1,1,6,511,1,2,-26,511,1,2,5,504,1,2,6,511,1,3,-26,511,1,3,5,504,1,3,6,511,1,4,-26,511,1,4,5,504,1,4,6,511,1,5,-26,511,1,5,5,504,1,5,6,511,1,6,-26,511,1,6,5,504,1,6,6,511,1,7,-26,511,1,7,5,504,1,7,6,511,1,8,-26,511,1,8,5,504,1,8,6,511,1,9,-26,511,1,9,5,504,1,9,6,511,1,10,-26,511,1,10,5,504,1,10,6,511,1,11,-26,511,1,11,5,504,1,11,6,511,1,12,-26,511,1,12,-19,432,1,12,-18,438,1,12,-17,438,1,12,-5,432,1,12,-4,438,1,12,-3,438,1,12,5,504,1,12,6,511,1,13,-26,511,1,13,-19,504,1,13,-18,511,1,13,-17,511,1,13,-5,504,1,13,-4,511,1,13,-3,511,1,13,5,504,1,13,6,511,1,14,-26,511,1,14,-19,504,1,14,-18,511,1,14,-17,511,1,14,-5,504,1,14,-4,511,1,14,-3,511,1,14,5,504,1,14,6,511,1,15,-26,511,1,15,-19,504,1,15,-18,511,1,15,-17,511,1,15,-5,504,1,15,-4,511,1,15,-3,511,1,15,5,504,1,15,6,511,1,16,-26,511,1,16,-19,216,1,16,-18,219,1,16,-17,219,1,16,-5,216,1,16,-4,219,1,16,-3,219,1,16,5,504,1,16,6,511,1,17,-26,511,1,17,5,504,1,17,6,511,1,18,-26,511,1,18,5,504,1,18,6,511,1,19,-26,511,1,19,5,504,1,19,6,511,1,20,-26,511,1,20,5,504,1,20,6,511,1,21,-26,511,1,21,-25,447,1,21,-24,438,1,21,-23,438,1,21,-22,438,1,21,-21,438,1,21,-20,438,1,21,-19,438,1,21,-18,438,1,21,-17,438,1,21,-16,438,1,21,-15,438,1,21,-14,438,1,21,-13,438,1,21,-12,438,1,21,-11,438,1,21,-10,438,1,21,-9,438,1,21,-8,438,1,21,-7,438,1,21,-6,438,1,21,-5,438,1,21,-4,438,1,21,-3,438,1,21,-2,438,1,21,-1,438,1,21,0,438,1,21,1,438,1,21,2,438,1,21,3,438,1,21,4,438,1,21,5,510,1,21,6,511,1,22,-26,511,1,22,-25,511,1,22,-24,511,1,22,-23,511,1,22,-22,511,1,22,-21,511,1,22,-20,511,1,22,-19,511,1,22,-18,511,1,22,-17,511,1,22,-16,511,1,22,-15,511,1,22,-14,511,1,22,-13,511,1,22,-12,511,1,22,-11,511,1,22,-10,511,1,22,-9,511,1,22,-8,511,1,22,-7,511,1,22,-6,511,1,22,-5,511,1,22,-4,511,1,22,-3,511,1,22,-2,511,1,22,-1,511,1,22,0,511,1,22,1,511,1,22,2,511,1,22,3,511,1,22,4,511,1,22,5,511,1,22,6,511,1],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preinstall.json new file mode 100644 index 0000000..a9f951a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preinstall.json @@ -0,0 +1 @@ +[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preview.png new file mode 100644 index 0000000..8c2568d --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preview.png.import b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preview.png.import new file mode 100644 index 0000000..338aee7 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/Preview.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://brikrxahc8h8p" +path="res://.godot/imported/Preview.png-1cb30b87cf71ad1cb9553eeb340968d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/map/tileMaps/Test1/battle/Battle5/Preview.png" +dest_files=["res://.godot/imported/Preview.png-1cb30b87cf71ad1cb9553eeb340968d5.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/map/tileMaps/Test1/battle/Battle5/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/RoomInfo.json new file mode 100644 index 0000000..b592355 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/RoomInfo.json @@ -0,0 +1 @@ +{"Position":{"X":-10,"Y":-18},"Size":{"X":21,"Y":24},"DoorAreaInfos":[{"Direction":2,"Start":0,"End":64},{"Direction":2,"Start":128,"End":272},{"Direction":0,"Start":192,"End":288},{"Direction":1,"Start":0,"End":288},{"Direction":3,"Start":0,"End":144}],"GroupName":"Test1","RoomType":1,"RoomName":"Battle5","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/TileInfo.json new file mode 100644 index 0000000..d10141a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle5/TileInfo.json @@ -0,0 +1 @@ +{"NavigationVertices":[{"X":10,"Y":-186},{"X":42,"Y":-186},{"X":42,"Y":-154},{"X":-26,"Y":-78},{"X":-70,"Y":-78},{"X":74,"Y":-154},{"X":74,"Y":-106},{"X":6,"Y":-14},{"X":-26,"Y":-14},{"X":106,"Y":-106},{"X":106,"Y":-74},{"X":122,"Y":-74},{"X":122,"Y":-42},{"X":6,"Y":66},{"X":138,"Y":-42},{"X":138,"Y":66},{"X":-70,"Y":66},{"X":-122,"Y":66},{"X":-122,"Y":-234},{"X":10,"Y":-234}],"NavigationPolygon":[[0,1,2,3,4],[3,2,5,6,7,8],[6,9,10,7],[7,10,11,12,13],[12,14,15,13],[4,16,17,18],[4,18,19,0]],"Floor":[-8,-15,0,3,-8,-14,0,3,-8,-13,0,3,-8,-12,0,3,-8,-11,0,3,-8,-10,0,3,-7,-15,0,3,-7,-14,0,3,-7,-13,0,3,-7,-12,0,3,-7,-11,0,3,-7,-10,0,3,-6,-15,0,3,-6,-14,0,3,-6,-13,0,3,-6,-12,0,3,-6,-11,0,3,-6,-10,0,3,-5,-15,0,3,-5,-14,0,3,-5,-13,0,3,-5,-12,0,3,-5,-11,0,3,-5,-10,0,3,-4,-15,0,3,-4,-14,0,3,-4,-13,0,3,-4,-12,0,3,-4,-11,0,3,-4,-10,0,3,-4,-9,0,3,-4,-8,0,3,-4,-7,0,3,-4,-6,0,3,-3,-15,0,3,-3,-14,0,3,-3,-13,0,3,-3,-12,0,3,-3,-11,0,3,-3,-10,0,3,-3,-9,0,3,-3,-8,0,3,-3,-7,0,3,-3,-6,0,3,-2,-15,0,3,-2,-14,0,3,-2,-13,0,3,-2,-12,0,3,-2,-11,0,3,-2,-10,0,3,-2,-9,0,3,-2,-8,0,3,-2,-7,0,3,-2,-6,0,3,-2,-5,0,3,-2,-4,0,3,-2,-3,0,3,-2,-2,0,3,-1,-15,0,3,-1,-14,0,3,-1,-13,0,3,-1,-12,0,3,-1,-11,0,3,-1,-10,0,3,-1,-9,0,3,-1,-8,0,3,-1,-7,0,3,-1,-6,0,3,-1,-5,0,3,-1,-4,0,3,-1,-3,0,3,-1,-2,0,3,0,-15,0,3,0,-14,0,3,0,-13,0,3,0,-12,0,3,0,-11,0,3,0,-10,0,3,0,-9,0,3,0,-8,0,3,0,-7,0,3,0,-6,0,3,0,-5,0,3,0,-4,0,3,0,-3,0,3,0,-2,0,3,1,-12,0,3,1,-11,0,3,1,-10,0,3,1,-9,0,3,1,-8,0,3,1,-7,0,3,1,-6,0,3,1,-5,0,3,1,-4,0,3,1,-3,0,3,1,-2,0,3,2,-12,0,3,2,-11,0,3,2,-10,0,3,2,-9,0,3,2,-8,0,3,2,-7,0,3,2,-6,0,3,2,-5,0,3,2,-4,0,3,2,-3,0,3,2,-2,0,3,3,-10,0,3,3,-9,0,3,3,-8,0,3,3,-7,0,3,3,-6,0,3,3,-5,0,3,3,-4,0,3,3,-3,0,3,3,-2,0,3,4,-10,0,3,4,-9,0,3,4,-8,0,3,4,-7,0,3,4,-6,0,3,4,-5,0,3,4,-4,0,3,4,-3,0,3,4,-2,0,3,5,-7,0,3,5,-6,0,3,5,-5,0,3,5,-4,0,3,5,-3,0,3,5,-2,0,3,6,-7,0,3,6,-6,0,3,6,-5,0,3,6,-4,0,3,6,-3,0,3,6,-2,0,3,7,-5,0,3,7,-4,0,3,7,-3,0,3,7,-2,0,3,0,-1,0,3,0,0,0,3,0,1,0,3,0,2,0,3,1,-1,0,3,1,0,0,3,1,1,0,3,1,2,0,3,2,-1,0,3,2,0,0,3,2,1,0,3,2,2,0,3,3,-1,0,3,3,0,0,3,3,1,0,3,3,2,0,3,4,-1,0,3,4,0,0,3,4,1,0,3,4,2,0,3,5,-1,0,3,5,0,0,3,5,1,0,3,5,2,0,3,6,-1,0,3,6,0,0,3,6,1,0,3,6,2,0,3,7,-1,0,3,7,0,0,3,7,1,0,3,7,2,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,-9,0,3,-8,-8,0,3,-8,-7,0,3,-8,-6,0,3,-8,-5,0,3,-8,-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,-7,-9,0,3,-7,-8,0,3,-7,-7,0,3,-7,-6,0,3,-7,-5,0,3,-7,-4,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,-6,-9,0,3,-6,-8,0,3,-6,-7,0,3,-6,-6,0,3,-6,-5,0,3,-6,-4,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,-5,-9,0,3,-5,-8,0,3,-5,-7,0,3,-5,-6,0,3,-5,-5,0,3,-5,-4,0,3,-5,-3,0,3,-5,-2,0,3,-5,-1,0,3,-5,0,0,3,-5,1,0,3,-5,2,0,3,-5,3,0,3,0,3,0,3,1,3,0,3,2,3,0,3,3,3,0,3,4,3,0,3,5,3,0,3,6,3,0,3,7,3,0,3,8,3,0,3],"Middle":[-8,-17,63,1,-8,-16,2,2,-7,-17,63,1,-7,-16,2,2,-6,-17,63,1,-6,-16,2,2,-5,-17,63,1,-5,-16,2,2,-4,-17,63,1,-4,-16,2,2,-3,-17,63,1,-3,-16,2,2,-2,-17,63,1,-2,-16,2,2,-1,-17,63,1,-1,-16,2,2,0,-17,63,1,0,-16,2,2,1,-14,54,1,1,-13,1,2,2,-14,63,1,2,-13,2,2,3,-12,54,1,3,-11,1,2,4,-12,63,1,4,-11,2,2,5,-9,54,1,5,-8,1,2,6,-9,63,1,6,-8,2,2,7,-7,54,1,7,-6,1,2,8,-5,54,1,8,-4,1,2],"Top":[-10,-18,511,1,-10,-17,511,1,-10,-16,511,1,-10,-15,511,1,-10,-14,511,1,-10,-13,511,1,-10,-12,511,1,-10,-11,511,1,-10,-10,511,1,-10,-9,511,1,-10,-8,511,1,-10,-7,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,-9,-18,511,1,-9,-17,255,1,-9,-16,219,1,-9,-15,219,1,-9,-14,219,1,-9,-13,219,1,-9,-12,219,1,-9,-11,219,1,-9,-10,219,1,-9,-9,219,1,-9,-8,219,1,-9,-7,219,1,-9,-6,219,1,-9,-5,219,1,-9,-4,219,1,-9,-3,219,1,-9,-2,219,1,-9,-1,219,1,-9,0,219,1,-9,1,219,1,-9,2,219,1,-9,3,219,1,-9,4,507,1,-9,5,511,1,-8,-18,511,1,-8,4,504,1,-8,5,511,1,-7,-18,511,1,-7,4,504,1,-7,5,511,1,-6,-18,511,1,-6,4,504,1,-6,5,511,1,-5,-18,511,1,-5,4,504,1,-5,5,511,1,-4,-18,511,1,-4,-5,432,1,-4,-4,438,1,-4,-3,438,1,-4,-2,438,1,-4,-1,438,1,-4,0,438,1,-4,1,438,1,-4,2,438,1,-4,3,438,1,-4,4,510,1,-4,5,511,1,-3,-18,511,1,-3,-5,216,1,-3,-4,219,1,-3,-3,219,1,-3,-2,219,1,-3,-1,507,1,-3,0,511,1,-3,1,511,1,-3,2,511,1,-3,3,511,1,-3,4,511,1,-3,5,511,1,-2,-18,511,1,-2,-1,504,1,-2,0,511,1,-2,1,511,1,-2,2,511,1,-2,3,511,1,-2,4,511,1,-2,5,511,1,-1,-18,511,1,-1,-1,216,1,-1,0,219,1,-1,1,219,1,-1,2,219,1,-1,3,219,1,-1,4,507,1,-1,5,511,1,0,-18,511,1,0,4,504,1,0,5,511,1,1,-18,511,1,1,-17,447,1,1,-16,438,1,1,-15,438,1,1,4,504,1,1,5,511,1,2,-18,511,1,2,-17,511,1,2,-16,511,1,2,-15,511,1,2,4,504,1,2,5,511,1,3,-15,511,1,3,-14,447,1,3,-13,438,1,3,4,504,1,3,5,511,1,4,-15,511,1,4,-14,511,1,4,-13,511,1,4,4,504,1,4,5,511,1,5,-13,511,1,5,-12,447,1,5,-11,438,1,5,-10,438,1,5,4,504,1,5,5,511,1,6,-13,511,1,6,-12,511,1,6,-11,511,1,6,-10,511,1,6,4,504,1,6,5,511,1,7,-10,511,1,7,-9,447,1,7,-8,438,1,7,4,504,1,7,5,511,1,8,-10,511,1,8,-9,511,1,8,-8,511,1,8,-7,447,1,8,-6,438,1,8,4,504,1,8,5,511,1,9,-8,511,1,9,-7,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,510,1,9,5,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],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ 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..2d1d0d5 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":false,"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}]},{"Position":{"X":23,"Y":37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0005","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":24,"Y":-30},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":40,"Y":-10},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":-37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-2,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":29,"Y":63},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0013","Weight":100,"Attr":{"CurrAmmon":"50","ResidueAmmo":"250"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-30,"Y":39},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-19,"Y":71},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":48,"Y":29},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":20,"Y":94},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0014","Weight":100,"Attr":{"CurrAmmon":"5","ResidueAmmo":"60"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-14,"Y":97},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0011","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"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..a47be3d 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..30500bf 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":74,"Y":2},{"X":74,"Y":38},{"X":58,"Y":82},{"X":-26,"Y":22},{"X":-26,"Y":-14},{"X":90,"Y":-42},{"X":90,"Y":-14},{"X":90,"Y":2},{"X":118,"Y":38},{"X":118,"Y":22},{"X":58,"Y":130},{"X":-58,"Y":130},{"X":-58,"Y":98},{"X":-86,"Y":22},{"X":-106,"Y":98},{"X":-106,"Y":-42},{"X":-86,"Y":-14},{"X":-42,"Y":-42},{"X":-42,"Y":-58},{"X":90,"Y":-58}],"NavigationPolygon":[[0,1,2,3],[4,5,6,7,8],[9,0,3,10],[10,11,4],[12,13,2,1],[12,1,6,5],[7,6,14,15,16],[17,7,16,18],[17,18,19,20],[20,19,21,8],[4,8,21,22,23,9],[4,9,10]],"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,-1,2,0,3,0,2,0,3,1,2,0,3,2,2,0,3,2,1,0,3,1,1,0,3,0,1,0,3,-1,1,0,3,-1,5,0,3,0,5,0,3,0,6,0,3,-1,6,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,0,-6,63,1,0,-5,2,2,1,-6,63,1,1,-5,2,2,2,-6,63,1,2,-5,2,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,-3,2,1,8,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/Preview.png.import b/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/Preview.png.import index f4902eb..f462856 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/Preview.png.import +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/Preview.png.import @@ -2,11 +2,7 @@ importer="texture" type="CompressedTexture2D" -<<<<<<< HEAD -uid="uid://wew7xnxc4d50" -======= -uid="uid://c08d7xo84ssqp" ->>>>>>> faff39f870b1097c233b529865b4f3ee2311c8a3 +uid="uid://b72ww741x2t0w" path="res://.godot/imported/Preview.png-e48e389971aff40736b911be53ae62ea.ctex" metadata={ "vram_texture": false 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 1c2618c..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":[{"Direction":3,"Start":0,"End":112},{"Direction":0,"Start":0,"End":112},{"Direction":2,"Start":0,"End":112},{"Direction":1,"Start":0,"End":112}],"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/reward/Award1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/TileInfo.json index 1feed79..ce0c2b2 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/TileInfo.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/reward/Award1/TileInfo.json @@ -1 +1 @@ -{"NavigationVertices":[{"X":26,"Y":66},{"X":-74,"Y":66},{"X":-74,"Y":-42},{"X":26,"Y":-42}],"NavigationPolygon":[[0,1,2,3]],"Floor":[-5,-3,0,3,-5,-2,0,3,-5,-1,0,3,-5,0,0,3,-5,1,0,3,-5,2,0,3,-4,-3,0,3,-4,-2,0,3,-4,-1,0,3,-4,0,0,3,-4,1,0,3,-4,2,0,3,-3,-3,0,3,-3,-2,0,3,-3,-1,0,3,-3,0,0,3,-3,1,0,3,-3,2,0,3,-2,-3,0,3,-2,-2,0,3,-2,-1,0,3,-2,0,0,3,-2,1,0,3,-2,2,0,3,-1,-3,0,3,-1,-2,0,3,-1,-1,0,3,-1,0,0,3,-1,1,0,3,-1,2,0,3,0,-3,0,3,0,-2,0,3,0,-1,0,3,0,0,0,3,0,1,0,3,0,2,0,3,1,-3,0,3,1,-2,0,3,1,-1,0,3,1,0,0,3,1,1,0,3,1,2,0,3,-5,3,0,3,-4,3,0,3,-3,3,0,3,-2,3,0,3,-1,3,0,3,0,3,0,3,1,3,0,3],"Middle":[-5,-5,63,1,-5,-4,2,2,-4,-5,63,1,-4,-4,2,2,-3,-5,63,1,-3,-4,2,2,-2,-5,63,1,-2,-4,2,2,-1,-5,63,1,-1,-4,2,2,0,-5,63,1,0,-4,2,2,1,-5,63,1,1,-4,2,2],"Top":[-7,-6,511,1,-7,-5,511,1,-7,-4,511,1,-7,-3,511,1,-7,-2,511,1,-7,-1,511,1,-7,0,511,1,-7,1,511,1,-7,2,511,1,-7,3,511,1,-7,4,511,1,-7,5,511,1,-6,-6,511,1,-6,-5,255,1,-6,-4,219,1,-6,-3,219,1,-6,-2,219,1,-6,-1,219,1,-6,0,219,1,-6,1,219,1,-6,2,219,1,-6,3,219,1,-6,4,507,1,-6,5,511,1,-5,-6,511,1,-5,4,504,1,-5,5,511,1,-4,-6,511,1,-4,4,504,1,-4,5,511,1,-3,-6,511,1,-3,4,504,1,-3,5,511,1,-2,-6,511,1,-2,4,504,1,-2,5,511,1,-1,-6,511,1,-1,4,504,1,-1,5,511,1,0,-6,511,1,0,4,504,1,0,5,511,1,1,-6,511,1,1,4,504,1,1,5,511,1,2,-6,511,1,2,-5,447,1,2,-4,438,1,2,-3,438,1,2,-2,438,1,2,-1,438,1,2,0,438,1,2,1,438,1,2,2,438,1,2,3,438,1,2,4,510,1,2,5,511,1,3,-6,511,1,3,-5,511,1,3,-4,511,1,3,-3,511,1,3,-2,511,1,3,-1,511,1,3,0,511,1,3,1,511,1,3,2,511,1,3,3,511,1,3,4,511,1,3,5,511,1],"CustomFloor1":[-3,-1,1,18,8,-3,0,1,18,8,-3,1,1,18,8,-2,-1,1,18,8,-2,0,1,18,8,-2,1,1,18,8,-1,-1,1,18,8,-1,0,1,18,8,-1,1,1,18,8,-4,-2,2,4,8,-4,-3,2,2,6,-1,-2,2,2,8,-1,-3,2,2,6,-2,-2,2,2,8,-2,-3,2,2,6,-3,-2,2,2,8,-3,-3,2,2,6,0,-3,2,2,6,0,-2,2,5,8,1,-3,2,3,6,1,-2,2,3,7,1,-1,2,3,7,0,-1,2,1,7,1,0,2,3,7,0,0,2,1,7,1,1,2,3,7,0,1,2,1,7,1,2,2,3,7,0,2,2,5,9,1,3,2,3,8,0,3,2,2,8,-1,3,2,2,8,-1,2,2,2,6,-2,3,2,2,8,-2,2,2,2,6,-3,3,2,2,8,-3,2,2,2,6,-4,3,2,2,8,-4,2,2,4,9,-5,3,2,1,8,-5,2,2,1,7,-4,1,2,3,7,-5,1,2,1,7,-4,0,2,3,7,-5,0,2,1,7,-4,-1,2,3,7,-5,-1,2,1,7,-5,-2,2,1,7,-5,-3,2,1,6],"CustomFloor2":[-4,-2,1,13,5,0,-2,1,13,5,-4,2,1,13,6,0,2,1,13,6],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ No newline at end of file +{"NavigationVertices":[{"X":26,"Y":66},{"X":-74,"Y":66},{"X":-74,"Y":-42},{"X":26,"Y":-42}],"NavigationPolygon":[[0,1,2,3]],"Floor":[-5,-3,0,3,-5,-2,0,3,-5,-1,0,3,-5,0,0,3,-5,1,0,3,-5,2,0,3,-4,-3,0,3,-4,-2,0,3,-4,-1,0,3,-4,0,0,3,-4,1,0,3,-4,2,0,3,-3,-3,0,3,-3,-1,0,3,-3,0,0,3,-3,1,0,3,-3,2,0,3,-2,-3,0,3,-2,-2,0,3,-2,-1,0,3,-2,0,0,3,-2,1,0,3,-2,2,0,3,-1,-3,0,3,-1,-2,0,3,-1,-1,0,3,-1,0,0,3,-1,1,0,3,-1,2,0,3,0,-3,0,3,0,-2,0,3,0,-1,0,3,0,0,0,3,0,1,0,3,0,2,0,3,1,-3,0,3,1,-2,0,3,1,-1,0,3,1,0,0,3,1,1,0,3,1,2,0,3,-5,3,0,3,-4,3,0,3,-3,3,0,3,-2,3,0,3,-1,3,0,3,0,3,0,3,1,3,0,3,-3,-2,0,3],"Middle":[-5,-5,63,1,-5,-4,2,2,-4,-5,63,1,-4,-4,2,2,-3,-5,63,1,-3,-4,2,2,-2,-5,63,1,-2,-4,2,2,-1,-5,63,1,-1,-4,2,2,0,-5,63,1,0,-4,2,2,1,-5,63,1,1,-4,2,2],"Top":[-7,-6,511,1,-7,-5,511,1,-7,-4,511,1,-7,-3,511,1,-7,-2,511,1,-7,-1,511,1,-7,0,511,1,-7,1,511,1,-7,2,511,1,-7,3,511,1,-7,4,511,1,-7,5,511,1,-6,-6,511,1,-6,-5,255,1,-6,-4,219,1,-6,-3,219,1,-6,-2,219,1,-6,-1,219,1,-6,0,219,1,-6,1,219,1,-6,2,219,1,-6,3,219,1,-6,4,507,1,-6,5,511,1,-5,-6,511,1,-5,4,504,1,-5,5,511,1,-4,-6,511,1,-4,4,504,1,-4,5,511,1,-3,-6,511,1,-3,4,504,1,-3,5,511,1,-2,-6,511,1,-2,4,504,1,-2,5,511,1,-1,-6,511,1,-1,4,504,1,-1,5,511,1,0,-6,511,1,0,4,504,1,0,5,511,1,1,-6,511,1,1,4,504,1,1,5,511,1,2,-6,511,1,2,-5,447,1,2,-4,438,1,2,-3,438,1,2,-2,438,1,2,-1,438,1,2,0,438,1,2,1,438,1,2,2,438,1,2,3,438,1,2,4,510,1,2,5,511,1,3,-6,511,1,3,-5,511,1,3,-4,511,1,3,-3,511,1,3,-2,511,1,3,-1,511,1,3,0,511,1,3,1,511,1,3,2,511,1,3,3,511,1,3,4,511,1,3,5,511,1],"CustomFloor1":[-3,-1,1,18,8,-3,0,1,18,8,-3,1,1,18,8,-2,-1,1,18,8,-2,0,1,18,8,-2,1,1,18,8,-1,-1,1,18,8,-1,0,1,18,8,-1,1,1,18,8,-4,-2,2,4,8,-4,-3,2,2,6,-1,-2,2,2,8,-1,-3,2,2,6,-2,-2,2,2,8,-2,-3,2,2,6,-3,-2,2,2,8,-3,-3,2,2,6,0,-3,2,2,6,0,-2,2,5,8,1,-3,2,3,6,1,-2,2,3,7,1,-1,2,3,7,0,-1,2,1,7,1,0,2,3,7,0,0,2,1,7,1,1,2,3,7,0,1,2,1,7,1,2,2,3,7,0,2,2,5,9,1,3,2,3,8,0,3,2,2,8,-1,3,2,2,8,-1,2,2,2,6,-2,3,2,2,8,-2,2,2,2,6,-3,3,2,2,8,-3,2,2,2,6,-4,3,2,2,8,-4,2,2,4,9,-5,3,2,1,8,-5,2,2,1,7,-4,1,2,3,7,-5,1,2,1,7,-4,0,2,3,7,-5,0,2,1,7,-4,-1,2,3,7,-5,-1,2,1,7,-5,-2,2,1,7,-5,-3,2,1,6],"CustomFloor2":[-4,-2,1,13,5,0,-2,1,13,5,-4,2,1,13,6,0,2,1,13,6],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preinstall.json new file mode 100644 index 0000000..a9f951a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preinstall.json @@ -0,0 +1 @@ +[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preview.png new file mode 100644 index 0000000..6ca318e --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preview.png Binary files differ diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preview.png.import b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preview.png.import new file mode 100644 index 0000000..8ac948a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/Preview.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8sw1xi6iosg4" +path="res://.godot/imported/Preview.png-a6cb6d2603055a6ca060f3ff00e023de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/map/tileMaps/Test1/shop/Shop1/Preview.png" +dest_files=["res://.godot/imported/Preview.png-a6cb6d2603055a6ca060f3ff00e023de.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/map/tileMaps/Test1/shop/Shop1/RoomInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/RoomInfo.json new file mode 100644 index 0000000..083719b --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/RoomInfo.json @@ -0,0 +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":82,"RoomName":"Shop1","Weight":100,"Remark":""} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/TileInfo.json new file mode 100644 index 0000000..dd6a0b7 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/shop/Shop1/TileInfo.json @@ -0,0 +1 @@ +{"NavigationVertices":[{"X":58,"Y":-58},{"X":74,"Y":-58},{"X":74,"Y":-42},{"X":90,"Y":-42},{"X":90,"Y":-26},{"X":106,"Y":-26},{"X":106,"Y":130},{"X":90,"Y":130},{"X":90,"Y":146},{"X":74,"Y":146},{"X":-122,"Y":-42},{"X":-138,"Y":130},{"X":-138,"Y":-26},{"X":74,"Y":162},{"X":58,"Y":162},{"X":-122,"Y":146},{"X":58,"Y":178},{"X":42,"Y":178},{"X":-90,"Y":162},{"X":42,"Y":194},{"X":-74,"Y":194},{"X":-74,"Y":178},{"X":-90,"Y":178},{"X":-122,"Y":162},{"X":-138,"Y":146},{"X":-154,"Y":130},{"X":-154,"Y":-26},{"X":-138,"Y":-42},{"X":-122,"Y":-58},{"X":-106,"Y":-58},{"X":-106,"Y":-74},{"X":58,"Y":-74}],"NavigationPolygon":[[0,1,2],[2,3,4],[4,5,6,7],[7,8,9,10],[11,12,10,9,13,14,15],[14,16,17,18,15],[17,19,20,21],[21,22,18],[18,23,15],[15,24,11],[11,25,26,12],[12,27,10],[10,28,29,2,4,7],[29,30,31,0],[29,0,2],[18,17,21]],"Floor":[-4,-4,0,3,-3,-3,0,3,-2,-2,0,3,-1,-1,0,3,0,0,0,3,1,0,0,3,2,1,0,3,3,1,0,3,3,2,0,3,4,2,0,3,-4,-3,0,3,-4,-2,0,3,-4,-1,0,3,-4,0,0,3,-4,1,0,3,-4,2,0,3,-3,-4,0,3,-3,-2,0,3,-3,-1,0,3,-3,0,0,3,-3,1,0,3,-3,2,0,3,-2,-4,0,3,-2,-3,0,3,-2,-1,0,3,-2,0,0,3,-2,1,0,3,-2,2,0,3,-1,-4,0,3,-1,-3,0,3,-1,-2,0,3,-1,0,0,3,-1,1,0,3,-1,2,0,3,0,-4,0,3,0,-3,0,3,0,-2,0,3,0,-1,0,3,0,1,0,3,0,2,0,3,1,-4,0,3,1,-3,0,3,1,-2,0,3,1,-1,0,3,1,1,0,3,1,2,0,3,2,-4,0,3,2,-3,0,3,2,-2,0,3,2,-1,0,3,2,0,0,3,2,2,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,4,1,0,3,-1,3,0,3,-1,4,0,3,-1,5,0,3,-1,6,0,3,-1,7,0,3,0,3,0,3,0,4,0,3,0,5,0,3,0,6,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,4,3,0,3,4,4,0,3,4,5,0,3,4,6,0,3,4,7,0,3,-8,-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,-7,-4,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,-6,-4,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,-5,-4,0,3,-5,-3,0,3,-5,-2,0,3,-5,-1,0,3,-5,0,0,3,-5,1,0,3,-5,2,0,3,-1,8,0,3,-1,9,0,3,0,8,0,3,0,9,0,3,1,8,0,3,1,9,0,3,2,8,0,3,2,9,0,3,3,8,0,3,3,9,0,3,4,8,0,3,4,9,0,3,-8,3,0,3,-8,4,0,3,-8,5,0,3,-8,6,0,3,-8,7,0,3,-8,8,0,3,-8,9,0,3,-7,3,0,3,-7,4,0,3,-7,5,0,3,-7,6,0,3,-7,7,0,3,-7,8,0,3,-7,9,0,3,-6,3,0,3,-6,4,0,3,-6,5,0,3,-6,6,0,3,-6,7,0,3,-6,8,0,3,-6,9,0,3,-5,3,0,3,-5,4,0,3,-5,5,0,3,-5,6,0,3,-5,7,0,3,-5,8,0,3,-5,9,0,3,-4,3,0,3,-4,4,0,3,-4,5,0,3,-4,6,0,3,-4,7,0,3,-4,8,0,3,-4,9,0,3,-3,3,0,3,-3,4,0,3,-3,5,0,3,-3,6,0,3,-3,7,0,3,-3,8,0,3,-3,9,0,3,-2,3,0,3,-2,4,0,3,-2,5,0,3,-2,6,0,3,-2,7,0,3,-2,8,0,3,-2,9,0,3,-6,10,0,3,-5,10,0,3,-4,10,0,3,-3,10,0,3,-2,10,0,3,-1,10,0,3,0,10,0,3,1,10,0,3,2,10,0,3,3,10,0,3,5,-3,0,3,5,-2,0,3,5,-1,0,3,5,0,0,3,5,1,0,3,5,2,0,3,5,3,0,3,5,4,0,3,5,5,0,3,5,6,0,3,5,7,0,3,5,8,0,3,-9,-2,0,3,-9,-1,0,3,-9,0,0,3,-9,1,0,3,-9,2,0,3,-9,3,0,3,-9,4,0,3,-9,5,0,3,-9,6,0,3,-9,7,0,3,-9,8,0,3,-9,-3,0,3,-10,-2,0,3,-10,-1,0,3,-10,0,0,3,-10,1,0,3,-10,2,0,3,-10,3,0,3,-10,4,0,3,-10,5,0,3,-10,6,0,3,-10,7,0,3,-5,11,0,3,-4,11,0,3,-3,11,0,3,-2,11,0,3,-1,11,0,3,0,11,0,3,1,11,0,3,2,11,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,6,6,0,3,6,7,0,3,-7,-5,0,3,-6,-5,0,3,-5,-5,0,3,-4,-5,0,3,-3,-5,0,3,-2,-5,0,3,-1,-5,0,3,0,-5,0,3,1,-5,0,3,2,-5,0,3,3,-5,0,3],"Middle":[-10,-4,27,1,-10,-3,3,2,-9,-5,27,1,-9,-4,3,2,-8,-6,27,1,-8,-5,3,2,-7,-7,63,1,-7,-6,2,2,-6,-7,63,1,-6,-6,2,2,-5,-7,63,1,-5,-6,2,2,-4,-7,63,1,-4,-6,2,2,-3,-7,63,1,-3,-6,2,2,-2,-7,63,1,-2,-6,2,2,-1,-7,63,1,-1,-6,2,2,0,-7,63,1,0,-6,2,2,1,-7,63,1,1,-6,2,2,2,-7,63,1,2,-6,2,2,3,-7,63,1,3,-6,2,2,4,-6,54,1,4,-5,1,2,5,-5,54,1,5,-4,1,2,6,-4,54,1,6,-3,1,2],"Top":[-12,-5,511,1,-12,-4,511,1,-12,-3,511,1,-12,-2,511,1,-12,-1,511,1,-12,0,511,1,-12,1,511,1,-12,2,511,1,-12,3,511,1,-12,4,511,1,-12,5,511,1,-12,6,511,1,-12,7,511,1,-12,8,511,1,-12,9,511,1,-11,-6,511,1,-11,-5,511,1,-11,-4,255,1,-11,-3,219,1,-11,-2,219,1,-11,-1,219,1,-11,0,219,1,-11,1,219,1,-11,2,219,1,-11,3,219,1,-11,4,219,1,-11,5,219,1,-11,6,219,1,-11,7,219,1,-11,8,507,1,-11,9,511,1,-11,10,511,1,-10,-7,511,1,-10,-6,511,1,-10,-5,255,1,-10,8,216,1,-10,9,507,1,-10,10,511,1,-10,11,511,1,-9,-8,511,1,-9,-7,511,1,-9,-6,255,1,-9,9,216,1,-9,10,507,1,-9,11,511,1,-8,-8,511,1,-8,-7,255,1,-8,10,504,1,-8,11,511,1,-8,12,511,1,-7,-8,511,1,-7,10,216,1,-7,11,507,1,-7,12,511,1,-7,13,511,1,-6,-8,511,1,-6,11,216,1,-6,12,507,1,-6,13,511,1,-5,-8,511,1,-5,12,504,1,-5,13,511,1,-4,-8,511,1,-4,12,504,1,-4,13,511,1,-3,-8,511,1,-3,12,504,1,-3,13,511,1,-2,-8,511,1,-2,12,504,1,-2,13,511,1,-1,-8,511,1,-1,12,504,1,-1,13,511,1,0,-8,511,1,0,12,504,1,0,13,511,1,1,-8,511,1,1,12,504,1,1,13,511,1,2,-8,511,1,2,12,504,1,2,13,511,1,3,-8,511,1,3,11,432,1,3,12,510,1,3,13,511,1,4,-8,511,1,4,-7,447,1,4,10,432,1,4,11,510,1,4,12,511,1,4,13,511,1,5,-8,511,1,5,-7,511,1,5,-6,447,1,5,9,432,1,5,10,510,1,5,11,511,1,5,12,511,1,6,-7,511,1,6,-6,511,1,6,-5,447,1,6,8,432,1,6,9,510,1,6,10,511,1,6,11,511,1,7,-6,511,1,7,-5,511,1,7,-4,447,1,7,-3,438,1,7,-2,438,1,7,-1,438,1,7,0,438,1,7,1,438,1,7,2,438,1,7,3,438,1,7,4,438,1,7,5,438,1,7,6,438,1,7,7,438,1,7,8,510,1,7,9,511,1,7,10,511,1,8,-5,511,1,8,-4,511,1,8,-3,511,1,8,-2,511,1,8,-1,511,1,8,0,511,1,8,1,511,1,8,2,511,1,8,3,511,1,8,4,511,1,8,5,511,1,8,6,511,1,8,7,511,1,8,8,511,1,8,9,511,1],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/sound/sfx/common/gold.ogg b/DungeonShooting_Godot/resource/sound/sfx/common/gold.ogg new file mode 100644 index 0000000..b4b2a02 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/common/gold.ogg Binary files differ diff --git a/DungeonShooting_Godot/resource/sound/sfx/common/gold.ogg.import b/DungeonShooting_Godot/resource/sound/sfx/common/gold.ogg.import new file mode 100644 index 0000000..e57b929 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/common/gold.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c7u5cykgimrd4" +path="res://.godot/imported/gold.ogg-d06a726cc6fb4031ede1140774780273.oggvorbisstr" + +[deps] + +source_file="res://resource/sound/sfx/common/gold.ogg" +dest_files=["res://.godot/imported/gold.ogg-d06a726cc6fb4031ede1140774780273.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0013.ogg b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0013.ogg new file mode 100644 index 0000000..937aa7b --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0013.ogg Binary files differ diff --git a/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0013.ogg.import b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0013.ogg.import new file mode 100644 index 0000000..f339289 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_begin0013.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://vcstbu7wion4" +path="res://.godot/imported/Reloading_begin0013.ogg-9e3fec03cec4408e1ae49f78ae7fd10c.oggvorbisstr" + +[deps] + +source_file="res://resource/sound/sfx/reloading/Reloading_begin0013.ogg" +dest_files=["res://.godot/imported/Reloading_begin0013.ogg-9e3fec03cec4408e1ae49f78ae7fd10c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_finish0005.ogg b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_finish0005.ogg new file mode 100644 index 0000000..1cd4a17 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_finish0005.ogg Binary files differ diff --git a/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_finish0005.ogg.import b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_finish0005.ogg.import new file mode 100644 index 0000000..04fad80 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/reloading/Reloading_finish0005.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://lf3yfq82qetp" +path="res://.godot/imported/Reloading_finish0005.ogg-6f8f9af81ced17f866850f45f4e2a055.oggvorbisstr" + +[deps] + +source_file="res://resource/sound/sfx/reloading/Reloading_finish0005.ogg" +dest_files=["res://.godot/imported/Reloading_finish0005.ogg-6f8f9af81ced17f866850f45f4e2a055.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0012.ogg b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0012.ogg new file mode 100644 index 0000000..00d92b6 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0012.ogg Binary files differ diff --git a/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0012.ogg.import b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0012.ogg.import new file mode 100644 index 0000000..54a9ae7 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0012.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bhpgoq6oqhd24" +path="res://.godot/imported/Shooting0012.ogg-6d1b24c8d5291f0e566c777a5c1a223b.oggvorbisstr" + +[deps] + +source_file="res://resource/sound/sfx/shooting/Shooting0012.ogg" +dest_files=["res://.godot/imported/Shooting0012.ogg-6d1b24c8d5291f0e566c777a5c1a223b.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0013.ogg b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0013.ogg new file mode 100644 index 0000000..32b39ff --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0013.ogg Binary files differ diff --git a/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0013.ogg.import b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0013.ogg.import new file mode 100644 index 0000000..ea34494 --- /dev/null +++ b/DungeonShooting_Godot/resource/sound/sfx/shooting/Shooting0013.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b7dnq60ppy3rt" +path="res://.godot/imported/Shooting0013.ogg-f68af44d2b878523bfde72871d459a6a.oggvorbisstr" + +[deps] + +source_file="res://resource/sound/sfx/shooting/Shooting0013.ogg" +dest_files=["res://.godot/imported/Shooting0013.ogg-f68af44d2b878523bfde72871d459a6a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001.png b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001.png new file mode 100644 index 0000000..96ba1c1 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001.png.import b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001.png.import new file mode 100644 index 0000000..11628b1 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dladvmgql1pwe" +path="res://.godot/imported/TreasureBox0001.png-470db2c564e486f7e8aa1da89a50df44.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/box/TreasureBox0001.png" +dest_files=["res://.godot/imported/TreasureBox0001.png-470db2c564e486f7e8aa1da89a50df44.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/box/TreasureBox0001_icon.png b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001_icon.png new file mode 100644 index 0000000..6b1d441 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001_icon.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001_icon.png.import b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001_icon.png.import new file mode 100644 index 0000000..f90f748 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/box/TreasureBox0001_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmmq0qjtk3emj" +path="res://.godot/imported/TreasureBox0001_icon.png-84fd776b11f978d95f53508cc4a524a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/box/TreasureBox0001_icon.png" +dest_files=["res://.godot/imported/TreasureBox0001_icon.png-84fd776b11f978d95f53508cc4a524a3.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/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/bullet/normal/bullet0007.png b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png new file mode 100644 index 0000000..409f5ea --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png.import b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png.import new file mode 100644 index 0000000..d3df7c1 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ktgwsn6cecn1" +path="res://.godot/imported/bullet0007.png-671d78db00259eec71ff1bbeb7323d38.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/bullet/normal/bullet0007.png" +dest_files=["res://.godot/imported/bullet0007.png-671d78db00259eec71ff1bbeb7323d38.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/bullet0008.png b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0008.png new file mode 100644 index 0000000..274f521 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0008.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0008.png.import b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0008.png.import new file mode 100644 index 0000000..75e0859 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0008.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cf6jtee53ru6t" +path="res://.godot/imported/bullet0008.png-ee2d2af8fd8c07d5f50b667ec409caea.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/bullet/normal/bullet0008.png" +dest_files=["res://.godot/imported/bullet0008.png-ee2d2af8fd8c07d5f50b667ec409caea.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/currency/Gold_1.png b/DungeonShooting_Godot/resource/sprite/currency/Gold_1.png new file mode 100644 index 0000000..3110228 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_1.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/currency/Gold_1.png.import b/DungeonShooting_Godot/resource/sprite/currency/Gold_1.png.import new file mode 100644 index 0000000..0597d88 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://benn0iaclw8dk" +path="res://.godot/imported/Gold_1.png-a93928c0075919d29a145c4dafb11474.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/currency/Gold_1.png" +dest_files=["res://.godot/imported/Gold_1.png-a93928c0075919d29a145c4dafb11474.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/currency/Gold_10.png b/DungeonShooting_Godot/resource/sprite/currency/Gold_10.png new file mode 100644 index 0000000..d7c4a53 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_10.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/currency/Gold_10.png.import b/DungeonShooting_Godot/resource/sprite/currency/Gold_10.png.import new file mode 100644 index 0000000..c89b9a9 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7dy6itvggpwy" +path="res://.godot/imported/Gold_10.png-6dad896477e2d64ee4b53dfc61512c52.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/currency/Gold_10.png" +dest_files=["res://.godot/imported/Gold_10.png-6dad896477e2d64ee4b53dfc61512c52.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/currency/Gold_5.png b/DungeonShooting_Godot/resource/sprite/currency/Gold_5.png new file mode 100644 index 0000000..daf65e3 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_5.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/currency/Gold_5.png.import b/DungeonShooting_Godot/resource/sprite/currency/Gold_5.png.import new file mode 100644 index 0000000..ca47a36 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfpcqj2x8t2os" +path="res://.godot/imported/Gold_5.png-0b8f56330acf1bae56d208261bbe00e3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/currency/Gold_5.png" +dest_files=["res://.godot/imported/Gold_5.png-0b8f56330acf1bae56d208261bbe00e3.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/currency/Gold_shadow.png b/DungeonShooting_Godot/resource/sprite/currency/Gold_shadow.png new file mode 100644 index 0000000..5e67581 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_shadow.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/currency/Gold_shadow.png.import b/DungeonShooting_Godot/resource/sprite/currency/Gold_shadow.png.import new file mode 100644 index 0000000..ca0e61e --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/currency/Gold_shadow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cthwlbqve6i1l" +path="res://.godot/imported/Gold_shadow.png-7f96d16d057af7e8ad9968d1695208d9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/currency/Gold_shadow.png" +dest_files=["res://.godot/imported/Gold_shadow.png-7f96d16d057af7e8ad9968d1695208d9.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/shootFire/ShotFire0003.png b/DungeonShooting_Godot/resource/sprite/shootFire/ShotFire0003.png new file mode 100644 index 0000000..944ab2f --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/shootFire/ShotFire0003.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/shootFire/ShotFire0003.png.import b/DungeonShooting_Godot/resource/sprite/shootFire/ShotFire0003.png.import new file mode 100644 index 0000000..cfd03e8 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/shootFire/ShotFire0003.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dw3amegyt2ehh" +path="res://.godot/imported/ShotFire0003.png-96bf214260aefa07ecedf1608829c903.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/shootFire/ShotFire0003.png" +dest_files=["res://.godot/imported/ShotFire0003.png-96bf214260aefa07ecedf1608829c903.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Gold_10.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Gold_10.png new file mode 100644 index 0000000..c0e1473 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Gold_10.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Gold_10.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Gold_10.png.import new file mode 100644 index 0000000..d08eb20 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Gold_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cysv0dpvm52xw" +path="res://.godot/imported/Gold_10.png-90370d287f395564703b058392c1eb5b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/commonIcon/Gold_10.png" +dest_files=["res://.godot/imported/Gold_10.png-90370d287f395564703b058392c1eb5b.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/sprite/weapon/weapon0011/Weapon0011.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0011/Weapon0011.png new file mode 100644 index 0000000..63eb45e --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0011/Weapon0011.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0011/Weapon0011.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0011/Weapon0011.png.import new file mode 100644 index 0000000..8eb64d2 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0011/Weapon0011.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2nw07bxifdv6" +path="res://.godot/imported/Weapon0011.png-4508f5f36303362ac300f62d27601f6d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0011/Weapon0011.png" +dest_files=["res://.godot/imported/Weapon0011.png-4508f5f36303362ac300f62d27601f6d.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/weapon0011/gun10.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0011/gun10.png deleted file mode 100644 index 2c86bab..0000000 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0011/gun10.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0012/bow.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0012/bow.png.import index 412e93d..4616585 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0012/bow.png.import +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0012/bow.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://b4exgoa8t0wny" -path="res://.godot/imported/bow.png-9ae685914082766e6dbcd1eaddb43b40.ctex" +path="res://.godot/imported/bow.png-88942d9562b550ee90573ad2cdb4bb92.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://resource/sprite/weapon/bow.png" -dest_files=["res://.godot/imported/bow.png-9ae685914082766e6dbcd1eaddb43b40.ctex"] +source_file="res://resource/sprite/weapon/weapon0012/bow.png" +dest_files=["res://.godot/imported/bow.png-88942d9562b550ee90573ad2cdb4bb92.ctex"] [params] diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0013/weapon0013.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0013/weapon0013.png.import new file mode 100644 index 0000000..cc29c2c --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0013/weapon0013.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cphawlk2w0w6w" +path="res://.godot/imported/weapon0013.png-ebf877c1ae1b135ec79dd1b6a7ae1165.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0013/weapon0013.png" +dest_files=["res://.godot/imported/weapon0013.png-ebf877c1ae1b135ec79dd1b6a7ae1165.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/weapon0013/weapon0014-export.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0013/weapon0014-export.png.import new file mode 100644 index 0000000..203d743 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0013/weapon0014-export.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuivqyq32tjan" +path="res://.godot/imported/weapon0014-export.png-f1691475edd2682499f71dfe7d46110d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0013/weapon0014-export.png" +dest_files=["res://.godot/imported/weapon0014-export.png-f1691475edd2682499f71dfe7d46110d.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/weapon0013/weapon0014.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0013/weapon0014.png.import new file mode 100644 index 0000000..eb6d28b --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0013/weapon0014.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://deqflkjkgkebd" +path="res://.godot/imported/weapon0014.png-231a4437579a4dfcadef71f1a72de1ed.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0013/weapon0014.png" +dest_files=["res://.godot/imported/weapon0014.png-231a4437579a4dfcadef71f1a72de1ed.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/weapon0014/Weapon0014.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png new file mode 100644 index 0000000..3113087 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png.import new file mode 100644 index 0000000..af570f3 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d27ax1aqghn0k" +path="res://.godot/imported/Weapon0014.png-24bed8267d2ed0e312778ce83c4afa5a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0014/Weapon0014.png" +dest_files=["res://.godot/imported/Weapon0014.png-24bed8267d2ed0e312778ce83c4afa5a.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/weapon0014/gun2.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/gun2.png.import deleted file mode 100644 index feb8eb6..0000000 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/gun2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://5geiuvv6hyov" -path="res://.godot/imported/gun2.png-78b331a2f245cfbe03b10da276435b64.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/weapon/gun2.png" -dest_files=["res://.godot/imported/gun2.png-78b331a2f245cfbe03b10da276435b64.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/weapon0015/gun3.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0015/gun3.png.import index e5154c0..80cead3 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0015/gun3.png.import +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0015/gun3.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c1tnh6laf172u" -path="res://.godot/imported/gun3.png-d2428e7c1819cfb8a78ef87505aee0a3.ctex" +path="res://.godot/imported/gun3.png-3eceb0c7c64a7bf84605307efa15f7f3.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://resource/sprite/weapon/gun3.png" -dest_files=["res://.godot/imported/gun3.png-d2428e7c1819cfb8a78ef87505aee0a3.ctex"] +source_file="res://resource/sprite/weapon/weapon0015/gun3.png" +dest_files=["res://.godot/imported/gun3.png-3eceb0c7c64a7bf84605307efa15f7f3.ctex"] [params] diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0016/gun4.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0016/gun4.png.import new file mode 100644 index 0000000..6b60870 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0016/gun4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xafbhgrxmosy" +path="res://.godot/imported/gun4.png-3a854e99c328550ec802a641bed4ce89.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0016/gun4.png" +dest_files=["res://.godot/imported/gun4.png-3a854e99c328550ec802a641bed4ce89.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/weapon0017/gun5.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0017/gun5.png.import new file mode 100644 index 0000000..2dcc1e9 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0017/gun5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2eber1v7nb4j" +path="res://.godot/imported/gun5.png-dde9a0cdc02e2378517e9d271797761c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0017/gun5.png" +dest_files=["res://.godot/imported/gun5.png-dde9a0cdc02e2378517e9d271797761c.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/weapon0018/gun6.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0018/gun6.png.import new file mode 100644 index 0000000..c7dff5f --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0018/gun6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rlp8f2rgxlbf" +path="res://.godot/imported/gun6.png-661eed06db2d1504a8e43f81aca88938.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0018/gun6.png" +dest_files=["res://.godot/imported/gun6.png-661eed06db2d1504a8e43f81aca88938.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/weapon0019/gun7.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0019/gun7.png.import new file mode 100644 index 0000000..f37ec50 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0019/gun7.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs6ukbtcmxuiw" +path="res://.godot/imported/gun7.png-f1428c4b8a1ac62dafacd70a35e5813b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0019/gun7.png" +dest_files=["res://.godot/imported/gun7.png-f1428c4b8a1ac62dafacd70a35e5813b.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/weapon0020/gun8.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0020/gun8.png.import new file mode 100644 index 0000000..6b19bf3 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0020/gun8.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2lcc20olyi5d" +path="res://.godot/imported/gun8.png-981667783ada37a774730057971adda6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0020/gun8.png" +dest_files=["res://.godot/imported/gun8.png-981667783ada37a774730057971adda6.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/bullet/Bullet0007.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0007.tres new file mode 100644 index 0000000..c719795 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0007.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bkwoy70bnm74k"] + +[ext_resource type="Texture2D" uid="uid://ktgwsn6cecn1" path="res://resource/sprite/bullet/normal/bullet0007.png" id="1_5lygh"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_5lygh") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0008.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0008.tres new file mode 100644 index 0000000..caf8579 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0008.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://ubdvau75andr"] + +[ext_resource type="Texture2D" uid="uid://cf6jtee53ru6t" path="res://resource/sprite/bullet/normal/bullet0008.png" id="1_dwc4l"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_dwc4l") +}], +"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/resource/spriteFrames/weapon/Weapon0011.tres b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0011.tres new file mode 100644 index 0000000..9619c42 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0011.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://xvfg1a0xj7ng"] + +[ext_resource type="Texture2D" uid="uid://d2nw07bxifdv6" path="res://resource/sprite/weapon/weapon0011/Weapon0011.png" id="1_d6ft8"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_d6ft8") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0013.tres b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0013.tres new file mode 100644 index 0000000..4901466 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0013.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://cawsi08vaqfrn"] + +[ext_resource type="Texture2D" uid="uid://cphawlk2w0w6w" path="res://resource/sprite/weapon/weapon0013/weapon0013.png" id="1_akn2h"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_akn2h") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0014.tres b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0014.tres new file mode 100644 index 0000000..148385f --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0014.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://taxfr2lcy0f3"] + +[ext_resource type="Texture2D" uid="uid://d27ax1aqghn0k" path="res://resource/sprite/weapon/weapon0014/Weapon0014.png" id="1_lpq2x"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_lpq2x") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/scene/test/TestTrail.tscn b/DungeonShooting_Godot/scene/test/TestTrail.tscn new file mode 100644 index 0000000..79afee9 --- /dev/null +++ b/DungeonShooting_Godot/scene/test/TestTrail.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=5 format=3 uid="uid://brum5fmbt1br4"] + +[ext_resource type="Script" path="res://src/test/TestTrail.cs" id="1_mefd0"] +[ext_resource type="PackedScene" uid="uid://ddwikcidm0gsi" path="res://prefab/effect/common/Trail0001.tscn" id="2_t308a"] +[ext_resource type="Texture2D" uid="uid://bn8k07n2y6lmr" path="res://resource/sprite/bullet/normal/bullet0006.png" id="2_w7ffd"] + +[sub_resource type="Gradient" id="Gradient_gds2p"] +resource_local_to_scene = true +offsets = PackedFloat32Array(0.825949, 1) +colors = PackedColorArray(1, 1, 1, 0.705882, 1, 1, 1, 0) + +[node name="TestTrail" type="Node2D"] +script = ExtResource("1_mefd0") + +[node name="Trail" parent="." instance=ExtResource("2_t308a")] +gradient = SubResource("Gradient_gds2p") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_w7ffd") 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 76d7bfb..d19cfa0 100644 --- a/DungeonShooting_Godot/src/config/ExcelConfig_ActivityBase.cs +++ b/DungeonShooting_Godot/src/config/ExcelConfig_ActivityBase.cs @@ -23,10 +23,11 @@ /// Shell(弹壳): 7
/// Effect(特效): 8
/// Prop(道具): 9
+ /// Treasure(宝箱): 10
/// Other(其它类型): 99 /// [JsonInclude] - public int Type; + public ActivityType Type; /// /// 物体名称 @@ -35,6 +36,25 @@ public string Name; /// + /// 物体品质, 用于武器和道具
+ /// 通用物品: 1
+ /// 基础: 2
+ /// 普通: 3
+ /// 稀有: 4
+ /// 史诗: 5
+ /// 传说: 6
+ /// 独一无二: 7 + ///
+ [JsonInclude] + public ActivityQuality Quality; + + /// + /// 商店售价 + /// + [JsonInclude] + public uint Price; + + /// /// 物体简介
/// 一句对物体简短的介绍, 比如拾起物体时弹出的描述 ///
@@ -88,6 +108,8 @@ inst.Id = Id; 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_EnemyBase.cs b/DungeonShooting_Godot/src/config/ExcelConfig_EnemyBase.cs index cedad80..182c7e1 100644 --- a/DungeonShooting_Godot/src/config/ExcelConfig_EnemyBase.cs +++ b/DungeonShooting_Godot/src/config/ExcelConfig_EnemyBase.cs @@ -25,6 +25,12 @@ public string Remark; /// + /// 血量 + /// + [JsonInclude] + public int Hp; + + /// /// 移动速度 /// [JsonInclude] @@ -67,6 +73,13 @@ public float BackViewRange; /// + /// 掉落金币数量区间, 如果为负数或者0则不会掉落金币
+ /// 格式为[value]或者[min,max] + ///
+ [JsonInclude] + public int[] Gold; + + /// /// 返回浅拷贝出的新对象 /// public EnemyBase Clone() @@ -75,6 +88,7 @@ inst.Id = Id; inst.Activity = Activity; inst.Remark = Remark; + inst.Hp = Hp; inst.MoveSpeed = MoveSpeed; inst.Acceleration = Acceleration; inst.Friction = Friction; @@ -82,6 +96,7 @@ inst.ViewRange = ViewRange; inst.TailAfterViewRange = TailAfterViewRange; inst.BackViewRange = BackViewRange; + inst.Gold = Gold; return inst; } } diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs index e3de8cf..ba3d942 100644 --- a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs +++ b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs @@ -259,7 +259,7 @@ public float UpliftAngleRestore; /// - /// 开火特效 + /// 开火特效, 该特效脚本必须实现IEffect接口 /// [JsonInclude] public string FireEffect; @@ -281,18 +281,18 @@ public bool ReloadThrowShell; /// + /// 抛壳数量 + /// + [JsonInclude] + public int ThrowShellCount; + + /// /// 投抛弹壳的延时时间 /// [JsonInclude] public float ThrowShellDelayTime; /// - /// 投抛状态下物体碰撞器大小 - /// - [JsonInclude] - public SerializeVector2 ThrowCollisionSize; - - /// /// 是否可以触发近战攻击 /// [JsonInclude] @@ -368,13 +368,6 @@ public Dictionary OtherSoundMap; /// - /// Ai属性
- /// Ai 使用该武器时的武器数据, 设置该字段, 可让同一把武器在敌人和玩家手上有不同属性
- /// 如果不填则Ai和玩家使用同一种属性 - ///
- public WeaponBase AiUseAttribute; - - /// /// Ai使用该武器开火时的一些额外配置属性
/// 玩家使用的武器不需要填写该字段 ///
@@ -431,8 +424,8 @@ inst.Bullet = Bullet; inst.Shell = Shell; inst.ReloadThrowShell = ReloadThrowShell; + inst.ThrowShellCount = ThrowShellCount; inst.ThrowShellDelayTime = ThrowShellDelayTime; - inst.ThrowCollisionSize = ThrowCollisionSize; inst.CanMeleeAttack = CanMeleeAttack; inst.MeleeAttackHarmRange = MeleeAttackHarmRange; inst.MeleeAttackRepelRange = MeleeAttackRepelRange; @@ -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/ActivityId.cs b/DungeonShooting_Godot/src/framework/activity/ActivityId.cs index de3761c..44068c1 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityId.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityId.cs @@ -5,76 +5,6 @@ public static class ActivityId { /// - /// 测试单位 - /// - public const string Test = "test"; - /// - /// 角色 - /// - public const string Role = "role"; - /// - /// 敌人 - /// - public const string Enemy = "enemy"; - /// - /// 武器 - /// - public const string Weapon = "weapon"; - /// - /// 子弹 - /// - public const string Bullet = "bullet"; - /// - /// 弹壳 - /// - public const string Shell = "shell"; - /// - /// 特效 - /// - public const string Effect = "effect"; - /// - /// 道具 - /// - public const string Prop = "prop"; - /// - /// 其他类型 - /// - public const string Other = "other"; - - /// - /// 根据 ActivityType 中的枚举类型获取类型名称的字符串 - /// - public static string GetIdPrefix(ActivityType activityType) - { - switch (activityType) - { - case ActivityType.None: - return ""; - case ActivityType.Test: - return Test; - case ActivityType.Role: - case ActivityType.Player: - return Role; - case ActivityType.Enemy: - return Enemy; - case ActivityType.Weapon: - return Weapon; - case ActivityType.Bullet: - return Bullet; - case ActivityType.Shell: - return Shell; - case ActivityType.Effect: - return Effect; - case ActivityType.Prop: - return Prop; - case ActivityType.Other: - return Other; - } - - return ""; - } - - /// /// 根据 ActivityType 中的枚举类型获取类型名称的字符串 /// public static string GetTypeName(ActivityType activityType) @@ -100,6 +30,8 @@ return "特效"; case ActivityType.Prop: return "道具"; + case ActivityType.Treasure: + return "宝箱"; case ActivityType.Other: return "其他"; } diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs index ccf9622..6e2a533 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs @@ -254,6 +254,16 @@ ///
public Vector2I? BrushPrevPosition { get; set; } + /// + /// 默认所在层级 + /// + public RoomLayerEnum DefaultLayer { get; set; } + + /// + /// 投抛状态下的碰撞器层级 + /// + public uint ThrowCollisionMask { get; set; } = PhysicsLayer.Wall; + // -------------------------------------------------------------------------------- //是否正在调用组件 Update 函数 @@ -278,9 +288,6 @@ //存储投抛该物体时所产生的数据 private readonly ActivityFallData _fallData = new ActivityFallData(); - //所在层级 - private RoomLayerEnum _currLayer; - //标记字典 private Dictionary _signMap; @@ -650,7 +657,7 @@ /// public virtual void PutDown(RoomLayerEnum layer, bool showShadow = true) { - _currLayer = layer; + DefaultLayer = layer; var parent = GetParent(); var root = GameApplication.Instance.World.GetRoomLayer(layer); if (parent != root) @@ -1490,7 +1497,7 @@ Collision.Position = Vector2.Zero; Collision.Rotation = 0; Collision.Scale = Vector2.One; - CollisionMask = 1; + CollisionMask = ThrowCollisionMask; CollisionLayer = _fallData.OriginCollisionLayer | PhysicsLayer.Throwing; _fallData.UseOrigin = false; } @@ -1526,7 +1533,7 @@ private void ThrowOver() { var parent = GetParent(); - var roomLayer = GameApplication.Instance.World.GetRoomLayer(_currLayer); + var roomLayer = GameApplication.Instance.World.GetRoomLayer(DefaultLayer); if (parent != roomLayer) { parent.RemoveChild(this); diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs index 79056c5..b3955d7 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs @@ -69,6 +69,26 @@ /// public const string Id_weapon0009 = "weapon0009"; /// + /// 名称: M1型热能狙击枪
+ /// 简介: + ///
+ public const string Id_weapon0010 = "weapon0010"; + /// + /// 名称: weapon0011
+ /// 简介: + ///
+ public const string Id_weapon0011 = "weapon0011"; + /// + /// 名称: P90
+ /// 简介: + ///
+ public const string Id_weapon0013 = "weapon0013"; + /// + /// 名称: 左轮
+ /// 简介: + ///
+ public const string Id_weapon0014 = "weapon0014"; + /// /// 名称:
/// 简介: ///
@@ -94,6 +114,21 @@ /// public const string Id_bullet0005 = "bullet0005"; /// + /// 名称: 拖尾子弹
+ /// 简介: + ///
+ public const string Id_bullet0006 = "bullet0006"; + /// + /// 名称:
+ /// 简介: + ///
+ public const string Id_bullet0007 = "bullet0007"; + /// + /// 名称:
+ /// 简介: + ///
+ public const string Id_bullet0008 = "bullet0008"; + /// /// 名称:
/// 简介: ///
@@ -204,6 +239,11 @@ /// public const string Id_prop5001 = "prop5001"; /// + /// 名称: 木质宝箱
+ /// 简介: 木质宝箱 + ///
+ public const string Id_treasure_box0001 = "treasure_box0001"; + /// /// 名称:
/// 简介: 地牢房间的门(东侧) ///
@@ -223,5 +263,20 @@ /// 简介: 地牢房间的门(北侧) /// public const string Id_other_door_n = "other_door_n"; + /// + /// 名称: 金币
+ /// 简介: 获得10金币 + ///
+ public const string Id_gold_10 = "gold_10"; + /// + /// 名称: 银币
+ /// 简介: 获得5金币 + ///
+ public const string Id_gold_5 = "gold_5"; + /// + /// 名称: 铜币
+ /// 简介: 获得1金币 + ///
+ public const string Id_gold_1 = "gold_1"; } } diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityQuality.cs b/DungeonShooting_Godot/src/framework/activity/ActivityQuality.cs new file mode 100644 index 0000000..9d5641d --- /dev/null +++ b/DungeonShooting_Godot/src/framework/activity/ActivityQuality.cs @@ -0,0 +1,39 @@ + +/// +/// 物体品质 +/// +public enum ActivityQuality +{ + /// + /// 未设置 + /// + None = 0, + /// + /// 通用物品 + /// + Common = 1, + /// + /// 基础 + /// + Basic = 2, + /// + /// 普通 + /// + Ordinary = 3, + /// + /// 稀有 + /// + Rare = 4, + /// + /// 史诗 + /// + Epic = 5, + /// + /// 传说 + /// + Legend = 6, + /// + /// 独一无二 + /// + Unique = 7 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityType.cs b/DungeonShooting_Godot/src/framework/activity/ActivityType.cs index 3a82149..d094992 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityType.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityType.cs @@ -45,6 +45,10 @@ /// Prop, /// + /// 宝箱 + /// + Treasure, + /// /// 其它类型 /// Other = 99, diff --git a/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs b/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs index 99b1296..fb38e21 100644 --- a/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs +++ b/DungeonShooting_Godot/src/framework/activity/CheckInteractiveResult.cs @@ -20,6 +20,14 @@ /// 替换 /// Replace, + /// + /// 打开宝箱 + /// + OpenTreasureBox, + /// + /// 其他互动类型 + /// + Other, } /// diff --git a/DungeonShooting_Godot/src/framework/activity/hurt/HurtArea.cs b/DungeonShooting_Godot/src/framework/activity/hurt/HurtArea.cs new file mode 100644 index 0000000..5a1ca5c --- /dev/null +++ b/DungeonShooting_Godot/src/framework/activity/hurt/HurtArea.cs @@ -0,0 +1,28 @@ +using Godot; + +public partial class HurtArea : Area2D, IHurt +{ + public delegate void HurtDelegate(ActivityObject target, int damage, float angle); + + public event HurtDelegate OnHurtEvent; + + public ActivityObject ActivityObject { get; private set; } + + public void InitActivityObject(ActivityObject activityObject) + { + ActivityObject = activityObject; + } + + public override void _Ready() + { + Monitoring = false; + } + + public void Hurt(ActivityObject target, int damage, float angle) + { + if (OnHurtEvent != null) + { + OnHurtEvent(target, damage, angle); + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/activity/hurt/IHurt.cs b/DungeonShooting_Godot/src/framework/activity/hurt/IHurt.cs new file mode 100644 index 0000000..fd27abc --- /dev/null +++ b/DungeonShooting_Godot/src/framework/activity/hurt/IHurt.cs @@ -0,0 +1,13 @@ + +using Godot; + +public interface IHurt +{ + /// + /// 受到伤害 + /// + /// 触发伤害的对象, 为 null 表示不存在对象或者对象已经被销毁 + /// 伤害的量 + /// 伤害角度(弧度制) + void Hurt(ActivityObject target, int damage, float angle); +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/common/NodeExtend.cs b/DungeonShooting_Godot/src/framework/common/NodeExtend.cs index 250aea8..4c3151a 100644 --- a/DungeonShooting_Godot/src/framework/common/NodeExtend.cs +++ b/DungeonShooting_Godot/src/framework/common/NodeExtend.cs @@ -8,40 +8,44 @@ public static class NodeExtend { /// - /// 尝试将一个 Node2d 节点转换成一个 ActivityObject 对象, 如果转换失败, 则返回 null + /// 获取 IHurt 绑定的 ActivityObject, 没有则返回 null /// - public static ActivityObject AsActivityObject(this Node2D node2d) + /// + /// + public static ActivityObject GetActivityObject(this IHurt hurt) { - if (node2d is ActivityObject p) + if (hurt is ActivityObject activityObject) { - return p; + return activityObject; } - var parent = node2d.GetParent(); - if (parent != null && parent is ActivityObject p2) + + if (hurt is HurtArea hurtArea) { - return p2; + return hurtArea.ActivityObject; } - return null; - } - - /// - /// 尝试将一个 Node2d 节点转换成一个 ActivityObject 对象, 如果转换失败, 则返回 null - /// - public static T AsActivityObject(this Node2D node2d) where T : ActivityObject - { - if (node2d is T p) - { - return p; - } - var parent = node2d.GetParent(); - if (parent != null && parent is T p2) - { - return p2; - } + return null; } /// + /// 获取 IHurt 节点的坐标 + /// + public static Vector2 GetPosition(this IHurt hurt) + { + if (hurt is ActivityObject role) + { + return role.GetCenterPosition(); + } + + if (hurt is Node2D node2D) + { + return node2D.GlobalPosition; + } + + return Vector2.Zero; + } + + /// /// 将节点插入的房间物体根节点 /// /// 实例 diff --git a/DungeonShooting_Godot/src/framework/common/Utils.cs b/DungeonShooting_Godot/src/framework/common/Utils.cs index 04657df..4302194 100644 --- a/DungeonShooting_Godot/src/framework/common/Utils.cs +++ b/DungeonShooting_Godot/src/framework/common/Utils.cs @@ -530,4 +530,31 @@ } return arr; } + + /// + /// 根据金币数量获取金币对象id数组 + /// + public static string[] GetGoldList(int gold) + { + var list = new List(); + while (gold > 0) + { + if (gold >= 10) + { + list.Add(ActivityObject.Ids.Id_gold_10); + gold -= 10; + } + else if (gold >= 5) + { + list.Add(ActivityObject.Ids.Id_gold_5); + gold -= 5; + } + else + { + list.Add(ActivityObject.Ids.Id_gold_1); + gold -= 1; + } + } + return list.ToArray(); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/DungeonConfig.cs b/DungeonShooting_Godot/src/framework/map/DungeonConfig.cs index 313e874..f05f144 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonConfig.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonConfig.cs @@ -41,6 +41,56 @@ /// public int RoomCount => BattleRoomCount + RewardRoomCount + ShopRoomCount + OutRoomCount + BossRoomCount; + /// + /// 房间最大层级 + /// + public int MaxLayer = 5; + + /// + /// 房间最小间隔 + /// + public int RoomMinInterval = 2; + + /// + /// 房间最大间隔 + /// + public int RoomMaxInterval = 5; + + /// + /// 房间横轴最小分散程度 + /// + public float RoomHorizontalMinDispersion = -0.6f; + + /// + /// 房间横轴最大分散程度 + /// + public float RoomHorizontalMaxDispersion = 0.6f; + + /// + /// 房间纵轴最小分散程度 + /// + public float RoomVerticalMinDispersion = -0.6f; + + /// + /// 房间纵轴最大分散程度 + /// + public float RoomVerticalMaxDispersion = 0.6f; + + /// + /// 是否启用区域限制 + /// + public bool EnableLimitRange = true; + + /// + /// 横轴范围 + /// + public int RangeX = 120; + + /// + /// 纵轴范围 + /// + public int RangeY = 120; + //----------------------- 地牢编辑使用 ------------------------- /// /// 是否指定了房间 diff --git a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs index 1b400f8..cba1da9 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs @@ -65,25 +65,9 @@ private int _id; //下一个房间类型 - private DungeonRoomType _nextRoomType = DungeonRoomType.Battle; - - //间隔 - private int _roomMinInterval = 2; - private int _roomMaxInterval = 5; - - //房间横轴分散程度 - private float _roomHorizontalMinDispersion = -0.6f; - private float _roomHorizontalMaxDispersion = 0.6f; - - //房间纵轴分散程度 - private float _roomVerticalMinDispersion = -0.6f; - private float _roomVerticalMaxDispersion = 0.6f; - - //房间最大层级 - private int _maxLayer = 5; + private DungeonRoomType _nextRoomType = DungeonRoomType.None; //区域限制 - private bool _enableLimitRange = true; private int _rangeX = 120; private int _rangeY = 120; @@ -97,25 +81,18 @@ //地牢房间规则处理类 private DungeonRule _rule; - - private enum GenerateRoomErrorCode - { - NoError, - //超出区域 - OutArea, - //没有合适的位置 - NoSuitableLocation - // //碰到其他房间或过道 - // HasCollision, - // //没有合适的门 - // NoProperDoor, - } + + //上一个房间 + private RoomInfo prevRoomInfo = null; + private readonly List _tempList = new List(); public DungeonGenerator(DungeonConfig config, SeedRandom seedRandom) { Config = config; Random = seedRandom; RoomGroup = GameApplication.Instance.RoomConfig[config.GroupName]; + _rangeX = config.RangeX; + _rangeY = config.RangeY; //验证该组是否满足生成地牢的条件 var result = DungeonManager.CheckDungeon(config.GroupName); @@ -180,62 +157,23 @@ if (StartRoomInfo != null) return false; _rule = rule; - _nextRoomType = _rule.GetNextRoomType(null); - //用于排除上一级房间 - var excludePrevRoom = new List(); - //上一个房间 - RoomInfo prevRoomInfo = null; - - var chainTryCount = 0; - var chainMaxTryCount = 3; - //最大尝试次数 - var maxTryCount = 1000; + var maxTryCount = 2000; //当前尝试次数 var currTryCount = 0; //如果房间数量不够, 就一直生成 - while (!_rule.CanOverGenerator() || EndRoomInfos.Count == 0) + while (!_rule.CanOverGenerator()) { + if (_nextRoomType == DungeonRoomType.None) + { + _nextRoomType = _rule.GetNextRoomType(prevRoomInfo); + } var nextRoomType = _nextRoomType; //上一个房间 - RoomInfo tempPrevRoomInfo; - if (nextRoomType == DungeonRoomType.Inlet) - { - tempPrevRoomInfo = null; - } - else if (nextRoomType == DungeonRoomType.Boss) - { - tempPrevRoomInfo = FindMaxLayerRoom(excludePrevRoom); - } - else if (nextRoomType == DungeonRoomType.Outlet || nextRoomType == DungeonRoomType.Reward || nextRoomType == DungeonRoomType.Shop || nextRoomType == DungeonRoomType.Event) - { - tempPrevRoomInfo = prevRoomInfo; - } - else if (nextRoomType == DungeonRoomType.Battle) - { - if (chainTryCount < chainMaxTryCount) - { - if (prevRoomInfo != null && prevRoomInfo.Layer >= _maxLayer - 1) //层数太高, 下一个房间生成在低层级 - { - tempPrevRoomInfo = RoundRoomLessThanLayer(Mathf.Max(1, _maxLayer / 2)); - } - else - { - tempPrevRoomInfo = prevRoomInfo; - } - } - else - { - tempPrevRoomInfo = Random.RandomChoose(RoomInfos); - } - } - else - { - tempPrevRoomInfo = Random.RandomChoose(RoomInfos); - } + var tempPrevRoomInfo = _rule.GetConnectPrevRoom(prevRoomInfo, nextRoomType); //生成下一个房间 var errorCode = GenerateRoom(tempPrevRoomInfo, nextRoomType, out var nextRoom); @@ -250,7 +188,6 @@ else if (nextRoomType == DungeonRoomType.Boss) //boss房间 { BossRoomInfos.Add(nextRoom); - excludePrevRoom.Clear(); } else if (nextRoomType == DungeonRoomType.Outlet) { @@ -259,8 +196,6 @@ else if (nextRoomType == DungeonRoomType.Battle) { BattleRoomInfos.Add(nextRoom); - chainTryCount = 0; - chainMaxTryCount = Random.RandomRangeInt(1, 3); } else if (nextRoomType == DungeonRoomType.Reward) { @@ -271,36 +206,12 @@ ShopRoomInfos.Add(nextRoom); } prevRoomInfo = nextRoom; - _nextRoomType = _rule.GetNextRoomType(prevRoomInfo); + _rule.GenerateRoomSuccess(tempPrevRoomInfo, nextRoom); + _nextRoomType = _rule.GetNextRoomType(nextRoom); } else //生成失败 { - if (nextRoomType == DungeonRoomType.Boss) - { - //生成boss房间成功 - excludePrevRoom.Add(tempPrevRoomInfo); - if (excludePrevRoom.Count >= RoomInfos.Count) - { - //全都没找到合适的, 那就再来一遍 - excludePrevRoom.Clear(); - } - } - else if (nextRoomType == DungeonRoomType.Outlet) - { - //生成结束房间失败, 那么只能回滚boss房间 - if (prevRoomInfo != null) - { - var bossPrev = prevRoomInfo.Prev; - BossRoomInfos.Remove(prevRoomInfo); - RollbackRoom(prevRoomInfo); - _nextRoomType = _rule.GetNextRoomType(bossPrev); - prevRoomInfo = null; - } - } - else if (nextRoomType == DungeonRoomType.Battle) - { - chainTryCount++; - } + _rule.GenerateRoomFail(tempPrevRoomInfo, nextRoomType); //Debug.Log("生成第" + (_count + 1) + "个房间失败! 失败原因: " + errorCode); if (errorCode == GenerateRoomErrorCode.OutArea) @@ -326,12 +237,12 @@ _roomGrid.Clear(); Debug.Log("房间总数: " + RoomInfos.Count); - + Debug.Log("尝试次数: " + currTryCount); return true; } //生成房间 - private GenerateRoomErrorCode GenerateRoom(RoomInfo prevRoomInfo, DungeonRoomType roomType, out RoomInfo resultRoomInfo) + private GenerateRoomErrorCode GenerateRoom(RoomInfo prevRoom, DungeonRoomType roomType, out RoomInfo resultRoomInfo) { // if (_count >= _config.RoomCount) // { @@ -348,7 +259,7 @@ { //随机选择一个房间 var list = RoomGroup.GetRoomList(roomType); - if (list.Count == 0) //如果没有指定类型的房间, 就生成战斗房间 + if (list.Count == 0) //如果没有指定类型的房间, 或者房间数量不够, 就生成战斗房间 { roomSplit = RoomGroup.GetRandomRoom(DungeonRoomType.Battle); } @@ -363,9 +274,9 @@ //房间大小 room.Size = new Vector2I((int)roomSplit.RoomInfo.Size.X, (int)roomSplit.RoomInfo.Size.Y); - if (prevRoomInfo != null) //表示这不是第一个房间, 就得判断当前位置下的房间是否被遮挡 + if (prevRoom != null) //表示这不是第一个房间, 就得判断当前位置下的房间是否被遮挡 { - room.Layer = prevRoomInfo.Layer + 1; + room.Layer = prevRoom.Layer + 1; if (_currMaxLayer < room.Layer) { _currMaxLayer = room.Layer; @@ -384,50 +295,40 @@ for (; tryCount < maxTryCount; tryCount++) { //下一个房间方向 - var direction = Random.RandomRangeInt(0, 3); + var direction = _rule.GetNextRoomDoorDirection(prevRoom, roomType); //房间间隔 - var space = Random.RandomRangeInt(_roomMinInterval, _roomMaxInterval); - if (direction == 0 || direction == 2) + var space = _rule.GetNextRoomInterval(prevRoom, roomType, direction); + if (direction == RoomDirection.Up || direction == RoomDirection.Down) { space += 1; } //中心偏移 - int offset; - if (direction == 0 || direction == 2) - { - offset = Random.RandomRangeInt((int)(prevRoomInfo.Size.X * _roomVerticalMinDispersion), - (int)(prevRoomInfo.Size.X * _roomVerticalMaxDispersion)); - } - else - { - offset = Random.RandomRangeInt((int)(prevRoomInfo.Size.Y * _roomHorizontalMinDispersion), - (int)(prevRoomInfo.Size.Y * _roomHorizontalMaxDispersion)); - } + var offset = _rule.GetNextRoomOffset(prevRoom, roomType, direction); //计算房间位置 - if (direction == 0) //上 + if (direction == RoomDirection.Up) //上 { - room.Position = new Vector2I(prevRoomInfo.Position.X + offset, - prevRoomInfo.Position.Y - room.Size.Y - space); + room.Position = new Vector2I(prevRoom.Position.X + offset, + prevRoom.Position.Y - room.Size.Y - space); } - else if (direction == 1) //右 + else if (direction == RoomDirection.Right) //右 { - room.Position = new Vector2I(prevRoomInfo.Position.X + prevRoomInfo.Size.Y + space, - prevRoomInfo.Position.Y + offset); + room.Position = new Vector2I(prevRoom.Position.X + prevRoom.Size.Y + space, + prevRoom.Position.Y + offset); } - else if (direction == 2) //下 + else if (direction == RoomDirection.Down) //下 { - room.Position = new Vector2I(prevRoomInfo.Position.X + offset, - prevRoomInfo.Position.Y + prevRoomInfo.Size.Y + space); + room.Position = new Vector2I(prevRoom.Position.X + offset, + prevRoom.Position.Y + prevRoom.Size.Y + space); } - else if (direction == 3) //左 + else if (direction == RoomDirection.Left) //左 { - room.Position = new Vector2I(prevRoomInfo.Position.X - room.Size.X - space, - prevRoomInfo.Position.Y + offset); + room.Position = new Vector2I(prevRoom.Position.X - room.Size.X - space, + prevRoom.Position.Y + offset); } //是否在限制区域内 - if (_enableLimitRange) + if (Config.EnableLimitRange) { if (room.GetHorizontalStart() < -_rangeX || room.GetHorizontalEnd() > _rangeX || room.GetVerticalStart() < -_rangeY || room.GetVerticalEnd() > _rangeY) @@ -449,7 +350,7 @@ _roomGrid.SetRect(room.Position, room.Size, true); //找门, 与上一个房间是否能连通 - if (!ConnectDoor(prevRoomInfo, room)) + if (!ConnectDoor(prevRoom, room)) { _roomGrid.RemoveRect(room.Position, room.Size); //Debug.Log("链接通道失败"); @@ -474,23 +375,41 @@ } _id++; - room.Prev = prevRoomInfo; - if (prevRoomInfo != null) + room.Prev = prevRoom; + if (prevRoom != null) { - prevRoomInfo.Next.Add(room); + prevRoom.Next.Add(room); } resultRoomInfo = room; return GenerateRoomErrorCode.NoError; } - //回滚一个房间 - private bool RollbackRoom(RoomInfo roomInfo) + /// + /// 设置上一个房间 + /// + public void SetPrevRoom(RoomInfo roomInfo) + { + prevRoomInfo = roomInfo; + } + + /// + /// 回滚一个房间 + /// + public bool RollbackRoom(RoomInfo roomInfo) { if (roomInfo.Next.Count > 0) { Debug.LogError("当前房间还有连接的子房间, 不能回滚!"); return false; } + + if (!roomInfo.CanRollback) + { + Debug.LogError("当前房间不能回滚!"); + return false; + } + var prevRoom = roomInfo.Prev; + //退掉占用的房间区域和过道占用区域 _roomGrid.RemoveRect(roomInfo.Position, roomInfo.Size); foreach (var rect2 in roomInfo.AisleArea) @@ -499,7 +418,7 @@ } //roomInfo.Doors[0]. - if (roomInfo.Prev != null) + if (prevRoom != null) { roomInfo.Prev.Next.Remove(roomInfo); } @@ -512,26 +431,54 @@ } RoomInfos.Remove(roomInfo); + switch (roomInfo.RoomType) + { + case DungeonRoomType.Battle: + BattleRoomInfos.Remove(roomInfo); + break; + case DungeonRoomType.Inlet: + StartRoomInfo = null; + break; + case DungeonRoomType.Outlet: + EndRoomInfos.Remove(roomInfo); + break; + case DungeonRoomType.Boss: + BossRoomInfos.Remove(roomInfo); + break; + case DungeonRoomType.Reward: + RewardRoomInfos.Remove(roomInfo); + break; + case DungeonRoomType.Shop: + ShopRoomInfos.Remove(roomInfo); + break; + case DungeonRoomType.Event: + break; + } + roomInfo.Destroy(); _id--; + _nextRoomType = DungeonRoomType.None; + SetPrevRoom(prevRoom); return true; } /// /// 寻找层级最高的房间 /// + /// 指定房间类型, 如果传 None 则表示选择所有类型房间 /// 排除的房间 - private RoomInfo FindMaxLayerRoom(List exclude) + public RoomInfo FindMaxLayerRoom(DungeonRoomType roomType, List exclude = null) { RoomInfo temp = null; foreach (var roomInfo in RoomInfos) { - if (temp == null || roomInfo.Layer > temp.Layer) + if (roomInfo.CanRollback) { - if (exclude == null || !exclude.Contains(roomInfo)) - { - temp = roomInfo; - } + continue; + } + if ((temp == null || roomInfo.Layer > temp.Layer) && (roomType == DungeonRoomType.None || (roomInfo.RoomType & roomType) != DungeonRoomType.None) && (exclude == null || !exclude.Contains(roomInfo))) + { + temp = roomInfo; } } @@ -541,18 +488,83 @@ /// /// 随机抽取层级小于 layer 的房间 /// - private RoomInfo RoundRoomLessThanLayer(int layer) + /// 指定房间类型, 如果传 None 则表示选择所有类型房间 + /// + /// 排除的房间 + public RoomInfo RandomRoomLessThanLayer(DungeonRoomType roomType, int layer, List exclude = null) { - var list = new List(); + _tempList.Clear(); foreach (var roomInfo in RoomInfos) { - if (roomInfo.Layer < layer) + if (roomInfo.CanRollback) { - list.Add(roomInfo); + continue; + } + if (roomInfo.Layer < layer && (roomType == DungeonRoomType.None || (roomInfo.RoomType & roomType) != DungeonRoomType.None) && (exclude == null || !exclude.Contains(roomInfo))) + { + _tempList.Add(roomInfo); } } - return Random.RandomChoose(list); + return Random.RandomChoose(_tempList); + } + + /// + /// 随机抽取层级大于 layer 的房间 + /// + /// 指定房间类型, 如果传 None 则表示选择所有类型房间 + /// + /// 排除的房间 + public RoomInfo RandomRoomGreaterThanLayer(DungeonRoomType roomType, int layer, List exclude = null) + { + _tempList.Clear(); + foreach (var roomInfo in RoomInfos) + { + if (roomInfo.CanRollback) + { + continue; + } + if (roomInfo.Layer > layer && (roomType == DungeonRoomType.None || (roomInfo.RoomType & roomType) != DungeonRoomType.None) && (exclude == null || !exclude.Contains(roomInfo))) + { + _tempList.Add(roomInfo); + } + } + + return Random.RandomChoose(_tempList); + } + + /// + /// 随机抽取房间 + /// + /// 指定房间类型, 如果传 None 则表示选择所有类型房间 + public RoomInfo GetRandomRoom(DungeonRoomType roomType) + { + _tempList.Clear(); + foreach (var roomInfo in RoomInfos) + { + if (roomInfo.CanRollback) + { + continue; + } + + if (roomType == DungeonRoomType.None || (roomInfo.RoomType & roomType) != DungeonRoomType.None) + { + _tempList.Add(roomInfo); + } + } + + return Random.RandomChoose(_tempList); + } + + /// + /// 提交所有可以回滚的房间 + /// + public void SubmitCanRollbackRoom() + { + foreach (var roomInfo in RoomInfos) + { + roomInfo.CanRollback = false; + } } /// diff --git a/DungeonShooting_Godot/src/framework/map/DungeonRoomType.cs b/DungeonShooting_Godot/src/framework/map/DungeonRoomType.cs index b08eec4..64bf354 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonRoomType.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonRoomType.cs @@ -1,35 +1,42 @@  +using System; + /// /// 模板房间类型 /// +[Flags] public enum DungeonRoomType { /// + /// 无 + /// + None = 0, + /// /// 普通战斗房间, 进入该房间时会关上门, 并刷出若干波敌人, 消灭所有敌人后开门 /// - Battle, + Battle = 0b1, /// /// 起始房间, 由上一层地牢的结束房间进入该房间, 每层包含一个起始房间 /// - Inlet, + Inlet = 0b10, /// /// 结束房间, 进入另一层地牢, 每层只是包含一个结束房间 /// - Outlet, + Outlet = 0b100, /// /// boss战房间, 进入房间时会关上没, 刷出boss, 消灭boss后开门 /// - Boss, + Boss = 0b1000, /// /// 奖励房间, 给予玩家武器或者道具奖励的房间 /// - Reward, + Reward = 0b10000, /// /// 商店, 玩家买卖道具装备的房间 /// - Shop, + Shop = 0b100000, /// /// 事件房间, 触发剧情或者解锁NPC的房间 /// - Event, + Event = 0b1000000, } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/DungeonRule.cs b/DungeonShooting_Godot/src/framework/map/DungeonRule.cs index 7357120..91cb309 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonRule.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonRule.cs @@ -10,20 +10,55 @@ public SeedRandom Random { get; } + public DungeonRoomGroup RoomGroup { get; } + public DungeonRule(DungeonGenerator generator) { Generator = generator; Config = generator.Config; Random = generator.Random; + RoomGroup = generator.RoomGroup; } /// /// 是否可以结束生成了 /// public abstract bool CanOverGenerator(); + + /// + /// 获取指定房间类型与之相连的上一个房间对象, prevRoom 可能为 null + /// + public abstract RoomInfo GetConnectPrevRoom(RoomInfo prevRoom, DungeonRoomType nextRoomType); /// - /// 计算下一个房间类型 + /// 计算下一个房间类型, prevRoom 可能为 null /// - public abstract DungeonRoomType GetNextRoomType(RoomInfo prev); + public abstract DungeonRoomType GetNextRoomType(RoomInfo prevRoom); + + /// + /// 执行生成指定房间成功, prevRoom 可能为 null + /// + public abstract void GenerateRoomSuccess(RoomInfo prevRoom, RoomInfo roomInfo); + + /// + /// 执行生成指定类型房间失败, prevRoom 可能为 null + /// + public abstract void GenerateRoomFail(RoomInfo prevRoom, DungeonRoomType roomType); + + //-------------------------- 下面的函数 prevRoom 一定不会为 null -------------------------- + + /// + /// 获取下一个房间的方向, prevRoom 一定不为 null + /// + public abstract RoomDirection GetNextRoomDoorDirection(RoomInfo prevRoom, DungeonRoomType roomType); + + /// + /// 获取下一个房间的间隔距离, prevRoom 一定不为 null + /// + public abstract int GetNextRoomInterval(RoomInfo prevRoom, DungeonRoomType roomType, RoomDirection direction); + + /// + /// 获取下一个房间相对于当前房间的原点偏移 (单位: 格), prevRoom 一定不为 null + /// + public abstract int GetNextRoomOffset(RoomInfo prevRoom, DungeonRoomType roomType, RoomDirection direction); } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/GenerateRoomErrorCode.cs b/DungeonShooting_Godot/src/framework/map/GenerateRoomErrorCode.cs new file mode 100644 index 0000000..c9e1c3e --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/GenerateRoomErrorCode.cs @@ -0,0 +1,13 @@ + +public enum GenerateRoomErrorCode +{ + NoError, + //超出区域 + OutArea, + //没有合适的位置 + NoSuitableLocation + // //碰到其他房间或过道 + // HasCollision, + // //没有合适的门 + // NoProperDoor, +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/RandomPool.cs b/DungeonShooting_Godot/src/framework/map/RandomPool.cs index 50d0e33..3328785 100644 --- a/DungeonShooting_Godot/src/framework/map/RandomPool.cs +++ b/DungeonShooting_Godot/src/framework/map/RandomPool.cs @@ -114,8 +114,8 @@ private void FillRewardRoom(RoomPreinstall preinstall) { var wave = GetOrCreateWave(preinstall, 0); - var mark = CreateMark(ActivityType.Prop, 0, (preinstall.RoomInfo.Waypoints + new Vector2(0.5f, 0.5f)) * GameConfig.TileCellSize); - mark.Id = GetRandomProp().Id; + var mark = CreateMark(ActivityType.Treasure, 0, (preinstall.RoomInfo.Waypoints + new Vector2(0.5f, 0.5f)) * GameConfig.TileCellSize); + mark.Id = "treasure_box0001"; wave.Add(mark); } diff --git a/DungeonShooting_Godot/src/framework/map/RoomDirection.cs b/DungeonShooting_Godot/src/framework/map/RoomDirection.cs new file mode 100644 index 0000000..0befbc9 --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/RoomDirection.cs @@ -0,0 +1,11 @@ + +/// +/// 生成房间的方向 +/// +public enum RoomDirection +{ + Up, + Down, + Left, + Right +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs b/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs index cde2d24..f292bd4 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/PreinstallMarkManager.cs @@ -8,11 +8,11 @@ /// /// 随机武器 /// - public static readonly RandomActivityBase Weapon = new RandomActivityBase() + public static readonly RandomActivityBase RandomWeapon = new RandomActivityBase() { Id = "$RandomGun", Name = "随机武器", - Type = (int)ActivityType.Other, + Type = ActivityType.Other, Icon = ResourcePath.resource_sprite_ui_commonIcon_Dice_png, ShowInMapEditor = true }; @@ -20,11 +20,11 @@ /// /// 随机敌人 /// - public static readonly RandomActivityBase Enemy = new RandomActivityBase() + public static readonly RandomActivityBase RandomEnemy = new RandomActivityBase() { Id = "$RandomEnemy", Name = "随机敌人", - Type = (int)ActivityType.Other, + Type = ActivityType.Other, Icon = ResourcePath.resource_sprite_ui_commonIcon_Dice_png, ShowInMapEditor = true }; @@ -32,17 +32,16 @@ /// /// 随机道具 /// - public static readonly RandomActivityBase Prop = new RandomActivityBase() + public static readonly RandomActivityBase RandomProp = new RandomActivityBase() { Id = "$RandomProp", Name = "随机道具", - Type = (int)ActivityType.Other, + Type = ActivityType.Other, Icon = ResourcePath.resource_sprite_ui_commonIcon_Dice_png, ShowInMapEditor = true }; - private static Dictionary> _cache = - new Dictionary>(); + private static Dictionary> _cache = new Dictionary>(); private static bool _init = false; @@ -67,17 +66,17 @@ /// public static ExcelConfig.ActivityBase GetMarkConfig(string id) { - if (Weapon.Id == id) + if (RandomWeapon.Id == id) { - return Weapon; + return RandomWeapon; } - else if (Enemy.Id == id) + else if (RandomEnemy.Id == id) { - return Enemy; + return RandomEnemy; } - else if (Prop.Id == id) + else if (RandomProp.Id == id) { - return Prop; + return RandomProp; } ExcelConfig.ActivityBase_Map.TryGetValue(id, out var activityBase); diff --git a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs index 458b8bc..47a70cc 100644 --- a/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs +++ b/DungeonShooting_Godot/src/framework/map/preinstall/RoomPreinstall.cs @@ -122,17 +122,17 @@ if (activityBase is RandomActivityBase) //随机物体 { - if (markInfoItem.Id == PreinstallMarkManager.Weapon.Id) //随机武器 + if (markInfoItem.Id == PreinstallMarkManager.RandomWeapon.Id) //随机武器 { mark.Id = world.RandomPool.GetRandomWeapon()?.Id; mark.ActivityType = ActivityType.Weapon; } - else if (markInfoItem.Id == PreinstallMarkManager.Enemy.Id) //随机敌人 + else if (markInfoItem.Id == PreinstallMarkManager.RandomEnemy.Id) //随机敌人 { mark.Id = world.RandomPool.GetRandomEnemy()?.Id; mark.ActivityType = ActivityType.Enemy; } - else if (markInfoItem.Id == PreinstallMarkManager.Prop.Id) //随机道具 + else if (markInfoItem.Id == PreinstallMarkManager.RandomProp.Id) //随机道具 { mark.Id = world.RandomPool.GetRandomProp()?.Id; mark.ActivityType = ActivityType.Prop; @@ -422,7 +422,7 @@ //获取物体默认所在层级 private RoomLayerEnum GetDefaultLayer(ActivityMark activityMark) { - if (activityMark.ActivityType == ActivityType.Player || activityMark.ActivityType == ActivityType.Enemy) + if (activityMark.ActivityType == ActivityType.Player || activityMark.ActivityType == ActivityType.Enemy || activityMark.ActivityType == ActivityType.Treasure) { return RoomLayerEnum.YSortLayer; } diff --git a/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs b/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs index e257b69..02fb5fa 100644 --- a/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs +++ b/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs @@ -139,6 +139,12 @@ /// 导航网格对象 /// public NavigationRegion2D NavigationRegion { get; set; } + + /// + /// 在 DungeonGenerator 中是否可以回滚, 如果可以回滚, 那么当前房间就只会有一个 NextRoom + /// + public bool CanRollback { get; set; } = false; + public bool IsDestroyed { get; private set; } private bool _openDoorFlag = true; diff --git a/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonRoomGroup.cs b/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonRoomGroup.cs index df4b135..e48086f 100644 --- a/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonRoomGroup.cs +++ b/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonRoomGroup.cs @@ -160,6 +160,7 @@ foreach (var roomType in Enum.GetValues()) { + if (roomType == DungeonRoomType.None) continue; InitAdRewardWeight(roomType, random); } } diff --git a/DungeonShooting_Godot/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs index 32add5e..bef0085 100644 --- a/DungeonShooting_Godot/src/game/GameApplication.cs +++ b/DungeonShooting_Godot/src/game/GameApplication.cs @@ -88,7 +88,8 @@ public GameApplication() { Instance = this; - TargetFps = (int)DisplayServer.ScreenGetRefreshRate(); + //TargetFps = 20; + TargetFps = Mathf.RoundToInt(DisplayServer.ScreenGetRefreshRate()); Utils.InitRandom(); diff --git a/DungeonShooting_Godot/src/game/activity/box/TreasureBox.cs b/DungeonShooting_Godot/src/game/activity/box/TreasureBox.cs new file mode 100644 index 0000000..ff8883c --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/box/TreasureBox.cs @@ -0,0 +1,42 @@ +using Godot; + +/// +/// 宝箱 +/// +[Tool] +public partial class TreasureBox : ActivityObject, IHurt +{ + public bool IsOpen { get; private set; } + + public override void OnInit() + { + AnimatedSprite.AnimationFinished += OnAnimationFinished; + } + + public override CheckInteractiveResult CheckInteractive(ActivityObject master) + { + return new CheckInteractiveResult(this, !IsOpen, CheckInteractiveResult.InteractiveType.OpenTreasureBox); + } + + public override void Interactive(ActivityObject master) + { + if (IsOpen) + { + return; + } + + IsOpen = true; + AnimatedSprite.Play(AnimatorNames.Open); + } + + private void OnAnimationFinished() + { + var weapon = Create(World.RandomPool.GetRandomProp()); + weapon.Throw(Position, 2, 95, new Vector2(0, 11), 0); + } + + public void Hurt(ActivityObject target, int damage, float angle) + { + PlayHitAnimation(); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/bullet/explode/Explode.cs b/DungeonShooting_Godot/src/game/activity/bullet/explode/Explode.cs index 637b9b3..17edff3 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/explode/Explode.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/explode/Explode.cs @@ -70,6 +70,7 @@ CollisionShape = GetNode("CollisionShape2D"); CircleShape = (CircleShape2D)CollisionShape.Shape; AnimationPlayer.AnimationFinished += OnAnimationFinish; + AreaEntered += OnArea2dEntered; BodyEntered += OnBodyEntered; } @@ -133,34 +134,45 @@ private void OnBodyEntered(Node2D node) { - var o = node.AsActivityObject(); - if (o != null) + if (node is IHurt hurt) { - var temp = o.Position - Position; - var len = temp.Length(); - var angle = temp.Angle(); - - if (len <= _hitRadius) //在伤害半径内 + HandlerCollision(hurt); + } + else if (node is Bullet bullet) //是子弹 + { + if (bullet is BoomBullet boomBullet) //如果是爆炸子弹, 则直接销毁 { - if (o is Role role) //是角色 - { - role.CallDeferred(nameof(role.Hurt), BulletData.TriggerRole.IsDestroyed ? null : BulletData.TriggerRole, _harm, angle); - } - else if (o is Bullet bullet) //是子弹 - { - if (bullet is BoomBullet boomBullet) //如果是爆炸子弹, 则直接销毁 - { - boomBullet.PlayBoom(); - } - bullet.Destroy(); - return; - } + boomBullet.PlayBoom(); } - - if (len <= _repelledRadius) //击退半径内 + bullet.Destroy(); + } + } + + private void OnArea2dEntered(Area2D other) + { + if (other is IHurt hurt) + { + HandlerCollision(hurt); + } + } + + private void HandlerCollision(IHurt hurt) + { + var temp = hurt.GetPosition() - Position; + var len = temp.Length(); + var angle = temp.Angle(); + + if (len <= _hitRadius) //在伤害半径内 + { + hurt.Hurt(BulletData.TriggerRole.IsDestroyed ? null : BulletData.TriggerRole, _harm, angle); + } + + if (len <= _repelledRadius) //击退半径内 + { + var o = hurt.GetActivityObject(); + if (o != null) { var repelled = (_repelledRadius - len) / _repelledRadius * _maxRepelled; - //o.MoveController.SetAllVelocity(Vector2.Zero); o.AddRepelForce(Vector2.FromAngle(angle) * repelled); } } diff --git a/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs b/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs index de08f5b..cbde60e 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; @@ -65,6 +64,7 @@ _pixelScale = 1f / LineSprite.Texture.GetHeight(); AreaEntered += OnArea2dEntered; + BodyEntered += OnBodyEntered; _init = true; } @@ -112,7 +112,7 @@ } //激光飞行时间 - var time = distance / _speed; + var time = distance / data.FlySpeed; _tween = CreateTween(); _tween.SetParallel(); @@ -193,22 +193,38 @@ } } } + + private void OnBodyEntered(Node2D body) + { + if (body is IHurt hurt) + { + HandlerCollision(hurt); + } + } private void OnArea2dEntered(Area2D other) { - var role = other.AsActivityObject(); - if (role != null) + if (other is IHurt hurt) { - //击退 - if (BulletData.Repel != 0) - { - role.AddRepelForce(Vector2.FromAngle(Rotation) * BulletData.Repel); - } - //造成伤害 - role.CallDeferred(nameof(Role.Hurt), BulletData.TriggerRole.IsDestroyed ? null : BulletData.TriggerRole, BulletData.Harm, Rotation); + HandlerCollision(hurt); } } + private void HandlerCollision(IHurt hurt) + { + if (BulletData.Repel != 0) + { + var o = hurt.GetActivityObject(); + if (o != null && o is not Player) //目标不是玩家才会触发击退 + { + o.AddRepelForce(Vector2.FromAngle(Rotation) * BulletData.Repel); + } + } + + //造成伤害 + hurt.Hurt(BulletData.TriggerRole.IsDestroyed ? null : BulletData.TriggerRole, BulletData.Harm, Rotation); + } + public long StartCoroutine(IEnumerator able) { return ProxyCoroutineHandler.ProxyStartCoroutine(ref _coroutineList, able); diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs index 1a763f3..36702cc 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs @@ -19,7 +19,7 @@ DoReclaim(); } - public override void OnCollisionTarget(ActivityObject o) + public override void OnCollisionTarget(IHurt o) { PlayBoom(); DoReclaim(); @@ -53,7 +53,7 @@ public void PlayBoom() { var explode = ObjectManager.GetPoolItem(ResourcePath.prefab_bullet_explode_Explode0001_tscn); - var pos = Position; + var pos = CollisionArea.GlobalPosition; explode.Position = pos; explode.RotationDegrees = Utils.Random.RandomRangeInt(0, 360); explode.AddToActivityRootDeferred(RoomLayerEnum.YSortLayer); diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs index 7741652..77c8d38 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs @@ -54,11 +54,15 @@ /// public int CurrentPenetration { get; protected set; } = 0; + /// + /// 是否是敌人使用的子弹 + /// + public bool IsEnemyBullet { get; private set; } = false; + //当前子弹已经飞行的距离 private float CurrFlyDistance = 0; private bool _init = false; - private bool _isEnemyBullet = false; public override void OnInit() { @@ -72,6 +76,7 @@ if (!_init) { CollisionArea.AreaEntered += OnArea2dEntered; + CollisionArea.BodyEntered += OnBodyEntered; _init = true; } @@ -109,18 +114,14 @@ //如果子弹会对玩家造成伤害, 则显示红色描边 if (Player.Current.CollisionWithMask(attackLayer)) { - if (!_isEnemyBullet) + if (!IsEnemyBullet) { - _isEnemyBullet = true; - ShowOutline = true; - SetBlendSchedule(1); + RefreshBulletColor(true); } } - else if (_isEnemyBullet) + else if (IsEnemyBullet) { - _isEnemyBullet = false; - ShowOutline = false; - SetBlendSchedule(0); + RefreshBulletColor(false); } PutDown(RoomLayerEnum.YSortLayer); @@ -144,6 +145,25 @@ } } + /// + /// 刷新子弹的颜色 + /// + /// 是否是敌人使用的子弹 + public virtual void RefreshBulletColor(bool isEnemyBullet) + { + IsEnemyBullet = isEnemyBullet; + if (isEnemyBullet) + { + ShowOutline = true; + SetBlendSchedule(1); + } + else + { + ShowOutline = false; + SetBlendSchedule(0); + } + } + public override void OnMoveCollision(KinematicCollision2D collision) { CurrentBounce++; @@ -158,30 +178,26 @@ /// /// 碰到目标 /// - public virtual void OnCollisionTarget(ActivityObject o) + public virtual void OnCollisionTarget(IHurt hurt) { - if (o is Role role) + OnPlayDisappearEffect(); + if (BulletData.Repel != 0) { - OnPlayDisappearEffect(); - - //击退 - if (role is not Player) //目标不是玩家才会触发击退 + var o = hurt.GetActivityObject(); + if (o != null && o is not Player) //目标不是玩家才会触发击退 { - if (BulletData.Repel != 0) - { - role.AddRepelForce(Velocity.Normalized() * BulletData.Repel); - } + o.AddRepelForce(Velocity.Normalized() * BulletData.Repel); } - - //造成伤害 - role.CallDeferred(nameof(Role.Hurt), BulletData.TriggerRole.IsDestroyed ? null : BulletData.TriggerRole, BulletData.Harm, Rotation); + } - //穿透次数 - CurrentPenetration++; - if (CurrentPenetration > BulletData.Penetration) - { - DoReclaim(); - } + //造成伤害 + hurt.Hurt(BulletData.TriggerRole.IsDestroyed ? null : BulletData.TriggerRole, BulletData.Harm, Rotation); + + //穿透次数 + CurrentPenetration++; + if (CurrentPenetration > BulletData.Penetration) + { + DoReclaim(); } } @@ -286,17 +302,33 @@ OnMaxDistance(); } } - + + private void OnBodyEntered(Node2D body) + { + if (IsDestroyed) + { + return; + } + + if (body is IHurt hurt) + { + OnCollisionTarget(hurt); + } + } + private void OnArea2dEntered(Area2D other) { if (IsDestroyed) { return; } - var activityObject = other.AsActivityObject(); - OnCollisionTarget(activityObject); + + if (other is IHurt hurt) + { + OnCollisionTarget(hurt); + } } - + public virtual void DoReclaim() { ObjectPool.Reclaim(this); diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/ColorBullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/ColorBullet.cs new file mode 100644 index 0000000..3ffbd3c --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/ColorBullet.cs @@ -0,0 +1,28 @@ + +using Godot; + +[Tool] +public partial class ColorBullet : Bullet +{ + public override void OnInit() + { + base.OnInit(); + SetRandomColor(); + } + + public override void OnLeavePool() + { + base.OnLeavePool(); + SetRandomColor(); + } + + private void SetRandomColor() + { + //随机颜色 + var color = new Color(Utils.Random.RandomRangeFloat(0, 1), Utils.Random.RandomRangeFloat(0, 1), Utils.Random.RandomRangeFloat(0, 1)); + color.R += 0.6f; + color.G += 0.6f; + color.B += 0.6f; + Modulate = color; + } +} \ No newline at end of file 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..67f6da9 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/TrailBullet.cs @@ -0,0 +1,38 @@ + +using Godot; + +[Tool] +public partial class TrailBullet : Bullet +{ + private static Color TerrainColor = new Color(0xf5 / 255f + 0.8f, 0x7e / 255f + 0.45f, 0x7a / 255f + 0.45f, 0.7f); + private static Color EnemyTerrainColor = new Color(1.5f, 0, 0, 0.7f); + private Trail trail; + + public override void InitData(BulletData data, uint attackLayer) + { + base.InitData(data, attackLayer); + + trail = ObjectManager.GetPoolItem(ResourcePath.prefab_effect_common_Trail0001_tscn); + trail.SetTarget(AnimatedSprite); + trail.AddPoint(trail.Target.GlobalPosition); + trail.AddToActivityRoot(RoomLayerEnum.YSortLayer); + trail.ZIndex = 1; + + if (IsEnemyBullet) + { + trail.SetColor(EnemyTerrainColor); + } + else + { + trail.SetColor(TerrainColor); + } + } + + + public override void OnReclaim() + { + base.OnReclaim(); + trail.SetTarget(null); + trail = null; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/currency/Gold.cs b/DungeonShooting_Godot/src/game/activity/currency/Gold.cs new file mode 100644 index 0000000..b991fb6 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/currency/Gold.cs @@ -0,0 +1,73 @@ + +using Godot; + +/// +/// 金币类 +/// +[Tool] +public partial class Gold : ActivityObject, IPoolItem +{ + /// + /// 金币数量 + /// + [Export] + public int GoldCount { get; set; } = 1; + + public bool IsRecycled { get; set; } + public string Logotype { get; set; } + + private float _maxSpeed = 250; + private float _speed = 0; + private Role _moveTarget; + + public override void OnInit() + { + DefaultLayer = RoomLayerEnum.YSortLayer; + } + + protected override void OnThrowOver() + { + var current = Player.Current; + if (current != null) + { + this.CallDelay(0.3f, () => + { + _moveTarget = current; + MoveController.Enable = false; + }); + } + } + + protected override void Process(float delta) + { + if (_moveTarget != null && !_moveTarget.IsDestroyed) + { + var position = Position; + var targetPosition = _moveTarget.Position; + if (position.DistanceSquaredTo(targetPosition) < 3 * 3) + { + _moveTarget.AddGold(GoldCount); + ObjectPool.Reclaim(this); + } + else + { + _speed = Mathf.MoveToward(_speed, _maxSpeed, _maxSpeed * delta); + Position = position.MoveToward(targetPosition, _speed * delta); + } + } + } + + public void OnReclaim() + { + GetParent().RemoveChild(this); + _moveTarget = null; + } + + public void OnLeavePool() + { + _speed = 0; + MoveController.Enable = true; + MoveController.ClearForce(); + MoveController.SetAllVelocity(Vector2.Zero); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/Prop.cs b/DungeonShooting_Godot/src/game/activity/prop/Prop.cs index c79dfc0..90fb6e7 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/Prop.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/Prop.cs @@ -21,6 +21,11 @@ /// public abstract void OnRemoveItem(); + public override void OnInit() + { + ThrowCollisionMask = PhysicsLayer.Wall; + } + /// /// 如果道具放入了角色背包中, 则每帧调用 /// diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs index 2770ac7..bdc2ce4 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs @@ -9,6 +9,7 @@ { public override void OnInit() { + base.OnInit(); AutoDestroy = true; MaxCount = 10; Superposition = true; diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5001.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5001.cs index 2bac5e6..43770cb 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5001.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5001.cs @@ -9,6 +9,7 @@ { public override void OnInit() { + base.OnInit(); Superposition = true; AutoDestroy = true; MaxCount = 10; diff --git a/DungeonShooting_Godot/src/game/activity/role/Role.cs b/DungeonShooting_Godot/src/game/activity/role/Role.cs index 67748b5..7342725 100644 --- a/DungeonShooting_Godot/src/game/activity/role/Role.cs +++ b/DungeonShooting_Godot/src/game/activity/role/Role.cs @@ -1,6 +1,7 @@  using System.Collections; using System.Collections.Generic; +using Config; using Godot; /// @@ -21,13 +22,13 @@ /// /// 默认攻击对象层级 /// - public const uint DefaultAttackLayer = PhysicsLayer.Player | PhysicsLayer.Enemy | PhysicsLayer.Wall; + public const uint DefaultAttackLayer = PhysicsLayer.Player | PhysicsLayer.Enemy | PhysicsLayer.Obstacle; /// /// 伤害区域 /// [Export, ExportFillNode] - public Area2D HurtArea { get; set; } + public HurtArea HurtArea { get; set; } /// /// 伤害区域碰撞器 @@ -43,7 +44,7 @@ /// /// 攻击目标的碰撞器所属层级, 数据源自于: /// - public uint AttackLayer { get; set; } = PhysicsLayer.Wall; + public uint AttackLayer { get; set; } = PhysicsLayer.Wall | PhysicsLayer.Obstacle; /// /// 该角色敌对目标的碰撞器所属层级, 数据源自于: @@ -463,9 +464,15 @@ _startScale = Scale; + HurtArea.InitActivityObject(this); HurtArea.CollisionLayer = CollisionLayer; - HurtArea.CollisionMask = 0; + HurtArea.CollisionMask = PhysicsLayer.None; _currentLayer = HurtArea.CollisionLayer; + //CollisionLayer = PhysicsLayer.None; + HurtArea.OnHurtEvent += (target, damage, angle) => + { + CallDeferred(nameof(HurtHandler), target, damage, angle); + }; Face = FaceDirection.Right; @@ -485,6 +492,7 @@ WeaponPack.ChangeActiveItemEvent += OnChangeActiveItem; //近战区域进入物体 MeleeAttackArea.BodyEntered += OnMeleeAttackBodyEntered; + MeleeAttackArea.AreaEntered += OnMeleeAttackAreaEntered; } protected override void Process(float delta) @@ -787,14 +795,14 @@ activeItem.Use(); } } - + /// /// 受到伤害, 如果是在碰撞信号处理函数中调用该函数, 请使用 CallDeferred 来延时调用, 否则很有可能导致报错 /// /// 触发伤害的对象, 为 null 表示不存在对象或者对象已经被销毁 /// 伤害的量 /// 伤害角度(弧度制) - public virtual void Hurt(ActivityObject target, int damage, float angle) + protected virtual void HurtHandler(ActivityObject target, int damage, float angle) { //受伤闪烁, 无敌状态 if (Invincible) @@ -1236,6 +1244,16 @@ }); } } + + /// + /// 添加金币 + /// + public virtual void AddGold(int goldCount) + { + RoleState.Gold += goldCount; + //播放音效 + SoundManager.PlaySoundByConfig(ExcelConfig.Sound_Map["gold"], Position, this); + } /// /// 切换当前使用的武器的回调 @@ -1255,6 +1273,20 @@ } } + private void OnMeleeAttackAreaEntered(Area2D area) + { + var activeWeapon = WeaponPack.ActiveItem; + if (activeWeapon == null) + { + return; + } + + if (area is IHurt hurt) + { + HandlerCollision(hurt, activeWeapon); + } + } + /// /// 近战区域碰到敌人 /// @@ -1265,38 +1297,41 @@ { return; } - var activityObject = body.AsActivityObject(); - if (activityObject != null) + + if (body is IHurt hurt) { - if (activityObject is Role role) //攻击角色 + HandlerCollision(hurt, activeWeapon); + } + else if (body is Bullet bullet) //攻击子弹 + { + var attackLayer = bullet.AttackLayer; + if (CollisionWithMask(attackLayer)) //是攻击玩家的子弹 { - var damage = Utils.Random.RandomConfigRange(activeWeapon.Attribute.MeleeAttackHarmRange); - damage = RoleState.CalcDamage(damage); - - //击退 - if (role is not Player) //目标不是玩家才会触发击退 - { - var attr = IsAi ? activeWeapon.AiUseAttribute : activeWeapon.PlayerUseAttribute; - var repel = Utils.Random.RandomConfigRange(attr.MeleeAttackRepelRange); - var position = role.GlobalPosition - MountPoint.GlobalPosition; - var v2 = position.Normalized() * repel; - role.AddRepelForce(v2); - } - - role.CallDeferred(nameof(Hurt), this, damage, (role.GetCenterPosition() - GlobalPosition).Angle()); - } - else if (activityObject is Bullet bullet) //攻击子弹 - { - var attackLayer = bullet.AttackLayer; - if (CollisionWithMask(attackLayer)) //是攻击玩家的子弹 - { - bullet.OnPlayDisappearEffect(); - bullet.Destroy(); - } + bullet.OnPlayDisappearEffect(); + bullet.Destroy(); } } } - + + private void HandlerCollision(IHurt hurt, Weapon activeWeapon) + { + var damage = Utils.Random.RandomConfigRange(activeWeapon.Attribute.MeleeAttackHarmRange); + damage = RoleState.CalcDamage(damage); + + var o = hurt.GetActivityObject(); + var pos = hurt.GetPosition(); + if (o != null && o is not Player) //不是玩家才能被击退 + { + var attr = IsAi ? activeWeapon.AiUseAttribute : activeWeapon.PlayerUseAttribute; + var repel = Utils.Random.RandomConfigRange(attr.MeleeAttackRepelRange); + var position = pos - MountPoint.GlobalPosition; + var v2 = position.Normalized() * repel; + o.AddRepelForce(v2); + } + + hurt.Hurt(this, damage, (pos - GlobalPosition).Angle()); + } + protected override void OnDestroy() { //销毁道具 diff --git a/DungeonShooting_Godot/src/game/activity/role/RoleState.cs b/DungeonShooting_Godot/src/game/activity/role/RoleState.cs index 2af6bf3..f974546 100644 --- a/DungeonShooting_Godot/src/game/activity/role/RoleState.cs +++ b/DungeonShooting_Godot/src/game/activity/role/RoleState.cs @@ -7,6 +7,11 @@ public class RoleState { /// + /// 金币数量 + /// + public int Gold = 0; + + /// /// 是否可以拾起武器 /// public bool CanPickUpWeapon = false; diff --git a/DungeonShooting_Godot/src/game/activity/role/SubLine.cs b/DungeonShooting_Godot/src/game/activity/role/SubLine.cs index 5f9dd84..4839685 100644 --- a/DungeonShooting_Godot/src/game/activity/role/SubLine.cs +++ b/DungeonShooting_Godot/src/game/activity/role/SubLine.cs @@ -28,7 +28,7 @@ AddChild(_line2D); _rayCast2D = new RayCast2D(); - _rayCast2D.CollisionMask = PhysicsLayer.Wall; + _rayCast2D.CollisionMask = PhysicsLayer.Wall | PhysicsLayer.Obstacle; AddChild(_rayCast2D); Master.WeaponPack.ChangeActiveItemEvent += OnChangeWeapon; diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs index 47aa18d..37faa8e 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/Enemy.cs @@ -134,7 +134,7 @@ StateController = AddComponent>(); - AttackLayer = PhysicsLayer.Wall | PhysicsLayer.Player; + AttackLayer = PhysicsLayer.Obstacle | PhysicsLayer.Player; EnemyLayer = PhysicsLayer.Player; Camp = CampEnum.Camp2; @@ -165,6 +165,8 @@ var enemyBase = GetEnemyAttribute(ActivityBase.Id).Clone(); _enemyAttribute = enemyBase; + MaxHp = enemyBase.Hp; + Hp = enemyBase.Hp; roleState.CanPickUpWeapon = enemyBase.CanPickUpWeapon; roleState.MoveSpeed = enemyBase.MoveSpeed; roleState.Acceleration = enemyBase.Acceleration; @@ -172,6 +174,8 @@ roleState.ViewRange = enemyBase.ViewRange; roleState.TailAfterViewRange = enemyBase.TailAfterViewRange; roleState.BackViewRange = enemyBase.BackViewRange; + + roleState.Gold = Mathf.Max(0, Utils.Random.RandomConfigRange(enemyBase.Gold)); return roleState; } @@ -210,6 +214,9 @@ debris.MoveController.AddForce(Velocity + realVelocity); } + //创建金币 + CreateGold(); + //派发敌人死亡信号 EventManager.EmitEvent(EventEnum.OnEnemyDie, this); Destroy(); @@ -249,6 +256,24 @@ } } + /// + /// 创建散落的金币 + /// + protected void CreateGold() + { + var goldList = Utils.GetGoldList(RoleState.Gold); + foreach (var id in goldList) + { + var o = ObjectManager.GetActivityObject(id); + o.Position = Position; + o.Throw(0, + Utils.Random.RandomRangeInt(50, 110), + new Vector2(Utils.Random.RandomRangeInt(-20, 20), Utils.Random.RandomRangeInt(-20, 20)), + 0 + ); + } + } + public override bool IsAllWeaponTotalAmmoEmpty() { if (!_enemyAttribute.CanPickUpWeapon) diff --git a/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs b/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs index 937f133..2e1e4ae 100644 --- a/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs +++ b/DungeonShooting_Godot/src/game/activity/role/enemy/NoWeaponEnemy.cs @@ -42,7 +42,7 @@ public virtual void OnAttack() { //攻击特效 - var effect = ObjectManager.GetPoolItem(ResourcePath.prefab_effect_weapon_ShotFire3_tscn); + var effect = ObjectManager.GetPoolItem(ResourcePath.prefab_effect_weapon_ShotFire0003_tscn); var node = (Node2D)effect; node.GlobalPosition = FirePoint.GlobalPosition; node.Rotation = MountPoint.Rotation; @@ -70,6 +70,9 @@ debris.SetForwardDirection(Face); debris.BrushPrevPosition = BrushPrevPosition; + //创建金币 + CreateGold(); + //派发敌人死亡信号 EventManager.EmitEvent(EventEnum.OnEnemyDie, this); Destroy(); diff --git a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs index 482be7a..f301669 100644 --- a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs +++ b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs @@ -48,7 +48,7 @@ IsAi = false; StateController = AddComponent>(); - AttackLayer = PhysicsLayer.Wall | PhysicsLayer.Enemy; + AttackLayer = PhysicsLayer.Obstacle | PhysicsLayer.Enemy; EnemyLayer = EnemyLayer = PhysicsLayer.Enemy; Camp = CampEnum.Camp1; @@ -61,20 +61,7 @@ ActivePropsPack.SetCapacity(1); // debug用 - // RoleState.Acceleration = 3000; - // RoleState.Friction = 3000; - // RoleState.MoveSpeed = 500; - // CollisionLayer = 0; - // CollisionMask = 0; - // GameCamera.Main.Zoom = new Vector2(0.5f, 0.5f); - //GameCamera.Main.Zoom = new Vector2(0.2f, 0.2f); - // this.CallDelay(0.5f, () => - // { - // PickUpWeapon(Create(Ids.Id_weapon0009)); - // PickUpWeapon(Create(Ids.Id_weapon0008)); - // PickUpWeapon(Create(Ids.Id_weapon0007)); - // PickUpWeapon(Create(Ids.Id_weapon0006)); - // }); + // DebugSet(); //注册状态机 StateController.Register(new PlayerIdleState()); @@ -88,6 +75,37 @@ _brushData2 = new BrushImageData(ExcelConfig.LiquidMaterial_Map["0001"]); } + private void DebugSet() + { + RoleState.Acceleration = 3000; + RoleState.Friction = 3000; + RoleState.MoveSpeed = 500; + CollisionLayer = PhysicsLayer.None; + CollisionMask = PhysicsLayer.None; + GameCamera.Main.Zoom = new Vector2(0.5f, 0.5f); + // this.CallDelay(0.5f, () => + // { + // PickUpWeapon(Create(Ids.Id_weapon0009)); + // PickUpWeapon(Create(Ids.Id_weapon0008)); + // PickUpWeapon(Create(Ids.Id_weapon0007)); + // PickUpWeapon(Create(Ids.Id_weapon0006)); + // }); + World.Color = new Color(1, 1, 1, 1); //关闭迷雾 + //显示房间小地图 + this.CallDelay(1, () => + { + GameApplication.Instance.DungeonManager.StartRoomInfo.EachRoom(info => + { + info.PreviewSprite.Visible = true; + foreach (var roomDoorInfo in info.Doors) + { + roomDoorInfo.AislePreviewSprite.Visible = true; + } + }); + }); + + } + protected override RoleState OnCreateRoleState() { var roleState = new PlayerRoleState(); @@ -202,14 +220,14 @@ { //Hurt(1000, 0); Hp = 0; - Hurt(this, 1000, 0); + HurtHandler(this, 1000, 0); } else if (Input.IsKeyPressed(Key.O)) //测试用, 消灭房间内所有敌人 { var enemyList = AffiliationArea.FindIncludeItems(o => o.CollisionWithMask(PhysicsLayer.Enemy)); foreach (var enemy in enemyList) { - ((Enemy)enemy).Hurt(this, 1000, 0); + ((Enemy)enemy).HurtArea.Hurt(this, 1000, 0); } } // //测试用 @@ -386,4 +404,10 @@ // base.DebugDraw(); // DrawArc(GetLocalMousePosition(), 25, 0, Mathf.Pi * 2f, 20, Colors.Red, 1); // } + + public override void AddGold(int goldCount) + { + base.AddGold(goldCount); + EventManager.EmitEvent(EventEnum.OnPlayerGoldChange, RoleState.Gold); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/role/player/PlayerRoleState.cs b/DungeonShooting_Godot/src/game/activity/role/player/PlayerRoleState.cs index f52b21d..c9e2f7d 100644 --- a/DungeonShooting_Godot/src/game/activity/role/player/PlayerRoleState.cs +++ b/DungeonShooting_Godot/src/game/activity/role/player/PlayerRoleState.cs @@ -14,5 +14,5 @@ /// /// 翻滚冷却时间 /// - public float RollCoolingTime = 0.4f; + public float RollCoolingTime = 0.2f; } \ 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..4499111 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs @@ -214,7 +214,8 @@ private Vector2 _gripOffset; //碰撞器位置 - private Vector2 _collPoint; + private Vector2 _collPoint1; + private Vector2 _collPoint2; //换弹计时器 private float _reloadTimer = 0; @@ -294,10 +295,11 @@ AnimationPlayer.AnimationFinished += OnAnimationPlayerFinished; _gripPoint = AnimatedSprite.Position; _gripOffset = AnimatedSprite.Offset; - _collPoint = Collision.Position; + _collPoint1 = Collision.Position; + _collPoint2 = _collPoint1 - AnimatedSprite.Offset - AnimatedSprite.Position; AnimatedSprite.Position = Vector2.Zero; AnimatedSprite.Offset = Vector2.Zero; - Collision.Position = Vector2.Zero; + Collision.Position = _collPoint2; } /// @@ -307,12 +309,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; } @@ -325,8 +328,15 @@ CurrAmmo = Attribute.AmmoCapacity; //剩余弹药量 ResidueAmmo = Mathf.Min(Attribute.StandbyAmmoCapacity + CurrAmmo, Attribute.MaxAmmoCapacity) - CurrAmmo; - - ThrowCollisionSize = attribute.ThrowCollisionSize.AsVector2(); + + if (Collision.Shape is RectangleShape2D rectangleShape) + { + ThrowCollisionSize = rectangleShape.Size; + } + else + { + ThrowCollisionSize = new Vector2(-1, -1); + } } /// @@ -1500,23 +1510,30 @@ //抛弹逻辑 private void ThrowShellHandler(float speedScale) { - if (Attribute.Shell == null) + var attribute = Attribute; + if (attribute.Shell == null) { return; } //创建一个弹壳 - if (Attribute.ThrowShellDelayTime > 0) + if (attribute.ThrowShellDelayTime > 0) { - this.CallDelay(Attribute.ThrowShellDelayTime, () => + this.CallDelay(attribute.ThrowShellDelayTime, () => { _reloadShellFlag = true; - FireManager.ThrowShell(this, Attribute.Shell, speedScale); + for (var i = 0; i < attribute.ThrowShellCount; i++) + { + FireManager.ThrowShell(this, attribute.Shell, speedScale); + } }); } - else if (Attribute.ThrowShellDelayTime == 0) + else if (attribute.ThrowShellDelayTime == 0) { _reloadShellFlag = true; - FireManager.ThrowShell(this, Attribute.Shell, speedScale); + for (var i = 0; i < attribute.ThrowShellCount; i++) + { + FireManager.ThrowShell(this, attribute.Shell, speedScale); + } } } @@ -1915,7 +1932,7 @@ //精灵位置, 旋转中心点 AnimatedSprite.Position = Vector2.Zero; AnimatedSprite.Offset = Vector2.Zero; - Collision.Position = Vector2.Zero; + Collision.Position = _collPoint2; //清除 Ai 拾起标记 RemoveSign(SignNames.AiFindWeaponSign); //停止换弹 @@ -1945,7 +1962,7 @@ //Collision.Disabled = true; AnimatedSprite.Position = _gripPoint; AnimatedSprite.Offset = _gripOffset; - Collision.Position = _collPoint; + Collision.Position = _collPoint1; //修改层级 _tempLayer = CollisionLayer; CollisionLayer = PhysicsLayer.OnHand; diff --git a/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs b/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs index 3d386d0..f9c117f 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/knife/Knife.cs @@ -39,6 +39,7 @@ _hitArea.Monitoring = false; _hitArea.Monitorable = false; _hitArea.BodyEntered += OnBodyEntered; + _hitArea.AreaEntered += OnArea2dEntered; //禁用自动播放动画 IsAutoPlaySpriteFrames = false; @@ -82,7 +83,7 @@ if (IsActive) //被使用 { //播放挥刀特效 - SpecialEffectManager.Play( + SpecialEffectManager.PlaySpriteFrames( Master, ResourcePath.resource_spriteFrames_weapon_Weapon0004_hit_tres, "default", Master.MountPoint.Position, @@ -123,56 +124,71 @@ private void OnBodyEntered(Node2D body) { - //Debug.Log("碰到物体: " + body.Name); - var activityObject = body.AsActivityObject(); - if (activityObject != null) + if (body is IHurt hurt) { - if (activityObject is Role role) //碰到角色 + HandlerCollision(hurt); + } + else if (body is Bullet bullet) //攻击子弹 + { + var attackLayer = bullet.AttackLayer; + if (TriggerRole != null && TriggerRole.CollisionWithMask(attackLayer)) //是攻击玩家的子弹 { - var damage = Utils.Random.RandomConfigRange(Attribute.Bullet.HarmRange); - //计算子弹造成的伤害 - if (TriggerRole != null) - { - damage = TriggerRole.RoleState.CalcDamage(damage); - } - //击退 - var attr = GetUseAttribute(TriggerRole); - var repel = Utils.Random.RandomConfigRange(attr.Bullet.RepelRange); - //计算击退 - if (TriggerRole != null) - { - repel = TriggerRole.RoleState.CalcBulletRepel(repel); - } - if (repel != 0) - { - Vector2 position; - if (TriggerRole != null) - { - position = role.GlobalPosition - TriggerRole.MountPoint.GlobalPosition; - } - else - { - position = role.GlobalPosition - GlobalPosition; - } - var v2 = position.Normalized() * repel; - role.AddRepelForce(v2); - } - - //造成伤害 - role.CallDeferred(nameof(Role.Hurt), TriggerRole, damage, (role.GetCenterPosition() - GlobalPosition).Angle()); - } - else if (activityObject is Bullet bullet) //攻击子弹 - { - var attackLayer = bullet.AttackLayer; - if (TriggerRole != null && TriggerRole.CollisionWithMask(attackLayer)) //是攻击玩家的子弹 - { - //反弹子弹 - bullet.OnPlayDisappearEffect(); - bullet.MoveController.ScaleAllVelocity(-1); - bullet.Rotation += Mathf.Pi; - bullet.AttackLayer = TriggerRole.AttackLayer; - } + //反弹子弹 + bullet.OnPlayDisappearEffect(); + bullet.MoveController.ScaleAllVelocity(-1); + bullet.Rotation += Mathf.Pi; + bullet.AttackLayer = TriggerRole.AttackLayer; + bullet.RefreshBulletColor(false); } } } + + private void OnArea2dEntered(Area2D area) + { + if (area is IHurt hurt) + { + HandlerCollision(hurt); + } + } + + private void HandlerCollision(IHurt hurt) + { + var damage = Utils.Random.RandomConfigRange(Attribute.Bullet.HarmRange); + //计算子弹造成的伤害 + if (TriggerRole != null) + { + damage = TriggerRole.RoleState.CalcDamage(damage); + } + //击退 + var attr = GetUseAttribute(TriggerRole); + var repel = Utils.Random.RandomConfigRange(attr.Bullet.RepelRange); + //计算击退 + if (TriggerRole != null) + { + repel = TriggerRole.RoleState.CalcBulletRepel(repel); + } + + var globalPosition = GlobalPosition; + if (repel != 0) + { + var o = hurt.GetActivityObject(); + if (o != null && o is not Player) //不是玩家才能被击退 + { + Vector2 position; + if (TriggerRole != null) + { + position = o.GlobalPosition - TriggerRole.MountPoint.GlobalPosition; + } + else + { + position = o.GlobalPosition - globalPosition; + } + var v2 = position.Normalized() * repel; + o.AddRepelForce(v2); + } + } + + //造成伤害 + hurt.Hurt(TriggerRole, damage, (hurt.GetPosition() - globalPosition).Angle()); + } } diff --git a/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs b/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs index bf3d97d..747cff3 100644 --- a/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs +++ b/DungeonShooting_Godot/src/game/data/property/AnimatorNames.cs @@ -90,4 +90,9 @@ /// 重置动画 /// public static readonly StringName Reset = "RESET"; + + /// + /// 打开宝箱 + /// + public static readonly StringName Open = "open"; } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/data/property/PhysicsLayer.cs b/DungeonShooting_Godot/src/game/data/property/PhysicsLayer.cs index f181de2..d1675e4 100644 --- a/DungeonShooting_Godot/src/game/data/property/PhysicsLayer.cs +++ b/DungeonShooting_Godot/src/game/data/property/PhysicsLayer.cs @@ -43,4 +43,8 @@ /// 投抛中 /// public const uint Throwing = 0b100000000; + /// + /// 障碍物 + /// + public const uint Obstacle = 0b1000000000; } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/effects/Trail.cs b/DungeonShooting_Godot/src/game/effects/Trail.cs new file mode 100644 index 0000000..91825a5 --- /dev/null +++ b/DungeonShooting_Godot/src/game/effects/Trail.cs @@ -0,0 +1,124 @@ +using Godot; + +/// +/// 拖尾效果 +/// +public partial class Trail : Line2D, IPoolItem +{ + /// + /// 拖尾效果固定更新帧率 + /// + public const int TrailUpdateFrame = 20; + + /// + /// 拖尾最大点数 + /// + public int MaxLength { get; set; } = 20; + /// + /// 拖尾绑定的物体 + /// + public Node2D Target { get; private set; } + + public bool IsDestroyed { get; private set; } + + public bool IsRecycled { get; set; } + public string Logotype { get; set; } + + private double _time = 0; + private IPoolItem _targetPoolItem; + + /// + /// 设置拖尾跟随的物体 + /// + public void SetTarget(Node2D target) + { + Target = target; + if (target is IPoolItem poolItem) + { + _targetPoolItem = poolItem; + } + else + { + _targetPoolItem = null; + } + + if (target != null) + { + ClearPoints(); + } + + _time = 1f / TrailUpdateFrame; + } + + public void SetColor(Color color) + { + Gradient.SetColor(0, color); + color.A = 0; + Gradient.SetColor(1, color); + } + + public override void _Process(double delta) + { + if (_targetPoolItem != null && _targetPoolItem.IsRecycled) //目标物体被回收 + { + SetTarget(null); + } + + _time += delta; + var v = 1f / TrailUpdateFrame; + if (_time >= v) //执行更新点 + { + _time %= v; + + var pointCount = GetPointCount(); + if (Target != null) //没有被回收 + { + AddPoint(Target.GlobalPosition, 0); + if (pointCount > MaxLength) + { + RemovePoint(pointCount); + } + } + else //被回收了, + { + if (pointCount > 0) + { + RemovePoint(pointCount - 1); + } + + if (pointCount <= 1) //没有点了, 执行回收 + { + ObjectPool.Reclaim(this); + } + } + } + else if (Target != null && GetPointCount() >= 2) //没有被回收, 更新第一个点 + { + SetPointPosition(0, Target.GlobalPosition); + } + } + + public void Destroy() + { + if (IsDestroyed) + { + return; + } + + IsDestroyed = true; + QueueFree(); + } + public void OnReclaim() + { + GetParent().CallDeferred(Node.MethodName.RemoveChild, this); + Target = null; + _targetPoolItem = null; + } + + public void OnLeavePool() + { + ClearPoints(); + _time = 0; + ZIndex = 0; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/event/EventEnum.cs b/DungeonShooting_Godot/src/game/event/EventEnum.cs index d526ae0..afe09d8 100644 --- a/DungeonShooting_Godot/src/game/event/EventEnum.cs +++ b/DungeonShooting_Godot/src/game/event/EventEnum.cs @@ -47,6 +47,10 @@ /// OnPlayerMaxShieldChange, /// + /// 玩家金币发生改变, 参数为玩家金币值 + /// + OnPlayerGoldChange, + /// /// 玩家拾起武器, 参数为 /// OnPlayerPickUpWeapon, 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/NameManager.cs b/DungeonShooting_Godot/src/game/manager/NameManager.cs deleted file mode 100644 index e823f5b..0000000 --- a/DungeonShooting_Godot/src/game/manager/NameManager.cs +++ /dev/null @@ -1,36 +0,0 @@ - -public class NameManager -{ - /// - /// 获取物体属性名称字符串 - /// - public static string GetActivityTypeName(int type) - { - switch ((ActivityType)type) - { - case ActivityType.None: - return ""; - case ActivityType.Test: - return "测试"; - case ActivityType.Role: - case ActivityType.Player: - return "角色"; - case ActivityType.Enemy: - return "敌人"; - case ActivityType.Weapon: - return "武器"; - case ActivityType.Bullet: - return "子弹"; - case ActivityType.Shell: - return "弹壳"; - case ActivityType.Effect: - return "特效"; - case ActivityType.Prop: - return "道具"; - case ActivityType.Other: - return "其他"; - } - - return ""; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/ObjectManager.cs b/DungeonShooting_Godot/src/game/manager/ObjectManager.cs index 27206a3..fc62066 100644 --- a/DungeonShooting_Godot/src/game/manager/ObjectManager.cs +++ b/DungeonShooting_Godot/src/game/manager/ObjectManager.cs @@ -51,6 +51,18 @@ return item; } + public static T GetActivityObject(string id) where T : ActivityObject, IPoolItem + { + var item = ObjectPool.GetItem(id); + if (item == null) + { + item = ActivityObject.Create(id); + item.Logotype = id; + } + + return item; + } + public static Bullet GetBullet(string id) { var bullet = ObjectPool.GetItem(id); diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index 2e45225..9ae2b7a 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -6,9 +6,58 @@ public const string default_bus_layout_tres = "res://default_bus_layout.tres"; public const string default_env_tres = "res://default_env.tres"; public const string icon_png = "res://icon.png"; - public const string _VSCodeCounter_20240121_181451_diff_txt = "res://.VSCodeCounter/2024-01-21_18-14-51/diff.txt"; - public const string _VSCodeCounter_20240121_181451_results_json = "res://.VSCodeCounter/2024-01-21_18-14-51/results.json"; - public const string _VSCodeCounter_20240121_181451_results_txt = "res://.VSCodeCounter/2024-01-21_18-14-51/results.txt"; + public const string build_windows_data_DungeonShooting_windows_x86_64_DungeonShooting_deps_json = "res://build/windows/data_DungeonShooting_windows_x86_64/DungeonShooting.deps.json"; + public const string build_windows_data_DungeonShooting_windows_x86_64_DungeonShooting_runtimeconfig_json = "res://build/windows/data_DungeonShooting_windows_x86_64/DungeonShooting.runtimeconfig.json"; + public const string build_windows_resource_map_tileMaps_GroupConfig_json = "res://build/windows/resource/map/tileMaps/GroupConfig.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle1_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle1/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle1_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle1/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle1_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle1/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle1_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle1/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle2_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle2/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle2_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle2/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle2_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle2/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle2_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle2/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle3_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle3/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle3_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle3/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle3_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle3/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle3_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle3/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle4_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle4/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle4_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle4/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle4_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle4/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle4_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle4/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle5_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle5/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle5_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle5/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle5_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle5/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_battle_Battle5_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/battle/Battle5/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_boss_Boss1_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/boss/Boss1/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_boss_Boss1_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/boss/Boss1/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_boss_Boss1_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/boss/Boss1/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_boss_Boss1_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/boss/Boss1/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_inlet_Start_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_inlet_Start_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/inlet/Start/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_inlet_Start_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/inlet/Start/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_inlet_Start_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/inlet/Start/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_outlet_End1_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/outlet/End1/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_outlet_End1_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/outlet/End1/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_outlet_End1_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/outlet/End1/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_outlet_End1_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_reward_Award1_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/reward/Award1/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_reward_Award1_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/reward/Award1/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_reward_Award1_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/reward/Award1/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_reward_Award1_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/reward/Award1/TileInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_shop_Shop1_Preinstall_json = "res://build/windows/resource/map/tileMaps/Test1/shop/Shop1/Preinstall.json"; + public const string build_windows_resource_map_tileMaps_Test1_shop_Shop1_Preview_png = "res://build/windows/resource/map/tileMaps/Test1/shop/Shop1/Preview.png"; + public const string build_windows_resource_map_tileMaps_Test1_shop_Shop1_RoomInfo_json = "res://build/windows/resource/map/tileMaps/Test1/shop/Shop1/RoomInfo.json"; + public const string build_windows_resource_map_tileMaps_Test1_shop_Shop1_TileInfo_json = "res://build/windows/resource/map/tileMaps/Test1/shop/Shop1/TileInfo.json"; + public const string build_windows_resource_map_tileSet_TileSetConfig_json = "res://build/windows/resource/map/tileSet/TileSetConfig.json"; + public const string build_windows_resource_map_tileSet_TileSet1_Main_png = "res://build/windows/resource/map/tileSet/TileSet1/Main.png"; + public const string build_windows_resource_map_tileSet_TileSet1_Test1_png = "res://build/windows/resource/map/tileSet/TileSet1/Test1.png"; + public const string build_windows_resource_map_tileSet_TileSet1_Test2_png = "res://build/windows/resource/map/tileSet/TileSet1/Test2.png"; + public const string build_windows_resource_map_tileSet_TileSet1_Test3_png = "res://build/windows/resource/map/tileSet/TileSet1/Test3.png"; + public const string build_windows_resource_map_tileSet_TileSet1_TileSet_json = "res://build/windows/resource/map/tileSet/TileSet1/TileSet.json"; + public const string build_windows_resource_map_tileSet_TileSet2_Main_png = "res://build/windows/resource/map/tileSet/TileSet2/Main.png"; + public const string build_windows_resource_map_tileSet_TileSet2_Test2_png = "res://build/windows/resource/map/tileSet/TileSet2/Test2.png"; + public const string build_windows_resource_map_tileSet_TileSet2_TileSet_json = "res://build/windows/resource/map/tileSet/TileSet2/TileSet.json"; public const string excelTool_bin_Release_net8_0_winx64_ExcelTool_deps_json = "res://excelTool/bin/Release/net8.0/win-x64/ExcelTool.deps.json"; public const string excelTool_bin_Release_net8_0_winx64_ExcelTool_runtimeconfig_json = "res://excelTool/bin/Release/net8.0/win-x64/ExcelTool.runtimeconfig.json"; public const string excelTool_obj_ExcelTool_csproj_nuget_dgspec_json = "res://excelTool/obj/ExcelTool.csproj.nuget.dgspec.json"; @@ -18,27 +67,37 @@ public const string excelTool_publish_winx64_ExcelTool_deps_json = "res://excelTool/publish/win-x64/ExcelTool.deps.json"; public const string excelTool_publish_winx64_ExcelTool_runtimeconfig_json = "res://excelTool/publish/win-x64/ExcelTool.runtimeconfig.json"; public const string prefab_Cursor_tscn = "res://prefab/Cursor.tscn"; + public const string prefab_box_TreasureBox0001_tscn = "res://prefab/box/TreasureBox0001.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_bullet_normal_Bullet0007_tscn = "res://prefab/bullet/normal/Bullet0007.tscn"; + public const string prefab_currency_Gold1_tscn = "res://prefab/currency/Gold1.tscn"; + public const string prefab_currency_Gold10_tscn = "res://prefab/currency/Gold10.tscn"; + public const string prefab_currency_Gold5_tscn = "res://prefab/currency/Gold5.tscn"; + public const string prefab_currency_GoldTemplate_tscn = "res://prefab/currency/GoldTemplate.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"; public const string prefab_effect_bullet_BulletSmoke0001_tscn = "res://prefab/effect/bullet/BulletSmoke0001.tscn"; public const string prefab_effect_bullet_BulletSmoke0002_tscn = "res://prefab/effect/bullet/BulletSmoke0002.tscn"; public const string prefab_effect_common_Effect1_tscn = "res://prefab/effect/common/Effect1.tscn"; + public const string prefab_effect_common_Trail0001_tscn = "res://prefab/effect/common/Trail0001.tscn"; public const string prefab_effect_enemy_EnemyBlood0001_tscn = "res://prefab/effect/enemy/EnemyBlood0001.tscn"; public const string prefab_effect_enemy_EnemyDead0001_tscn = "res://prefab/effect/enemy/EnemyDead0001.tscn"; public const string prefab_effect_enemy_EnemyDead0002_tscn = "res://prefab/effect/enemy/EnemyDead0002.tscn"; public const string prefab_effect_weapon_MeleeAttack1_tscn = "res://prefab/effect/weapon/MeleeAttack1.tscn"; public const string prefab_effect_weapon_MeleeAttack2_tscn = "res://prefab/effect/weapon/MeleeAttack2.tscn"; - public const string prefab_effect_weapon_ShotFire_tscn = "res://prefab/effect/weapon/ShotFire.tscn"; - public const string prefab_effect_weapon_ShotFire2_tscn = "res://prefab/effect/weapon/ShotFire2.tscn"; - public const string prefab_effect_weapon_ShotFire3_tscn = "res://prefab/effect/weapon/ShotFire3.tscn"; + public const string prefab_effect_weapon_ShotFire0001_tscn = "res://prefab/effect/weapon/ShotFire0001.tscn"; + public const string prefab_effect_weapon_ShotFire0002_tscn = "res://prefab/effect/weapon/ShotFire0002.tscn"; + public const string prefab_effect_weapon_ShotFire0003_tscn = "res://prefab/effect/weapon/ShotFire0003.tscn"; + public const string prefab_effect_weapon_ShotFire0004_tscn = "res://prefab/effect/weapon/ShotFire0004.tscn"; public const string prefab_map_RoomDoor_E_tscn = "res://prefab/map/RoomDoor_E.tscn"; public const string prefab_map_RoomDoor_N_tscn = "res://prefab/map/RoomDoor_N.tscn"; public const string prefab_map_RoomDoor_S_tscn = "res://prefab/map/RoomDoor_S.tscn"; @@ -114,6 +173,10 @@ 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_Weapon0011_tscn = "res://prefab/weapon/Weapon0011.tscn"; + public const string prefab_weapon_Weapon0013_tscn = "res://prefab/weapon/Weapon0013.tscn"; + public const string prefab_weapon_Weapon0014_tscn = "res://prefab/weapon/Weapon0014.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"; @@ -129,15 +192,6 @@ public const string resource_font_DinkieBitmap9pxItalicDemo_ttf = "res://resource/font/DinkieBitmap-9pxItalicDemo.ttf"; public const string resource_font_VonwaonBitmap12px_ttf = "res://resource/font/VonwaonBitmap-12px.ttf"; public const string resource_font_VonwaonBitmap16px_ttf = "res://resource/font/VonwaonBitmap-16px.ttf"; - public const string resource_map_tileSet_TileSetConfig_json = "res://resource/map/tileSet/TileSetConfig.json"; - public const string resource_map_tileSet_TileSet1_Main_png = "res://resource/map/tileSet/TileSet1/Main.png"; - public const string resource_map_tileSet_TileSet1_Test1_png = "res://resource/map/tileSet/TileSet1/Test1.png"; - public const string resource_map_tileSet_TileSet1_Test2_png = "res://resource/map/tileSet/TileSet1/Test2.png"; - public const string resource_map_tileSet_TileSet1_Test3_png = "res://resource/map/tileSet/TileSet1/Test3.png"; - public const string resource_map_tileSet_TileSet1_TileSet_json = "res://resource/map/tileSet/TileSet1/TileSet.json"; - public const string resource_map_tileSet_TileSet2_Main_png = "res://resource/map/tileSet/TileSet2/Main.png"; - public const string resource_map_tileSet_TileSet2_Test2_png = "res://resource/map/tileSet/TileSet2/Test2.png"; - public const string resource_map_tileSet_TileSet2_TileSet_json = "res://resource/map/tileSet/TileSet2/TileSet.json"; public const string resource_material_Blend_gdshader = "res://resource/material/Blend.gdshader"; public const string resource_material_Blend_tres = "res://resource/material/Blend.tres"; public const string resource_material_GodRays_gdshader = "res://resource/material/GodRays.gdshader"; @@ -171,6 +225,7 @@ public const string resource_sound_sfx_beLoaded_BeLoaded0016_ogg = "res://resource/sound/sfx/beLoaded/BeLoaded0016.ogg"; public const string resource_sound_sfx_beLoaded_BeLoaded0017_ogg = "res://resource/sound/sfx/beLoaded/BeLoaded0017.ogg"; public const string resource_sound_sfx_collision_Collision0001_ogg = "res://resource/sound/sfx/collision/Collision0001.ogg"; + public const string resource_sound_sfx_common_gold_ogg = "res://resource/sound/sfx/common/gold.ogg"; public const string resource_sound_sfx_explosion_Explosion0001_ogg = "res://resource/sound/sfx/explosion/Explosion0001.ogg"; public const string resource_sound_sfx_explosion_Explosion0002_ogg = "res://resource/sound/sfx/explosion/Explosion0002.ogg"; public const string resource_sound_sfx_explosion_Explosion0003_ogg = "res://resource/sound/sfx/explosion/Explosion0003.ogg"; @@ -189,10 +244,12 @@ public const string resource_sound_sfx_reloading_Reloading_begin0010_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0010.ogg"; public const string resource_sound_sfx_reloading_Reloading_begin0011_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0011.ogg"; public const string resource_sound_sfx_reloading_Reloading_begin0012_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0012.ogg"; + public const string resource_sound_sfx_reloading_Reloading_begin0013_ogg = "res://resource/sound/sfx/reloading/Reloading_begin0013.ogg"; public const string resource_sound_sfx_reloading_Reloading_finish0001_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0001.ogg"; public const string resource_sound_sfx_reloading_Reloading_finish0002_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0002.ogg"; public const string resource_sound_sfx_reloading_Reloading_finish0003_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0003.ogg"; public const string resource_sound_sfx_reloading_Reloading_finish0004_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0004.ogg"; + public const string resource_sound_sfx_reloading_Reloading_finish0005_ogg = "res://resource/sound/sfx/reloading/Reloading_finish0005.ogg"; public const string resource_sound_sfx_shooting_Shooting0001_ogg = "res://resource/sound/sfx/shooting/Shooting0001.ogg"; public const string resource_sound_sfx_shooting_Shooting0002_ogg = "res://resource/sound/sfx/shooting/Shooting0002.ogg"; public const string resource_sound_sfx_shooting_Shooting0003_ogg = "res://resource/sound/sfx/shooting/Shooting0003.ogg"; @@ -204,7 +261,10 @@ 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_sound_sfx_shooting_Shooting0012_ogg = "res://resource/sound/sfx/shooting/Shooting0012.ogg"; + public const string resource_sound_sfx_shooting_Shooting0013_ogg = "res://resource/sound/sfx/shooting/Shooting0013.ogg"; + public const string resource_sprite_box_TreasureBox0001_png = "res://resource/sprite/box/TreasureBox0001.png"; + public const string resource_sprite_box_TreasureBox0001_icon_png = "res://resource/sprite/box/TreasureBox0001_icon.png"; 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 +279,8 @@ 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_bullet0007_png = "res://resource/sprite/bullet/normal/bullet0007.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"; @@ -229,6 +291,10 @@ public const string resource_sprite_common_Smoke2_png = "res://resource/sprite/common/Smoke2.png"; public const string resource_sprite_common_Smoke3_png = "res://resource/sprite/common/Smoke3.png"; public const string resource_sprite_common_Smoke4_png = "res://resource/sprite/common/Smoke4.png"; + public const string resource_sprite_currency_Gold_1_png = "res://resource/sprite/currency/Gold_1.png"; + public const string resource_sprite_currency_Gold_10_png = "res://resource/sprite/currency/Gold_10.png"; + public const string resource_sprite_currency_Gold_5_png = "res://resource/sprite/currency/Gold_5.png"; + public const string resource_sprite_currency_Gold_shadow_png = "res://resource/sprite/currency/Gold_shadow.png"; public const string resource_sprite_explode_Explode_circle0001_png = "res://resource/sprite/explode/Explode_circle0001.png"; public const string resource_sprite_explode_Explode_circle0002_png = "res://resource/sprite/explode/Explode_circle0002.png"; public const string resource_sprite_explode_Explode_circle0003_png = "res://resource/sprite/explode/Explode_circle0003.png"; @@ -252,6 +318,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 +341,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"; @@ -320,6 +388,7 @@ public const string resource_sprite_shell_Shell0004_png = "res://resource/sprite/shell/Shell0004.png"; public const string resource_sprite_shootFire_ShotFire0001_png = "res://resource/sprite/shootFire/ShotFire0001.png"; public const string resource_sprite_shootFire_ShotFire0002_png = "res://resource/sprite/shootFire/ShotFire0002.png"; + public const string resource_sprite_shootFire_ShotFire0003_png = "res://resource/sprite/shootFire/ShotFire0003.png"; public const string resource_sprite_ui_font_bg_png = "res://resource/sprite/ui/font_bg.png"; public const string resource_sprite_ui_GUI_png = "res://resource/sprite/ui/GUI.png"; public const string resource_sprite_ui_commonIcon_Add_png = "res://resource/sprite/ui/commonIcon/Add.png"; @@ -336,6 +405,7 @@ public const string resource_sprite_ui_commonIcon_DragTool_png = "res://resource/sprite/ui/commonIcon/DragTool.png"; public const string resource_sprite_ui_commonIcon_Edit_png = "res://resource/sprite/ui/commonIcon/Edit.png"; public const string resource_sprite_ui_commonIcon_Error_mini_png = "res://resource/sprite/ui/commonIcon/Error_mini.png"; + public const string resource_sprite_ui_commonIcon_Gold_10_png = "res://resource/sprite/ui/commonIcon/Gold_10.png"; public const string resource_sprite_ui_commonIcon_Hide_png = "res://resource/sprite/ui/commonIcon/Hide.png"; public const string resource_sprite_ui_commonIcon_Import_png = "res://resource/sprite/ui/commonIcon/Import.png"; public const string resource_sprite_ui_commonIcon_Lock_png = "res://resource/sprite/ui/commonIcon/Lock.png"; @@ -382,15 +452,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 +465,27 @@ 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_Weapon0011_png = "res://resource/sprite/weapon/weapon0011/Weapon0011.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_weapon0014_Weapon0014_png = "res://resource/sprite/weapon/weapon0014/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_Bullet0007_tres = "res://resource/spriteFrames/bullet/Bullet0007.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 +528,10 @@ 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_spriteFrames_weapon_Weapon0011_tres = "res://resource/spriteFrames/weapon/Weapon0011.tres"; + public const string resource_spriteFrames_weapon_Weapon0013_tres = "res://resource/spriteFrames/weapon/Weapon0013.tres"; + public const string resource_spriteFrames_weapon_Weapon0014_tres = "res://resource/spriteFrames/weapon/Weapon0014.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"; @@ -472,4 +553,5 @@ public const string scene_test_TestRoomFog_tscn = "res://scene/test/TestRoomFog.tscn"; public const string scene_test_TestTerrain2x2_tscn = "res://scene/test/TestTerrain2x2.tscn"; public const string scene_test_TestTileLayer_tscn = "res://scene/test/TestTileLayer.tscn"; + public const string scene_test_TestTrail_tscn = "res://scene/test/TestTrail.tscn"; } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/SpecialEffectManager.cs b/DungeonShooting_Godot/src/game/manager/SpecialEffectManager.cs index 0d74206..5e5330e 100644 --- a/DungeonShooting_Godot/src/game/manager/SpecialEffectManager.cs +++ b/DungeonShooting_Godot/src/game/manager/SpecialEffectManager.cs @@ -51,7 +51,7 @@ /// 层级 /// 播放速度 /// 循环次数, 到达该次数特效停止播放 - public static void Play(Node root, string path, string animName, Vector2 pos, float rotation, Vector2 scale, Vector2 offset, int zIndex = 0, float speed = 1, int loopCount = 1) + public static void PlaySpriteFrames(Node root, string path, string animName, Vector2 pos, float rotation, Vector2 scale, Vector2 offset, int zIndex = 0, float speed = 1, int loopCount = 1) { var spriteFrames = ResourceManager.Load(path); var specialEffect = new SpecialEffect(); diff --git a/DungeonShooting_Godot/src/game/room/DefaultDungeonRule.cs b/DungeonShooting_Godot/src/game/room/DefaultDungeonRule.cs index d092b84..115ada8 100644 --- a/DungeonShooting_Godot/src/game/room/DefaultDungeonRule.cs +++ b/DungeonShooting_Godot/src/game/room/DefaultDungeonRule.cs @@ -1,40 +1,207 @@  +using System.Collections.Generic; +using Godot; + /// /// 默认实现地牢房间规则 /// public class DefaultDungeonRule : DungeonRule { + //用于排除上一级房间 + private List excludePrevRoom = new List(); + + //战斗房间尝试链接次数 + private int battleTryCount = 0; + private int battleMaxTryCount = 3; + + //结束房间尝试链接次数 + private int outletTryCount = 0; + //奖励房间绑定的上一个房间 + private List rewardBindRoom = new List(); + + private readonly RoomDirection[] _roomDirections = new []{ RoomDirection.Up, RoomDirection.Down, RoomDirection.Left, RoomDirection.Right }; + public DefaultDungeonRule(DungeonGenerator generator) : base(generator) { } public override bool CanOverGenerator() { - return Generator.BattleRoomInfos.Count >= Config.BattleRoomCount; + return Generator.BattleRoomInfos.Count >= Config.BattleRoomCount && Generator.EndRoomInfos.Count > 0; } - public override DungeonRoomType GetNextRoomType(RoomInfo prev) + public override RoomInfo GetConnectPrevRoom(RoomInfo prevRoom, DungeonRoomType nextRoomType) + { + if (nextRoomType == DungeonRoomType.Inlet) + { + return null; + } + else if (nextRoomType == DungeonRoomType.Boss) + { + return Generator.FindMaxLayerRoom(DungeonRoomType.Battle | DungeonRoomType.Shop, excludePrevRoom); + } + else if (nextRoomType == DungeonRoomType.Outlet || nextRoomType == DungeonRoomType.Shop || nextRoomType == DungeonRoomType.Event) + { + return prevRoom; + } + else if (nextRoomType == DungeonRoomType.Reward) + { + foreach (var temp in rewardBindRoom) + { + if (!excludePrevRoom.Contains(temp)) + { + excludePrevRoom.Add(temp); + } + } + + return Generator.FindMaxLayerRoom(DungeonRoomType.Battle | DungeonRoomType.Shop | DungeonRoomType.Event, excludePrevRoom); + } + else if (nextRoomType == DungeonRoomType.Battle) + { + if (battleTryCount < battleMaxTryCount) + { + if (prevRoom == null || prevRoom.Layer >= Config.MaxLayer - 1) //层数太高, 下一个房间生成在低层级 + { + return Generator.RandomRoomLessThanLayer(DungeonRoomType.Battle | DungeonRoomType.Shop | DungeonRoomType.Event | DungeonRoomType.Inlet, Mathf.Max(1, Config.MaxLayer / 2)); + } + + return prevRoom; + } + return Generator.GetRandomRoom(DungeonRoomType.Battle | DungeonRoomType.Shop | DungeonRoomType.Event | DungeonRoomType.Inlet); + } + + return Generator.GetRandomRoom(DungeonRoomType.None); + } + + public override DungeonRoomType GetNextRoomType(RoomInfo prevRoom) { if (Generator.StartRoomInfo == null) //生成第一个房间 { return DungeonRoomType.Inlet; } - // else if (Generator.BattleRoomInfos.Count == 0) //奖励房间 - // { - // return DungeonRoomType.Reward; - // } - else if (Generator.BattleRoomInfos.Count == Config.BattleRoomCount - 1) //最后一个房间是boss房间 + + if (prevRoom != null) { - return DungeonRoomType.Boss; + if (prevRoom.RoomType == DungeonRoomType.Boss) //boss房间后生成结束房间 + { + return DungeonRoomType.Outlet; + } + + if (Generator.RewardRoomInfos.Count < Config.RewardRoomCount) + { + if (Generator.BattleRoomInfos.Count == Config.BattleRoomCount / (Config.RewardRoomCount + 1) * (Generator.RewardRoomInfos.Count + 1)) //奖励房间 + { + return DungeonRoomType.Reward; + } + } + if (Generator.ShopRoomInfos.Count < Config.ShopRoomCount) + { + if (Generator.BattleRoomInfos.Count == Config.BattleRoomCount / (Config.ShopRoomCount + 1) * (Generator.ShopRoomInfos.Count + 1)) //商店 + { + return DungeonRoomType.Shop; + } + } } - else if (Generator.BattleRoomInfos.Count >= Config.BattleRoomCount) //结束房间 + + if (Generator.BattleRoomInfos.Count >= Config.BattleRoomCount) //战斗房间已满 { - return DungeonRoomType.Outlet; - } - else if (prev.RoomType == DungeonRoomType.Boss) //生成结束房间 - { - return DungeonRoomType.Outlet; + if (Generator.BossRoomInfos.Count < Config.BossRoomCount) //最后一个房间是boss房间 + { + if (RoomGroup.BossList.Count == 0) //没有预设boss房间 + { + return DungeonRoomType.Battle; + } + //生成boss房间 + return DungeonRoomType.Boss; + } } return DungeonRoomType.Battle; } + + public override void GenerateRoomSuccess(RoomInfo prevRoom, RoomInfo roomInfo) + { + if (roomInfo.RoomType == DungeonRoomType.Boss) //boss房间 + { + roomInfo.CanRollback = true; + excludePrevRoom.Clear(); + } + else if (roomInfo.RoomType == DungeonRoomType.Battle) + { + battleTryCount = 0; + battleMaxTryCount = Random.RandomRangeInt(1, 3); + } + else if (roomInfo.RoomType == DungeonRoomType.Outlet) + { + outletTryCount = 0; + Generator.SubmitCanRollbackRoom(); + } + else if (roomInfo.RoomType == DungeonRoomType.Reward) + { + rewardBindRoom.Add(prevRoom); + excludePrevRoom.Clear(); + } + + if (prevRoom != null && prevRoom.CanRollback) + { + roomInfo.CanRollback = true; + } + } + + public override void GenerateRoomFail(RoomInfo prevRoom, DungeonRoomType roomType) + { + if (roomType == DungeonRoomType.Boss || roomType == DungeonRoomType.Reward) + { + //生成房间失败 + excludePrevRoom.Add(prevRoom); + if (excludePrevRoom.Count >= Generator.RoomInfos.Count) + { + //全都没找到合适的, 那就再来一遍 + excludePrevRoom.Clear(); + } + } + else if (roomType == DungeonRoomType.Outlet) + { + outletTryCount++; + if (outletTryCount >= 3 && prevRoom != null) //生成结束房间失败, 那么只能回滚boss房间 + { + outletTryCount = 0; + Generator.RollbackRoom(prevRoom); + } + } + else if (roomType == DungeonRoomType.Battle) + { + battleTryCount++; + } + } + + public override RoomDirection GetNextRoomDoorDirection(RoomInfo prevRoom, DungeonRoomType roomType) + { + return Random.RandomChoose(_roomDirections); + } + + public override int GetNextRoomInterval(RoomInfo prevRoom, DungeonRoomType roomType, RoomDirection direction) + { + return Random.RandomRangeInt(Config.RoomMinInterval, Config.RoomMaxInterval); + } + + public override int GetNextRoomOffset(RoomInfo prevRoom, DungeonRoomType roomType, RoomDirection direction) + { + //为什么最后的值要减4或者5? 因为这个值是房间地板向外扩充的格子数量 + + if (roomType == DungeonRoomType.Outlet) + { + if (direction == RoomDirection.Up || direction == RoomDirection.Down) + { + return (int)(prevRoom.Size.X * 0.5f - 4); + } + return (int)(prevRoom.Size.Y * 0.5f - 5); + } + if (direction == RoomDirection.Up || direction == RoomDirection.Down) + { + return Random.RandomRangeInt((int)(prevRoom.Size.X * Config.RoomVerticalMinDispersion), + (int)(prevRoom.Size.X * Config.RoomVerticalMaxDispersion)) + (int)(prevRoom.Size.X * 0.5f - 4); + } + return Random.RandomRangeInt((int)(prevRoom.Size.Y * Config.RoomHorizontalMinDispersion), + (int)(prevRoom.Size.Y * Config.RoomHorizontalMaxDispersion)) + (int)(prevRoom.Size.Y * 0.5f - 5); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs index b4a17af..e46541d 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs @@ -353,5 +353,11 @@ public override void OnHideUi() { } + public void OnBeforeSerialize() + { + } + public void OnAfterDeserialize() + { + } #endif } diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs index 8377944..0ac1067 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs @@ -209,14 +209,14 @@ }; //初始高度 - if (activityObject.Type == (int)ActivityType.Weapon || activityObject.Type == (int)ActivityType.Prop) + if (activityObject.Type == ActivityType.Weapon || activityObject.Type == ActivityType.Prop) { markInfoItem.Altitude = 8; } - else if (activityObject.Type == (int)ActivityType.Other) + else if (activityObject.Type == ActivityType.Other) { //随机道具或者随机武器 - if (activityObject.Id == PreinstallMarkManager.Weapon.Id || activityObject.Id == PreinstallMarkManager.Prop.Id) + if (activityObject.Id == PreinstallMarkManager.RandomWeapon.Id || activityObject.Id == PreinstallMarkManager.RandomProp.Id) { markInfoItem.Altitude = 8; } diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs index 8b2c588..aed3c2b 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs @@ -50,7 +50,7 @@ //物体名称 CellNode.L_VBoxContainer.L_HBoxContainer.L_NameLabel.Instance.Text = _activityObject.Name; //物体类型 - CellNode.L_VBoxContainer.L_HBoxContainer.L_TypeLabel.Instance.Text = NameManager.GetActivityTypeName(_activityObject.Type); + CellNode.L_VBoxContainer.L_HBoxContainer.L_TypeLabel.Instance.Text = ActivityId.GetTypeName(_activityObject.Type); //图标 if (string.IsNullOrEmpty(_activityObject.Icon)) @@ -206,7 +206,7 @@ _vSpeed.L_NumInput.Instance.Value = markInfoItem.VerticalSpeed; } - if (activityObject.Type == (int)ActivityType.Weapon) //武器类型 + if (activityObject.Type == ActivityType.Weapon) //武器类型 { var numberBar = CellNode.UiPanel.CreateNumberBar("CurrAmmon", "弹夹弹药量:"); var numberBar2 = CellNode.UiPanel.CreateNumberBar("ResidueAmmo", "剩余弹药量:"); @@ -246,7 +246,7 @@ } } } - else if (activityObject.Type == (int)ActivityType.Enemy) //敌人 + else if (activityObject.Type == ActivityType.Enemy) //敌人 { var faceBar = CellNode.UiPanel.CreateOptionBar("Face", "脸朝向:"); faceBar.Instance.AddItem("随机", 0); diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs index d70d9ec..2b015ec 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs @@ -31,6 +31,7 @@ for (var i = 0; i < roomTypes.Length; i++) { var item = roomTypes[i]; + if (item == DungeonRoomType.None) continue; var text = DungeonManager.DungeonRoomTypeToDescribeString(item); selectButton.AddItem(text, (int)item); } diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs index 155885f..ed605f4 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs @@ -109,7 +109,7 @@ public override int OnSort(UiCell other) { - if (!Data.Preloading && other.Data.Preloading) + if (Data.Preloading && other.Data.Preloading) { return 0; } diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs index 2b3e0d8..8edcc66 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs @@ -29,6 +29,7 @@ for (var i = 0; i < roomTypes.Length; i++) { var dungeonRoomType = roomTypes[i]; + if (dungeonRoomType == DungeonRoomType.None) continue; optionButton.AddItem(DungeonManager.DungeonRoomTypeToDescribeString(dungeonRoomType), (int)dungeonRoomType + 1); } diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs index 79b68f0..101e836 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs @@ -23,9 +23,9 @@ /// /// 类型值 /// - public int Type; + public ActivityType Type; - public TypeButtonData(string name, int type) + public TypeButtonData(string name, ActivityType type) { Name = name; Type = type; @@ -36,7 +36,7 @@ //物体网格组件 private UiGrid _objectGrid; //允许出现在该面板中的物体类型 - private int[] _typeArray = new[] { 4, 5, 9 }; + private ActivityType[] _typeArray = new[] { ActivityType.Enemy, ActivityType.Weapon, ActivityType.Prop }; public override void OnCreateUi() { @@ -67,14 +67,14 @@ _typeGrid.RemoveAll(); if (activityType == ActivityType.None) { - _typeGrid.Add(new TypeButtonData("所有", -1)); - _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(ActivityType.Weapon), (int)ActivityType.Weapon)); - _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(ActivityType.Prop), (int)ActivityType.Prop)); - _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(ActivityType.Enemy), (int)ActivityType.Enemy)); + _typeGrid.Add(new TypeButtonData("所有", ActivityType.None)); + _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(ActivityType.Weapon), ActivityType.Weapon)); + _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(ActivityType.Prop), ActivityType.Prop)); + _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(ActivityType.Enemy), ActivityType.Enemy)); } else { - _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(activityType), (int)activityType)); + _typeGrid.Add(new TypeButtonData(ActivityId.GetTypeName(activityType), activityType)); } _typeGrid.SelectIndex = 0; } @@ -85,7 +85,7 @@ public void OnSearch() { //类型 - int type; + ActivityType type; //名称 var name = S_LineEdit.Instance.Text; var buttonData = _typeGrid.GetData(_typeGrid.SelectIndex); @@ -95,7 +95,7 @@ } else { - type = -1; + type = ActivityType.None; } //搜索结果 @@ -103,29 +103,29 @@ switch (type) { //全部类型 - case -1: - arr.Add(PreinstallMarkManager.Enemy); - arr.Add(PreinstallMarkManager.Prop); - arr.Add(PreinstallMarkManager.Weapon); + case ActivityType.None: + arr.Add(PreinstallMarkManager.RandomEnemy); + arr.Add(PreinstallMarkManager.RandomProp); + arr.Add(PreinstallMarkManager.RandomWeapon); break; //随机武器 - case (int)ActivityType.Weapon: - arr.Add(PreinstallMarkManager.Weapon); + case ActivityType.Weapon: + arr.Add(PreinstallMarkManager.RandomWeapon); break; //随机道具 - case (int)ActivityType.Prop: - arr.Add(PreinstallMarkManager.Prop); + case ActivityType.Prop: + arr.Add(PreinstallMarkManager.RandomProp); break; //随机敌人 - case (int)ActivityType.Enemy: - arr.Add(PreinstallMarkManager.Enemy); + case ActivityType.Enemy: + arr.Add(PreinstallMarkManager.RandomEnemy); break; } foreach (var o in ExcelConfig.ActivityBase_List) { if (o.ShowInMapEditor && (string.IsNullOrEmpty(name) || o.Name.Contains(name) || o.Id.Contains(name)) && - (type < 0 ? _typeArray.Contains(o.Type) : o.Type == type)) + (type == ActivityType.None ? _typeArray.Contains(o.Type) : o.Type == type)) { arr.Add(o); } diff --git a/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs b/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs index 6d50aab..ca80d6c 100644 --- a/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/roomMap/RoomMapPanel.cs @@ -159,9 +159,10 @@ S_Mark.Instance.Position = S_DrawContainer.Instance.Size / 2 + _mapOffset; } + var area = Player.Current.AffiliationArea; //传送 if (_pressMapFlag && _mouseHoverRoom != null && - !Player.Current.AffiliationArea.RoomInfo.IsSeclusion && + area != null && !area.RoomInfo.IsSeclusion && Input.IsMouseButtonPressed(MouseButton.Right)) { //执行传送操作 @@ -245,14 +246,18 @@ var shaderMaterial = (ShaderMaterial)roomInfo.PreviewSprite.Material; _originOutlineColor = shaderMaterial.GetShaderParameter("outline_color").AsColor(); //玩家所在的房间门是否打开 - var isOpen = !Player.Current.AffiliationArea.RoomInfo.IsSeclusion; - if (isOpen) + var area = Player.Current.AffiliationArea; + if (area != null) { - shaderMaterial.SetShaderParameter("outline_color", new Color(0, 1, 0, 0.9f)); - } - else - { - shaderMaterial.SetShaderParameter("outline_color", new Color(1, 0, 0, 0.9f)); + var isOpen = !area.RoomInfo.IsSeclusion; + if (isOpen) + { + shaderMaterial.SetShaderParameter("outline_color", new Color(0, 1, 0, 0.9f)); + } + else + { + shaderMaterial.SetShaderParameter("outline_color", new Color(1, 0, 0, 0.9f)); + } } }; roomInfo.PreviewSprite.MouseExited += () => diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/LifeBarHandler.cs b/DungeonShooting_Godot/src/game/ui/roomUI/LifeBarHandler.cs index 3bc3dd4..104c005 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/LifeBarHandler.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/LifeBarHandler.cs @@ -9,15 +9,17 @@ private RoomUI.LifeBar _bar; private UiGrid _grid; private EventFactory _eventFactory; - private bool _refreshFlag = false; + private bool _refreshHpFlag = false; + private bool _refreshGoldFlag = false; public LifeBarHandler(RoomUI.LifeBar lifeBar) { _bar = lifeBar; var uiNodeLife = lifeBar.L_Life; - _grid = new UiGrid(uiNodeLife, typeof(LifeCell)); - _grid.SetColumns(20); + _grid = lifeBar.UiPanel.CreateUiGrid(uiNodeLife); + _grid.SetAutoColumns(true); + _grid.SetHorizontalExpand(true); _grid.SetCellOffset(new Vector2I(1, 2)); } @@ -28,7 +30,9 @@ _eventFactory.AddEventListener(EventEnum.OnPlayerMaxHpChange, o => RefreshLife()); _eventFactory.AddEventListener(EventEnum.OnPlayerShieldChange, o => RefreshLife()); _eventFactory.AddEventListener(EventEnum.OnPlayerMaxShieldChange, o => RefreshLife()); + _eventFactory.AddEventListener(EventEnum.OnPlayerGoldChange, o => RefreshGold()); RefreshLife(); + RefreshGold(); } public void OnHide() @@ -38,16 +42,27 @@ public void Process(float delta) { - if (_refreshFlag) + if (_refreshHpFlag) { - _refreshFlag = false; + _refreshHpFlag = false; HandlerRefreshLife(); } + + if (_refreshGoldFlag) + { + _refreshGoldFlag = false; + HandlerRefreshGold(); + } + } + + public void RefreshGold() + { + _refreshGoldFlag = true; } public void RefreshLife() { - _refreshFlag = true; + _refreshHpFlag = true; } private void HandlerRefreshLife() @@ -90,5 +105,10 @@ //var maxHp _grid.SetDataList(list.ToArray()); } + + private void HandlerRefreshGold() + { + _bar.L_Gold.L_GoldText.Instance.Text = Player.Current.RoleState.Gold.ToString(); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs b/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs index d549158..abdcd9b 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/LifeCell.cs @@ -17,19 +17,19 @@ switch (data) { case LifeIconEnum.FullHeart: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_full_png); + CellNode.L_LifeIcon.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_full_png); break; case LifeIconEnum.HalfHeart: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_half_png); + CellNode.L_LifeIcon.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_half_png); break; case LifeIconEnum.EmptyHeart: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_empty_png); + CellNode.L_LifeIcon.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Life_empty_png); break; case LifeIconEnum.FullShield: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Shield_full_png); + CellNode.L_LifeIcon.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Shield_full_png); break; case LifeIconEnum.EmptyShield: - CellNode.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Shield_empty_png); + CellNode.L_LifeIcon.Instance.Texture = ResourceManager.Load(ResourcePath.resource_sprite_ui_roomUI_Shield_empty_png); break; } } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs index 64f9203..1dfdf85 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs @@ -236,34 +236,122 @@ } /// - /// 类型: , 路径: RoomUI.Control.LifeBar.Life + /// 类型: , 路径: RoomUI.Control.LifeBar.Life.LifeIcon /// - public class Life : UiNode + public class LifeIcon : UiNode { - public Life(RoomUIPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } - public override Life Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); + public LifeIcon(RoomUIPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } + public override LifeIcon Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); } /// - /// 类型: , 路径: RoomUI.Control.LifeBar + /// 类型: , 路径: RoomUI.Control.LifeBar.Life /// - public class LifeBar : UiNode + public class Life : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.Life + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.LifeBar.LifeIcon + /// + public LifeIcon L_LifeIcon + { + get + { + if (_L_LifeIcon == null) _L_LifeIcon = new LifeIcon(UiPanel, Instance.GetNode("LifeIcon")); + return _L_LifeIcon; + } + } + private LifeIcon _L_LifeIcon; + + public Life(RoomUIPanel uiPanel, Godot.Control node) : base(uiPanel, node) { } + public override Life Clone() => new (UiPanel, (Godot.Control)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.LifeBar.Gold.GoldIcon + /// + public class GoldIcon : UiNode + { + public GoldIcon(RoomUIPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } + public override GoldIcon Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.LifeBar.Gold.GoldText + /// + public class GoldText : UiNode + { + public GoldText(RoomUIPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override GoldText Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.LifeBar.Gold + /// + public class Gold : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.LifeBar.GoldIcon + /// + public GoldIcon L_GoldIcon + { + get + { + if (_L_GoldIcon == null) _L_GoldIcon = new GoldIcon(UiPanel, Instance.GetNode("GoldIcon")); + return _L_GoldIcon; + } + } + private GoldIcon _L_GoldIcon; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.LifeBar.GoldText + /// + public GoldText L_GoldText + { + get + { + if (_L_GoldText == null) _L_GoldText = new GoldText(UiPanel, Instance.GetNode("GoldText")); + return _L_GoldText; + } + } + private GoldText _L_GoldText; + + public Gold(RoomUIPanel uiPanel, Godot.Control node) : base(uiPanel, node) { } + public override Gold Clone() => new (UiPanel, (Godot.Control)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.LifeBar + /// + public class LifeBar : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.Life /// public Life L_Life { get { - if (_L_Life == null) _L_Life = new Life(UiPanel, Instance.GetNode("Life")); + if (_L_Life == null) _L_Life = new Life(UiPanel, Instance.GetNode("Life")); return _L_Life; } } private Life _L_Life; - public LifeBar(RoomUIPanel uiPanel, Godot.Control node) : base(uiPanel, node) { } - public override LifeBar Clone() => new (UiPanel, (Godot.Control)Instance.Duplicate()); + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.Gold + /// + public Gold L_Gold + { + get + { + if (_L_Gold == null) _L_Gold = new Gold(UiPanel, Instance.GetNode("Gold")); + return _L_Gold; + } + } + private Gold _L_Gold; + + public LifeBar(RoomUIPanel uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { } + public override LifeBar Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate()); } /// @@ -510,13 +598,13 @@ public class Control : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.LifeBar + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.LifeBar /// public LifeBar L_LifeBar { get { - if (_L_LifeBar == null) _L_LifeBar = new LifeBar(UiPanel, Instance.GetNode("LifeBar")); + if (_L_LifeBar == null) _L_LifeBar = new LifeBar(UiPanel, Instance.GetNode("LifeBar")); return _L_LifeBar; } } @@ -619,12 +707,32 @@ public ReloadBar S_ReloadBar => L_ReloadBar; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar.Life + /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar.Life.LifeIcon + /// + public LifeIcon S_LifeIcon => L_Control.L_LifeBar.L_Life.L_LifeIcon; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar.Life /// public Life S_Life => L_Control.L_LifeBar.L_Life; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar + /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar.Gold.GoldIcon + /// + public GoldIcon S_GoldIcon => L_Control.L_LifeBar.L_Gold.L_GoldIcon; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar.Gold.GoldText + /// + public GoldText S_GoldText => L_Control.L_LifeBar.L_Gold.L_GoldText; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar.Gold + /// + public Gold S_Gold => L_Control.L_LifeBar.L_Gold; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: RoomUI.Control.LifeBar /// public LifeBar S_LifeBar => L_Control.L_LifeBar; diff --git a/DungeonShooting_Godot/src/test/TestTrail.cs b/DungeonShooting_Godot/src/test/TestTrail.cs new file mode 100644 index 0000000..f722c97 --- /dev/null +++ b/DungeonShooting_Godot/src/test/TestTrail.cs @@ -0,0 +1,20 @@ +using Godot; +using System; + +public partial class TestTrail : Node2D +{ + private Sprite2D sprite; + private Trail trail; + + public override void _Ready() + { + sprite = GetNode("Sprite2D"); + trail = GetNode("Trail"); + trail.SetTarget(sprite); + } + + public override void _Process(double delta) + { + sprite.Position = GetLocalMousePosition(); + } +}