diff --git "a/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" "b/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" index 6dcadc5..28a6b72 100644 --- "a/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" +++ "b/DungeonShooting_Document/\345\274\200\345\217\221\346\227\245\345\277\227.md" @@ -1,6 +1,16 @@ --- -### 2023-3-19 +### 2023-04-08 +本轮工作重点在于编写文档以及完善模板房间配置, 最近这段时间本职工作比较忙, 所以开发进度相比上一轮稍微放缓, 主要工作内容如有: +* 编写项目帮助文档, 为给后续开发人员更好的理解项目架构以及功能代码, 位置在[DungeonShooting_Document/项目帮助文档.md](项目帮助文档.md), 该文档为初期开发文档, 后续会因项目架构调整或新增内容而修改 +* 修复`DungeonRoomTemplate`在编辑器中draw函数绘制层级过低和`ctrl`+`s`有时不触发保存bug +* 调整模板房间文件夹结构, 以前全放在`tileMaps`文件夹下, 现在在`tileMaps`下会有个分组文件夹, 用于放置同一层的地牢房间, 再到组文件夹下分了`Battle`,`Inlet`,`Outlet`,`Boss`,`Reward`,`Shop`,`Event`这几个文件夹, 用于分类房间类型, 并加入房间权重, 权重越大, 越容易随机到该房间 +* `ActivityMark`添加生成物体高度和垂直速度配置, 支持在一个矩形区域内随机位置生成物体, 并优化`ActivityMark`性能, 现在不是开始游戏就进入场景树, 而是玩家进入当前房间并开始执行标记时再放入场景树中 +* 添加用于调试用的功能: 在`GameApplication.DesignatedRoom`中指定地牢生成的房间, 这样地牢就只会在这个指定的随机池中抽取房间, 方便调试房间 +* 添加Ai使用武器属性变化: `AiBulletSpeedScale`, Ai使用该武器发射的子弹速度缩放比; `AiAmmoConsumptionProbability`, Ai使用该武器消耗弹药的概率 + +--- +### 2023-03-19 本周主要完成Godot编辑器插件扩展, 目的为了更加方便为游戏添加内容, 主要工作内容如有: * 将原来编辑器中的`automation`面板移到Godot编辑器`2D`/`Script`这一栏, 并重命名为`Tools` * `Tools`面板中添加创建UI的功能, 输入UI名称点击创建就能自动创建一个空的UI场景和相配套UI代码, 编辑器监听用户对于UI的改动, 一旦有变化, 就会自动重新生成UI基础代码, 这样做的好处是一旦有节点重命名或者移动位置, 用到这个节点的代码就会编译报错. 每个UI都分好了文件夹, 所有和当前UI有关的代码都应该被放到同一个UI文件夹下 @@ -11,7 +21,7 @@ * 重写`ActivityObject`中的投抛系统, 加入`ActivityObject`加入海拔高度字段, 并且自动计算精灵和阴影位置, 当海拔高度大于0时会自动做自由落体, 想向上抛物的话也只需要设置垂直方向的速度就行, 现在的`Throw()`函数仅仅只是对于设置海拔高度和垂直速度的一个封装 --- -### 2023-3-13 +### 2023-03-13 为了尽早能够完成核心功能, 对外展示demo, 三月上旬开发提速, 主要的工作内容有: * 找到一个会触发关闭游戏卡死的 bug, 问题出在`TileMap.GetCellTileData()`函数上, 调用该函数在关闭游戏释放资源时会导致读取到已经被释放的内存, 但是卡死的问题还是有极小概率发生, 目前情况未知 * 发现并修复bug: 之前版本在自定义房间连接时, 如果生成带有拐角的通道, 通道生成的位置不是按最近位置生成, 这就导致生成的拐角通道特别长, 而且浪费空间, 现已修复 diff --git a/DungeonShooting_Godot/DungeonShooting.csproj b/DungeonShooting_Godot/DungeonShooting.csproj index 48063c3..3b5ab85 100644 --- a/DungeonShooting_Godot/DungeonShooting.csproj +++ b/DungeonShooting_Godot/DungeonShooting.csproj @@ -1,4 +1,4 @@ - + net6.0 true diff --git a/DungeonShooting_Godot/DungeonShooting.csproj.old b/DungeonShooting_Godot/DungeonShooting.csproj.old deleted file mode 100644 index 4d20267..0000000 --- a/DungeonShooting_Godot/DungeonShooting.csproj.old +++ /dev/null @@ -1,9 +0,0 @@ - - - net6.0 - true - - - - - \ No newline at end of file diff --git a/DungeonShooting_Godot/DungeonShooting.csproj.old.1 b/DungeonShooting_Godot/DungeonShooting.csproj.old.1 deleted file mode 100644 index 38f974b..0000000 --- a/DungeonShooting_Godot/DungeonShooting.csproj.old.1 +++ /dev/null @@ -1,12 +0,0 @@ - - - net6.0 - true - - - D:\GameProject\DungeonShooting\DungeonShooting_Godot\.godot\mono\temp\bin\Debug\DungeonShooting.xml - - - - - \ No newline at end of file diff --git a/DungeonShooting_Godot/DungeonShooting.csproj.old.2 b/DungeonShooting_Godot/DungeonShooting.csproj.old.2 deleted file mode 100644 index fc5c59a..0000000 --- a/DungeonShooting_Godot/DungeonShooting.csproj.old.2 +++ /dev/null @@ -1,11 +0,0 @@ - - - net6.0 - true - - - - - - - \ No newline at end of file diff --git a/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs b/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs index 0c4f640..7d6f487 100644 --- a/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs +++ b/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs @@ -66,6 +66,12 @@ "res://src/framework/map/mark/WeaponMark.cs", "res://addons/dungeonShooting_plugin/Mark.svg" ), + new CustomTypeInfo( + "PlayerBirthMark", + "Node2D", + "res://src/framework/map/mark/PlayerBirthMark.cs", + "res://addons/dungeonShooting_plugin/Mark.svg" + ), }; public override void _Process(double delta) diff --git a/DungeonShooting_Godot/prefab/role/Enemy.tscn b/DungeonShooting_Godot/prefab/role/Enemy.tscn index e9b1e5e..7c54d07 100644 --- a/DungeonShooting_Godot/prefab/role/Enemy.tscn +++ b/DungeonShooting_Godot/prefab/role/Enemy.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://dbrig6dq441wo"] +[gd_scene load_steps=20 format=3 uid="uid://dbrig6dq441wo"] [ext_resource type="PackedScene" uid="uid://b515ti0qinck8" path="res://prefab/role/Role.tscn" id="1_qkqsa"] [ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2_in1s7"] @@ -16,6 +16,10 @@ shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0 +[sub_resource type="AtlasTexture" id="AtlasTexture_b4gmf"] +atlas = ExtResource("3_tk1tp") +region = Rect2(0, 0, 16, 24) + [sub_resource type="AtlasTexture" id="AtlasTexture_ps4o2"] atlas = ExtResource("3_tk1tp") region = Rect2(0, 24, 16, 24) @@ -68,6 +72,14 @@ animations = [{ "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_b4gmf") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_ps4o2") }, { "duration": 1.0, @@ -128,7 +140,6 @@ [node name="AnimatedSprite" parent="." index="2"] material = SubResource("ShaderMaterial_k8mt5") sprite_frames = SubResource("SpriteFrames_m7t3e") -animation = &"idle" [node name="HurtArea" parent="." index="4"] visible = false diff --git a/DungeonShooting_Godot/prefab/role/Player.tscn b/DungeonShooting_Godot/prefab/role/Player.tscn index d88955c..994067e 100644 --- a/DungeonShooting_Godot/prefab/role/Player.tscn +++ b/DungeonShooting_Godot/prefab/role/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://cdohv4xeirtuc"] +[gd_scene load_steps=20 format=3 uid="uid://cdohv4xeirtuc"] [ext_resource type="PackedScene" uid="uid://b515ti0qinck8" path="res://prefab/role/Role.tscn" id="1"] [ext_resource type="Shader" path="res://resource/materlal/Blend.gdshader" id="2_nvo1u"] @@ -16,6 +16,10 @@ shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0 +[sub_resource type="AtlasTexture" id="AtlasTexture_tmewn"] +atlas = ExtResource("3_55mk2") +region = Rect2(0, 0, 16, 24) + [sub_resource type="AtlasTexture" id="AtlasTexture_dvg4a"] atlas = ExtResource("3_55mk2") region = Rect2(0, 24, 16, 24) @@ -68,6 +72,14 @@ animations = [{ "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_tmewn") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_dvg4a") }, { "duration": 1.0, @@ -128,4 +140,3 @@ [node name="AnimatedSprite" parent="." index="2"] material = SubResource("ShaderMaterial_0gb8j") sprite_frames = SubResource("SpriteFrames_3poqo") -animation = &"idle" diff --git a/DungeonShooting_Godot/prefab/ui/EditorTools.tscn b/DungeonShooting_Godot/prefab/ui/EditorTools.tscn index 8dd3024..ea25f16 100644 --- a/DungeonShooting_Godot/prefab/ui/EditorTools.tscn +++ b/DungeonShooting_Godot/prefab/ui/EditorTools.tscn @@ -55,7 +55,7 @@ text = "创建游戏Ui" [node name="LineEdit" type="LineEdit" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer3"] -custom_minimum_size = Vector2(400, 0) +custom_minimum_size = Vector2(250, 0) layout_mode = 2 placeholder_text = "请输入ui名称" @@ -96,11 +96,25 @@ layout_mode = 2 text = "创建地牢房间" -[node name="LineEdit" type="LineEdit" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -custom_minimum_size = Vector2(400, 0) +[node name="RoomNameInput" type="LineEdit" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] +custom_minimum_size = Vector2(250, 0) layout_mode = 2 placeholder_text = "请输入房间名称" +[node name="Label2" type="Label" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] +layout_mode = 2 +text = "房间所属分组" + +[node name="RoomGroupSelect" type="OptionButton" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] +layout_mode = 2 + +[node name="Label3" type="Label" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] +layout_mode = 2 +text = "房间类型" + +[node name="RoomTypeSelect" type="OptionButton" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] +layout_mode = 2 + [node name="Button" type="Button" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] layout_mode = 2 text = "创建 diff --git a/DungeonShooting_Godot/prefab/ui/MyUi.tscn b/DungeonShooting_Godot/prefab/ui/MyUi.tscn deleted file mode 100644 index 560b4ae..0000000 --- a/DungeonShooting_Godot/prefab/ui/MyUi.tscn +++ /dev/null @@ -1,27 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://buxit3x615xu3"] - -[ext_resource type="Script" path="res://src/game/ui/myUi/MyUiPanel.cs" id="1_bhjxh"] - -[node name="MyUi" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("1_bhjxh") - -[node name="Button" type="Button" parent="."] -layout_mode = 0 -offset_right = 12.0 -offset_bottom = 8.0 - -[node name="Control" type="Control" parent="."] -anchors_preset = 0 -offset_right = 40.0 -offset_bottom = 40.0 - -[node name="Label" type="Label" parent="Control"] -layout_mode = 0 -offset_right = 9.0 -offset_bottom = 49.0 diff --git a/DungeonShooting_Godot/project.godot b/DungeonShooting_Godot/project.godot index aa774e3..0713541 100644 --- a/DungeonShooting_Godot/project.godot +++ b/DungeonShooting_Godot/project.godot @@ -188,9 +188,9 @@ [rendering] +textures/canvas_textures/default_texture_filter=0 renderer/rendering_method="gl_compatibility" environment/defaults/default_clear_color=Color(0.109804, 0.0666667, 0.0901961, 1) -textures/canvas_textures/default_texture_filter=0 2d/snapping/use_gpu_pixel_snap=true environment/default_environment="res://default_env.tres" diff --git a/DungeonShooting_Godot/resource/map/RoomConfig.json b/DungeonShooting_Godot/resource/map/RoomConfig.json index d7e2650..96ba25d 100644 --- a/DungeonShooting_Godot/resource/map/RoomConfig.json +++ b/DungeonShooting_Godot/resource/map/RoomConfig.json @@ -1,26 +1,51 @@ -[ - { - "ScenePath": "res://resource/map/tileMaps/Room1.tscn", - "ConfigPath": "res://resource/map/tiledata/Room1.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/Room2.tscn", - "ConfigPath": "res://resource/map/tiledata/Room2.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/Room3.tscn", - "ConfigPath": "res://resource/map/tiledata/Room3.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/Room4.tscn", - "ConfigPath": "res://resource/map/tiledata/Room4.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/Room5.tscn", - "ConfigPath": "res://resource/map/tiledata/Room5.json" - }, - { - "ScenePath": "res://resource/map/tileMaps/Room6.tscn", - "ConfigPath": "res://resource/map/tiledata/Room6.json" +{ + "testGroup": { + "GroupName": "testGroup", + "BattleList": [ + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room1.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room1.json" + }, + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room2.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room2.json" + }, + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room3.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room3.json" + }, + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room4.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room4.json" + }, + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room5.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room5.json" + }, + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room6.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room6.json" + }, + { + "ScenePath": "res://resource/map/tileMaps/testGroup/battle/Room7.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/battle/Room7.json" + } + ], + "InletList": [ + { + "ScenePath": "res://resource/map/tileMaps/testGroup/inlet/Room1.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/inlet/Room1.json" + } + ], + "OutletList": [ + { + "ScenePath": "res://resource/map/tileMaps/testGroup/outlet/Room1.tscn", + "ConfigPath": "res://resource/map/tiledata/testGroup/outlet/Room1.json" + } + ], + "BossList": [], + "RewardList": [], + "ShopList": [], + "EventList": [] } -] \ No newline at end of file +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/Room1.tscn deleted file mode 100644 index 38f57cb..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/Room1.tscn +++ /dev/null @@ -1,54 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://degtollvmf37f"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_luio1"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="1_wwejn"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_2xk8s"] - -[node name="Room1" type="TileMap"] -tile_set = ExtResource("1_luio1") -format = 2 -layer_0/tile_data = PackedInt32Array(-65539, 131072, 2, 196605, 131072, 7, 262141, 0, 8, 327677, 0, 8, 393213, 0, 8, 458749, 131072, 2, -65538, 131072, 2, 196606, 131072, 7, 262142, 0, 8, 327678, 0, 8, 393214, 0, 8, 458750, 131072, 2, -65537, 131072, 2, 196607, 131072, 7, 262143, 0, 8, 327679, 0, 8, 393215, 0, 8, 458751, 131072, 2, -131072, 131072, 2, 131072, 131072, 7, 196608, 0, 8, 262144, 0, 8, 327680, 0, 8, 393216, 131072, 2, -131071, 131072, 2, 131073, 131072, 7, 196609, 0, 8, 262145, 0, 8, 327681, 0, 8, 393217, 131072, 2, -131070, 131072, 2, 131074, 131072, 7, 393218, 131072, 2, -131069, 131072, 2, 131075, 131072, 7, 393219, 131072, 2, -131068, 131072, 2, 131076, 131072, 7, 393220, 131072, 2, -131067, 196608, 2, -65531, 196608, 3, 5, 196608, 3, 65541, 196608, 3, 131077, 196608, 7, 393221, 131072, 2, -131066, 0, 8, -65530, 0, 8, 6, 0, 8, 65542, 0, 8, 131078, 0, 8, 393222, 131072, 2, -131065, 0, 8, -65529, 0, 8, 7, 0, 8, 65543, 0, 8, 131079, 0, 8, 393223, 131072, 2, -131064, 0, 8, -65528, 0, 8, 8, 0, 8, 65544, 0, 8, 131080, 0, 8, 393224, 131072, 2, -131063, 65536, 3, -65527, 65536, 3, 9, 65536, 3, 65545, 65536, 3, 131081, 65536, 3, 393225, 851968, 2, -327690, 196608, 4, -262154, 196608, 3, -196618, 196608, 3, -131082, 196608, 3, -65546, 196608, 3, -10, 196608, 3, 65526, 196608, 3, 131062, 196608, 3, 196598, 196608, 3, 262134, 196608, 3, 327670, 196608, 3, 393206, 196608, 3, 458742, 720896, 2, -327689, 131072, 7, -262153, 0, 8, -196617, 0, 8, -131081, 0, 8, -65545, 0, 8, -9, 0, 8, 65527, 0, 8, 131063, 0, 8, 196599, 0, 8, 262135, 0, 8, 327671, 0, 8, 393207, 0, 8, 458743, 131072, 2, -327688, 131072, 7, -262152, 0, 8, -196616, 0, 8, -131080, 0, 8, -65544, 0, 8, -8, 0, 8, 65528, 0, 8, 131064, 0, 8, 196600, 0, 8, 262136, 0, 8, 327672, 0, 8, 393208, 0, 8, 458744, 131072, 2, -327687, 131072, 7, -262151, 0, 8, -196615, 0, 8, -131079, 0, 8, -65543, 0, 8, -7, 0, 8, 65529, 0, 8, 131065, 0, 8, 196601, 0, 8, 262137, 0, 8, 327673, 0, 8, 393209, 0, 8, 458745, 131072, 2, -327686, 131072, 7, -262150, 0, 8, -196614, 0, 8, -131078, 0, 8, -65542, 65536, 2, -6, 65536, 3, 65530, 65536, 3, 131066, 65536, 3, 196602, 65536, 7, 262138, 0, 8, 327674, 0, 8, 393210, 0, 8, 458746, 131072, 2, -327685, 131072, 7, -262149, 0, 8, -196613, 0, 8, -131077, 0, 8, -65541, 131072, 2, 196603, 131072, 7, 262139, 0, 8, 327675, 0, 8, 393211, 0, 8, 458747, 131072, 2, -327684, 131072, 7, -262148, 0, 8, -196612, 0, 8, -131076, 0, 8, -65540, 131072, 2, 196604, 131072, 7, 262140, 0, 8, 327676, 0, 8, 393212, 0, 8, 458748, 131072, 2, -327683, 131072, 7, -262147, 0, 8, -196611, 0, 8, -131075, 0, 8, -327682, 131072, 7, -262146, 0, 8, -196610, 0, 8, -131074, 0, 8, -327681, 131072, 7, -262145, 0, 8, -196609, 0, 8, -131073, 0, 8, -393216, 131072, 7, -327680, 0, 8, -262144, 0, 8, -196608, 0, 8, -393215, 131072, 7, -327679, 0, 8, -262143, 0, 8, -196607, 0, 8, -393214, 131072, 7, -327678, 0, 8, -262142, 0, 8, -196606, 0, 8, 196610, 0, 8, 262146, 0, 8, 327682, 0, 8, -393213, 131072, 7, -327677, 0, 8, -262141, 0, 8, -196605, 0, 8, 196611, 0, 8, 262147, 0, 8, 327683, 0, 8, -393212, 131072, 7, -327676, 0, 8, -262140, 0, 8, -196604, 0, 8, 196612, 0, 8, 262148, 0, 8, 327684, 0, 8, -393211, 131072, 7, -327675, 0, 8, -262139, 0, 8, -196603, 0, 8, 196613, 0, 8, 262149, 0, 8, 327685, 0, 8, -393210, 131072, 7, -327674, 0, 8, -262138, 0, 8, -196602, 0, 8, 196614, 0, 8, 262150, 0, 8, 327686, 0, 8, -393209, 131072, 7, -327673, 0, 8, -262137, 0, 8, -196601, 0, 8, 196615, 0, 8, 262151, 0, 8, 327687, 0, 8, -393208, 131072, 7, -327672, 0, 8, -262136, 0, 8, -196600, 0, 8, 196616, 0, 8, 262152, 0, 8, 327688, 0, 8, -393207, 65536, 4, -327671, 65536, 3, -262135, 65536, 3, -196599, 65536, 3, 196617, 65536, 3, 262153, 65536, 3, 327689, 65536, 3) -script = ExtResource("1_wwejn") - -[node name="EnemyMark" type="Node2D" parent="."] -position = Vector2(0, -56) -script = ExtResource("3_2xk8s") -Weapon1Id = "0002" -Weapon1Ammo = 15 -Weapon2Id = "0003" -Weapon2Ammo = 15 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(0, 70) -script = ExtResource("3_2xk8s") -Weapon1Id = "0002" -Weapon1Ammo = 15 -Weapon2Id = "0003" -Weapon2Ammo = 15 -Type = 3 -ItemId = "0001" -Layer = 1 -DelayTime = 2.0 - -[node name="EnemyMark3" type="Node2D" parent="."] -position = Vector2(114, -54) -script = ExtResource("3_2xk8s") -Weapon1Id = "0004" -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 - -[node name="EnemyMark4" type="Node2D" parent="."] -position = Vector2(114, 72) -script = ExtResource("3_2xk8s") -Weapon1Id = "0001" -Weapon1Ammo = 45 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -DelayTime = 2.0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Room2.tscn b/DungeonShooting_Godot/resource/map/tileMaps/Room2.tscn deleted file mode 100644 index 2d8bf86..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/Room2.tscn +++ /dev/null @@ -1,39 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://hbgdhf84okk6"] - -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="1_hg3w8"] -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_u22xh"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_tgvyr"] -[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_x0odx"] - -[node name="Room2" type="TileMap"] -tile_set = ExtResource("1_u22xh") -format = 2 -layer_0/tile_data = PackedInt32Array(589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 65552, 0, 8, 16, 0, 8, 589839, 0, 8, 524303, 0, 8, 458767, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 65551, 0, 8, 15, 0, 8, 589838, 0, 8, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 65550, 0, 8, 14, 0, 8, 65549, 0, 8, 13, 0, 8, 65548, 0, 8, 12, 0, 8, 65547, 0, 8, 11, 0, 8, 65546, 0, 8, 10, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 589827, 0, 8, 524291, 0, 8, 458755, 0, 8, 589826, 0, 8, 524290, 0, 8, 458754, 0, 8, 393218, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, 589825, 0, 8, 524289, 0, 8, 458753, 0, 8, 393217, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, 589824, 0, 8, 524288, 0, 8, 458752, 0, 8, 393216, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, 131071, 196608, 3, 65535, 196608, 3, -1, 196608, 4, -65536, 131072, 7, -65535, 131072, 7, 196607, 196608, 3, 262143, 196608, 3, 327679, 196608, 3, 393215, 196608, 3, 458751, 196608, 3, 524287, 196608, 3, 589823, 196608, 3, 655359, 196608, 3, 655361, 131072, 2, 655360, 131072, 2, 720895, 720896, 2, -65534, 131072, 7, 655362, 131072, 2, 655363, 131072, 2, 655364, 131072, 2, 655365, 131072, 2, 655366, 131072, 2, -65529, 131072, 7, 655367, 131072, 2, -65528, 131072, 7, 655368, 131072, 2, -65527, 131072, 7, 655369, 131072, 2, -65526, 131072, 7, -65525, 131072, 7, -65524, 131072, 7, -65523, 131072, 7, -65522, 131072, 7, 655374, 131072, 2, -65521, 131072, 7, 655375, 131072, 2, -65520, 131072, 7, 655376, 131072, 2, 3, 65536, 3, 65539, 65536, 3, -65533, 65536, 4, 131075, 65536, 3, 196611, 65536, 3, 262147, 65536, 3, 327683, 65536, 3, 393219, 65536, 7, 393220, 131072, 7, 393221, 131072, 7, 393222, 196608, 7, 327686, 196608, 3, 262150, 196608, 3, 196614, 196608, 3, 131078, 196608, 3, 65542, 196608, 3, 6, 196608, 3, -65530, 196608, 4, 17, 65536, 3, 65553, 65536, 3, -65519, 65536, 4, 131089, 65536, 3, 196625, 65536, 3, 262161, 65536, 3, 327697, 65536, 3, 393233, 65536, 3, 458769, 65536, 3, 655377, 851968, 2, 655373, 720896, 2, 589837, 196608, 3, 524301, 196608, 3, 458765, 196608, 3, 393229, 196608, 3, 327693, 196608, 3, 262157, 196608, 3, 196621, 196608, 3, 131085, 196608, 2, 131084, 131072, 2, 131083, 131072, 2, 131082, 65536, 2, 196618, 65536, 3, 262154, 65536, 3, 327690, 65536, 3, 393226, 65536, 3, 458762, 65536, 3, 524298, 65536, 3, 589834, 65536, 3, 655370, 851968, 2, 524305, 65536, 3, 589841, 65536, 3) -script = ExtResource("1_hg3w8") - -[node name="EnemyMark" type="Node2D" parent="."] -position = Vector2(77, 138) -script = ExtResource("3_tgvyr") -Weapon1Id = "0002" -Weapon1Ammo = 25 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(190, 15) -script = ExtResource("3_tgvyr") -Weapon1Id = "0003" -Weapon1Ammo = 15 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="WeaponMark" type="Node2D" parent="."] -position = Vector2(136, 71) -script = ExtResource("4_x0odx") -CurrAmmon = 30 -ResidueAmmo = 30 -Type = 4 -ItemId = "0001" -WaveNumber = 2 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Room3.tscn b/DungeonShooting_Godot/resource/map/tileMaps/Room3.tscn deleted file mode 100644 index 6b12ae3..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/Room3.tscn +++ /dev/null @@ -1,50 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://c83qc7utiy3pd"] - -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="1_n5qca"] -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_ngr66"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_jwvnp"] -[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_6je2e"] - -[node name="Room3" type="TileMap"] -tile_set = ExtResource("1_ngr66") -format = 2 -layer_0/tile_data = PackedInt32Array(196613, 196608, 4, 262149, 196608, 3, 524293, 196608, 3, 589829, 196608, 3, 655365, 196608, 3, 720901, 196608, 3, 786437, 196608, 3, 1048581, 196608, 3, 1114117, 196608, 3, 1179653, 196608, 3, 1245189, 196608, 3, 1310725, 196608, 3, 196614, 131072, 7, 262150, 0, 8, 524294, 0, 8, 589830, 0, 8, 655366, 0, 8, 720902, 0, 8, 786438, 0, 8, 1048582, 0, 8, 1114118, 0, 8, 1179654, 0, 8, 1245190, 0, 8, 1310726, 0, 8, 196615, 131072, 7, 262151, 0, 8, 524295, 0, 8, 589831, 0, 8, 655367, 0, 8, 720903, 0, 8, 786439, 0, 8, 1048583, 0, 8, 1114119, 0, 8, 1179655, 0, 8, 1245191, 0, 8, 1310727, 0, 8, 196616, 131072, 7, 262152, 0, 8, 327688, 0, 8, 393224, 0, 8, 458760, 0, 8, 524296, 0, 8, 589832, 0, 8, 655368, 0, 8, 720904, 0, 8, 786440, 0, 8, 851976, 0, 8, 917512, 0, 8, 983048, 0, 8, 1048584, 0, 8, 1114120, 0, 8, 1179656, 0, 8, 1245192, 0, 8, 1310728, 0, 8, 196617, 131072, 7, 262153, 0, 8, 327689, 0, 8, 393225, 0, 8, 458761, 65536, 2, 524297, 65536, 3, 589833, 65536, 3, 655369, 65536, 3, 720905, 65536, 7, 786441, 0, 8, 851977, 0, 8, 917513, 0, 8, 983049, 65536, 2, 1048585, 65536, 3, 1114121, 65536, 3, 1179657, 65536, 3, 1245193, 65536, 7, 1310729, 0, 8, 196618, 131072, 7, 262154, 0, 8, 327690, 0, 8, 393226, 0, 8, 458762, 131072, 2, 720906, 131072, 7, 786442, 0, 8, 851978, 0, 8, 917514, 0, 8, 983050, 131072, 2, 1245194, 131072, 7, 1310730, 0, 8, 196619, 131072, 7, 262155, 0, 8, 327691, 0, 8, 393227, 0, 8, 458763, 131072, 2, 720907, 131072, 7, 786443, 0, 8, 851979, 0, 8, 917515, 0, 8, 983051, 131072, 2, 1245195, 131072, 7, 1310731, 0, 8, 196620, 131072, 7, 262156, 0, 8, 327692, 0, 8, 393228, 0, 8, 458764, 131072, 2, 720908, 131072, 7, 786444, 0, 8, 851980, 0, 8, 917516, 0, 8, 983052, 131072, 2, 1245196, 131072, 7, 1310732, 0, 8, 196621, 131072, 7, 262157, 0, 8, 524301, 196608, 3, 589837, 196608, 3, 655373, 196608, 3, 720909, 196608, 7, 786445, 0, 8, 1048589, 196608, 3, 1114125, 196608, 3, 1179661, 196608, 3, 1245197, 196608, 7, 1310733, 0, 8, 196622, 131072, 7, 262158, 0, 8, 524302, 0, 8, 589838, 0, 8, 655374, 0, 8, 720910, 0, 8, 786446, 0, 8, 1048590, 0, 8, 1114126, 0, 8, 1179662, 0, 8, 1245198, 0, 8, 1310734, 0, 8, 196623, 131072, 7, 262159, 0, 8, 524303, 0, 8, 589839, 0, 8, 655375, 0, 8, 720911, 0, 8, 786447, 0, 8, 1048591, 0, 8, 1114127, 0, 8, 1179663, 0, 8, 1245199, 0, 8, 1310735, 0, 8, 196624, 131072, 7, 262160, 0, 8, 327696, 0, 8, 393232, 0, 8, 458768, 0, 8, 524304, 0, 8, 589840, 0, 8, 655376, 0, 8, 720912, 0, 8, 786448, 0, 8, 851984, 0, 8, 917520, 0, 8, 983056, 0, 8, 1048592, 0, 8, 1114128, 0, 8, 1179664, 0, 8, 1245200, 0, 8, 1310736, 0, 8, 196625, 131072, 7, 262161, 0, 8, 327697, 0, 8, 393233, 0, 8, 458769, 65536, 2, 524305, 65536, 3, 589841, 65536, 3, 655377, 65536, 3, 720913, 65536, 7, 786449, 0, 8, 851985, 0, 8, 917521, 0, 8, 983057, 65536, 2, 1048593, 65536, 3, 1114129, 65536, 3, 1179665, 65536, 3, 1245201, 65536, 7, 1310737, 0, 8, 196626, 131072, 7, 262162, 0, 8, 327698, 0, 8, 393234, 0, 8, 458770, 131072, 2, 720914, 131072, 7, 786450, 0, 8, 851986, 0, 8, 917522, 0, 8, 983058, 131072, 2, 1245202, 131072, 7, 1310738, 0, 8, 196627, 131072, 7, 262163, 0, 8, 327699, 0, 8, 393235, 0, 8, 458771, 131072, 2, 720915, 131072, 7, 786451, 0, 8, 851987, 0, 8, 917523, 0, 8, 983059, 131072, 2, 1245203, 131072, 7, 1310739, 0, 8, 196628, 131072, 7, 262164, 0, 8, 327700, 0, 8, 393236, 0, 8, 458772, 131072, 2, 720916, 131072, 7, 786452, 0, 8, 851988, 0, 8, 917524, 0, 8, 983060, 131072, 2, 1245204, 131072, 7, 1310740, 0, 8, 327685, 196608, 3, 393221, 196608, 3, 458757, 196608, 3, 851973, 196608, 3, 917509, 196608, 3, 983045, 196608, 3, 1376261, 196608, 3, 1441797, 196608, 3, 1507333, 720896, 2, 327686, 0, 8, 393222, 0, 8, 458758, 0, 8, 851974, 0, 8, 917510, 0, 8, 983046, 0, 8, 1376262, 0, 8, 1441798, 0, 8, 1507334, 131072, 2, 327687, 0, 8, 393223, 0, 8, 458759, 0, 8, 851975, 0, 8, 917511, 0, 8, 983047, 0, 8, 1376263, 0, 8, 1441799, 0, 8, 1507335, 131072, 2, 1376264, 0, 8, 1441800, 0, 8, 1507336, 131072, 2, 1376265, 0, 8, 1441801, 0, 8, 1507337, 131072, 2, 1376266, 0, 8, 1441802, 0, 8, 1507338, 131072, 2, 1376267, 0, 8, 1441803, 0, 8, 1507339, 131072, 2, 1376268, 0, 8, 1441804, 0, 8, 1507340, 131072, 2, 327693, 0, 8, 393229, 0, 8, 458765, 196608, 2, 851981, 0, 8, 917517, 0, 8, 983053, 196608, 2, 1376269, 0, 8, 1441805, 0, 8, 1507341, 131072, 2, 327694, 0, 8, 393230, 0, 8, 458766, 0, 8, 851982, 0, 8, 917518, 0, 8, 983054, 0, 8, 1376270, 0, 8, 1441806, 0, 8, 1507342, 131072, 2, 327695, 0, 8, 393231, 0, 8, 458767, 0, 8, 851983, 0, 8, 917519, 0, 8, 983055, 0, 8, 1376271, 0, 8, 1441807, 0, 8, 1507343, 131072, 2, 1376272, 0, 8, 1441808, 0, 8, 1507344, 131072, 2, 1376273, 0, 8, 1441809, 0, 8, 1507345, 131072, 2, 1376274, 0, 8, 1441810, 0, 8, 1507346, 131072, 2, 1376275, 0, 8, 1441811, 0, 8, 1507347, 131072, 2, 1376276, 0, 8, 1441812, 0, 8, 1507348, 131072, 2, 196629, 131072, 7, 262165, 0, 8, 327701, 0, 8, 393237, 0, 8, 458773, 196608, 2, 524309, 196608, 3, 589845, 196608, 3, 655381, 196608, 3, 720917, 196608, 7, 786453, 0, 8, 851989, 0, 8, 917525, 0, 8, 983061, 196608, 2, 1048597, 196608, 3, 1114133, 196608, 3, 1179669, 196608, 3, 1245205, 196608, 7, 1310741, 0, 8, 1376277, 0, 8, 1441813, 0, 8, 1507349, 131072, 2, 196630, 131072, 7, 262166, 0, 8, 327702, 0, 8, 393238, 0, 8, 458774, 0, 8, 524310, 0, 8, 589846, 0, 8, 655382, 0, 8, 720918, 0, 8, 786454, 0, 8, 851990, 0, 8, 917526, 0, 8, 983062, 0, 8, 1048598, 0, 8, 1114134, 0, 8, 1179670, 0, 8, 1245206, 0, 8, 1310742, 0, 8, 1376278, 0, 8, 1441814, 0, 8, 1507350, 131072, 2, 196631, 131072, 7, 262167, 0, 8, 327703, 0, 8, 393239, 0, 8, 458775, 0, 8, 524311, 0, 8, 589847, 0, 8, 655383, 0, 8, 720919, 0, 8, 786455, 0, 8, 851991, 0, 8, 917527, 0, 8, 983063, 0, 8, 1048599, 0, 8, 1114135, 0, 8, 1179671, 0, 8, 1245207, 0, 8, 1310743, 0, 8, 1376279, 0, 8, 1441815, 0, 8, 1507351, 131072, 2, 196632, 131072, 7, 262168, 0, 8, 327704, 0, 8, 393240, 0, 8, 458776, 0, 8, 524312, 0, 8, 589848, 0, 8, 655384, 0, 8, 720920, 0, 8, 786456, 0, 8, 851992, 0, 8, 917528, 0, 8, 983064, 0, 8, 1048600, 0, 8, 1114136, 0, 8, 1179672, 0, 8, 1245208, 0, 8, 1310744, 0, 8, 1376280, 0, 8, 1441816, 0, 8, 1507352, 131072, 2, 196633, 65536, 4, 262169, 65536, 3, 327705, 65536, 3, 393241, 65536, 3, 458777, 65536, 3, 524313, 65536, 3, 589849, 65536, 3, 655385, 65536, 3, 720921, 65536, 3, 786457, 65536, 3, 851993, 65536, 3, 917529, 65536, 3, 983065, 65536, 3, 1048601, 65536, 3, 1114137, 65536, 3, 1179673, 65536, 3, 1245209, 65536, 3, 1310745, 65536, 3, 1376281, 65536, 3, 1441817, 65536, 3, 1507353, 851968, 2) -script = ExtResource("1_n5qca") - -[node name="EnemyMark" type="Node2D" parent="."] -position = Vector2(230, 215) -script = ExtResource("3_jwvnp") -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark2" type="Node2D" parent="."] -position = Vector2(261, 217) -script = ExtResource("3_jwvnp") -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="WeaponMark" type="Node2D" parent="."] -position = Vector2(248, 160) -script = ExtResource("4_6je2e") -ResidueAmmo = 12 -Type = 4 -ItemId = "0002" - -[node name="WeaponMark2" type="Node2D" parent="."] -position = Vector2(249, 268) -script = ExtResource("4_6je2e") -ResidueAmmo = 7 -Type = 4 -ItemId = "0003" - -[node name="EnemyMark3" type="Node2D" parent="."] -position = Vector2(246, 215) -script = ExtResource("3_jwvnp") -Weapon1Id = "0001" -Weapon1Ammo = 30 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Room4.tscn b/DungeonShooting_Godot/resource/map/tileMaps/Room4.tscn deleted file mode 100644 index 3bf0a43..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/Room4.tscn +++ /dev/null @@ -1,82 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://b8wy4ni1nkrvp"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_pxj2g"] -[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_k574h"] -[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_5hiyo"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room4" type="TileMap"] -tile_set = ExtResource("1_pxj2g") -format = 2 -layer_0/tile_data = PackedInt32Array(1179686, 0, 8, 1114150, 0, 8, 1048614, 0, 8, 983078, 0, 8, 917542, 0, 8, 852006, 0, 8, 786470, 0, 8, 720934, 0, 8, 655398, 0, 8, 589862, 0, 8, 524326, 0, 8, 458790, 0, 8, 1179685, 0, 8, 1114149, 0, 8, 1048613, 0, 8, 983077, 0, 8, 917541, 0, 8, 852005, 0, 8, 786469, 0, 8, 720933, 0, 8, 655397, 0, 8, 589861, 0, 8, 524325, 0, 8, 458789, 0, 8, 1179684, 0, 8, 1114148, 0, 8, 1048612, 0, 8, 983076, 0, 8, 917540, 0, 8, 852004, 0, 8, 786468, 0, 8, 720932, 0, 8, 655396, 0, 8, 589860, 0, 8, 524324, 0, 8, 458788, 0, 8, 1179683, 0, 8, 1114147, 0, 8, 1048611, 0, 8, 983075, 0, 8, 917539, 0, 8, 852003, 0, 8, 786467, 0, 8, 720931, 0, 8, 655395, 0, 8, 589859, 0, 8, 524323, 0, 8, 458787, 0, 8, 1179682, 0, 8, 1114146, 0, 8, 1048610, 0, 8, 983074, 0, 8, 917538, 0, 8, 852002, 0, 8, 786466, 0, 8, 720930, 0, 8, 655394, 0, 8, 589858, 0, 8, 524322, 0, 8, 458786, 0, 8, 1507361, 0, 8, 1441825, 0, 8, 1376289, 0, 8, 1310753, 0, 8, 1245217, 0, 8, 1179681, 0, 8, 1114145, 0, 8, 1048609, 0, 8, 983073, 0, 8, 917537, 0, 8, 852001, 0, 8, 786465, 0, 8, 720929, 0, 8, 655393, 0, 8, 589857, 0, 8, 524321, 0, 8, 458785, 0, 8, 393249, 0, 8, 327713, 0, 8, 262177, 0, 8, 196641, 0, 8, 131105, 0, 8, 1507360, 0, 8, 1441824, 0, 8, 1376288, 0, 8, 1310752, 0, 8, 1245216, 0, 8, 1179680, 0, 8, 1114144, 0, 8, 1048608, 0, 8, 983072, 0, 8, 917536, 0, 8, 852000, 0, 8, 786464, 0, 8, 720928, 0, 8, 655392, 0, 8, 589856, 0, 8, 524320, 0, 8, 458784, 0, 8, 393248, 0, 8, 327712, 0, 8, 262176, 0, 8, 196640, 0, 8, 131104, 0, 8, 1507359, 0, 8, 1441823, 0, 8, 1376287, 0, 8, 1310751, 0, 8, 1245215, 0, 8, 1179679, 0, 8, 1114143, 0, 8, 1048607, 0, 8, 983071, 0, 8, 917535, 0, 8, 851999, 0, 8, 786463, 0, 8, 720927, 0, 8, 655391, 0, 8, 589855, 0, 8, 524319, 0, 8, 458783, 0, 8, 393247, 0, 8, 327711, 0, 8, 262175, 0, 8, 196639, 0, 8, 131103, 0, 8, 1507358, 0, 8, 1441822, 0, 8, 1376286, 0, 8, 1310750, 0, 8, 1245214, 0, 8, 1179678, 0, 8, 1114142, 0, 8, 1048606, 0, 8, 983070, 0, 8, 917534, 0, 8, 851998, 0, 8, 786462, 0, 8, 720926, 0, 8, 655390, 0, 8, 589854, 0, 8, 524318, 0, 8, 458782, 0, 8, 393246, 0, 8, 327710, 0, 8, 262174, 0, 8, 196638, 0, 8, 131102, 0, 8, 1507357, 0, 8, 1441821, 0, 8, 1376285, 0, 8, 1310749, 0, 8, 1245213, 0, 8, 1179677, 0, 8, 1114141, 0, 8, 1048605, 0, 8, 983069, 0, 8, 917533, 0, 8, 851997, 0, 8, 786461, 0, 8, 720925, 0, 8, 655389, 0, 8, 589853, 0, 8, 524317, 0, 8, 458781, 0, 8, 393245, 0, 8, 327709, 0, 8, 262173, 0, 8, 196637, 0, 8, 131101, 0, 8, 1507356, 0, 8, 1441820, 0, 8, 1376284, 0, 8, 1310748, 0, 8, 1245212, 0, 8, 1179676, 0, 8, 1114140, 0, 8, 1048604, 0, 8, 983068, 0, 8, 917532, 0, 8, 851996, 0, 8, 786460, 0, 8, 720924, 0, 8, 655388, 0, 8, 589852, 0, 8, 524316, 0, 8, 458780, 0, 8, 393244, 0, 8, 327708, 0, 8, 262172, 0, 8, 196636, 0, 8, 131100, 0, 8, 1507355, 0, 8, 1441819, 0, 8, 1376283, 0, 8, 1310747, 0, 8, 1245211, 0, 8, 1179675, 0, 8, 1114139, 0, 8, 1048603, 0, 8, 983067, 0, 8, 917531, 0, 8, 851995, 0, 8, 786459, 0, 8, 720923, 0, 8, 655387, 0, 8, 589851, 0, 8, 524315, 0, 8, 458779, 0, 8, 393243, 0, 8, 327707, 0, 8, 262171, 0, 8, 196635, 0, 8, 131099, 0, 8, 1507354, 0, 8, 1441818, 0, 8, 1376282, 0, 8, 1310746, 0, 8, 1245210, 0, 8, 1179674, 0, 8, 1114138, 0, 8, 1048602, 0, 8, 983066, 0, 8, 917530, 0, 8, 851994, 0, 8, 786458, 0, 8, 720922, 0, 8, 655386, 0, 8, 589850, 0, 8, 524314, 0, 8, 458778, 0, 8, 393242, 0, 8, 327706, 0, 8, 262170, 0, 8, 196634, 0, 8, 131098, 0, 8, 1507353, 0, 8, 1441817, 0, 8, 1376281, 0, 8, 1310745, 0, 8, 1245209, 0, 8, 1179673, 0, 8, 1114137, 0, 8, 1048601, 0, 8, 983065, 0, 8, 917529, 0, 8, 851993, 0, 8, 786457, 0, 8, 720921, 0, 8, 655385, 0, 8, 589849, 0, 8, 524313, 0, 8, 458777, 0, 8, 393241, 0, 8, 327705, 0, 8, 262169, 0, 8, 196633, 0, 8, 131097, 0, 8, 917528, 0, 8, 851992, 0, 8, 786456, 0, 8, 720920, 0, 8, 655384, 0, 8, 917527, 0, 8, 851991, 0, 8, 786455, 0, 8, 720919, 0, 8, 655383, 0, 8, 917526, 0, 8, 851990, 0, 8, 786454, 0, 8, 720918, 0, 8, 655382, 0, 8, 917525, 0, 8, 851989, 0, 8, 786453, 0, 8, 720917, 0, 8, 655381, 0, 8, 917524, 0, 8, 851988, 0, 8, 786452, 0, 8, 720916, 0, 8, 655380, 0, 8, 917523, 0, 8, 851987, 0, 8, 786451, 0, 8, 720915, 0, 8, 655379, 0, 8, 917522, 0, 8, 851986, 0, 8, 786450, 0, 8, 720914, 0, 8, 655378, 0, 8, 917521, 0, 8, 851985, 0, 8, 786449, 0, 8, 720913, 0, 8, 655377, 0, 8, 917520, 0, 8, 851984, 0, 8, 786448, 0, 8, 720912, 0, 8, 655376, 0, 8, 589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 1507343, 0, 8, 1441807, 0, 8, 1376271, 0, 8, 1310735, 0, 8, 1245199, 0, 8, 1179663, 0, 8, 1114127, 0, 8, 1048591, 0, 8, 983055, 0, 8, 917519, 0, 8, 851983, 0, 8, 786447, 0, 8, 720911, 0, 8, 655375, 0, 8, 589839, 0, 8, 524303, 0, 8, 458767, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 1507342, 0, 8, 1441806, 0, 8, 1376270, 0, 8, 1310734, 0, 8, 1245198, 0, 8, 1179662, 0, 8, 1114126, 0, 8, 1048590, 0, 8, 983054, 0, 8, 917518, 0, 8, 851982, 0, 8, 786446, 0, 8, 720910, 0, 8, 655374, 0, 8, 589838, 0, 8, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 1507341, 0, 8, 1441805, 0, 8, 1376269, 0, 8, 1310733, 0, 8, 1245197, 0, 8, 1179661, 0, 8, 1114125, 0, 8, 1048589, 0, 8, 983053, 0, 8, 917517, 0, 8, 851981, 0, 8, 786445, 0, 8, 720909, 0, 8, 655373, 0, 8, 589837, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 131085, 0, 8, 1507340, 0, 8, 1441804, 0, 8, 1376268, 0, 8, 1310732, 0, 8, 1245196, 0, 8, 1179660, 0, 8, 1114124, 0, 8, 1048588, 0, 8, 983052, 0, 8, 917516, 0, 8, 851980, 0, 8, 786444, 0, 8, 720908, 0, 8, 655372, 0, 8, 589836, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 327692, 0, 8, 262156, 0, 8, 196620, 0, 8, 131084, 0, 8, 1507339, 0, 8, 1441803, 0, 8, 1376267, 0, 8, 1310731, 0, 8, 1245195, 0, 8, 1179659, 0, 8, 1114123, 0, 8, 1048587, 0, 8, 983051, 0, 8, 917515, 0, 8, 851979, 0, 8, 786443, 0, 8, 720907, 0, 8, 655371, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 327691, 0, 8, 262155, 0, 8, 196619, 0, 8, 131083, 0, 8, 1507338, 0, 8, 1441802, 0, 8, 1376266, 0, 8, 1310730, 0, 8, 1245194, 0, 8, 1179658, 0, 8, 1114122, 0, 8, 1048586, 0, 8, 983050, 0, 8, 917514, 0, 8, 851978, 0, 8, 786442, 0, 8, 720906, 0, 8, 655370, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 327690, 0, 8, 262154, 0, 8, 196618, 0, 8, 131082, 0, 8, 1507337, 0, 8, 1441801, 0, 8, 1376265, 0, 8, 1310729, 0, 8, 1245193, 0, 8, 1179657, 0, 8, 1114121, 0, 8, 1048585, 0, 8, 983049, 0, 8, 917513, 0, 8, 851977, 0, 8, 786441, 0, 8, 720905, 0, 8, 655369, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 1507336, 0, 8, 1441800, 0, 8, 1376264, 0, 8, 1310728, 0, 8, 1245192, 0, 8, 1179656, 0, 8, 1114120, 0, 8, 1048584, 0, 8, 983048, 0, 8, 917512, 0, 8, 851976, 0, 8, 786440, 0, 8, 720904, 0, 8, 655368, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 1179655, 0, 8, 1114119, 0, 8, 1048583, 0, 8, 983047, 0, 8, 917511, 0, 8, 851975, 0, 8, 786439, 0, 8, 720903, 0, 8, 655367, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 1179654, 0, 8, 1114118, 0, 8, 1048582, 0, 8, 983046, 0, 8, 917510, 0, 8, 851974, 0, 8, 786438, 0, 8, 720902, 0, 8, 655366, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 1179653, 0, 8, 1114117, 0, 8, 1048581, 0, 8, 983045, 0, 8, 917509, 0, 8, 851973, 0, 8, 786437, 0, 8, 720901, 0, 8, 655365, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 1179652, 0, 8, 1114116, 0, 8, 1048580, 0, 8, 983044, 0, 8, 917508, 0, 8, 851972, 0, 8, 786436, 0, 8, 720900, 0, 8, 655364, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 1179651, 0, 8, 1114115, 0, 8, 1048579, 0, 8, 983043, 0, 8, 917507, 0, 8, 851971, 0, 8, 786435, 0, 8, 720899, 0, 8, 655363, 0, 8, 589827, 0, 8, 524291, 0, 8, 458755, 0, 8, 65543, 131072, 7, 65544, 131072, 7, 1572872, 131072, 2, 65545, 131072, 7, 1572873, 131072, 2, 65546, 131072, 7, 1572874, 131072, 2, 65547, 131072, 7, 1572875, 131072, 2, 65548, 131072, 7, 1572876, 131072, 2, 65549, 131072, 7, 1572877, 131072, 2, 65550, 131072, 7, 1572878, 131072, 2, 65551, 131072, 7, 1572879, 131072, 2, 65552, 131072, 7, 65561, 131072, 7, 1572889, 131072, 2, 65562, 131072, 7, 1572890, 131072, 2, 65563, 131072, 7, 1572891, 131072, 2, 65564, 131072, 7, 1572892, 131072, 2, 65565, 131072, 7, 1572893, 131072, 2, 65566, 131072, 7, 1572894, 131072, 2, 65567, 131072, 7, 1572895, 131072, 2, 65568, 131072, 7, 1572896, 131072, 2, 65569, 131072, 7, 1572897, 131072, 2, 458791, 65536, 3, 524327, 65536, 3, 589863, 65536, 3, 655399, 65536, 3, 720935, 65536, 3, 786471, 65536, 3, 852007, 65536, 3, 917543, 65536, 3, 983079, 65536, 3, 1048615, 65536, 3, 1114151, 65536, 3, 1179687, 65536, 3, 983064, 0, 8, 983063, 0, 8, 983062, 0, 8, 983061, 0, 8, 983060, 0, 8, 983059, 0, 8, 983058, 0, 8, 983057, 0, 8, 1572880, 131072, 2, 1507344, 0, 8, 1441808, 0, 8, 1376272, 0, 8, 1310736, 0, 8, 1245200, 0, 8, 1179664, 0, 8, 1114128, 0, 8, 1048592, 0, 8, 983056, 0, 8, 1048593, 65536, 2, 1048594, 131072, 2, 1048595, 131072, 2, 1048596, 131072, 2, 1048597, 131072, 2, 1048598, 131072, 2, 1048599, 131072, 2, 1048600, 196608, 2, 1114136, 196608, 3, 1179672, 196608, 3, 1245208, 196608, 3, 1310744, 196608, 3, 1376280, 196608, 3, 1441816, 196608, 3, 1507352, 196608, 3, 1572888, 720896, 2, 1114129, 65536, 3, 1179665, 65536, 3, 1245201, 65536, 3, 1310737, 65536, 3, 1376273, 65536, 3, 1441809, 65536, 3, 1507345, 65536, 3, 1572881, 851968, 2, 589841, 65536, 7, 524305, 65536, 3, 458769, 65536, 3, 393233, 65536, 3, 196625, 65536, 3, 131089, 65536, 3, 589842, 131072, 7, 589843, 131072, 7, 589844, 131072, 7, 589845, 131072, 7, 589846, 131072, 7, 589847, 131072, 7, 196632, 196608, 3, 131096, 196608, 3, 65560, 196608, 4, 65553, 65536, 4, 131106, 65536, 3, 196642, 65536, 3, 65570, 65536, 4, 262178, 65536, 3, 327714, 65536, 3, 393250, 65536, 7, 393252, 131072, 7, 393253, 131072, 7, 393254, 131072, 7, 393255, 65536, 4, 393251, 131072, 7, 1245223, 851968, 2, 1245222, 131072, 2, 1245221, 131072, 2, 1245220, 131072, 2, 1245219, 131072, 2, 1245218, 65536, 2, 1310754, 65536, 3, 1376290, 65536, 3, 1441826, 65536, 3, 1507362, 65536, 3, 1572898, 851968, 2, 458754, 196608, 3, 196615, 0, 8, 131079, 0, 8, 262151, 0, 8, 327687, 0, 8, 393223, 0, 8, 393222, 0, 8, 393221, 0, 8, 393220, 0, 8, 393219, 0, 8, 524290, 196608, 3, 393218, 196608, 3, 589826, 196608, 3, 655362, 196608, 3, 720898, 196608, 3, 786434, 196608, 3, 851970, 196608, 3, 917506, 196608, 3, 983042, 196608, 3, 1048578, 196608, 3, 1114114, 196608, 3, 1179650, 196608, 3, 1245188, 131072, 2, 1245187, 131072, 2, 1245186, 720896, 2, 1245189, 131072, 2, 1245190, 131072, 2, 1245191, 196608, 2, 1310727, 196608, 3, 1376263, 196608, 3, 1441799, 196608, 3, 1507335, 196608, 3, 1572871, 720896, 2, 131075, 0, 8, 196611, 0, 8, 262147, 0, 8, 327683, 0, 8, 327682, 196608, 3, 327684, 0, 8, 262146, 196608, 3, 262148, 0, 8, 196610, 196608, 3, 196612, 0, 8, 131074, 196608, 3, 131076, 0, 8, 65538, 196608, 4, 65539, 131072, 7, 65540, 131072, 7, 131078, 0, 8, 131077, 0, 8, 196613, 0, 8, 65541, 131072, 7, 196614, 0, 8, 65542, 131072, 7, 262149, 0, 8, 262150, 0, 8, 327686, 0, 8, 327685, 0, 8, 262161, 65536, 3, 327697, 65536, 3, 589848, 196608, 7, 524312, 196608, 3, 458776, 196608, 3, 393240, 196608, 3, 327704, 196608, 3, 262168, 196608, 3) -script = ExtResource("dungeonRoomTemplate") - -[node name="Level1" type="Node" parent="."] - -[node name="EnemyMark" type="Node2D" parent="Level1"] -position = Vector2(198, 94) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark2" type="Node2D" parent="Level1"] -position = Vector2(195, 331) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark3" type="Node2D" parent="Level1"] -position = Vector2(480, 334) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="EnemyMark4" type="Node2D" parent="Level1"] -position = Vector2(470, 98) -script = ExtResource("3_k574h") -Weapon1Id = "0003" -Weapon1Ammo = 20 -Type = 3 -ItemId = "0001" -Layer = 1 - -[node name="Level2" type="Node" parent="."] - -[node name="EnemyMark" type="Node2D" parent="Level2"] -position = Vector2(120, 204) -script = ExtResource("3_k574h") -Weapon1Id = "0001" -Weapon1Ammo = 45 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -DelayTime = 1.5 - -[node name="EnemyMark2" type="Node2D" parent="Level2"] -position = Vector2(561, 207) -script = ExtResource("3_k574h") -Weapon1Id = "0001" -Weapon1Ammo = 45 -Type = 3 -ItemId = "0001" -Layer = 1 -WaveNumber = 2 -DelayTime = 1.5 - -[node name="WeaponMark" type="Node2D" parent="."] -position = Vector2(331, 208) -script = ExtResource("4_5hiyo") -Type = 4 -ItemId = "0001" -WaveNumber = 3 -DelayTime = 1.0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Room5.tscn b/DungeonShooting_Godot/resource/map/tileMaps/Room5.tscn deleted file mode 100644 index 65bdeb8..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/Room5.tscn +++ /dev/null @@ -1,11 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://ctbfg0p66xirw"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_mx0vc"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room5" type="TileMap"] -tile_set = ExtResource("1_mx0vc") -format = 2 -layer_0/tile_data = PackedInt32Array(65533, 0, 8, 131069, 0, 8, 196605, 0, 8, 262141, 0, 8, 327677, 131072, 2, 65534, 0, 8, 131070, 0, 8, 196606, 0, 8, 262142, 0, 8, 327678, 196608, 2, 393214, 720896, 2, -1, 0, 8, 65535, 0, 8, 131071, 0, 8, 196607, 0, 8, 262143, 0, 8, 327679, 0, 8, 393215, 196608, 2, 458751, 196608, 3, -196608, 0, 8, -131072, 0, 8, -65536, 0, 8, 0, 0, 8, 65536, 0, 8, 131072, 0, 8, 196608, 0, 8, 262144, 0, 8, 327680, 0, 8, 393216, 0, 8, 458752, 131072, 2, -196607, 0, 8, -131071, 0, 8, -65535, 0, 8, 1, 0, 8, 65537, 65536, 2, 131073, 65536, 7, 196609, 0, 8, 262145, 0, 8, 327681, 0, 8, 393217, 0, 8, 458753, 131072, 2, -196606, 0, 8, -131070, 0, 8, -65534, 0, 8, 2, 0, 8, 65538, 196608, 2, 131074, 196608, 7, 196610, 0, 8, 262146, 0, 8, 327682, 0, 8, 393218, 0, 8, 458754, 131072, 2, -196605, 0, 8, -131069, 0, 8, -65533, 0, 8, 3, 0, 8, 65539, 0, 8, 131075, 0, 8, 196611, 0, 8, 262147, 0, 8, 327683, 0, 8, 393219, 0, 8, 458755, 131072, 2, -196604, 65536, 3, -131068, 65536, 7, -65532, 0, 8, 4, 0, 8, 65540, 0, 8, 131076, 0, 8, 196612, 0, 8, 262148, 0, 8, 327684, 65536, 2, 393220, 65536, 3, 458756, 851968, 2, -131067, 65536, 4, -65531, 65536, 7, 5, 0, 8, 65541, 0, 8, 131077, 0, 8, 196613, 0, 8, 262149, 65536, 2, 327685, 851968, 2, -65530, 131072, 7, 6, 0, 8, 65542, 0, 8, 131078, 0, 8, 196614, 0, 8, 262150, 131072, 2, 7, 65536, 3, 65543, 65536, 3, 131079, 65536, 3, 196615, 65536, 3, 262151, 851968, 2, -4, 196608, 4, 65532, 196608, 3, 131068, 196608, 3, 196604, 196608, 3, 262140, 196608, 3, 327676, 720896, 2, -3, 131072, 7, -65538, 196608, 4, -2, 196608, 7, -196609, 196608, 4, -131073, 196608, 3, -65537, 196608, 7, 524287, 720896, 2, -262144, 131072, 7, -262143, 131072, 7, -262142, 131072, 7, -262141, 131072, 7, -262140, 65536, 4, -65529, 65536, 4) -script = ExtResource("dungeonRoomTemplate") -EnableEdit = true diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Room6.tscn b/DungeonShooting_Godot/resource/map/tileMaps/Room6.tscn deleted file mode 100644 index 0407379..0000000 --- a/DungeonShooting_Godot/resource/map/tileMaps/Room6.tscn +++ /dev/null @@ -1,11 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://enbdu7o247o2"] - -[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_0o1o2"] -[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] - -[node name="Room6" type="TileMap"] -tile_set = ExtResource("1_0o1o2") -format = 2 -layer_0/tile_data = PackedInt32Array(196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -3, 196608, 3, -65539, 196608, 3, -131075, 196608, 4, -131074, 131072, 7, -131073, 131072, 7, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327679, 131072, 2, 327678, 131072, 2, 327677, 720896, 2, -196608, 131072, 7, 262144, 131072, 2, -196607, 131072, 7, 262145, 131072, 2, -196606, 131072, 7, 262146, 131072, 2, -196605, 131072, 7, 262147, 196608, 2, -196604, 131072, 7, 262148, 0, 8, -196603, 131072, 7, 262149, 0, 8, -131066, 65536, 3, -65530, 65536, 3, -196602, 65536, 4, 6, 65536, 3, 65542, 65536, 7, 131078, 0, 8, 196614, 0, 8, 262150, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 458759, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 458758, 0, 8, 393222, 0, 8, 327686, 0, 8, 458757, 0, 8, 393221, 0, 8, 327685, 0, 8, 458756, 0, 8, 393220, 0, 8, 327684, 0, 8, 327683, 196608, 3, 393219, 196608, 3, 458755, 196608, 3, 524293, 131072, 2, 524292, 131072, 2, 524291, 720896, 2, 524294, 131072, 2, 65543, 131072, 7, 524295, 131072, 2, 65544, 131072, 7, 524296, 131072, 2, 65545, 131072, 7, 524297, 131072, 2, 131082, 65536, 3, 196618, 65536, 3, 65546, 65536, 4, 262154, 65536, 3, 327690, 65536, 3, 393226, 65536, 3, 458762, 65536, 3, 524298, 851968, 2) -script = ExtResource("dungeonRoomTemplate") -EnableEdit = true diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn new file mode 100644 index 0000000..365cd55 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room1.tscn @@ -0,0 +1,54 @@ +[gd_scene load_steps=4 format=3 uid="uid://bxpcy34g7cmex"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_luio1"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_2xk8s"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room1" type="TileMap"] +tile_set = ExtResource("1_luio1") +format = 2 +layer_0/tile_data = PackedInt32Array(196620, 0, 8, 131084, 0, 8, 65548, 0, 8, 12, 0, 8, -65524, 0, 8, -131060, 0, 8, -196596, 0, 8, -262132, 0, 8, 196619, 0, 8, 131083, 0, 8, 65547, 0, 8, 11, 0, 8, -65525, 0, 8, -131061, 0, 8, -196597, 0, 8, -262133, 0, 8, 196618, 0, 8, 131082, 0, 8, 65546, 0, 8, -131062, 0, 8, -196598, 0, 8, -262134, 0, 8, 196617, 0, 8, 131081, 0, 8, -196599, 0, 8, -262135, 0, 8, 196616, 0, 8, 131080, 0, 8, -196600, 0, 8, -262136, 0, 8, 196615, 0, 8, 131079, 0, 8, -196601, 0, 8, -262137, 0, 8, 196614, 0, 8, 131078, 0, 8, -196602, 0, 8, -262138, 0, 8, 196613, 0, 8, 131077, 0, 8, -196603, 0, 8, -262139, 0, 8, 196612, 0, 8, 131076, 0, 8, -196604, 0, 8, -262140, 0, 8, 196611, 0, 8, 131075, 0, 8, -196605, 0, 8, -262141, 0, 8, 196610, 0, 8, 131074, 0, 8, -196606, 0, 8, -262142, 0, 8, 196609, 0, 8, 131073, 0, 8, -196607, 0, 8, -262143, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, -196608, 0, 8, -262144, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, -131073, 0, 8, -196609, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -131074, 0, 8, -196610, 0, 8, -131075, 196608, 3, -196611, 196608, 3, -262147, 196608, 4, -262146, 131072, 7, -262145, 131072, 7, -65539, 196608, 3, -3, 196608, 3, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327679, 131072, 2, 327678, 131072, 2, 327677, 720896, 2, -327680, 131072, 7, 262144, 131072, 2, -327679, 131072, 7, 262145, 131072, 2, -327678, 131072, 7, 262146, 131072, 2, -327677, 131072, 7, 262147, 131072, 2, -327676, 131072, 7, 262148, 131072, 2, -327675, 131072, 7, 262149, 131072, 2, -327674, 131072, 7, 262150, 131072, 2, -327673, 131072, 7, 262151, 131072, 2, -327672, 131072, 7, 262152, 131072, 2, -327671, 131072, 7, 262153, 131072, 2, -327670, 131072, 7, 262154, 131072, 2, -327669, 131072, 7, 262155, 131072, 2, -327668, 131072, 7, 262156, 131072, 2, -262131, 65536, 3, -196595, 65536, 3, -327667, 65536, 4, -131059, 65536, 3, -65523, 65536, 3, 13, 65536, 3, 65549, 65536, 3, 131085, 65536, 3, 196621, 65536, 3, 262157, 851968, 2, 10, 0, 8, -65526, 0, 8, -131071, 65536, 2, -131070, 131072, 2, -131069, 131072, 2, -131068, 131072, 2, -131067, 131072, 2, -131066, 131072, 2, -131065, 131072, 2, -131064, 131072, 2, -131063, 196608, 2, -65527, 196608, 3, 9, 196608, 3, 65545, 196608, 7, 65537, 65536, 7, 65538, 131072, 7, 65539, 131072, 7, 65540, 131072, 7, 65541, 131072, 7, 65542, 131072, 7, 65543, 131072, 7, 65544, 131072, 7, -65535, 65536, 3, 1, 65536, 3) +script = ExtResource("dungeonRoomTemplate") + +[node name="EnemyMark" type="Node2D" parent="."] +position = Vector2(-9, -1) +script = ExtResource("3_2xk8s") +Weapon1Id = "0003" +Weapon1Ammo = 25 +Type = 3 +ItemId = "0001" +Layer = 1 +DelayTime = 1.0 +BirthRect = Vector2i(20, 100) + +[node name="EnemyMark2" type="Node2D" parent="."] +position = Vector2(183, 0) +script = ExtResource("3_2xk8s") +Weapon1Id = "0003" +Weapon1Ammo = 25 +Type = 3 +ItemId = "0001" +Layer = 1 +BirthRect = Vector2i(20, 100) + +[node name="EnemyMark3" type="Node2D" parent="."] +position = Vector2(88, -48) +script = ExtResource("3_2xk8s") +Weapon1Id = "0002" +Weapon1Ammo = 20 +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +BirthRect = Vector2i(150, 10) + +[node name="EnemyMark4" type="Node2D" parent="."] +position = Vector2(90, 49) +script = ExtResource("3_2xk8s") +Weapon1Id = "0002" +Weapon1Ammo = 20 +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +BirthRect = Vector2i(150, 10) diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room2.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room2.tscn new file mode 100644 index 0000000..7a06fff --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room2.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=5 format=3 uid="uid://bual5tyxahj1u"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_u22xh"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_tgvyr"] +[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_x0odx"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room2" type="TileMap"] +tile_set = ExtResource("1_u22xh") +format = 2 +layer_0/tile_data = PackedInt32Array(589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 65552, 0, 8, 16, 0, 8, -65520, 0, 8, -131056, 0, 8, 589839, 0, 8, 524303, 0, 8, 458767, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 65551, 0, 8, 15, 0, 8, -65521, 0, 8, -131057, 0, 8, 589838, 0, 8, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 65550, 0, 8, 14, 0, 8, -65522, 0, 8, -131058, 0, 8, 589837, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 131085, 0, 8, 65549, 0, 8, 13, 0, 8, -65523, 0, 8, -131059, 0, 8, 589836, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, -65528, 0, 8, -131064, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, -65529, 0, 8, -131065, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 393222, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, -65530, 0, 8, -131066, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 393221, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 393220, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, 655359, 0, 8, 589823, 0, 8, 524287, 0, 8, 458751, 0, 8, 393215, 0, 8, 327679, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, 655358, 0, 8, 589822, 0, 8, 524286, 0, 8, 458750, 0, 8, 393214, 0, 8, 327678, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, 655357, 0, 8, 589821, 0, 8, 524285, 0, 8, 458749, 0, 8, 393213, 0, 8, 327677, 0, 8, 262141, 0, 8, 196605, 0, 8, 131069, 0, 8, 65533, 0, 8, -3, 0, 8, -65539, 0, 8, 655356, 0, 8, 589820, 0, 8, 524284, 0, 8, 458748, 0, 8, 393212, 0, 8, 327676, 0, 8, 262140, 0, 8, 196604, 0, 8, 131068, 0, 8, 65532, 0, 8, -4, 0, 8, -65540, 0, 8, -5, 196608, 3, -65541, 196608, 3, -131077, 196608, 4, -131076, 131072, 7, -131075, 131072, 7, 65531, 196608, 3, 131067, 196608, 3, 196603, 196608, 3, 262139, 196608, 3, 327675, 196608, 3, 393211, 196608, 3, 458747, 196608, 3, 524283, 196608, 3, 589819, 196608, 3, 655355, 196608, 3, 720893, 131072, 2, 720892, 131072, 2, 720891, 720896, 2, -131074, 131072, 7, 720894, 131072, 2, -131073, 131072, 7, 720895, 131072, 2, -196608, 131072, 7, -196607, 131072, 7, -196606, 131072, 7, -196605, 131072, 7, -196604, 131072, 7, 655364, 131072, 2, -196603, 131072, 7, 655365, 131072, 2, -196602, 131072, 7, 655366, 131072, 2, -196601, 131072, 7, 655367, 131072, 2, -196600, 131072, 7, 655368, 131072, 2, 655369, 131072, 2, 655370, 131072, 2, 655371, 131072, 2, 655372, 131072, 2, -196595, 131072, 7, 655373, 131072, 2, -196594, 131072, 7, 655374, 131072, 2, -196593, 131072, 7, 655375, 131072, 2, -196592, 131072, 7, 655376, 131072, 2, -131055, 65536, 3, -65519, 65536, 3, -196591, 65536, 4, 17, 65536, 3, 65553, 65536, 3, 131089, 65536, 3, 196625, 65536, 3, 262161, 65536, 3, 327697, 65536, 3, 393233, 65536, 3, 458769, 65536, 3, 524305, 65536, 3, 589841, 65536, 3, 655377, 851968, 2, 327691, 0, 8, 327692, 0, 8, 327690, 0, 8, 327689, 0, 8, 262153, 65536, 7, 262154, 131072, 7, 262155, 131072, 7, 262156, 196608, 7, -131063, 65536, 3, -65527, 65536, 3, -196599, 65536, 4, 9, 65536, 3, 65545, 65536, 3, 131081, 65536, 3, 196617, 65536, 3, -65524, 196608, 3, -131060, 196608, 3, -196596, 196608, 4, 12, 196608, 3, 65548, 196608, 3, 131084, 196608, 3, 196620, 196608, 3, 196608, 65536, 2, 196609, 131072, 2, 196610, 131072, 2, 196611, 196608, 2, 262147, 196608, 3, 327683, 196608, 3, 393219, 196608, 3, 458755, 196608, 3, 524291, 196608, 3, 589827, 196608, 3, 655363, 720896, 2, 262144, 65536, 3, 327680, 65536, 3, 393216, 65536, 3, 458752, 65536, 3, 524288, 65536, 3, 589824, 65536, 3, 655360, 851968, 2) +script = ExtResource("dungeonRoomTemplate") + +[node name="EnemyMark" type="Node2D" parent="."] +position = Vector2(-23, 7) +script = ExtResource("3_tgvyr") +Type = 3 +ItemId = "0001" +Layer = 1 +BirthRect = Vector2i(50, 50) + +[node name="EnemyMark2" type="Node2D" parent="."] +position = Vector2(232, 119) +script = ExtResource("3_tgvyr") +Type = 3 +ItemId = "0001" +Layer = 1 +BirthRect = Vector2i(50, 50) + +[node name="WeaponMark" type="Node2D" parent="."] +position = Vector2(105, 45) +script = ExtResource("4_x0odx") +CurrAmmon = 30 +Type = 4 +ItemId = "0001" +DelayTime = 1.0 +Altitude = 8 + +[node name="WeaponMark2" type="Node2D" parent="."] +position = Vector2(106, 103) +script = ExtResource("4_x0odx") +CurrAmmon = 15 +Type = 4 +ItemId = "0002" +DelayTime = 1.0 +Altitude = 8 + +[node name="EnemyMark3" type="Node2D" parent="."] +position = Vector2(102, 8) +script = ExtResource("3_tgvyr") +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 1.0 +BirthRect = Vector2i(50, 50) + +[node name="EnemyMark4" type="Node2D" parent="."] +position = Vector2(103, 121) +script = ExtResource("3_tgvyr") +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 2.0 +BirthRect = Vector2i(50, 50) diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn new file mode 100644 index 0000000..3907e22 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room3.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=5 format=3 uid="uid://c83qc7utiy3pd"] + +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="1_n5qca"] +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_ngr66"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_jwvnp"] +[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_6je2e"] + +[node name="Room3" type="TileMap"] +tile_set = ExtResource("1_ngr66") +format = 2 +layer_0/tile_data = PackedInt32Array(196613, 196608, 4, 262149, 196608, 3, 524293, 196608, 3, 589829, 196608, 3, 655365, 196608, 3, 720901, 196608, 3, 786437, 196608, 3, 1048581, 196608, 3, 1114117, 196608, 3, 1179653, 196608, 3, 1245189, 196608, 3, 1310725, 196608, 3, 196614, 131072, 7, 262150, 0, 8, 524294, 0, 8, 589830, 0, 8, 655366, 0, 8, 720902, 0, 8, 786438, 0, 8, 1048582, 0, 8, 1114118, 0, 8, 1179654, 0, 8, 1245190, 0, 8, 1310726, 0, 8, 196615, 131072, 7, 262151, 0, 8, 524295, 0, 8, 589831, 0, 8, 655367, 0, 8, 720903, 0, 8, 786439, 0, 8, 1048583, 0, 8, 1114119, 0, 8, 1179655, 0, 8, 1245191, 0, 8, 1310727, 0, 8, 196616, 131072, 7, 262152, 0, 8, 327688, 0, 8, 393224, 0, 8, 458760, 0, 8, 524296, 0, 8, 589832, 0, 8, 655368, 0, 8, 720904, 0, 8, 786440, 0, 8, 851976, 0, 8, 917512, 0, 8, 983048, 0, 8, 1048584, 0, 8, 1114120, 0, 8, 1179656, 0, 8, 1245192, 0, 8, 1310728, 0, 8, 196617, 131072, 7, 262153, 0, 8, 327689, 0, 8, 393225, 0, 8, 458761, 65536, 2, 524297, 65536, 3, 589833, 65536, 3, 655369, 65536, 3, 720905, 65536, 7, 786441, 0, 8, 851977, 0, 8, 917513, 0, 8, 983049, 65536, 2, 1048585, 65536, 3, 1114121, 65536, 3, 1179657, 65536, 3, 1245193, 65536, 7, 1310729, 0, 8, 196618, 131072, 7, 262154, 0, 8, 327690, 0, 8, 393226, 0, 8, 458762, 131072, 2, 720906, 131072, 7, 786442, 0, 8, 851978, 0, 8, 917514, 0, 8, 983050, 131072, 2, 1245194, 131072, 7, 1310730, 0, 8, 196619, 131072, 7, 262155, 0, 8, 327691, 0, 8, 393227, 0, 8, 458763, 131072, 2, 720907, 131072, 7, 786443, 0, 8, 851979, 0, 8, 917515, 0, 8, 983051, 131072, 2, 1245195, 131072, 7, 1310731, 0, 8, 196620, 131072, 7, 262156, 0, 8, 327692, 0, 8, 393228, 0, 8, 458764, 131072, 2, 720908, 131072, 7, 786444, 0, 8, 851980, 0, 8, 917516, 0, 8, 983052, 131072, 2, 1245196, 131072, 7, 1310732, 0, 8, 196621, 131072, 7, 262157, 0, 8, 524301, 196608, 3, 589837, 196608, 3, 655373, 196608, 3, 720909, 196608, 7, 786445, 0, 8, 1048589, 196608, 3, 1114125, 196608, 3, 1179661, 196608, 3, 1245197, 196608, 7, 1310733, 0, 8, 196622, 131072, 7, 262158, 0, 8, 524302, 0, 8, 589838, 0, 8, 655374, 0, 8, 720910, 0, 8, 786446, 0, 8, 1048590, 0, 8, 1114126, 0, 8, 1179662, 0, 8, 1245198, 0, 8, 1310734, 0, 8, 196623, 131072, 7, 262159, 0, 8, 524303, 0, 8, 589839, 0, 8, 655375, 0, 8, 720911, 0, 8, 786447, 0, 8, 1048591, 0, 8, 1114127, 0, 8, 1179663, 0, 8, 1245199, 0, 8, 1310735, 0, 8, 196624, 131072, 7, 262160, 0, 8, 327696, 0, 8, 393232, 0, 8, 458768, 0, 8, 524304, 0, 8, 589840, 0, 8, 655376, 0, 8, 720912, 0, 8, 786448, 0, 8, 851984, 0, 8, 917520, 0, 8, 983056, 0, 8, 1048592, 0, 8, 1114128, 0, 8, 1179664, 0, 8, 1245200, 0, 8, 1310736, 0, 8, 196625, 131072, 7, 262161, 0, 8, 327697, 0, 8, 393233, 0, 8, 458769, 65536, 2, 524305, 65536, 3, 589841, 65536, 3, 655377, 65536, 3, 720913, 65536, 7, 786449, 0, 8, 851985, 0, 8, 917521, 0, 8, 983057, 65536, 2, 1048593, 65536, 3, 1114129, 65536, 3, 1179665, 65536, 3, 1245201, 65536, 7, 1310737, 0, 8, 196626, 131072, 7, 262162, 0, 8, 327698, 0, 8, 393234, 0, 8, 458770, 131072, 2, 720914, 131072, 7, 786450, 0, 8, 851986, 0, 8, 917522, 0, 8, 983058, 131072, 2, 1245202, 131072, 7, 1310738, 0, 8, 196627, 131072, 7, 262163, 0, 8, 327699, 0, 8, 393235, 0, 8, 458771, 131072, 2, 720915, 131072, 7, 786451, 0, 8, 851987, 0, 8, 917523, 0, 8, 983059, 131072, 2, 1245203, 131072, 7, 1310739, 0, 8, 196628, 131072, 7, 262164, 0, 8, 327700, 0, 8, 393236, 0, 8, 458772, 131072, 2, 720916, 131072, 7, 786452, 0, 8, 851988, 0, 8, 917524, 0, 8, 983060, 131072, 2, 1245204, 131072, 7, 1310740, 0, 8, 327685, 196608, 3, 393221, 196608, 3, 458757, 196608, 3, 851973, 196608, 3, 917509, 196608, 3, 983045, 196608, 3, 1376261, 196608, 3, 1441797, 196608, 3, 1507333, 720896, 2, 327686, 0, 8, 393222, 0, 8, 458758, 0, 8, 851974, 0, 8, 917510, 0, 8, 983046, 0, 8, 1376262, 0, 8, 1441798, 0, 8, 1507334, 131072, 2, 327687, 0, 8, 393223, 0, 8, 458759, 0, 8, 851975, 0, 8, 917511, 0, 8, 983047, 0, 8, 1376263, 0, 8, 1441799, 0, 8, 1507335, 131072, 2, 1376264, 0, 8, 1441800, 0, 8, 1507336, 131072, 2, 1376265, 0, 8, 1441801, 0, 8, 1507337, 131072, 2, 1376266, 0, 8, 1441802, 0, 8, 1507338, 131072, 2, 1376267, 0, 8, 1441803, 0, 8, 1507339, 131072, 2, 1376268, 0, 8, 1441804, 0, 8, 1507340, 131072, 2, 327693, 0, 8, 393229, 0, 8, 458765, 196608, 2, 851981, 0, 8, 917517, 0, 8, 983053, 196608, 2, 1376269, 0, 8, 1441805, 0, 8, 1507341, 131072, 2, 327694, 0, 8, 393230, 0, 8, 458766, 0, 8, 851982, 0, 8, 917518, 0, 8, 983054, 0, 8, 1376270, 0, 8, 1441806, 0, 8, 1507342, 131072, 2, 327695, 0, 8, 393231, 0, 8, 458767, 0, 8, 851983, 0, 8, 917519, 0, 8, 983055, 0, 8, 1376271, 0, 8, 1441807, 0, 8, 1507343, 131072, 2, 1376272, 0, 8, 1441808, 0, 8, 1507344, 131072, 2, 1376273, 0, 8, 1441809, 0, 8, 1507345, 131072, 2, 1376274, 0, 8, 1441810, 0, 8, 1507346, 131072, 2, 1376275, 0, 8, 1441811, 0, 8, 1507347, 131072, 2, 1376276, 0, 8, 1441812, 0, 8, 1507348, 131072, 2, 196629, 131072, 7, 262165, 0, 8, 327701, 0, 8, 393237, 0, 8, 458773, 196608, 2, 524309, 196608, 3, 589845, 196608, 3, 655381, 196608, 3, 720917, 196608, 7, 786453, 0, 8, 851989, 0, 8, 917525, 0, 8, 983061, 196608, 2, 1048597, 196608, 3, 1114133, 196608, 3, 1179669, 196608, 3, 1245205, 196608, 7, 1310741, 0, 8, 1376277, 0, 8, 1441813, 0, 8, 1507349, 131072, 2, 196630, 131072, 7, 262166, 0, 8, 327702, 0, 8, 393238, 0, 8, 458774, 0, 8, 524310, 0, 8, 589846, 0, 8, 655382, 0, 8, 720918, 0, 8, 786454, 0, 8, 851990, 0, 8, 917526, 0, 8, 983062, 0, 8, 1048598, 0, 8, 1114134, 0, 8, 1179670, 0, 8, 1245206, 0, 8, 1310742, 0, 8, 1376278, 0, 8, 1441814, 0, 8, 1507350, 131072, 2, 196631, 131072, 7, 262167, 0, 8, 327703, 0, 8, 393239, 0, 8, 458775, 0, 8, 524311, 0, 8, 589847, 0, 8, 655383, 0, 8, 720919, 0, 8, 786455, 0, 8, 851991, 0, 8, 917527, 0, 8, 983063, 0, 8, 1048599, 0, 8, 1114135, 0, 8, 1179671, 0, 8, 1245207, 0, 8, 1310743, 0, 8, 1376279, 0, 8, 1441815, 0, 8, 1507351, 131072, 2, 196632, 131072, 7, 262168, 0, 8, 327704, 0, 8, 393240, 0, 8, 458776, 0, 8, 524312, 0, 8, 589848, 0, 8, 655384, 0, 8, 720920, 0, 8, 786456, 0, 8, 851992, 0, 8, 917528, 0, 8, 983064, 0, 8, 1048600, 0, 8, 1114136, 0, 8, 1179672, 0, 8, 1245208, 0, 8, 1310744, 0, 8, 1376280, 0, 8, 1441816, 0, 8, 1507352, 131072, 2, 196633, 65536, 4, 262169, 65536, 3, 327705, 65536, 3, 393241, 65536, 3, 458777, 65536, 3, 524313, 65536, 3, 589849, 65536, 3, 655385, 65536, 3, 720921, 65536, 3, 786457, 65536, 3, 851993, 65536, 3, 917529, 65536, 3, 983065, 65536, 3, 1048601, 65536, 3, 1114137, 65536, 3, 1179673, 65536, 3, 1245209, 65536, 3, 1310745, 65536, 3, 1376281, 65536, 3, 1441817, 65536, 3, 1507353, 851968, 2) +script = ExtResource("1_n5qca") + +[node name="EnemyMark" type="Node2D" parent="."] +position = Vector2(230, 215) +script = ExtResource("3_jwvnp") +Type = 3 +ItemId = "0001" +Layer = 1 +BirthRect = Vector2i(200, 20) +DrawColor = Color(1, 0, 0, 1) + +[node name="EnemyMark2" type="Node2D" parent="."] +position = Vector2(261, 217) +script = ExtResource("3_jwvnp") +Type = 3 +ItemId = "0001" +Layer = 1 +BirthRect = Vector2i(200, 20) + +[node name="WeaponMark" type="Node2D" parent="."] +position = Vector2(248, 160) +script = ExtResource("4_6je2e") +ResidueAmmo = 12 +Type = 4 +ItemId = "0002" +DrawColor = Color(0, 0, 1, 1) +Altitude = 16 + +[node name="WeaponMark2" type="Node2D" parent="."] +position = Vector2(249, 268) +script = ExtResource("4_6je2e") +ResidueAmmo = 7 +Type = 4 +ItemId = "0003" +DrawColor = Color(0, 0, 1, 1) +Altitude = 16 + +[node name="EnemyMark3" type="Node2D" parent="."] +position = Vector2(246, 215) +script = ExtResource("3_jwvnp") +Weapon1Id = "0001" +Weapon1Ammo = 30 +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +BirthRect = Vector2i(200, 20) +DrawColor = Color(1, 0, 0, 1) diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn new file mode 100644 index 0000000..3bf0a43 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room4.tscn @@ -0,0 +1,82 @@ +[gd_scene load_steps=5 format=3 uid="uid://b8wy4ni1nkrvp"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_pxj2g"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_k574h"] +[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_5hiyo"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room4" type="TileMap"] +tile_set = ExtResource("1_pxj2g") +format = 2 +layer_0/tile_data = PackedInt32Array(1179686, 0, 8, 1114150, 0, 8, 1048614, 0, 8, 983078, 0, 8, 917542, 0, 8, 852006, 0, 8, 786470, 0, 8, 720934, 0, 8, 655398, 0, 8, 589862, 0, 8, 524326, 0, 8, 458790, 0, 8, 1179685, 0, 8, 1114149, 0, 8, 1048613, 0, 8, 983077, 0, 8, 917541, 0, 8, 852005, 0, 8, 786469, 0, 8, 720933, 0, 8, 655397, 0, 8, 589861, 0, 8, 524325, 0, 8, 458789, 0, 8, 1179684, 0, 8, 1114148, 0, 8, 1048612, 0, 8, 983076, 0, 8, 917540, 0, 8, 852004, 0, 8, 786468, 0, 8, 720932, 0, 8, 655396, 0, 8, 589860, 0, 8, 524324, 0, 8, 458788, 0, 8, 1179683, 0, 8, 1114147, 0, 8, 1048611, 0, 8, 983075, 0, 8, 917539, 0, 8, 852003, 0, 8, 786467, 0, 8, 720931, 0, 8, 655395, 0, 8, 589859, 0, 8, 524323, 0, 8, 458787, 0, 8, 1179682, 0, 8, 1114146, 0, 8, 1048610, 0, 8, 983074, 0, 8, 917538, 0, 8, 852002, 0, 8, 786466, 0, 8, 720930, 0, 8, 655394, 0, 8, 589858, 0, 8, 524322, 0, 8, 458786, 0, 8, 1507361, 0, 8, 1441825, 0, 8, 1376289, 0, 8, 1310753, 0, 8, 1245217, 0, 8, 1179681, 0, 8, 1114145, 0, 8, 1048609, 0, 8, 983073, 0, 8, 917537, 0, 8, 852001, 0, 8, 786465, 0, 8, 720929, 0, 8, 655393, 0, 8, 589857, 0, 8, 524321, 0, 8, 458785, 0, 8, 393249, 0, 8, 327713, 0, 8, 262177, 0, 8, 196641, 0, 8, 131105, 0, 8, 1507360, 0, 8, 1441824, 0, 8, 1376288, 0, 8, 1310752, 0, 8, 1245216, 0, 8, 1179680, 0, 8, 1114144, 0, 8, 1048608, 0, 8, 983072, 0, 8, 917536, 0, 8, 852000, 0, 8, 786464, 0, 8, 720928, 0, 8, 655392, 0, 8, 589856, 0, 8, 524320, 0, 8, 458784, 0, 8, 393248, 0, 8, 327712, 0, 8, 262176, 0, 8, 196640, 0, 8, 131104, 0, 8, 1507359, 0, 8, 1441823, 0, 8, 1376287, 0, 8, 1310751, 0, 8, 1245215, 0, 8, 1179679, 0, 8, 1114143, 0, 8, 1048607, 0, 8, 983071, 0, 8, 917535, 0, 8, 851999, 0, 8, 786463, 0, 8, 720927, 0, 8, 655391, 0, 8, 589855, 0, 8, 524319, 0, 8, 458783, 0, 8, 393247, 0, 8, 327711, 0, 8, 262175, 0, 8, 196639, 0, 8, 131103, 0, 8, 1507358, 0, 8, 1441822, 0, 8, 1376286, 0, 8, 1310750, 0, 8, 1245214, 0, 8, 1179678, 0, 8, 1114142, 0, 8, 1048606, 0, 8, 983070, 0, 8, 917534, 0, 8, 851998, 0, 8, 786462, 0, 8, 720926, 0, 8, 655390, 0, 8, 589854, 0, 8, 524318, 0, 8, 458782, 0, 8, 393246, 0, 8, 327710, 0, 8, 262174, 0, 8, 196638, 0, 8, 131102, 0, 8, 1507357, 0, 8, 1441821, 0, 8, 1376285, 0, 8, 1310749, 0, 8, 1245213, 0, 8, 1179677, 0, 8, 1114141, 0, 8, 1048605, 0, 8, 983069, 0, 8, 917533, 0, 8, 851997, 0, 8, 786461, 0, 8, 720925, 0, 8, 655389, 0, 8, 589853, 0, 8, 524317, 0, 8, 458781, 0, 8, 393245, 0, 8, 327709, 0, 8, 262173, 0, 8, 196637, 0, 8, 131101, 0, 8, 1507356, 0, 8, 1441820, 0, 8, 1376284, 0, 8, 1310748, 0, 8, 1245212, 0, 8, 1179676, 0, 8, 1114140, 0, 8, 1048604, 0, 8, 983068, 0, 8, 917532, 0, 8, 851996, 0, 8, 786460, 0, 8, 720924, 0, 8, 655388, 0, 8, 589852, 0, 8, 524316, 0, 8, 458780, 0, 8, 393244, 0, 8, 327708, 0, 8, 262172, 0, 8, 196636, 0, 8, 131100, 0, 8, 1507355, 0, 8, 1441819, 0, 8, 1376283, 0, 8, 1310747, 0, 8, 1245211, 0, 8, 1179675, 0, 8, 1114139, 0, 8, 1048603, 0, 8, 983067, 0, 8, 917531, 0, 8, 851995, 0, 8, 786459, 0, 8, 720923, 0, 8, 655387, 0, 8, 589851, 0, 8, 524315, 0, 8, 458779, 0, 8, 393243, 0, 8, 327707, 0, 8, 262171, 0, 8, 196635, 0, 8, 131099, 0, 8, 1507354, 0, 8, 1441818, 0, 8, 1376282, 0, 8, 1310746, 0, 8, 1245210, 0, 8, 1179674, 0, 8, 1114138, 0, 8, 1048602, 0, 8, 983066, 0, 8, 917530, 0, 8, 851994, 0, 8, 786458, 0, 8, 720922, 0, 8, 655386, 0, 8, 589850, 0, 8, 524314, 0, 8, 458778, 0, 8, 393242, 0, 8, 327706, 0, 8, 262170, 0, 8, 196634, 0, 8, 131098, 0, 8, 1507353, 0, 8, 1441817, 0, 8, 1376281, 0, 8, 1310745, 0, 8, 1245209, 0, 8, 1179673, 0, 8, 1114137, 0, 8, 1048601, 0, 8, 983065, 0, 8, 917529, 0, 8, 851993, 0, 8, 786457, 0, 8, 720921, 0, 8, 655385, 0, 8, 589849, 0, 8, 524313, 0, 8, 458777, 0, 8, 393241, 0, 8, 327705, 0, 8, 262169, 0, 8, 196633, 0, 8, 131097, 0, 8, 917528, 0, 8, 851992, 0, 8, 786456, 0, 8, 720920, 0, 8, 655384, 0, 8, 917527, 0, 8, 851991, 0, 8, 786455, 0, 8, 720919, 0, 8, 655383, 0, 8, 917526, 0, 8, 851990, 0, 8, 786454, 0, 8, 720918, 0, 8, 655382, 0, 8, 917525, 0, 8, 851989, 0, 8, 786453, 0, 8, 720917, 0, 8, 655381, 0, 8, 917524, 0, 8, 851988, 0, 8, 786452, 0, 8, 720916, 0, 8, 655380, 0, 8, 917523, 0, 8, 851987, 0, 8, 786451, 0, 8, 720915, 0, 8, 655379, 0, 8, 917522, 0, 8, 851986, 0, 8, 786450, 0, 8, 720914, 0, 8, 655378, 0, 8, 917521, 0, 8, 851985, 0, 8, 786449, 0, 8, 720913, 0, 8, 655377, 0, 8, 917520, 0, 8, 851984, 0, 8, 786448, 0, 8, 720912, 0, 8, 655376, 0, 8, 589840, 0, 8, 524304, 0, 8, 458768, 0, 8, 393232, 0, 8, 327696, 0, 8, 262160, 0, 8, 196624, 0, 8, 131088, 0, 8, 1507343, 0, 8, 1441807, 0, 8, 1376271, 0, 8, 1310735, 0, 8, 1245199, 0, 8, 1179663, 0, 8, 1114127, 0, 8, 1048591, 0, 8, 983055, 0, 8, 917519, 0, 8, 851983, 0, 8, 786447, 0, 8, 720911, 0, 8, 655375, 0, 8, 589839, 0, 8, 524303, 0, 8, 458767, 0, 8, 393231, 0, 8, 327695, 0, 8, 262159, 0, 8, 196623, 0, 8, 131087, 0, 8, 1507342, 0, 8, 1441806, 0, 8, 1376270, 0, 8, 1310734, 0, 8, 1245198, 0, 8, 1179662, 0, 8, 1114126, 0, 8, 1048590, 0, 8, 983054, 0, 8, 917518, 0, 8, 851982, 0, 8, 786446, 0, 8, 720910, 0, 8, 655374, 0, 8, 589838, 0, 8, 524302, 0, 8, 458766, 0, 8, 393230, 0, 8, 327694, 0, 8, 262158, 0, 8, 196622, 0, 8, 131086, 0, 8, 1507341, 0, 8, 1441805, 0, 8, 1376269, 0, 8, 1310733, 0, 8, 1245197, 0, 8, 1179661, 0, 8, 1114125, 0, 8, 1048589, 0, 8, 983053, 0, 8, 917517, 0, 8, 851981, 0, 8, 786445, 0, 8, 720909, 0, 8, 655373, 0, 8, 589837, 0, 8, 524301, 0, 8, 458765, 0, 8, 393229, 0, 8, 327693, 0, 8, 262157, 0, 8, 196621, 0, 8, 131085, 0, 8, 1507340, 0, 8, 1441804, 0, 8, 1376268, 0, 8, 1310732, 0, 8, 1245196, 0, 8, 1179660, 0, 8, 1114124, 0, 8, 1048588, 0, 8, 983052, 0, 8, 917516, 0, 8, 851980, 0, 8, 786444, 0, 8, 720908, 0, 8, 655372, 0, 8, 589836, 0, 8, 524300, 0, 8, 458764, 0, 8, 393228, 0, 8, 327692, 0, 8, 262156, 0, 8, 196620, 0, 8, 131084, 0, 8, 1507339, 0, 8, 1441803, 0, 8, 1376267, 0, 8, 1310731, 0, 8, 1245195, 0, 8, 1179659, 0, 8, 1114123, 0, 8, 1048587, 0, 8, 983051, 0, 8, 917515, 0, 8, 851979, 0, 8, 786443, 0, 8, 720907, 0, 8, 655371, 0, 8, 589835, 0, 8, 524299, 0, 8, 458763, 0, 8, 393227, 0, 8, 327691, 0, 8, 262155, 0, 8, 196619, 0, 8, 131083, 0, 8, 1507338, 0, 8, 1441802, 0, 8, 1376266, 0, 8, 1310730, 0, 8, 1245194, 0, 8, 1179658, 0, 8, 1114122, 0, 8, 1048586, 0, 8, 983050, 0, 8, 917514, 0, 8, 851978, 0, 8, 786442, 0, 8, 720906, 0, 8, 655370, 0, 8, 589834, 0, 8, 524298, 0, 8, 458762, 0, 8, 393226, 0, 8, 327690, 0, 8, 262154, 0, 8, 196618, 0, 8, 131082, 0, 8, 1507337, 0, 8, 1441801, 0, 8, 1376265, 0, 8, 1310729, 0, 8, 1245193, 0, 8, 1179657, 0, 8, 1114121, 0, 8, 1048585, 0, 8, 983049, 0, 8, 917513, 0, 8, 851977, 0, 8, 786441, 0, 8, 720905, 0, 8, 655369, 0, 8, 589833, 0, 8, 524297, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 1507336, 0, 8, 1441800, 0, 8, 1376264, 0, 8, 1310728, 0, 8, 1245192, 0, 8, 1179656, 0, 8, 1114120, 0, 8, 1048584, 0, 8, 983048, 0, 8, 917512, 0, 8, 851976, 0, 8, 786440, 0, 8, 720904, 0, 8, 655368, 0, 8, 589832, 0, 8, 524296, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 1179655, 0, 8, 1114119, 0, 8, 1048583, 0, 8, 983047, 0, 8, 917511, 0, 8, 851975, 0, 8, 786439, 0, 8, 720903, 0, 8, 655367, 0, 8, 589831, 0, 8, 524295, 0, 8, 458759, 0, 8, 1179654, 0, 8, 1114118, 0, 8, 1048582, 0, 8, 983046, 0, 8, 917510, 0, 8, 851974, 0, 8, 786438, 0, 8, 720902, 0, 8, 655366, 0, 8, 589830, 0, 8, 524294, 0, 8, 458758, 0, 8, 1179653, 0, 8, 1114117, 0, 8, 1048581, 0, 8, 983045, 0, 8, 917509, 0, 8, 851973, 0, 8, 786437, 0, 8, 720901, 0, 8, 655365, 0, 8, 589829, 0, 8, 524293, 0, 8, 458757, 0, 8, 1179652, 0, 8, 1114116, 0, 8, 1048580, 0, 8, 983044, 0, 8, 917508, 0, 8, 851972, 0, 8, 786436, 0, 8, 720900, 0, 8, 655364, 0, 8, 589828, 0, 8, 524292, 0, 8, 458756, 0, 8, 1179651, 0, 8, 1114115, 0, 8, 1048579, 0, 8, 983043, 0, 8, 917507, 0, 8, 851971, 0, 8, 786435, 0, 8, 720899, 0, 8, 655363, 0, 8, 589827, 0, 8, 524291, 0, 8, 458755, 0, 8, 65543, 131072, 7, 65544, 131072, 7, 1572872, 131072, 2, 65545, 131072, 7, 1572873, 131072, 2, 65546, 131072, 7, 1572874, 131072, 2, 65547, 131072, 7, 1572875, 131072, 2, 65548, 131072, 7, 1572876, 131072, 2, 65549, 131072, 7, 1572877, 131072, 2, 65550, 131072, 7, 1572878, 131072, 2, 65551, 131072, 7, 1572879, 131072, 2, 65552, 131072, 7, 65561, 131072, 7, 1572889, 131072, 2, 65562, 131072, 7, 1572890, 131072, 2, 65563, 131072, 7, 1572891, 131072, 2, 65564, 131072, 7, 1572892, 131072, 2, 65565, 131072, 7, 1572893, 131072, 2, 65566, 131072, 7, 1572894, 131072, 2, 65567, 131072, 7, 1572895, 131072, 2, 65568, 131072, 7, 1572896, 131072, 2, 65569, 131072, 7, 1572897, 131072, 2, 458791, 65536, 3, 524327, 65536, 3, 589863, 65536, 3, 655399, 65536, 3, 720935, 65536, 3, 786471, 65536, 3, 852007, 65536, 3, 917543, 65536, 3, 983079, 65536, 3, 1048615, 65536, 3, 1114151, 65536, 3, 1179687, 65536, 3, 983064, 0, 8, 983063, 0, 8, 983062, 0, 8, 983061, 0, 8, 983060, 0, 8, 983059, 0, 8, 983058, 0, 8, 983057, 0, 8, 1572880, 131072, 2, 1507344, 0, 8, 1441808, 0, 8, 1376272, 0, 8, 1310736, 0, 8, 1245200, 0, 8, 1179664, 0, 8, 1114128, 0, 8, 1048592, 0, 8, 983056, 0, 8, 1048593, 65536, 2, 1048594, 131072, 2, 1048595, 131072, 2, 1048596, 131072, 2, 1048597, 131072, 2, 1048598, 131072, 2, 1048599, 131072, 2, 1048600, 196608, 2, 1114136, 196608, 3, 1179672, 196608, 3, 1245208, 196608, 3, 1310744, 196608, 3, 1376280, 196608, 3, 1441816, 196608, 3, 1507352, 196608, 3, 1572888, 720896, 2, 1114129, 65536, 3, 1179665, 65536, 3, 1245201, 65536, 3, 1310737, 65536, 3, 1376273, 65536, 3, 1441809, 65536, 3, 1507345, 65536, 3, 1572881, 851968, 2, 589841, 65536, 7, 524305, 65536, 3, 458769, 65536, 3, 393233, 65536, 3, 196625, 65536, 3, 131089, 65536, 3, 589842, 131072, 7, 589843, 131072, 7, 589844, 131072, 7, 589845, 131072, 7, 589846, 131072, 7, 589847, 131072, 7, 196632, 196608, 3, 131096, 196608, 3, 65560, 196608, 4, 65553, 65536, 4, 131106, 65536, 3, 196642, 65536, 3, 65570, 65536, 4, 262178, 65536, 3, 327714, 65536, 3, 393250, 65536, 7, 393252, 131072, 7, 393253, 131072, 7, 393254, 131072, 7, 393255, 65536, 4, 393251, 131072, 7, 1245223, 851968, 2, 1245222, 131072, 2, 1245221, 131072, 2, 1245220, 131072, 2, 1245219, 131072, 2, 1245218, 65536, 2, 1310754, 65536, 3, 1376290, 65536, 3, 1441826, 65536, 3, 1507362, 65536, 3, 1572898, 851968, 2, 458754, 196608, 3, 196615, 0, 8, 131079, 0, 8, 262151, 0, 8, 327687, 0, 8, 393223, 0, 8, 393222, 0, 8, 393221, 0, 8, 393220, 0, 8, 393219, 0, 8, 524290, 196608, 3, 393218, 196608, 3, 589826, 196608, 3, 655362, 196608, 3, 720898, 196608, 3, 786434, 196608, 3, 851970, 196608, 3, 917506, 196608, 3, 983042, 196608, 3, 1048578, 196608, 3, 1114114, 196608, 3, 1179650, 196608, 3, 1245188, 131072, 2, 1245187, 131072, 2, 1245186, 720896, 2, 1245189, 131072, 2, 1245190, 131072, 2, 1245191, 196608, 2, 1310727, 196608, 3, 1376263, 196608, 3, 1441799, 196608, 3, 1507335, 196608, 3, 1572871, 720896, 2, 131075, 0, 8, 196611, 0, 8, 262147, 0, 8, 327683, 0, 8, 327682, 196608, 3, 327684, 0, 8, 262146, 196608, 3, 262148, 0, 8, 196610, 196608, 3, 196612, 0, 8, 131074, 196608, 3, 131076, 0, 8, 65538, 196608, 4, 65539, 131072, 7, 65540, 131072, 7, 131078, 0, 8, 131077, 0, 8, 196613, 0, 8, 65541, 131072, 7, 196614, 0, 8, 65542, 131072, 7, 262149, 0, 8, 262150, 0, 8, 327686, 0, 8, 327685, 0, 8, 262161, 65536, 3, 327697, 65536, 3, 589848, 196608, 7, 524312, 196608, 3, 458776, 196608, 3, 393240, 196608, 3, 327704, 196608, 3, 262168, 196608, 3) +script = ExtResource("dungeonRoomTemplate") + +[node name="Level1" type="Node" parent="."] + +[node name="EnemyMark" type="Node2D" parent="Level1"] +position = Vector2(198, 94) +script = ExtResource("3_k574h") +Weapon1Id = "0003" +Weapon1Ammo = 20 +Type = 3 +ItemId = "0001" +Layer = 1 + +[node name="EnemyMark2" type="Node2D" parent="Level1"] +position = Vector2(195, 331) +script = ExtResource("3_k574h") +Weapon1Id = "0003" +Weapon1Ammo = 20 +Type = 3 +ItemId = "0001" +Layer = 1 + +[node name="EnemyMark3" type="Node2D" parent="Level1"] +position = Vector2(480, 334) +script = ExtResource("3_k574h") +Weapon1Id = "0003" +Weapon1Ammo = 20 +Type = 3 +ItemId = "0001" +Layer = 1 + +[node name="EnemyMark4" type="Node2D" parent="Level1"] +position = Vector2(470, 98) +script = ExtResource("3_k574h") +Weapon1Id = "0003" +Weapon1Ammo = 20 +Type = 3 +ItemId = "0001" +Layer = 1 + +[node name="Level2" type="Node" parent="."] + +[node name="EnemyMark" type="Node2D" parent="Level2"] +position = Vector2(120, 204) +script = ExtResource("3_k574h") +Weapon1Id = "0001" +Weapon1Ammo = 45 +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 1.5 + +[node name="EnemyMark2" type="Node2D" parent="Level2"] +position = Vector2(561, 207) +script = ExtResource("3_k574h") +Weapon1Id = "0001" +Weapon1Ammo = 45 +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +DelayTime = 1.5 + +[node name="WeaponMark" type="Node2D" parent="."] +position = Vector2(331, 208) +script = ExtResource("4_5hiyo") +Type = 4 +ItemId = "0001" +WaveNumber = 3 +DelayTime = 1.0 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn new file mode 100644 index 0000000..32570c6 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room5.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://ctbfg0p66xirw"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_mx0vc"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room5" type="TileMap"] +tile_set = ExtResource("1_mx0vc") +format = 2 +layer_0/tile_data = PackedInt32Array(65533, 0, 8, 131069, 0, 8, 196605, 0, 8, 262141, 0, 8, 327677, 131072, 2, 65534, 0, 8, 131070, 0, 8, 196606, 0, 8, 262142, 0, 8, 327678, 196608, 2, 393214, 720896, 2, -1, 0, 8, 65535, 0, 8, 131071, 0, 8, 196607, 0, 8, 262143, 0, 8, 327679, 0, 8, 393215, 196608, 2, 458751, 196608, 3, -196608, 0, 8, -131072, 0, 8, -65536, 0, 8, 0, 0, 8, 65536, 0, 8, 131072, 0, 8, 196608, 0, 8, 262144, 0, 8, 327680, 0, 8, 393216, 0, 8, 458752, 131072, 2, -196607, 0, 8, -131071, 0, 8, -65535, 0, 8, 1, 0, 8, 65537, 65536, 2, 131073, 65536, 7, 196609, 0, 8, 262145, 0, 8, 327681, 0, 8, 393217, 0, 8, 458753, 131072, 2, -196606, 0, 8, -131070, 0, 8, -65534, 0, 8, 2, 0, 8, 65538, 196608, 2, 131074, 196608, 7, 196610, 0, 8, 262146, 0, 8, 327682, 0, 8, 393218, 0, 8, 458754, 131072, 2, -196605, 0, 8, -131069, 0, 8, -65533, 0, 8, 3, 0, 8, 65539, 0, 8, 131075, 0, 8, 196611, 0, 8, 262147, 0, 8, 327683, 0, 8, 393219, 0, 8, 458755, 131072, 2, -196604, 65536, 3, -131068, 65536, 7, -65532, 0, 8, 4, 0, 8, 65540, 0, 8, 131076, 0, 8, 196612, 0, 8, 262148, 0, 8, 327684, 65536, 2, 393220, 65536, 3, 458756, 851968, 2, -131067, 65536, 4, -65531, 65536, 7, 5, 0, 8, 65541, 0, 8, 131077, 0, 8, 196613, 0, 8, 262149, 65536, 2, 327685, 851968, 2, -65530, 131072, 7, 6, 0, 8, 65542, 0, 8, 131078, 0, 8, 196614, 0, 8, 262150, 131072, 2, 7, 65536, 3, 65543, 65536, 3, 131079, 65536, 3, 196615, 65536, 3, 262151, 851968, 2, -4, 196608, 4, 65532, 196608, 3, 131068, 196608, 3, 196604, 196608, 3, 262140, 196608, 3, 327676, 720896, 2, -3, 131072, 7, -65538, 196608, 4, -2, 196608, 7, -196609, 196608, 4, -131073, 196608, 3, -65537, 196608, 7, 524287, 720896, 2, -262144, 131072, 7, -262143, 131072, 7, -262142, 131072, 7, -262141, 131072, 7, -262140, 65536, 4, -65529, 65536, 4) +script = ExtResource("dungeonRoomTemplate") diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn new file mode 100644 index 0000000..3c52dac --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room6.tscn @@ -0,0 +1,42 @@ +[gd_scene load_steps=5 format=3 uid="uid://enbdu7o247o2"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_0o1o2"] +[ext_resource type="Script" path="res://src/framework/map/mark/EnemyMark.cs" id="3_mis0j"] +[ext_resource type="Script" path="res://src/framework/map/mark/WeaponMark.cs" id="4_cu8vs"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room6" type="TileMap"] +tile_set = ExtResource("1_0o1o2") +format = 2 +layer_0/tile_data = PackedInt32Array(196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -3, 196608, 3, -65539, 196608, 3, -131075, 196608, 4, -131074, 131072, 7, -131073, 131072, 7, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327679, 131072, 2, 327678, 131072, 2, 327677, 720896, 2, -196608, 131072, 7, 262144, 131072, 2, -196607, 131072, 7, 262145, 131072, 2, -196606, 131072, 7, 262146, 131072, 2, -196605, 131072, 7, 262147, 196608, 2, -196604, 131072, 7, 262148, 0, 8, -196603, 131072, 7, 262149, 0, 8, -131066, 65536, 3, -65530, 65536, 3, -196602, 65536, 4, 6, 65536, 3, 65542, 65536, 7, 131078, 0, 8, 196614, 0, 8, 262150, 0, 8, 458761, 0, 8, 393225, 0, 8, 327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 458760, 0, 8, 393224, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 458759, 0, 8, 393223, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 458758, 0, 8, 393222, 0, 8, 327686, 0, 8, 458757, 0, 8, 393221, 0, 8, 327685, 0, 8, 458756, 0, 8, 393220, 0, 8, 327684, 0, 8, 327683, 196608, 3, 393219, 196608, 3, 458755, 196608, 3, 524293, 131072, 2, 524292, 131072, 2, 524291, 720896, 2, 524294, 131072, 2, 65543, 131072, 7, 524295, 131072, 2, 65544, 131072, 7, 524296, 131072, 2, 65545, 131072, 7, 524297, 131072, 2, 131082, 65536, 3, 196618, 65536, 3, 65546, 65536, 4, 262154, 65536, 3, 327690, 65536, 3, 393226, 65536, 3, 458762, 65536, 3, 524298, 851968, 2) +script = ExtResource("dungeonRoomTemplate") + +[node name="EnemyMark" type="Node2D" parent="."] +position = Vector2(20, 12) +script = ExtResource("3_mis0j") +Weapon1Id = "0003" +Weapon1Ammo = 25 +Type = 3 +ItemId = "0001" +Layer = 1 +BirthRect = Vector2i(40, 40) + +[node name="EnemyMark2" type="Node2D" parent="."] +position = Vector2(113, 79) +script = ExtResource("3_mis0j") +Weapon1Id = "0003" +Weapon1Ammo = 25 +Type = 3 +ItemId = "0001" +Layer = 1 +WaveNumber = 2 +BirthRect = Vector2i(40, 40) + +[node name="WeaponMark" type="Node2D" parent="."] +position = Vector2(63, 14) +script = ExtResource("4_cu8vs") +Type = 4 +ItemId = "0001" +WaveNumber = 3 +DrawColor = Color(0.0196078, 0.627451, 0.768627, 1) +Altitude = 8 diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room7.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room7.tscn new file mode 100644 index 0000000..2f6a681 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/battle/Room7.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://bgygwfm4wwuyo"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_phigy"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room7" type="TileMap"] +tile_set = ExtResource("1_phigy") +format = 2 +layer_0/tile_data = PackedInt32Array(196617, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, -65527, 0, 8, -131063, 0, 8, -196599, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, -65528, 0, 8, -131064, 0, 8, -196600, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, -65529, 0, 8, -131065, 0, 8, -196601, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, -65530, 0, 8, -131066, 0, 8, -196602, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, -196603, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, -196604, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, -196605, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, -196606, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, -196607, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, -196608, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, -131073, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -131074, 0, 8, -65539, 196608, 3, -131075, 196608, 3, -196611, 196608, 4, -196610, 131072, 7, -196609, 131072, 7, -3, 196608, 3, 65533, 196608, 3, 131069, 196608, 3, 196605, 196608, 3, 262141, 196608, 3, 327679, 131072, 2, 327678, 131072, 2, 327677, 720896, 2, -262144, 131072, 7, 262144, 131072, 2, -262143, 131072, 7, 262145, 131072, 2, -262142, 131072, 7, 262146, 131072, 2, -262141, 131072, 7, 262147, 131072, 2, -262140, 131072, 7, 262148, 131072, 2, -262139, 131072, 7, 262149, 131072, 2, -262138, 131072, 7, 262150, 131072, 2, -262137, 131072, 7, 262151, 131072, 2, -262136, 131072, 7, 262152, 131072, 2, -262135, 131072, 7, 262153, 131072, 2, -196598, 65536, 3, -131062, 65536, 3, -262134, 65536, 4, -65526, 65536, 3, 10, 65536, 3, 65546, 65536, 3, 131082, 65536, 3, 196618, 65536, 3, 262154, 851968, 2) +script = ExtResource("dungeonRoomTemplate") diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn new file mode 100644 index 0000000..87a5beb --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/inlet/Room1.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=4 format=3 uid="uid://dmeb88jotqro6"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_gh7sf"] +[ext_resource type="Script" path="res://src/framework/map/mark/PlayerBirthMark.cs" id="3_3iyr5"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room1" type="TileMap"] +tile_set = ExtResource("1_gh7sf") +format = 2 +layer_0/tile_data = PackedInt32Array(327689, 0, 8, 262153, 0, 8, 196617, 0, 8, 131081, 0, 8, 65545, 0, 8, 9, 0, 8, 327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, 327683, 0, 8, 262147, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, 131071, 196608, 3, 65535, 196608, 3, -1, 196608, 4, -65536, 131072, 7, -65535, 131072, 7, 196607, 196608, 3, 262143, 196608, 3, 327679, 196608, 3, 393215, 196608, 3, 393217, 131072, 2, 393216, 131072, 2, 458751, 720896, 2, -65534, 131072, 7, 393218, 131072, 2, -65533, 131072, 7, 393219, 131072, 2, -65532, 131072, 7, 393220, 131072, 2, -65531, 131072, 7, 393221, 131072, 2, -65530, 131072, 7, 393222, 131072, 2, -65529, 131072, 7, 393223, 131072, 2, -65528, 131072, 7, 393224, 131072, 2, -65527, 131072, 7, 393225, 131072, 2, 10, 65536, 3, 65546, 65536, 3, -65526, 65536, 4, 131082, 65536, 3, 196618, 65536, 3, 262154, 65536, 3, 327690, 65536, 3, 393226, 851968, 2) +script = ExtResource("dungeonRoomTemplate") + +[node name="PlayerBirthMark" type="Node2D" parent="."] +position = Vector2(80, 48) +script = ExtResource("3_3iyr5") diff --git a/DungeonShooting_Godot/resource/map/tileMaps/testGroup/outlet/Room1.tscn b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/outlet/Room1.tscn new file mode 100644 index 0000000..2055eaf --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tileMaps/testGroup/outlet/Room1.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://d0klitsroayqh"] + +[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="1_fhl21"] +[ext_resource type="Script" path="res://src/framework/map/DungeonRoomTemplate.cs" id="dungeonRoomTemplate"] + +[node name="Room1" type="TileMap"] +tile_set = ExtResource("1_fhl21") +format = 2 +layer_0/tile_data = PackedInt32Array(327688, 0, 8, 262152, 0, 8, 196616, 0, 8, 131080, 0, 8, 65544, 0, 8, 8, 0, 8, -65528, 0, 8, -131064, 0, 8, -196600, 0, 8, 327687, 0, 8, 262151, 0, 8, 196615, 0, 8, 131079, 0, 8, 65543, 0, 8, 7, 0, 8, -65529, 0, 8, -131065, 0, 8, -196601, 0, 8, 327686, 0, 8, 262150, 0, 8, 196614, 0, 8, 131078, 0, 8, 65542, 0, 8, 6, 0, 8, -65530, 0, 8, -131066, 0, 8, -196602, 0, 8, 327685, 0, 8, 262149, 0, 8, 196613, 0, 8, 131077, 0, 8, 65541, 0, 8, 5, 0, 8, -65531, 0, 8, -131067, 0, 8, -196603, 0, 8, 327684, 0, 8, 262148, 0, 8, 196612, 0, 8, 131076, 0, 8, 65540, 0, 8, 4, 0, 8, -65532, 0, 8, -131068, 0, 8, -196604, 0, 8, 327683, 0, 8, 262147, 0, 8, 196611, 0, 8, 131075, 0, 8, 65539, 0, 8, 3, 0, 8, -65533, 0, 8, -131069, 0, 8, -196605, 0, 8, 327682, 0, 8, 262146, 0, 8, 196610, 0, 8, 131074, 0, 8, 65538, 0, 8, 2, 0, 8, -65534, 0, 8, -131070, 0, 8, -196606, 0, 8, 327681, 0, 8, 262145, 0, 8, 196609, 0, 8, 131073, 0, 8, 65537, 0, 8, 1, 0, 8, -65535, 0, 8, -131071, 0, 8, -196607, 0, 8, 327680, 0, 8, 262144, 0, 8, 196608, 0, 8, 131072, 0, 8, 65536, 0, 8, 0, 0, 8, -65536, 0, 8, -131072, 0, 8, -196608, 0, 8, 393215, 0, 8, 327679, 0, 8, 262143, 0, 8, 196607, 0, 8, 131071, 0, 8, 65535, 0, 8, -1, 0, 8, -65537, 0, 8, -131073, 0, 8, 393214, 0, 8, 327678, 0, 8, 262142, 0, 8, 196606, 0, 8, 131070, 0, 8, 65534, 0, 8, -2, 0, 8, -65538, 0, 8, -131074, 0, 8, 393213, 0, 8, 327677, 0, 8, 262141, 0, 8, 196605, 0, 8, 131069, 0, 8, 65533, 0, 8, -3, 0, 8, -65539, 0, 8, -131075, 0, 8, -65540, 196608, 3, -131076, 196608, 3, -196612, 196608, 4, -196611, 131072, 7, -196610, 131072, 7, -4, 196608, 3, 65532, 196608, 3, 131068, 196608, 3, 196604, 196608, 3, 262140, 196608, 3, 327676, 196608, 3, 393212, 196608, 3, 458750, 131072, 2, 458749, 131072, 2, 458748, 720896, 2, -196609, 131072, 7, 458751, 131072, 2, -262144, 131072, 7, 393216, 131072, 2, -262143, 131072, 7, 393217, 131072, 2, -262142, 131072, 7, 393218, 131072, 2, -262141, 131072, 7, 393219, 131072, 2, -262140, 131072, 7, 393220, 131072, 2, -262139, 131072, 7, 393221, 131072, 2, -262138, 131072, 7, 393222, 131072, 2, -262137, 131072, 7, 393223, 131072, 2, -262136, 131072, 7, 393224, 131072, 2, -196599, 65536, 3, -131063, 65536, 3, -262135, 65536, 4, -65527, 65536, 3, 9, 65536, 3, 65545, 65536, 3, 131081, 65536, 3, 196617, 65536, 3, 262153, 65536, 3, 327689, 65536, 3, 393225, 851968, 2) +script = ExtResource("dungeonRoomTemplate") diff --git a/DungeonShooting_Godot/resource/map/tiledata/Room1.json b/DungeonShooting_Godot/resource/map/tiledata/Room1.json deleted file mode 100644 index cc80b8a..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/Room1.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "Position": { - "X": -10, - "Y": -6 - }, - "Size": { - "X": 20, - "Y": 13 - }, - "DoorAreaInfos": [], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": -136, - "Y": -72 - }, - { - "X": 136, - "Y": -72 - }, - { - "X": 136, - "Y": 88 - }, - { - "X": -136, - "Y": 88 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": -104, - "Y": -40 - }, - { - "X": 104, - "Y": -40 - }, - { - "X": 104, - "Y": 56 - }, - { - "X": -104, - "Y": 56 - } - ] - } - ] -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/Room2.json b/DungeonShooting_Godot/resource/map/tiledata/Room2.json deleted file mode 100644 index 0b999d4..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/Room2.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "Position": { - "X": -1, - "Y": -1 - }, - "Size": { - "X": 19, - "Y": 12 - }, - "DoorAreaInfos": [ - { - "Direction": 1, - "Start": 16, - "End": 176 - }, - { - "Direction": 2, - "Start": 16, - "End": 176 - }, - { - "Direction": 3, - "Start": 128, - "End": 288 - }, - { - "Direction": 0, - "Start": 16, - "End": 176 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 8, - "Y": 8 - }, - { - "X": 40, - "Y": 8 - }, - { - "X": 40, - "Y": 120 - }, - { - "X": 120, - "Y": 120 - }, - { - "X": 120, - "Y": 8 - }, - { - "X": 264, - "Y": 8 - }, - { - "X": 264, - "Y": 152 - }, - { - "X": 232, - "Y": 152 - }, - { - "X": 232, - "Y": 24 - }, - { - "X": 152, - "Y": 24 - }, - { - "X": 152, - "Y": 152 - }, - { - "X": 8, - "Y": 152 - } - ] - } - ] -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/Room3.json b/DungeonShooting_Godot/resource/map/tiledata/Room3.json deleted file mode 100644 index fb6c1e5..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/Room3.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "Position": { - "X": 5, - "Y": 3 - }, - "Size": { - "X": 21, - "Y": 21 - }, - "DoorAreaInfos": [], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 104, - "Y": 72 - }, - { - "X": 392, - "Y": 72 - }, - { - "X": 392, - "Y": 360 - }, - { - "X": 104, - "Y": 360 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 136, - "Y": 104 - }, - { - "X": 232, - "Y": 104 - }, - { - "X": 232, - "Y": 200 - }, - { - "X": 136, - "Y": 200 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 264, - "Y": 104 - }, - { - "X": 360, - "Y": 104 - }, - { - "X": 360, - "Y": 200 - }, - { - "X": 264, - "Y": 200 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 136, - "Y": 232 - }, - { - "X": 232, - "Y": 232 - }, - { - "X": 232, - "Y": 328 - }, - { - "X": 136, - "Y": 328 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 264, - "Y": 232 - }, - { - "X": 360, - "Y": 232 - }, - { - "X": 360, - "Y": 328 - }, - { - "X": 264, - "Y": 328 - } - ] - } - ] -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/Room4.json b/DungeonShooting_Godot/resource/map/tiledata/Room4.json deleted file mode 100644 index b9516e3..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/Room4.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "Position": { - "X": 2, - "Y": 1 - }, - "Size": { - "X": 38, - "Y": 24 - }, - "DoorAreaInfos": [ - { - "Direction": 1, - "Start": 16, - "End": 288 - }, - { - "Direction": 2, - "Start": 96, - "End": 240 - }, - { - "Direction": 2, - "Start": 368, - "End": 512 - }, - { - "Direction": 0, - "Start": 96, - "End": 288 - }, - { - "Direction": 3, - "Start": 368, - "End": 512 - }, - { - "Direction": 3, - "Start": 16, - "End": 240 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 56, - "Y": 40 - }, - { - "X": 264, - "Y": 40 - }, - { - "X": 264, - "Y": 168 - }, - { - "X": 408, - "Y": 168 - }, - { - "X": 408, - "Y": 40 - }, - { - "X": 536, - "Y": 40 - }, - { - "X": 536, - "Y": 120 - }, - { - "X": 616, - "Y": 120 - }, - { - "X": 616, - "Y": 296 - }, - { - "X": 536, - "Y": 296 - }, - { - "X": 536, - "Y": 376 - }, - { - "X": 408, - "Y": 376 - }, - { - "X": 408, - "Y": 248 - }, - { - "X": 264, - "Y": 248 - }, - { - "X": 264, - "Y": 376 - }, - { - "X": 136, - "Y": 376 - }, - { - "X": 136, - "Y": 296 - }, - { - "X": 56, - "Y": 296 - } - ] - } - ] -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/Room5.json b/DungeonShooting_Godot/resource/map/tiledata/Room5.json deleted file mode 100644 index 8a34298..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/Room5.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "Position": { - "X": -4, - "Y": -4 - }, - "Size": { - "X": 12, - "Y": 12 - }, - "DoorAreaInfos": [ - { - "Direction": 0, - "Start": 64, - "End": 128 - }, - { - "Direction": 3, - "Start": 64, - "End": 128 - }, - { - "Direction": 2, - "Start": 64, - "End": 128 - }, - { - "Direction": 1, - "Start": 64, - "End": 128 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 8, - "Y": -40 - }, - { - "X": 56, - "Y": -40 - }, - { - "X": 56, - "Y": -8 - }, - { - "X": 72, - "Y": -8 - }, - { - "X": 72, - "Y": 8 - }, - { - "X": 104, - "Y": 8 - }, - { - "X": 104, - "Y": 56 - }, - { - "X": 72, - "Y": 56 - }, - { - "X": 72, - "Y": 72 - }, - { - "X": 56, - "Y": 72 - }, - { - "X": 56, - "Y": 104 - }, - { - "X": 8, - "Y": 104 - }, - { - "X": 8, - "Y": 72 - }, - { - "X": -8, - "Y": 72 - }, - { - "X": -8, - "Y": 56 - }, - { - "X": -40, - "Y": 56 - }, - { - "X": -40, - "Y": 8 - }, - { - "X": -8, - "Y": 8 - }, - { - "X": -8, - "Y": -8 - }, - { - "X": 8, - "Y": -8 - } - ] - }, - { - "Type": 1, - "Points": [ - { - "X": 8, - "Y": 8 - }, - { - "X": 56, - "Y": 8 - }, - { - "X": 56, - "Y": 56 - }, - { - "X": 8, - "Y": 56 - } - ] - } - ] -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/Room6.json b/DungeonShooting_Godot/resource/map/tiledata/Room6.json deleted file mode 100644 index 45502d3..0000000 --- a/DungeonShooting_Godot/resource/map/tiledata/Room6.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "Position": { - "X": -3, - "Y": -3 - }, - "Size": { - "X": 14, - "Y": 12 - }, - "DoorAreaInfos": [ - { - "Direction": 1, - "Start": 16, - "End": 112 - }, - { - "Direction": 3, - "Start": 16, - "End": 144 - }, - { - "Direction": 0, - "Start": 80, - "End": 176 - }, - { - "Direction": 2, - "Start": 112, - "End": 208 - } - ], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": -24, - "Y": -24 - }, - { - "X": 88, - "Y": -24 - }, - { - "X": 88, - "Y": 40 - }, - { - "X": 152, - "Y": 40 - }, - { - "X": 152, - "Y": 120 - }, - { - "X": 72, - "Y": 120 - }, - { - "X": 72, - "Y": 56 - }, - { - "X": -24, - "Y": 56 - } - ] - } - ] -} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room1.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room1.json new file mode 100644 index 0000000..bd65f7d --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room1.json @@ -0,0 +1,59 @@ +{ + "Position": { + "X": -3, + "Y": -5 + }, + "Size": { + "X": 17, + "Y": 10 + }, + "DoorAreaInfos": [], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": -24, + "Y": -56 + }, + { + "X": 200, + "Y": -56 + }, + { + "X": 200, + "Y": 56 + }, + { + "X": -24, + "Y": 56 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 8, + "Y": -40 + }, + { + "X": 168, + "Y": -40 + }, + { + "X": 168, + "Y": 40 + }, + { + "X": 8, + "Y": 40 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room1", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room2.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room2.json new file mode 100644 index 0000000..ad5c14f --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room2.json @@ -0,0 +1,101 @@ +{ + "Position": { + "X": -5, + "Y": -3 + }, + "Size": { + "X": 23, + "Y": 14 + }, + "DoorAreaInfos": [ + { + "Direction": 3, + "Start": 16, + "End": 224 + }, + { + "Direction": 3, + "Start": 288, + "End": 352 + }, + { + "Direction": 0, + "Start": 16, + "End": 208 + }, + { + "Direction": 2, + "Start": 144, + "End": 352 + }, + { + "Direction": 2, + "Start": 16, + "End": 80 + }, + { + "Direction": 1, + "Start": 16, + "End": 208 + } + ], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": -56, + "Y": -24 + }, + { + "X": 136, + "Y": -24 + }, + { + "X": 136, + "Y": 88 + }, + { + "X": 216, + "Y": 88 + }, + { + "X": 216, + "Y": -24 + }, + { + "X": 264, + "Y": -24 + }, + { + "X": 264, + "Y": 152 + }, + { + "X": 72, + "Y": 152 + }, + { + "X": 72, + "Y": 40 + }, + { + "X": -8, + "Y": 40 + }, + { + "X": -8, + "Y": 152 + }, + { + "X": -56, + "Y": 152 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room2", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room3.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room3.json new file mode 100644 index 0000000..7e6a611 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room3.json @@ -0,0 +1,122 @@ +{ + "Position": { + "X": 5, + "Y": 3 + }, + "Size": { + "X": 21, + "Y": 21 + }, + "DoorAreaInfos": [], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": 104, + "Y": 72 + }, + { + "X": 392, + "Y": 72 + }, + { + "X": 392, + "Y": 360 + }, + { + "X": 104, + "Y": 360 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 136, + "Y": 104 + }, + { + "X": 232, + "Y": 104 + }, + { + "X": 232, + "Y": 200 + }, + { + "X": 136, + "Y": 200 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 264, + "Y": 104 + }, + { + "X": 360, + "Y": 104 + }, + { + "X": 360, + "Y": 200 + }, + { + "X": 264, + "Y": 200 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 136, + "Y": 232 + }, + { + "X": 232, + "Y": 232 + }, + { + "X": 232, + "Y": 328 + }, + { + "X": 136, + "Y": 328 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 264, + "Y": 232 + }, + { + "X": 360, + "Y": 232 + }, + { + "X": 360, + "Y": 328 + }, + { + "X": 264, + "Y": 328 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room3", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json new file mode 100644 index 0000000..281fc9a --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room4.json @@ -0,0 +1,125 @@ +{ + "Position": { + "X": 2, + "Y": 1 + }, + "Size": { + "X": 38, + "Y": 24 + }, + "DoorAreaInfos": [ + { + "Direction": 3, + "Start": 16, + "End": 240 + }, + { + "Direction": 3, + "Start": 368, + "End": 512 + }, + { + "Direction": 0, + "Start": 96, + "End": 288 + }, + { + "Direction": 2, + "Start": 368, + "End": 512 + }, + { + "Direction": 2, + "Start": 96, + "End": 240 + }, + { + "Direction": 1, + "Start": 16, + "End": 288 + } + ], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": 56, + "Y": 40 + }, + { + "X": 264, + "Y": 40 + }, + { + "X": 264, + "Y": 168 + }, + { + "X": 408, + "Y": 168 + }, + { + "X": 408, + "Y": 40 + }, + { + "X": 536, + "Y": 40 + }, + { + "X": 536, + "Y": 120 + }, + { + "X": 616, + "Y": 120 + }, + { + "X": 616, + "Y": 296 + }, + { + "X": 536, + "Y": 296 + }, + { + "X": 536, + "Y": 376 + }, + { + "X": 408, + "Y": 376 + }, + { + "X": 408, + "Y": 248 + }, + { + "X": 264, + "Y": 248 + }, + { + "X": 264, + "Y": 376 + }, + { + "X": 136, + "Y": 376 + }, + { + "X": 136, + "Y": 296 + }, + { + "X": 56, + "Y": 296 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room4", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json new file mode 100644 index 0000000..6290559 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room5.json @@ -0,0 +1,144 @@ +{ + "Position": { + "X": -4, + "Y": -4 + }, + "Size": { + "X": 12, + "Y": 12 + }, + "DoorAreaInfos": [ + { + "Direction": 3, + "Start": 64, + "End": 128 + }, + { + "Direction": 0, + "Start": 64, + "End": 128 + }, + { + "Direction": 2, + "Start": 64, + "End": 128 + }, + { + "Direction": 1, + "Start": 64, + "End": 128 + } + ], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": 8, + "Y": -40 + }, + { + "X": 56, + "Y": -40 + }, + { + "X": 56, + "Y": -8 + }, + { + "X": 72, + "Y": -8 + }, + { + "X": 72, + "Y": 8 + }, + { + "X": 104, + "Y": 8 + }, + { + "X": 104, + "Y": 56 + }, + { + "X": 72, + "Y": 56 + }, + { + "X": 72, + "Y": 72 + }, + { + "X": 56, + "Y": 72 + }, + { + "X": 56, + "Y": 104 + }, + { + "X": 8, + "Y": 104 + }, + { + "X": 8, + "Y": 72 + }, + { + "X": -8, + "Y": 72 + }, + { + "X": -8, + "Y": 56 + }, + { + "X": -40, + "Y": 56 + }, + { + "X": -40, + "Y": 8 + }, + { + "X": -8, + "Y": 8 + }, + { + "X": -8, + "Y": -8 + }, + { + "X": 8, + "Y": -8 + } + ] + }, + { + "Type": 1, + "Points": [ + { + "X": 8, + "Y": 8 + }, + { + "X": 56, + "Y": 8 + }, + { + "X": 56, + "Y": 56 + }, + { + "X": 8, + "Y": 56 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room5", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json new file mode 100644 index 0000000..c0ce6ce --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room6.json @@ -0,0 +1,75 @@ +{ + "Position": { + "X": -3, + "Y": -3 + }, + "Size": { + "X": 14, + "Y": 12 + }, + "DoorAreaInfos": [ + { + "Direction": 3, + "Start": 16, + "End": 144 + }, + { + "Direction": 0, + "Start": 80, + "End": 176 + }, + { + "Direction": 2, + "Start": 112, + "End": 208 + }, + { + "Direction": 1, + "Start": 16, + "End": 112 + } + ], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": -24, + "Y": -24 + }, + { + "X": 88, + "Y": -24 + }, + { + "X": 88, + "Y": 40 + }, + { + "X": 152, + "Y": 40 + }, + { + "X": 152, + "Y": 120 + }, + { + "X": 72, + "Y": 120 + }, + { + "X": 72, + "Y": 56 + }, + { + "X": -24, + "Y": 56 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room6", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room7.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room7.json new file mode 100644 index 0000000..aa28b2f --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/battle/Room7.json @@ -0,0 +1,38 @@ +{ + "Position": { + "X": -3, + "Y": -4 + }, + "Size": { + "X": 14, + "Y": 9 + }, + "DoorAreaInfos": [], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": -24, + "Y": -40 + }, + { + "X": 152, + "Y": -40 + }, + { + "X": 152, + "Y": 56 + }, + { + "X": -24, + "Y": 56 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 0, + "FileName": "Room7", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json new file mode 100644 index 0000000..84e63f0 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json @@ -0,0 +1,38 @@ +{ + "Position": { + "X": -1, + "Y": -1 + }, + "Size": { + "X": 12, + "Y": 8 + }, + "DoorAreaInfos": [], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": 8, + "Y": 8 + }, + { + "X": 152, + "Y": 8 + }, + { + "X": 152, + "Y": 88 + }, + { + "X": 8, + "Y": 88 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 1, + "FileName": "Room1", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/outlet/Room1.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/outlet/Room1.json new file mode 100644 index 0000000..fb367d6 --- /dev/null +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/outlet/Room1.json @@ -0,0 +1,38 @@ +{ + "Position": { + "X": -4, + "Y": -4 + }, + "Size": { + "X": 14, + "Y": 11 + }, + "DoorAreaInfos": [], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": -40, + "Y": -40 + }, + { + "X": 136, + "Y": -40 + }, + { + "X": 136, + "Y": 88 + }, + { + "X": -40, + "Y": 88 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 2, + "FileName": "Room1", + "Weight": 100 +} \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres index 569551f..fb564f6 100644 --- a/DungeonShooting_Godot/resource/theme/mainTheme.tres +++ b/DungeonShooting_Godot/resource/theme/mainTheme.tres @@ -352,7 +352,7 @@ [sub_resource type="ImageTexture" id="58"] -[sub_resource type="Image" id="Image_gh73t"] +[sub_resource type="Image" id="Image_tbn6v"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -362,7 +362,7 @@ } [sub_resource type="ImageTexture" id="60"] -image = SubResource("Image_gh73t") +image = SubResource("Image_tbn6v") [sub_resource type="StyleBoxTexture" id="61"] content_margin_left = 2.0 @@ -372,7 +372,7 @@ texture = SubResource("60") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_aw4tu"] +[sub_resource type="Image" id="Image_voo5a"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -382,7 +382,7 @@ } [sub_resource type="ImageTexture" id="63"] -image = SubResource("Image_aw4tu") +image = SubResource("Image_voo5a") [sub_resource type="StyleBoxTexture" id="64"] content_margin_left = 2.0 @@ -392,7 +392,7 @@ texture = SubResource("63") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_rekcc"] +[sub_resource type="Image" id="Image_ivjvr"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -402,7 +402,7 @@ } [sub_resource type="ImageTexture" id="66"] -image = SubResource("Image_rekcc") +image = SubResource("Image_ivjvr") [sub_resource type="StyleBoxTexture" id="67"] content_margin_left = 2.0 @@ -412,7 +412,7 @@ texture = SubResource("66") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_2n3rv"] +[sub_resource type="Image" id="Image_dntx8"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -422,7 +422,7 @@ } [sub_resource type="ImageTexture" id="69"] -image = SubResource("Image_2n3rv") +image = SubResource("Image_dntx8") [sub_resource type="StyleBoxTexture" id="70"] content_margin_left = 0.0 @@ -446,7 +446,7 @@ content_margin_right = 4.0 content_margin_bottom = 4.0 -[sub_resource type="Image" id="Image_ermnm"] +[sub_resource type="Image" id="Image_4pwn7"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 228, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 228, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 18, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 17, 255, 255, 255, 186, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 191, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 186, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 189, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 77, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 77, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -456,7 +456,7 @@ } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_ermnm") +image = SubResource("Image_4pwn7") [sub_resource type="StyleBoxFlat" id="57"] content_margin_left = 6.0 diff --git a/DungeonShooting_Godot/src/framework/IDestroy.cs b/DungeonShooting_Godot/src/framework/IDestroy.cs index 3591caa..73e8a1e 100644 --- a/DungeonShooting_Godot/src/framework/IDestroy.cs +++ b/DungeonShooting_Godot/src/framework/IDestroy.cs @@ -10,7 +10,7 @@ bool IsDestroyed { get; } /// - /// 销毁物体接口 + /// 销毁物体 /// void Destroy(); } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs index 6434c9d..bf322d7 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs @@ -10,7 +10,7 @@ /// ActivityObject 子类实例化请不要直接使用 new, 而用该在类上标上 [RegisterActivity(id, prefabPath)], /// ActivityObject 类会自动扫描并注册物体, 然后使用而是使用 ActivityObject.Create(id) 来创建实例 /// -public abstract partial class ActivityObject : CharacterBody2D +public abstract partial class ActivityObject : CharacterBody2D, IDestroy { /// /// 是否是调试模式 diff --git a/DungeonShooting_Godot/src/framework/common/Utils.cs b/DungeonShooting_Godot/src/framework/common/Utils.cs index 887510f..4b27f8e 100644 --- a/DungeonShooting_Godot/src/framework/common/Utils.cs +++ b/DungeonShooting_Godot/src/framework/common/Utils.cs @@ -15,6 +15,14 @@ { _random = new Random(); } + + /// + /// 返回一个随机的double值 + /// + public static double RandomDouble() + { + return _random.NextDouble(); + } /// /// 返回随机 boolean 值 diff --git a/DungeonShooting_Godot/src/framework/common/WeightRandom.cs b/DungeonShooting_Godot/src/framework/common/WeightRandom.cs new file mode 100644 index 0000000..f0c7511 --- /dev/null +++ b/DungeonShooting_Godot/src/framework/common/WeightRandom.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +/// +/// 带有权重的随机值处理类 +/// +public class WeightRandom +{ + private (float, int)[] _prepareAdRewardWeight; + + /// + /// 初始化权重列表 + /// + public void InitAdRewardWeight(int[] weightList) + { + var total = weightList.Sum(); + var length = weightList.Length; + var avg = 1f * total / length; + var smallAvg = new List<(float, int)>(); + var bigAvg = new List<(float, int)>(); + for (int i = 0; i < weightList.Length; i++) + { + (weightList[i] > avg ? bigAvg : smallAvg).Add((weightList[i], i)); + } + + _prepareAdRewardWeight = new (float, int)[weightList.Length]; + for (int i = 0; i < weightList.Length; i++) + { + if (smallAvg.Count > 0) + { + if (bigAvg.Count > 0) + { + _prepareAdRewardWeight[smallAvg[0].Item2] = (smallAvg[0].Item1 / avg, bigAvg[0].Item2); + bigAvg[0] = (bigAvg[0].Item1 - avg + smallAvg[0].Item1, bigAvg[0].Item2); + if (avg - bigAvg[0].Item1 > 0.0000001f) + { + smallAvg.Add(bigAvg[0]); + bigAvg.RemoveAt(0); + } + } + else + { + _prepareAdRewardWeight[smallAvg[0].Item2] = (smallAvg[0].Item1 / avg, smallAvg[0].Item2); + } + + smallAvg.RemoveAt(0); + } + else + { + _prepareAdRewardWeight[bigAvg[0].Item2] = (bigAvg[0].Item1 / avg, bigAvg[0].Item2); + bigAvg.RemoveAt(0); + } + } + } + + /// + /// 获取下一个随机索引 + /// + public int GetRandomIndex() + { + var randomNum = Utils.RandomDouble() * _prepareAdRewardWeight.Length; + var intRan = (int)Math.Floor(randomNum); + var p = _prepareAdRewardWeight[intRan]; + if (p.Item1 > randomNum - intRan) + { + return intRan; + } + else + { + return p.Item2; + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs b/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs index 5c77cfc..7ce0a33 100644 --- a/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/DungeonRoomGenerator.cs @@ -16,12 +16,17 @@ /// /// 根据名称在编辑器中创建地牢的预制房间, open 表示创建完成后是否在编辑器中打开这个房间 /// - public static bool CreateDungeonRoom(string roomName, bool open = false) + public static bool CreateDungeonRoom(string groupName, string roomType, string roomName, bool open = false) { try { + var path = GameConfig.RoomTileDir + groupName + "/" + roomType; + if (!Directory.Exists(path)) + { + Directory.CreateDirectory(path); + } //创建场景资源 - var prefabFile = GameConfig.RoomTileDir + roomName + ".tscn"; + var prefabFile = path + "/" + roomName + ".tscn"; var prefabResPath = "res://" + prefabFile; if (!Directory.Exists(GameConfig.RoomTileDir)) { @@ -88,50 +93,86 @@ //地图描述数据路径 var tileDataDir = GameConfig.RoomTileDataDir; - var tileDirInfo = new DirectoryInfo(tileDir); - var tileDataDirInfo = new DirectoryInfo(tileDataDir); + var tileGroup = new DirectoryInfo(tileDir).GetDirectories(); + var tileDataGroup = new DirectoryInfo(tileDataDir).GetDirectories(); //所有地图列表 - var mapList = new HashSet(); - - //收集所有名称 - var fileDataInfos = tileDataDirInfo.GetFiles(); - foreach (var fileInfo in fileDataInfos) + var map = new Dictionary(); + + //地图场景 + foreach (var groupDir in tileGroup) { - mapList.Add(RemoveExtension(fileInfo.Name)); - } - //收集所有名称 - var fileInfos = tileDirInfo.GetFiles(); - foreach (var fileInfo in fileInfos) - { - if (fileInfo.Extension == ".tscn") + var groupName = groupDir.Name; + var typeDirArray = groupDir.GetDirectories(); + //遍历枚举, 获取指定路径文件 + foreach (DungeonRoomType roomType in Enum.GetValues(typeof(DungeonRoomType))) { - mapList.Add(RemoveExtension(fileInfo.Name)); + var typeName = DungeonRoomTemplate.DungeonRoomTypeToString(roomType); + + //收集所有文件名称 + var tempFileDataInfos = typeDirArray.FirstOrDefault(dirInfo => dirInfo.Name == typeName); + if (tempFileDataInfos != null) + { + foreach (var fileInfo in tempFileDataInfos.GetFiles()) + { + if (fileInfo.Extension == ".tscn") + { + var pathInfo = new FileInfo(groupName, roomType, typeName, RemoveExtension(fileInfo.Name)); + map.TryAdd(pathInfo.GetPath(), pathInfo); + } + } + } } } - - //剔除多余的 tile.json - var arrays = mapList.ToArray(); - foreach (var item in arrays) + + //地图配置数据 + foreach (var groupDir in tileDataGroup) { - if (!File.Exists(tileDir + item + ".tscn")) + var groupName = groupDir.Name; + var typeDirArray = groupDir.GetDirectories(); + //遍历枚举, 获取指定路径文件 + foreach (DungeonRoomType roomType in Enum.GetValues(typeof(DungeonRoomType))) { - mapList.Remove(item); - var filePath = tileDataDir + item + ".json"; + var typeName = DungeonRoomTemplate.DungeonRoomTypeToString(roomType); + + //收集所有文件名称 + var tempFileDataInfos = typeDirArray.FirstOrDefault(dirInfo => dirInfo.Name == typeName); + if (tempFileDataInfos != null) + { + foreach (var fileInfo in tempFileDataInfos.GetFiles()) + { + if (fileInfo.Extension == ".json") + { + var pathInfo = new FileInfo(groupName, roomType, typeName, RemoveExtension(fileInfo.Name)); + map.TryAdd(pathInfo.GetPath(), pathInfo); + } + } + } + } + } + + //剔除多余的 tile.json + foreach (var item in map) + { + var path = item.Key; + if (!File.Exists(tileDir + path + ".tscn")) + { + map.Remove(path); + var filePath = tileDataDir + path + ".json"; if (File.Exists(filePath)) { - GD.Print($"未找到'{tileDir + item}.tscn', 删除配置文件: {filePath}"); + GD.Print($"未找到'{tileDir + path}.tscn', 删除配置文件: {filePath}"); File.Delete(filePath); } } } //手动生成缺失的 tile.json - foreach (var item in mapList) + foreach (var item in map) { - if (!File.Exists(tileDataDir + item + ".json")) + if (!File.Exists(tileDataDir + item.Key + ".json")) { - var tscnName = tileDir + item + ".tscn"; + var tscnName = tileDir + item.Key + ".tscn"; var packedScene = ResourceManager.Load(tscnName, false); if (packedScene != null) { @@ -142,27 +183,39 @@ //计算导航网格 dungeonTile.GenerateNavigationPolygon(0); var polygonData = dungeonTile.GetPolygonData(); - DungeonRoomTemplate.SaveConfig(new List(), usedRect.Position, usedRect.Size, polygonData.ToList(), item); + + DungeonRoomTemplate.SaveConfig(new List(), usedRect.Position, usedRect.Size, polygonData.ToList(), + item.Value.GroupName, item.Value.RoomType, item.Value.FileName, dungeonRoomTemplate.Weight); dungeonRoomTemplate.QueueFree(); } } } - var list = new List(); + var roomGroupMap = new Dictionary(); + //var list = new List(); //整合操作 - foreach (var item in mapList) + foreach (var item in map) { - var configPath = tileDataDir + item + ".json"; + var path = item.Key; + var configPath = tileDataDir + path + ".json"; var split = new DungeonRoomSplit(); - split.ScenePath = ToResPath(tileDir + item + ".tscn"); + split.ScenePath = ToResPath(tileDir + path + ".tscn"); split.ConfigPath = ToResPath(configPath); - list.Add(split); + + if (!roomGroupMap.TryGetValue(item.Value.GroupName, out var group)) + { + group = new DungeonRoomGroup(); + group.GroupName = item.Value.GroupName; + roomGroupMap.Add(group.GroupName, group); + } + + group.GetRoomList(item.Value.RoomType).Add(split); } //写出配置 var config = new JsonSerializerOptions(); config.WriteIndented = true; - var text = JsonSerializer.Serialize(list, config); + var text = JsonSerializer.Serialize(roomGroupMap, config); File.WriteAllText(GameConfig.RoomTileConfigFile, text); GD.Print("地牢房间配置, 重新打包完成!"); @@ -175,8 +228,29 @@ return true; } - - private static string ToResPath(string path) + + private class FileInfo + { + public FileInfo(string groupName, DungeonRoomType roomType, string typeName, string fileName) + { + GroupName = groupName; + RoomType = roomType; + TypeName = typeName; + FileName = fileName; + } + + public string GroupName; + public DungeonRoomType RoomType; + public string TypeName; + public string FileName; + + public string GetPath() + { + return GroupName + "/" + TypeName + "/" + FileName; + } + } + + private static string ToResPath(string path) { var field = path.Replace("\\", "/"); return "res://" + field; diff --git a/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs b/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs index dd4dfde..088ed07 100644 --- a/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/ResourcePathGenerator.cs @@ -15,7 +15,7 @@ //支持后缀 private static string[] suffix = { - ".png", ".jpg", ".txt", ".json", ".ini", ".tscn", ".tres", ".otf", ".gdshader", ".ogg", ".mp3", ".wav", ".svg" + ".png", ".jpg", ".txt", ".json", ".ini", ".tscn", ".tres", ".otf", ".gdshader", ".ogg", ".mp3", ".wav", ".svg", ".ttf", ".otf" }; //排除第一层的文件夹 private static string[] exclude = diff --git a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs index 0149da8..35bf2d9 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonGenerator.cs @@ -21,7 +21,7 @@ /// /// 生成的房间数量 /// - private int _maxCount = 15; + private int _maxCount = 20; //用于标记地图上的坐标是否被占用 private Grid _roomGrid { get; } = new Grid(); @@ -41,12 +41,12 @@ //房间横轴分散程度 - private float _roomHorizontalMinDispersion = 0.3f; - private float _roomHorizontalMaxDispersion = 1.2f; + private float _roomHorizontalMinDispersion = 0f; + private float _roomHorizontalMaxDispersion = 0.9f; //房间纵轴分散程度 - private float _roomVerticalMinDispersion = 0.3f; - private float _roomVerticalMaxDispersion = 1.2f; + private float _roomVerticalMinDispersion = 0f; + private float _roomVerticalMaxDispersion = 0.9f; //区域限制 private bool _enableLimitRange = true; @@ -59,7 +59,14 @@ //最大尝试次数 private int _maxTryCount = 10; - + + //房间组名称 + private string _groupName; + private DungeonRoomGroup _roomGroup; + + //指定只能生成的房间 + private static List _designatedRoom; + private enum GenerateRoomErrorCode { NoError, @@ -75,6 +82,42 @@ // NoProperDoor, } +#if TOOLS + /// + /// 用于调试, 设置生成器只能生成哪些房间 + /// + public static void SetDesignatedRoom(List list) + { + _designatedRoom = new List(list); + } +#endif + + public DungeonGenerator(string groupName) + { + _groupName = groupName; + _roomGroup = GameApplication.Instance.RoomConfig[_groupName]; + + //验证该组是否满足生成地牢的条件 + if (_roomGroup.InletList.Count == 0) + { + throw new Exception("当前组'" + groupName + "'中没有起始房间, 不能生成地牢!"); + } + //没有指定房间 + if (_designatedRoom == null || _designatedRoom.Count == 0) + { + if (_roomGroup.OutletList.Count == 0) + { + throw new Exception("当前组'" + groupName + "'中没有结束房间, 不能生成地牢!"); + } + else if (_roomGroup.BattleList.Count == 0) + { + throw new Exception("当前组'" + groupName + "'中没有战斗房间, 不能生成地牢!"); + } + } + + _roomGroup.InitWeight(); + } + /// /// 遍历所有房间 /// @@ -96,7 +139,7 @@ EachRoom(next, cb); } } - + /// /// 生成房间 /// @@ -105,14 +148,14 @@ if (StartRoom != null) return; //第一个房间 - GenerateRoom(null, 0, out var startRoom); + GenerateRoom(null, 0, GetNextRoomType(), out var startRoom); StartRoom = startRoom; //如果房间数量不够, 就一直生成 while (_count < _maxCount) { var room = Utils.RandomChoose(RoomInfos); - var errorCode = GenerateRoom(room, Utils.RandomRangeInt(0, 3), out var nextRoom); + var errorCode = GenerateRoom(room, Utils.RandomRangeInt(0, 3), GetNextRoomType(), out var nextRoom); if (errorCode == GenerateRoomErrorCode.NoError) { _failCount = 0; @@ -138,7 +181,7 @@ } //生成房间 - private GenerateRoomErrorCode GenerateRoom(RoomInfo prevRoomInfo, int direction, out RoomInfo resultRoom) + private GenerateRoomErrorCode GenerateRoom(RoomInfo prevRoomInfo, int direction, DungeonRoomType roomType, out RoomInfo resultRoom) { if (_count >= _maxCount) { @@ -146,9 +189,26 @@ return GenerateRoomErrorCode.RoomFull; } - //随机选择一个房间 - var roomSplit = Utils.RandomChoose(GameApplication.Instance.RoomConfig); - //var roomSplit = GameApplication.Instance.RoomConfig[1]; + DungeonRoomSplit roomSplit; + //没有指定房间 + if (roomType == DungeonRoomType.Inlet || _designatedRoom == null || _designatedRoom.Count == 0) + { + //随机选择一个房间 + var list = _roomGroup.GetRoomList(roomType); + if (list.Count == 0) //如果没有指定类型的房间, 就生成战斗房间 + { + roomSplit = _roomGroup.GetRandomRoom(DungeonRoomType.Battle); + } + else + { + roomSplit = _roomGroup.GetRandomRoom(roomType); + } + } + else //指定了房间 + { + roomSplit = Utils.RandomChoose(_designatedRoom); + } + var room = new RoomInfo(_count, roomSplit); //房间大小 @@ -259,7 +319,7 @@ while (dirList.Count > 0) { var randDir = Utils.RandomChoose(dirList); - GenerateRoom(room, randDir, out var nextRoom); + GenerateRoom(room, randDir, GetNextRoomType(), out var nextRoom); if (nextRoom == null) { break; @@ -276,6 +336,22 @@ return GenerateRoomErrorCode.NoError; } + private DungeonRoomType GetNextRoomType() + { + if (_count == 0) //生成第一个房间 + { + return DungeonRoomType.Inlet; + } + else if (_count == _maxCount - 1) //生成最后一个房间 + { + return DungeonRoomType.Outlet; + } + else + { + return DungeonRoomType.Battle; + } + } + /// /// 找两个房间的门 /// diff --git a/DungeonShooting_Godot/src/framework/map/DungeonRoomGroup.cs b/DungeonShooting_Godot/src/framework/map/DungeonRoomGroup.cs new file mode 100644 index 0000000..6ad860b --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/DungeonRoomGroup.cs @@ -0,0 +1,133 @@ + +using System; +using System.Collections.Generic; +using System.Text.Json.Serialization; +using Godot; + +/// +/// 房间组数据 +/// +public class DungeonRoomGroup +{ + /// + /// 组名称 + /// + [JsonInclude] + public string GroupName; + + /// + /// 普通战斗房间, 进入该房间时会关上门, 并刷出若干波敌人, 消灭所有敌人后开门 + /// + [JsonInclude] + public List BattleList = new List(); + + /// + /// 起始房间, 由上一层地牢的结束房间进入该房间, 每层包含一个起始房间 + /// + [JsonInclude] + public List InletList = new List(); + + /// + /// 结束房间, 进入另一层地牢, 每层只是包含一个结束房间 + /// + [JsonInclude] + public List OutletList = new List(); + + /// + /// boss战房间, 进入房间时会关上没, 刷出boss, 消灭boss后开门 + /// + [JsonInclude] + public List BossList = new List(); + + /// + /// 奖励房间, 给予玩家武器或者道具奖励的房间 + /// + [JsonInclude] + public List RewardList = new List(); + + /// + /// 商店, 玩家买卖道具装备的房间 + /// + [JsonInclude] + public List ShopList = new List(); + + /// + /// 事件房间, 触发剧情或者解锁NPC的房间 + /// + [JsonInclude] + public List EventList = new List(); + + private bool _init = false; + private Dictionary _weightRandomMap; + + /// + /// 获取指定类型房间集合 + /// + public List GetRoomList(DungeonRoomType roomType) + { + switch (roomType) + { + case DungeonRoomType.Battle: return BattleList; + case DungeonRoomType.Inlet: return InletList; + case DungeonRoomType.Outlet: return OutletList; + case DungeonRoomType.Boss: return BossList; + case DungeonRoomType.Reward: return RewardList; + case DungeonRoomType.Shop: return ShopList; + case DungeonRoomType.Event: return EventList; + } + + return null; + } + + /// + /// 初始化权重处理 + /// + public void InitWeight() + { + if (_init) + { + return; + } + + _init = true; + _weightRandomMap = new Dictionary(); + + foreach (var roomType in Enum.GetValues()) + { + InitAdRewardWeight(roomType); + } + } + + private void InitAdRewardWeight(DungeonRoomType roomType) + { + var dungeonRoomSplits = GetRoomList(roomType); + var weightRandom = new WeightRandom(); + _weightRandomMap.Add(roomType, weightRandom); + + var list = new List(); + foreach (var roomSplit in dungeonRoomSplits) + { + list.Add(roomSplit.RoomInfo.Weight); + } + weightRandom.InitAdRewardWeight(list.ToArray()); + } + + /// + /// 根据房间类型和权重获取随机房间 + /// + public DungeonRoomSplit GetRandomRoom(DungeonRoomType roomType) + { + if (!_init) + { + GD.PrintErr("未调用DungeonRoomGroup.InitWeight()来初始化权重!"); + return null; + } + + if (_weightRandomMap.TryGetValue(roomType, out var weightRandom)) + { + return GetRoomList(roomType)[weightRandom.GetRandomIndex()]; + } + + return null; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/DungeonRoomInfo.cs b/DungeonShooting_Godot/src/framework/map/DungeonRoomInfo.cs index 8a661bc..72a8801 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonRoomInfo.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonRoomInfo.cs @@ -30,4 +30,28 @@ /// [JsonInclude] public List NavigationList; + + /// + /// 当前房间所属分组的名称 + /// + [JsonInclude] + public string GroupName = "unclaimed"; + + /// + /// 房间类型 + /// + [JsonInclude] + public DungeonRoomType RoomType = DungeonRoomType.Battle; + + /// + /// 房间文件名称 + /// + [JsonInclude] + public string FileName; + + /// + /// 房间权重, 值越大, 生成地牢是越容易出现该房间 + /// + [JsonInclude] + public int Weight = DungeonRoomTemplate.DefaultWeight; } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs b/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs index df8ecb3..74a3748 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonRoomTemplate.cs @@ -10,11 +10,34 @@ public partial class DungeonRoomTemplate : TileMap { /// + /// 默认权重值 + /// + public const int DefaultWeight = 100; + + /// /// 是否启用编辑模式 /// [Export] public bool EnableEdit = false; - + + /// + /// 房间权重, 值越大, 生成地牢是越容易出现该房间 + /// + [Export(PropertyHint.Range, "1, 500")] + public int Weight + { + get => _weight; + set + { + _weight = value; + _changeWeight = true; + _changeWeightTimer = 0; + } + } + private int _weight = DefaultWeight; + private bool _changeWeight = false; + private float _changeWeightTimer = 0; + #if TOOLS //是否悬停在线上 private bool _hover = false; @@ -39,8 +62,8 @@ private bool _mouseDown = false; - //门区域数据 - private List _doorConfigs; + //房间配置 + private DungeonRoomInfo _dungeonRoomInfo; private Rect2 _prevRect; //是否能是否按下 @@ -111,11 +134,11 @@ } //绘制区域 - if (RoomTemplate._doorConfigs != null) + if (RoomTemplate._dungeonRoomInfo != null && RoomTemplate._dungeonRoomInfo.DoorAreaInfos != null) { var color2 = new Color(0, 1, 0, 0.8f); //绘制已经存在的 - foreach (var doorAreaInfo in RoomTemplate._doorConfigs) + foreach (var doorAreaInfo in RoomTemplate._dungeonRoomInfo.DoorAreaInfos) { var flag = RoomTemplate._hasActivePoint && RoomTemplate._activeArea == doorAreaInfo; var color3 = (flag && RoomTemplate._activePointType == 0) @@ -279,10 +302,18 @@ //加载配置 var initConfigs = false; - if (_doorConfigs == null) + if (_dungeonRoomInfo == null) { initConfigs = true; - _doorConfigs = ReadConfig(CalcTileRange(this), Name); + + var path = SceneFilePath; + if (!string.IsNullOrEmpty(path)) + { + var start = GameConfig.RoomTileDir.Length + 6; + var name = path.Substring(start, path.Length - start - 5); + ReadConfig(CalcTileRange(this), name); + } + } //按键检测 @@ -568,6 +599,19 @@ { _clickSave = false; } + + //权重发生改变 + if (_changeWeight) + { + _changeWeightTimer += (float)delta; + if (_changeWeightTimer > 1) + { + _changeWeightTimer = 0; + _changeWeight = false; + //权重改变, 保存数据 + TriggerSave(); + } + } } private void ClearState() @@ -604,21 +648,21 @@ break; } - _doorConfigs.Add(doorAreaInfo); + _dungeonRoomInfo.DoorAreaInfos.Add(doorAreaInfo); //OnDoorAreaChange(); } //移除门 private void RemoveDoorArea(DoorAreaInfo doorAreaInfo) { - _doorConfigs.Remove(doorAreaInfo); + _dungeonRoomInfo.DoorAreaInfos.Remove(doorAreaInfo); //OnDoorAreaChange(); } //检查门是否有碰撞 private bool CheckDoorCollision() { - foreach (var doorAreaInfo in _doorConfigs) + foreach (var doorAreaInfo in _dungeonRoomInfo.DoorAreaInfos) { if (doorAreaInfo.Direction == _hoverDirection) { @@ -648,7 +692,7 @@ //检查门是否有碰撞 private bool CheckDoorCollision(DoorDirection direction, DoorAreaInfo info) { - foreach (var doorAreaInfo in _doorConfigs) + foreach (var doorAreaInfo in _dungeonRoomInfo.DoorAreaInfos) { if (doorAreaInfo.Direction == direction && info != doorAreaInfo && CheckValueCollision(doorAreaInfo.Start, doorAreaInfo.End, info.Start, info.End)) @@ -675,7 +719,7 @@ //检测是否有碰撞的点 var flag = false; - foreach (var doorAreaInfo in _doorConfigs) + foreach (var doorAreaInfo in _dungeonRoomInfo.DoorAreaInfos) { if (doorAreaInfo.Direction == _hoverDirection) { @@ -741,7 +785,7 @@ //地图大小改变 private void OnMapRectChange() { - _doorConfigs.Clear(); + _dungeonRoomInfo.DoorAreaInfos.Clear(); _canPut = false; _hasActivePoint = false; _activeArea = null; @@ -758,7 +802,8 @@ private void TriggerSave() { //如果没有找到对应的场景文件,则不保存 - if (!File.Exists(GameConfig.RoomTileDir + Name + ".tscn")) + var path = _dungeonRoomInfo.GroupName + "/" + DungeonRoomTypeToString(_dungeonRoomInfo.RoomType) + "/" + _dungeonRoomInfo.FileName; + if (!File.Exists(GameConfig.RoomTileDir + path + ".tscn")) { return; } @@ -766,7 +811,8 @@ _dungeonTile.GenerateNavigationPolygon(0); var polygonData = _dungeonTile.GetPolygonData(); var rect = GetUsedRect(); - SaveConfig(_doorConfigs, rect.Position, rect.Size, polygonData.ToList(), Name); + SaveConfig(_dungeonRoomInfo.DoorAreaInfos, rect.Position, rect.Size, polygonData.ToList(), + _dungeonRoomInfo.GroupName, _dungeonRoomInfo.RoomType, Name, Weight); } /// @@ -784,54 +830,62 @@ /// /// 保存房间配置 /// - public static void SaveConfig(List doorConfigs, Vector2I position, Vector2I size, List polygonData, string name) + public static void SaveConfig(List doorConfigs, Vector2I position, Vector2I size, List polygonData, + string groupName, DungeonRoomType roomType, string fileName, int weight) { //存入本地 - var path = GameConfig.RoomTileDataDir + name + ".json"; + var path = GameConfig.RoomTileDataDir + groupName + "/" + DungeonRoomTypeToString(roomType); + if (!Directory.Exists(path)) + { + Directory.CreateDirectory(path); + } + var roomInfo = new DungeonRoomInfo(); roomInfo.Position = new SerializeVector2(position); roomInfo.Size = new SerializeVector2(size); roomInfo.DoorAreaInfos = doorConfigs; roomInfo.NavigationList = polygonData; + roomInfo.RoomType = roomType; + roomInfo.GroupName = groupName; + roomInfo.FileName = fileName; + roomInfo.Weight = weight; var config = new JsonSerializerOptions(); config.WriteIndented = true; + path += "/" + fileName + ".json"; var jsonStr = JsonSerializer.Serialize(roomInfo, config); File.WriteAllText(path, jsonStr); GD.Print("保存房间配置成功!路径为:" + path); } - + /// /// 读取房间配置 /// - public static List ReadConfig(Rect2 mapRect, string name) + private void ReadConfig(Rect2 mapRect, string name) { var path = GameConfig.RoomTileDataDir + name + ".json"; + if (File.Exists(path)) { var text = File.ReadAllText(path); try { - var roomInfo = DeserializeDungeonRoomInfo(text); + _dungeonRoomInfo = DeserializeDungeonRoomInfo(text); //填充 StartPosition 和 EndPosition 数据 - foreach (var doorAreaInfo in roomInfo.DoorAreaInfos) + foreach (var doorAreaInfo in _dungeonRoomInfo.DoorAreaInfos) { doorAreaInfo.CalcPosition(mapRect.Position, mapRect.Size); } - return roomInfo.DoorAreaInfos; + + Weight = _dungeonRoomInfo.Weight; } catch (Exception e) { GD.PrintErr($"加载房间数据'{path}'发生异常: " + e); - return new List(); } } - else - { - return new List(); - } } /// @@ -844,45 +898,117 @@ var obj = Json.ParseString(text).AsGodotDictionary(); var roomInfo = new DungeonRoomInfo(); - var position = obj["Position"].AsGodotDictionary(); - roomInfo.Position = new SerializeVector2(position["X"].AsInt32(), position["Y"].AsInt32()); - - var size = obj["Size"].AsGodotDictionary(); - roomInfo.Size = new SerializeVector2(size["X"].AsInt32(), size["Y"].AsInt32()); - - var doorAreaInfos = obj["DoorAreaInfos"].AsGodotArray(); - roomInfo.DoorAreaInfos = new List(); - foreach (var item in doorAreaInfos) + if (obj.ContainsKey("Position")) { - var temp = item.AsGodotDictionary(); - var doorInfo = new DoorAreaInfo(); - doorInfo.Direction = (DoorDirection)temp["Direction"].AsInt32(); - doorInfo.Start = temp["Start"].AsInt32(); - doorInfo.End = temp["End"].AsInt32(); - roomInfo.DoorAreaInfos.Add(doorInfo); + var position = obj["Position"].AsGodotDictionary(); + roomInfo.Position = new SerializeVector2(position["X"].AsInt32(), position["Y"].AsInt32()); } - var navigationArray = obj["NavigationList"].AsGodotArray(); - roomInfo.NavigationList = new List(); - for (var i = 0; i < navigationArray.Count; i++) + if (obj.ContainsKey("Size")) { - var navigation = navigationArray[i].AsGodotDictionary(); - var polygonData = new NavigationPolygonData(); + var size = obj["Size"].AsGodotDictionary(); + roomInfo.Size = new SerializeVector2(size["X"].AsInt32(), size["Y"].AsInt32()); + } - polygonData.Type = (NavigationPolygonType)navigation["Type"].AsInt32(); - polygonData.Points = new List(); - var pointArray = navigation["Points"].AsGodotArray(); - for (var j = 0; j < pointArray.Count; j++) + if (obj.ContainsKey("RoomType")) + { + var roomType = obj["RoomType"].AsInt32(); + roomInfo.RoomType = (DungeonRoomType)roomType; + } + + if (obj.ContainsKey("GroupName")) + { + roomInfo.GroupName = obj["GroupName"].AsString(); + } + + if (obj.ContainsKey("FileName")) + { + roomInfo.FileName = obj["FileName"].AsString(); + } + + if (obj.ContainsKey("Weight")) + { + roomInfo.Weight = obj["Weight"].AsInt32(); + } + + if (obj.ContainsKey("DoorAreaInfos")) + { + var doorAreaInfos = obj["DoorAreaInfos"].AsGodotArray(); + roomInfo.DoorAreaInfos = new List(); + foreach (var item in doorAreaInfos) { - var point = pointArray[j].AsGodotDictionary(); - polygonData.Points.Add(new SerializeVector2(point["X"].AsInt32(), point["Y"].AsInt32())); + var temp = item.AsGodotDictionary(); + var doorInfo = new DoorAreaInfo(); + doorInfo.Direction = (DoorDirection)temp["Direction"].AsInt32(); + doorInfo.Start = temp["Start"].AsInt32(); + doorInfo.End = temp["End"].AsInt32(); + roomInfo.DoorAreaInfos.Add(doorInfo); } + } - roomInfo.NavigationList.Add(polygonData); + if (obj.ContainsKey("NavigationList")) + { + var navigationArray = obj["NavigationList"].AsGodotArray(); + roomInfo.NavigationList = new List(); + for (var i = 0; i < navigationArray.Count; i++) + { + var navigation = navigationArray[i].AsGodotDictionary(); + var polygonData = new NavigationPolygonData(); + + polygonData.Type = (NavigationPolygonType)navigation["Type"].AsInt32(); + polygonData.Points = new List(); + var pointArray = navigation["Points"].AsGodotArray(); + for (var j = 0; j < pointArray.Count; j++) + { + var point = pointArray[j].AsGodotDictionary(); + polygonData.Points.Add(new SerializeVector2(point["X"].AsInt32(), point["Y"].AsInt32())); + } + + roomInfo.NavigationList.Add(polygonData); + } } return roomInfo; } + + /// + /// 将房间类型枚举转为字符串 + /// + public static string DungeonRoomTypeToString(DungeonRoomType roomType) + { + switch (roomType) + { + case DungeonRoomType.Battle: return "battle"; + case DungeonRoomType.Inlet: return "inlet"; + case DungeonRoomType.Outlet: return "outlet"; + case DungeonRoomType.Boss: return "boss"; + case DungeonRoomType.Reward: return "reward"; + case DungeonRoomType.Shop: return "shop"; + case DungeonRoomType.Event: return "event"; + } + + return "battle"; + } + + + /// + /// 将房间类型枚举转为描述字符串 + /// + public static string DungeonRoomTypeToDescribeString(DungeonRoomType roomType) + { + switch (roomType) + { + case DungeonRoomType.Battle: return "战斗房间"; + case DungeonRoomType.Inlet: return "起始房间"; + case DungeonRoomType.Outlet: return "结束房间"; + case DungeonRoomType.Boss: return "boss战房间"; + case DungeonRoomType.Reward: return "奖励房间"; + case DungeonRoomType.Shop: return "商店房间"; + case DungeonRoomType.Event: return "事件房间"; + } + + return "战斗房间"; + } #endif /// diff --git a/DungeonShooting_Godot/src/framework/map/DungeonRoomType.cs b/DungeonShooting_Godot/src/framework/map/DungeonRoomType.cs new file mode 100644 index 0000000..b08eec4 --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/DungeonRoomType.cs @@ -0,0 +1,35 @@ + +/// +/// 模板房间类型 +/// +public enum DungeonRoomType +{ + /// + /// 普通战斗房间, 进入该房间时会关上门, 并刷出若干波敌人, 消灭所有敌人后开门 + /// + Battle, + /// + /// 起始房间, 由上一层地牢的结束房间进入该房间, 每层包含一个起始房间 + /// + Inlet, + /// + /// 结束房间, 进入另一层地牢, 每层只是包含一个结束房间 + /// + Outlet, + /// + /// boss战房间, 进入房间时会关上没, 刷出boss, 消灭boss后开门 + /// + Boss, + /// + /// 奖励房间, 给予玩家武器或者道具奖励的房间 + /// + Reward, + /// + /// 商店, 玩家买卖道具装备的房间 + /// + Shop, + /// + /// 事件房间, 触发剧情或者解锁NPC的房间 + /// + Event, +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs index 0ec5459..1ff05b9 100644 --- a/DungeonShooting_Godot/src/framework/map/DungeonTile.cs +++ b/DungeonShooting_Godot/src/framework/map/DungeonTile.cs @@ -105,11 +105,10 @@ { activityMark.GetParent().RemoveChild(activityMark); var pos = activityMark.GlobalPosition - offset; - _tileRoot.AddChild(activityMark); - activityMark.Owner = _tileRoot; - activityMark.GlobalPosition = roomInfo.GetWorldPosition() + pos; - activityMark.Visible = false; - activityMark.SetActive(false); + activityMark.Owner = null; + //_tileRoot.AddChild(activityMark); + activityMark.Position = roomInfo.GetWorldPosition() + pos; + activityMark.TileRoot = _tileRoot; } roomInfo.ActivityMarks.AddRange(activityMarks); diff --git a/DungeonShooting_Godot/src/framework/map/RoomInfo.cs b/DungeonShooting_Godot/src/framework/map/RoomInfo.cs index 6207edd..02d1b4e 100644 --- a/DungeonShooting_Godot/src/framework/map/RoomInfo.cs +++ b/DungeonShooting_Godot/src/framework/map/RoomInfo.cs @@ -5,7 +5,7 @@ /// /// 房间的数据描述 /// -public class RoomInfo +public class RoomInfo : IDestroy { public RoomInfo(int id, DungeonRoomSplit roomSplit) { @@ -62,7 +62,9 @@ /// 是否处于闭关状态, 也就是房间门没有主动打开 /// public bool IsSeclusion { get; private set; } = false; - + + public bool IsDestroyed { get; private set; } + private bool _beReady = false; private bool _waveStart = false; private int _currWaveIndex = 0; @@ -120,7 +122,27 @@ { return Position.Y; } + + public void Destroy() + { + if (IsDestroyed) + { + return; + } + IsDestroyed = true; + foreach (var nextRoom in Next) + { + nextRoom.Destroy(); + } + Next.Clear(); + foreach (var activityMark in ActivityMarks) + { + activityMark.QueueFree(); + } + ActivityMarks.Clear(); + } + /// /// 房间准备好了, 准备刷敌人, 并且关闭所有门, /// 当清完每一波刷新的敌人后即可开门 @@ -147,10 +169,14 @@ }); } - //关门 - foreach (var doorInfo in Doors) + //不是初始房间才能关门 + if (RoomSplit.RoomInfo.RoomType != DungeonRoomType.Inlet) { - doorInfo.Door.CloseDoor(); + //关门 + foreach (var doorInfo in Doors) + { + doorInfo.Door.CloseDoor(); + } } //执行第一波生成 @@ -167,9 +193,12 @@ IsSeclusion = false; _currActivityMarks.Clear(); //开门 - foreach (var doorInfo in Doors) + if (RoomSplit.RoomInfo.RoomType != DungeonRoomType.Inlet) { - doorInfo.Door.OpenDoor(); + foreach (var doorInfo in Doors) + { + doorInfo.Door.OpenDoor(); + } } } else //执行下一波 diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs index e1e170a..4eb45d0 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs @@ -37,11 +37,36 @@ /// [Export] public float DelayTime = 0; + + /// + /// 物体会在该矩形区域内随机位置生成 + /// + [Export] + public Vector2I BirthRect = Vector2I.Zero; /// /// 绘制的颜色 /// - protected Color DrawColor = new Color(0.4F, 0.56078434F, 0.8784314F); + [Export] + public Color DrawColor = new Color(1, 1, 1, 1); + + /// + /// 物体初始海拔高度 + /// + [ExportGroup("Vertical")] + [Export(PropertyHint.Range, "0, 36")] + public int Altitude = 0; + + /// + /// 物体初始纵轴速度 + /// + [Export(PropertyHint.Range, "-1000,1000,0.1")] + public float VerticalSpeed = 0; + + /// + /// 当前标记所在Tile节点 + /// + public TileMap TileRoot; //是否已经结束 private bool _isOver = true; @@ -49,6 +74,9 @@ private float _timer = 0; private RoomInfo _tempRoom; + //绘制的字体 + private static Font _drawFont; + /// /// 获取物体Id /// @@ -59,6 +87,13 @@ public override void _Process(double delta) { +#if TOOLS + if (Engine.IsEditorHint()) + { + QueueRedraw(); + return; + } +#endif if (_isOver) { _overTimer += (float)delta; @@ -115,8 +150,31 @@ /// public virtual void Doing(RoomInfo roomInfo) { + CreateActivityObject().PutDown(Layer); + } + + /// + /// 实例化ItemId指定的物体, 并返回对象实例, 函数会自动设置位置 + /// + protected ActivityObject CreateActivityObject() + { var instance = ActivityObject.Create(GetItemId()); - instance.PutDown(GlobalPosition, Layer); + var pos = Position; + if (BirthRect != Vector2I.Zero) + { + instance.Position = new Vector2( + Utils.RandomRangeInt((int)pos.X - BirthRect.X / 2, (int)pos.X + BirthRect.X / 2), + Utils.RandomRangeInt((int)pos.Y - BirthRect.Y / 2, (int)pos.Y + BirthRect.Y / 2) + ); + } + else + { + instance.Position = pos; + } + + instance.VerticalSpeed = VerticalSpeed; + instance.Altitude = Altitude; + return instance; } #if TOOLS @@ -124,8 +182,21 @@ { if (Engine.IsEditorHint() || GameApplication.Instance.Debug) { - DrawLine(new Vector2(-5, -5), new Vector2(5, 5), DrawColor, 2f); - DrawLine(new Vector2(-5, 5), new Vector2(5, -5), DrawColor, 2f); + DrawLine(new Vector2(-2, -2), new Vector2(2, 2), DrawColor, 1f); + DrawLine(new Vector2(-2, 2), new Vector2(2, -2), DrawColor, 1f); + + if (BirthRect != Vector2.Zero) + { + var c = DrawColor; + c.A = 0.5f; + DrawRect(new Rect2(-BirthRect / 2, BirthRect), c, false, 0.5f); + } + + if (_drawFont == null) + { + _drawFont = ResourceManager.Load(ResourcePath.Silver_ttf); + } + DrawString(_drawFont, new Vector2(-14, 12), WaveNumber.ToString(), HorizontalAlignment.Center, 28, 14); } } #endif @@ -135,9 +206,32 @@ /// public void SetActive(bool flag) { - SetProcess(flag); - SetProcessInternal(flag); - SetPhysicsProcess(flag); - SetPhysicsProcessInternal(flag); + // SetProcess(flag); + // SetPhysicsProcess(flag); + // SetProcessInput(flag); + // Visible = flag; + + var parent = GetParent(); + if (flag) + { + if (parent == null) + { + TileRoot.AddChild(this); + } + else if (parent != TileRoot) + { + parent.RemoveChild(this); + TileRoot.AddChild(this); + } + Owner = TileRoot; + } + else + { + if (parent != null) + { + parent.RemoveChild(this); + Owner = null; + } + } } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs index cc5a0fd..8359e1a 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs @@ -50,17 +50,16 @@ public override void _Ready() { - DrawColor = Colors.Red; Type = ActivityIdPrefix.ActivityPrefixType.Enemy; Layer = RoomLayerEnum.YSortLayer; } public override void Doing(RoomInfo roomInfo) { - var pos = GlobalPosition; + var pos = Position; //创建敌人 - var instance = ActivityObject.Create(GetItemId()); - instance.PutDown(pos, Layer); + var instance = (Enemy)CreateActivityObject(); + instance.PutDown(Layer); if (!string.IsNullOrWhiteSpace(Weapon1Id)) CreateWeapon(instance, pos, Weapon1Id, Weapon1Ammo); diff --git a/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs b/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs new file mode 100644 index 0000000..b654732 --- /dev/null +++ b/DungeonShooting_Godot/src/framework/map/mark/PlayerBirthMark.cs @@ -0,0 +1,17 @@ + +using Godot; + +/// +/// 玩家生成标记 +/// +[Tool] +public partial class PlayerBirthMark : ActivityMark +{ + public override void _Ready() + { + } + + public override void Doing(RoomInfo roomInfo) + { + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs b/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs index 190ac94..9b06298 100644 --- a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs +++ b/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs @@ -21,7 +21,6 @@ public override void _Ready() { - DrawColor = Colors.Green; Type = ActivityIdPrefix.ActivityPrefixType.Weapon; Layer = RoomLayerEnum.NormalLayer; } @@ -29,7 +28,7 @@ public override void Doing(RoomInfo roomInfo) { //创建武器 - var instance = ActivityObject.Create(GetItemId()); + var instance = (Weapon)CreateActivityObject(); if (CurrAmmon >= 0) { instance.SetCurrAmmo(CurrAmmon); @@ -39,6 +38,8 @@ { instance.SetResidueAmmo(ResidueAmmo); } - instance.PutDown(GlobalPosition, Layer); + + + instance.PutDown(Layer); } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs index 3fc4d09..ffb3f89 100644 --- a/DungeonShooting_Godot/src/game/GameApplication.cs +++ b/DungeonShooting_Godot/src/game/GameApplication.cs @@ -1,4 +1,5 @@ +using System; using System.Collections.Generic; using System.Text.Json; using Godot; @@ -6,12 +7,7 @@ public partial class GameApplication : Node2D { public static GameApplication Instance { get; private set; } - - /// - /// 是否开启调试 - /// - [Export] public bool Debug = false; - + /// /// 游戏渲染视口 /// @@ -33,6 +29,18 @@ [Export] public Node2D GlobalNodeRoot; /// + /// 是否开启调试 + /// + [ExportGroup("Debug")] + [Export] public bool Debug = false; + + /// + /// 测试用, 指定生成的房间 + /// + [Export] + public PackedScene[] DesignatedRoom; + + /// /// 鼠标指针 /// public Cursor Cursor { get; private set; } @@ -41,13 +49,18 @@ /// 游戏房间 /// public RoomManager RoomManager { get; private set; } - + /// /// 房间配置 /// - public List RoomConfig { get; private set; } + public Dictionary RoomConfig { get; private set; } /// + /// 房间配置数据, key: 模板房间资源路径 + /// + public Dictionary RoomConfigMap { get; private set; } + + /// /// 游戏视图大小 /// public Vector2 ViewportSize { get; private set; } = new Vector2(480, 270); @@ -81,6 +94,10 @@ GetWindow().SizeChanged += OnWindowSizeChanged; RefreshSubViewportSize(); +#if TOOLS + InitDesignatedRoom(); +#endif + //初始化ui UiManager.Init(); @@ -130,8 +147,21 @@ //加载房间配置信息 var file = FileAccess.Open(ResourcePath.resource_map_RoomConfig_json, FileAccess.ModeFlags.Read); var asText = file.GetAsText(); - RoomConfig = JsonSerializer.Deserialize>(asText); + RoomConfig = JsonSerializer.Deserialize>(asText); file.Dispose(); + + //初始化RoomConfigMap + RoomConfigMap = new Dictionary(); + foreach (var dungeonRoomGroup in RoomConfig) + { + foreach (var dungeonRoomType in Enum.GetValues()) + { + foreach (var dungeonRoomSplit in dungeonRoomGroup.Value.GetRoomList(dungeonRoomType)) + { + RoomConfigMap.Add(dungeonRoomSplit.ScenePath, dungeonRoomSplit); + } + } + } } //窗体大小改变 @@ -152,4 +182,24 @@ SubViewportContainer.Scale = new Vector2(PixelScale, PixelScale); SubViewportContainer.Size = s; } + +#if TOOLS + //调试模式下, 指定生成哪些房间 + private void InitDesignatedRoom() + { + if (DesignatedRoom != null && DesignatedRoom.Length > 0) + { + var list = new List(); + foreach (var packedScene in DesignatedRoom) + { + if (RoomConfigMap.TryGetValue(packedScene.ResourcePath, out var dungeonRoomSplit)) + { + list.Add(dungeonRoomSplit); + } + } + DungeonGenerator.SetDesignatedRoom(list); + } + } +#endif + } diff --git a/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs index 8d24a04..e80b072 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/Weapon.cs @@ -615,7 +615,18 @@ _continuousCount = _continuousCount > 0 ? _continuousCount - 1 : 0; //减子弹数量 - CurrAmmo -= UseAmmoCount(); + if (_originWeaponAttribute != _weaponAttribute) //Ai使用该武器, 有一定概率不消耗弹药 + { + if (Utils.RandomRangeFloat(0, 1) < _weaponAttribute.AiAmmoConsumptionProbability) //触发消耗弹药 + { + CurrAmmo -= UseAmmoCount(); + } + } + else + { + CurrAmmo -= UseAmmoCount(); + } + //开火间隙 _fireInterval = 60 / Attribute.StartFiringSpeed; //攻击冷却 diff --git a/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs b/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs index 8a5ecc1..c97cfee 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/WeaponAttribute.cs @@ -236,6 +236,16 @@ public float AiTargetLockingTime = 0; /// + /// 用于Ai, Ai使用该武器发射的子弹速度缩放比 + /// + public float AiBulletSpeedScale = 0.7f; + + /// + /// 用于Ai, Ai使用该武器消耗弹药的概率, (0 - 1) + /// + public float AiAmmoConsumptionProbability = 1f; + + /// /// Ai 使用该武器时的武器数据, 设置该字段, 可让同一把武器在敌人和玩家手上有不同属性 /// public WeaponAttribute AiUseAttribute; diff --git a/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs b/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs index bd44f44..1d66d3f 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/bullet/Bullet.cs @@ -11,6 +11,11 @@ /// public Area2D CollisionArea { get; private set; } + /// + /// 发射该子弹的武器 + /// + public Weapon Weapon { get; private set; } + // 最大飞行距离 private float MaxDistance; @@ -20,13 +25,22 @@ //当前子弹已经飞行的距离 private float CurrFlyDistance = 0; - public void Init(float speed, float maxDistance, Vector2 position, float rotation, uint targetLayer) + public void Init(Weapon weapon, float speed, float maxDistance, Vector2 position, float rotation, uint targetLayer) { + Weapon = weapon; CollisionArea = GetNode("CollisionArea"); CollisionArea.CollisionMask = targetLayer; CollisionArea.AreaEntered += OnArea2dEntered; - - FlySpeed = speed; + + //只有玩家使用该武器才能获得正常速度的子弹 + if (weapon.Master is Player) + { + FlySpeed = speed; + } + else + { + FlySpeed = speed * weapon.Attribute.AiBulletSpeedScale; + } MaxDistance = maxDistance; Position = position; Rotation = rotation; diff --git a/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs b/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs index 5a2c9f0..b0a9644 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/gun/Gun.cs @@ -131,6 +131,7 @@ const string bulletId = ActivityIdPrefix.Bullet + "0001"; var bullet = ActivityObject.Create(bulletId); bullet.Init( + this, 350, Utils.RandomRangeFloat(Attribute.MinDistance, Attribute.MaxDistance), FirePoint.GlobalPosition, diff --git a/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs b/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs index 7ee7c40..139496f 100644 --- a/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs +++ b/DungeonShooting_Godot/src/game/item/weapon/gun/Shotgun.cs @@ -95,6 +95,7 @@ const string bulletId = ActivityIdPrefix.Bullet + "0001"; var bullet = ActivityObject.Create(bulletId); bullet.Init( + this, Utils.RandomRangeInt(280, 380), Utils.RandomRangeFloat(Attribute.MinDistance, Attribute.MaxDistance), FirePoint.GlobalPosition, diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index 415bfb9..7d89582 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -17,7 +17,6 @@ public const string prefab_test_MoveComponent_tscn = "res://prefab/test/MoveComponent.tscn"; public const string prefab_test_TestActivity_tscn = "res://prefab/test/TestActivity.tscn"; public const string prefab_ui_EditorTools_tscn = "res://prefab/ui/EditorTools.tscn"; - public const string prefab_ui_MyUi_tscn = "res://prefab/ui/MyUi.tscn"; public const string prefab_ui_RoomUI_tscn = "res://prefab/ui/RoomUI.tscn"; public const string prefab_weapon_Knife_tscn = "res://prefab/weapon/Knife.tscn"; public const string prefab_weapon_Weapon_tscn = "res://prefab/weapon/Weapon.tscn"; @@ -35,18 +34,22 @@ public const string resource_font_cn_font_18_tres = "res://resource/font/cn_font_18.tres"; public const string resource_font_cn_font_36_tres = "res://resource/font/cn_font_36.tres"; public const string resource_map_RoomConfig_json = "res://resource/map/RoomConfig.json"; - public const string resource_map_tiledata_Room1_json = "res://resource/map/tiledata/Room1.json"; - public const string resource_map_tiledata_Room2_json = "res://resource/map/tiledata/Room2.json"; - public const string resource_map_tiledata_Room3_json = "res://resource/map/tiledata/Room3.json"; - public const string resource_map_tiledata_Room4_json = "res://resource/map/tiledata/Room4.json"; - public const string resource_map_tiledata_Room5_json = "res://resource/map/tiledata/Room5.json"; - public const string resource_map_tiledata_Room6_json = "res://resource/map/tiledata/Room6.json"; - public const string resource_map_tileMaps_Room1_tscn = "res://resource/map/tileMaps/Room1.tscn"; - public const string resource_map_tileMaps_Room2_tscn = "res://resource/map/tileMaps/Room2.tscn"; - public const string resource_map_tileMaps_Room3_tscn = "res://resource/map/tileMaps/Room3.tscn"; - public const string resource_map_tileMaps_Room4_tscn = "res://resource/map/tileMaps/Room4.tscn"; - public const string resource_map_tileMaps_Room5_tscn = "res://resource/map/tileMaps/Room5.tscn"; - public const string resource_map_tileMaps_Room6_tscn = "res://resource/map/tileMaps/Room6.tscn"; + public const string resource_map_tiledata_testGroup_battle_Room1_json = "res://resource/map/tiledata/testGroup/battle/Room1.json"; + public const string resource_map_tiledata_testGroup_battle_Room2_json = "res://resource/map/tiledata/testGroup/battle/Room2.json"; + public const string resource_map_tiledata_testGroup_battle_Room3_json = "res://resource/map/tiledata/testGroup/battle/Room3.json"; + public const string resource_map_tiledata_testGroup_battle_Room4_json = "res://resource/map/tiledata/testGroup/battle/Room4.json"; + public const string resource_map_tiledata_testGroup_battle_Room5_json = "res://resource/map/tiledata/testGroup/battle/Room5.json"; + public const string resource_map_tiledata_testGroup_battle_Room6_json = "res://resource/map/tiledata/testGroup/battle/Room6.json"; + public const string resource_map_tiledata_testGroup_inlet_Room1_json = "res://resource/map/tiledata/testGroup/inlet/Room1.json"; + public const string resource_map_tiledata_testGroup_outlet_Room1_json = "res://resource/map/tiledata/testGroup/outlet/Room1.json"; + public const string resource_map_tileMaps_testGroup_battle_Room1_tscn = "res://resource/map/tileMaps/testGroup/battle/Room1.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room2_tscn = "res://resource/map/tileMaps/testGroup/battle/Room2.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room3_tscn = "res://resource/map/tileMaps/testGroup/battle/Room3.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room4_tscn = "res://resource/map/tileMaps/testGroup/battle/Room4.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room5_tscn = "res://resource/map/tileMaps/testGroup/battle/Room5.tscn"; + public const string resource_map_tileMaps_testGroup_battle_Room6_tscn = "res://resource/map/tileMaps/testGroup/battle/Room6.tscn"; + public const string resource_map_tileMaps_testGroup_inlet_Room1_tscn = "res://resource/map/tileMaps/testGroup/inlet/Room1.tscn"; + public const string resource_map_tileMaps_testGroup_outlet_Room1_tscn = "res://resource/map/tileMaps/testGroup/outlet/Room1.tscn"; public const string resource_map_tileset_TileSet1_tres = "res://resource/map/tileset/TileSet1.tres"; public const string resource_materlal_Blend_gdshader = "res://resource/materlal/Blend.gdshader"; public const string resource_materlal_Blend_tres = "res://resource/materlal/Blend.tres"; @@ -277,5 +280,6 @@ 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 Silver_ttf = "res://Silver.ttf"; public const string SourceHanSerifCNSemiBold_otf = "res://SourceHanSerifCN-SemiBold.otf"; } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs b/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs index f6fa6c3..91aaa92 100644 --- a/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs +++ b/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs @@ -7,7 +7,6 @@ public static class UiName { public const string EditorTools = "EditorTools"; - public const string MyUi = "MyUi"; public const string RoomUI = "RoomUI"; } @@ -28,22 +27,6 @@ } /// - /// 打开 MyUi, 并返回UI实例 - /// - public static UI.MyUi.MyUiPanel Open_MyUi() - { - return OpenUi(UiName.MyUi); - } - - /// - /// 获取所有 MyUi 的实例, 如果没有实例, 则返回一个空数组 - /// - public static UI.MyUi.MyUiPanel[] Get_MyUi_Instance() - { - return GetUiInstance(nameof(UI.MyUi.MyUi)); - } - - /// /// 打开 RoomUI, 并返回UI实例 /// public static UI.RoomUI.RoomUIPanel Open_RoomUI() diff --git a/DungeonShooting_Godot/src/game/room/RoomManager.cs b/DungeonShooting_Godot/src/game/room/RoomManager.cs index f3afe6a..93a5d5a 100644 --- a/DungeonShooting_Godot/src/game/room/RoomManager.cs +++ b/DungeonShooting_Godot/src/game/room/RoomManager.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Godot; /// @@ -28,6 +29,11 @@ public Player Player { get; private set; } /// + /// 起始房间 + /// + public RoomInfo StartRoom => _dungeonGenerator.StartRoom; + + /// /// 当前玩家所在的房间 /// public RoomInfo ActiveRoom => Player?.Affiliation?.RoomInfo; @@ -62,7 +68,7 @@ var nowTicks = DateTime.Now.Ticks; //生成地牢房间 - _dungeonGenerator = new DungeonGenerator(); + _dungeonGenerator = new DungeonGenerator("testGroup"); _dungeonGenerator.Generate(); //填充地牢 @@ -86,9 +92,14 @@ //播放bgm //SoundManager.PlayMusic(ResourcePath.resource_sound_bgm_Intro_ogg, -17f); + //初始房间创建玩家标记 + var playerBirthMark = StartRoom.ActivityMarks.FirstOrDefault(mark => mark is PlayerBirthMark); //创建玩家 Player = ActivityObject.Create(ActivityIdPrefix.Role + "0001"); - Player.Position = new Vector2(30, 30); + if (playerBirthMark != null) + { + Player.Position = playerBirthMark.Position; + } Player.Name = "Player"; Player.PutDown(RoomLayerEnum.YSortLayer); Player.PickUpWeapon(ActivityObject.Create(ActivityIdPrefix.Weapon + "0001")); @@ -174,7 +185,7 @@ //创建房间归属区域 CreateRoomAisleAffiliation(roomInfo); } - + //挂载房间导航区域 private void MountNavFromRoomInfo(RoomInfo roomInfo) { diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs index ca9d027..a33e0f6 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs @@ -293,12 +293,48 @@ } /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.LineEdit + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomNameInput /// - public class UiNode1_LineEdit : IUiNode + public class UiNode_RoomNameInput : IUiNode { - public UiNode1_LineEdit(Godot.LineEdit node) : base(node) { } - public override UiNode1_LineEdit Clone() => new ((Godot.LineEdit)Instance.Duplicate()); + public UiNode_RoomNameInput(Godot.LineEdit node) : base(node) { } + public override UiNode_RoomNameInput Clone() => new ((Godot.LineEdit)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Label2 + /// + public class UiNode_Label2 : IUiNode + { + public UiNode_Label2(Godot.Label node) : base(node) { } + public override UiNode_Label2 Clone() => new ((Godot.Label)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomGroupSelect + /// + public class UiNode_RoomGroupSelect : IUiNode + { + public UiNode_RoomGroupSelect(Godot.OptionButton node) : base(node) { } + public override UiNode_RoomGroupSelect Clone() => new ((Godot.OptionButton)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Label3 + /// + public class UiNode_Label3 : IUiNode + { + public UiNode_Label3(Godot.Label node) : base(node) { } + public override UiNode_Label3 Clone() => new ((Godot.Label)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomTypeSelect + /// + public class UiNode_RoomTypeSelect : IUiNode + { + public UiNode_RoomTypeSelect(Godot.OptionButton node) : base(node) { } + public override UiNode_RoomTypeSelect Clone() => new ((Godot.OptionButton)Instance.Duplicate()); } /// @@ -329,17 +365,69 @@ private UiNode4_Label _L_Label; /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.LineEdit + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.RoomNameInput /// - public UiNode1_LineEdit L_LineEdit + public UiNode_RoomNameInput L_RoomNameInput { get { - if (_L_LineEdit == null) _L_LineEdit = new UiNode1_LineEdit(Instance.GetNodeOrNull("LineEdit")); - return _L_LineEdit; + if (_L_RoomNameInput == null) _L_RoomNameInput = new UiNode_RoomNameInput(Instance.GetNodeOrNull("RoomNameInput")); + return _L_RoomNameInput; } } - private UiNode1_LineEdit _L_LineEdit; + private UiNode_RoomNameInput _L_RoomNameInput; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label2 + /// + public UiNode_Label2 L_Label2 + { + get + { + if (_L_Label2 == null) _L_Label2 = new UiNode_Label2(Instance.GetNodeOrNull("Label2")); + return _L_Label2; + } + } + private UiNode_Label2 _L_Label2; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.RoomGroupSelect + /// + public UiNode_RoomGroupSelect L_RoomGroupSelect + { + get + { + if (_L_RoomGroupSelect == null) _L_RoomGroupSelect = new UiNode_RoomGroupSelect(Instance.GetNodeOrNull("RoomGroupSelect")); + return _L_RoomGroupSelect; + } + } + private UiNode_RoomGroupSelect _L_RoomGroupSelect; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label3 + /// + public UiNode_Label3 L_Label3 + { + get + { + if (_L_Label3 == null) _L_Label3 = new UiNode_Label3(Instance.GetNodeOrNull("Label3")); + return _L_Label3; + } + } + private UiNode_Label3 _L_Label3; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.RoomTypeSelect + /// + public UiNode_RoomTypeSelect L_RoomTypeSelect + { + get + { + if (_L_RoomTypeSelect == null) _L_RoomTypeSelect = new UiNode_RoomTypeSelect(Instance.GetNodeOrNull("RoomTypeSelect")); + return _L_RoomTypeSelect; + } + } + private UiNode_RoomTypeSelect _L_RoomTypeSelect; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs index 8cc8c54..5cf3487 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; using Generator; @@ -14,7 +15,13 @@ //询问窗口关闭 private Action _onConfirmClose; + + //存放创建房间中选择组的下拉框数据 + private Dictionary _createRoomGroupValueMap; + //存放创建房间中选择类型的下拉框数据 + private Dictionary _createRoomTypeValueMap; + public override void OnShowUi() { //tips @@ -31,6 +38,8 @@ L_Confirm.Instance.Canceled += OnCanceled; L_Confirm.Instance.CloseRequested += OnCanceled; L_Confirm.Instance.Confirmed += OnConfirm; + + InitSelectOptions(); var container = L_ScrollContainer.L_MarginContainer.L_VBoxContainer; //重新生成 ResourcePath @@ -66,6 +75,44 @@ container.L_HBoxContainer6.L_Button.Instance.Pressed -= GenerateDungeonRoom; } + public override void Process(float delta) + { + if (_createRoomGroupValueMap == null || _createRoomTypeValueMap == null) + { + InitSelectOptions(); + } + } + + //创建ui的下拉框数据 + private void InitSelectOptions() + { + _createRoomGroupValueMap = new Dictionary(); + _createRoomTypeValueMap = new Dictionary(); + var container = L_ScrollContainer.L_MarginContainer.L_VBoxContainer; + var select1 = container.L_HBoxContainer6.L_RoomGroupSelect.Instance; + select1.Clear(); + var directoryInfo = new DirectoryInfo(GameConfig.RoomTileDir); + var directoryInfoArray = directoryInfo.GetDirectories(); + for (var i = 0; i < directoryInfoArray.Length; i++) + { + var text = directoryInfoArray[i].Name; + select1.AddItem(text, i); + _createRoomGroupValueMap.Add(i, text); + } + + var select2 = container.L_HBoxContainer6.L_RoomTypeSelect.Instance; + select2.Clear(); + var dungeonRoomTypes = Enum.GetValues(); + for (var i = 0; i < dungeonRoomTypes.Length; i++) + { + var typeName = DungeonRoomTemplate.DungeonRoomTypeToString(dungeonRoomTypes[i]); + var text = typeName + " (" + + DungeonRoomTemplate.DungeonRoomTypeToDescribeString(dungeonRoomTypes[i]) + ")"; + select2.AddItem(text, i); + _createRoomTypeValueMap.Add(i, typeName); + } + } + /// /// Tips 关闭信号回调 /// @@ -295,28 +342,34 @@ /// private void GenerateDungeonRoom() { - var roomName = L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6.L_LineEdit.Instance.Text; - ShowConfirm("提示", "是否创建房间:" + roomName, (result) => + var node = L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6; + var group = _createRoomGroupValueMap[node.L_RoomGroupSelect.Instance.Selected]; + var type = _createRoomTypeValueMap[node.L_RoomTypeSelect.Instance.Selected]; + var roomName = node.L_RoomNameInput.Instance.Text; + + var pathName = group + "/" + type + "/" + roomName; + + ShowConfirm("提示", "是否创建房间:" + pathName, (result) => { if (result) { //检查名称是否合规 - if (!Regex.IsMatch(roomName, "^\\w*$")) + if (!Regex.IsMatch(roomName, "^\\w+$")) { ShowTips("错误", "房间名称'" + roomName + "'不符合名称约束, 房间名称只允许包含大写字母和数字!"); return; } //检查是否有同名的Ui - var path = GameConfig.RoomTileDir + roomName + ".tscn"; + var path = GameConfig.RoomTileDir + pathName + ".tscn"; if (File.Exists(path)) { - ShowTips("错误", "已经存在相同名称'" + roomName + "'的房间了, 不能重复创建!"); + ShowTips("错误", "已经存在相同名称'" + pathName + "'的房间了, 不能重复创建!"); return; } //执行创建操作 - if (DungeonRoomGenerator.CreateDungeonRoom(roomName, true)) + if (DungeonRoomGenerator.CreateDungeonRoom(group, type, roomName, true)) { ShowTips("提示", "创建房间成功!"); } diff --git a/DungeonShooting_Godot/src/game/ui/myUi/MyUi.cs b/DungeonShooting_Godot/src/game/ui/myUi/MyUi.cs deleted file mode 100644 index 65f9437..0000000 --- a/DungeonShooting_Godot/src/game/ui/myUi/MyUi.cs +++ /dev/null @@ -1,79 +0,0 @@ -namespace UI.MyUi; - -/// -/// Ui代码, 该类是根据ui场景自动生成的, 请不要手动编辑该类, 以免造成代码丢失 -/// -public abstract partial class MyUi : UiBase -{ - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MyUi.Button - /// - public UiNode_Button L_Button - { - get - { - if (_L_Button == null) _L_Button = new UiNode_Button(GetNodeOrNull("Button")); - return _L_Button; - } - } - private UiNode_Button _L_Button; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MyUi.Control - /// - public UiNode_Control L_Control - { - get - { - if (_L_Control == null) _L_Control = new UiNode_Control(GetNodeOrNull("Control")); - return _L_Control; - } - } - private UiNode_Control _L_Control; - - - public MyUi() : base(nameof(MyUi)) - { - } - - /// - /// 类型: , 路径: MyUi.Button - /// - public class UiNode_Button : IUiNode - { - public UiNode_Button(Godot.Button node) : base(node) { } - public override UiNode_Button Clone() => new ((Godot.Button)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: MyUi.Control.Label - /// - public class UiNode_Label : IUiNode - { - public UiNode_Label(Godot.Label node) : base(node) { } - public override UiNode_Label Clone() => new ((Godot.Label)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: MyUi.Control - /// - public class UiNode_Control : IUiNode - { - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MyUi.Label - /// - public UiNode_Label L_Label - { - get - { - if (_L_Label == null) _L_Label = new UiNode_Label(Instance.GetNodeOrNull("Label")); - return _L_Label; - } - } - private UiNode_Label _L_Label; - - public UiNode_Control(Godot.Control node) : base(node) { } - public override UiNode_Control Clone() => new ((Godot.Control)Instance.Duplicate()); - } - -} diff --git a/DungeonShooting_Godot/src/game/ui/myUi/MyUiPanel.cs b/DungeonShooting_Godot/src/game/ui/myUi/MyUiPanel.cs deleted file mode 100644 index f6d0a04..0000000 --- a/DungeonShooting_Godot/src/game/ui/myUi/MyUiPanel.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Godot; - -namespace UI.MyUi; - -public partial class MyUiPanel : MyUi -{ - - public override void OnShowUi() - { - L_Control.L_Label.Instance.Text = "文本"; - L_Button.Instance.Pressed += () => - { - - }; - } - - public override void OnHideUi() - { - - } - -} diff --git a/README.md b/README.md index dbe7f3c..ef297c9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.0.1 +一款由Godot开发的地牢射击类型的游戏, 脚本语言使用的是C#, 当前项目使用的Godot版本: Godot_v4.0.2 --- ### 游戏定义