diff --git a/data/levelGraphs/test.yaml b/data/levelGraphs/test.yaml index 1945392..4e4b36e 100644 --- a/data/levelGraphs/test.yaml +++ b/data/levelGraphs/test.yaml @@ -1,311 +1,34 @@ connection_data_list: - - from_id: c0255eb6-2c75-44f7-9058-0921fe8fb0d8 - to_id: 4ae948ea-82b7-4b2d-bec2-19ed8a9d4c03 + - from_id: 5a284c6f-2ce5-4dba-b32e-f0fcb9e9940d + to_id: 4de20bd2-b557-4c29-9613-d4b35ea1f239 from_port: 0 to_port: 0 - - from_id: 4ae948ea-82b7-4b2d-bec2-19ed8a9d4c03 - to_id: ba32e05c-0c80-4a79-b5ce-5b8150400e05 - from_port: 0 - to_port: 0 - - from_id: 4ae948ea-82b7-4b2d-bec2-19ed8a9d4c03 - to_id: 8b3d645a-96c0-407e-871d-6f4a0b69557b - from_port: 0 - to_port: 0 - - from_id: 8b3d645a-96c0-407e-871d-6f4a0b69557b - to_id: 7e3ae680-3d7e-4ae9-b82f-5bfbe1c2f613 - from_port: 0 - to_port: 0 - - from_id: ba32e05c-0c80-4a79-b5ce-5b8150400e05 - to_id: 7e3ae680-3d7e-4ae9-b82f-5bfbe1c2f613 - from_port: 0 - to_port: 0 - - from_id: c0255eb6-2c75-44f7-9058-0921fe8fb0d8 - to_id: 46d8c16d-66fb-409e-b02a-7825dcf59796 - from_port: 0 - to_port: 0 - - from_id: 7e3ae680-3d7e-4ae9-b82f-5bfbe1c2f613 - to_id: 20b486d3-3558-4d4a-b67b-d6df08e66a6a - from_port: 0 - to_port: 0 - - from_id: 7e3ae680-3d7e-4ae9-b82f-5bfbe1c2f613 - to_id: 012795b2-297c-404a-b96f-dff8a6b6a720 - from_port: 0 - to_port: 0 - - from_id: 012795b2-297c-404a-b96f-dff8a6b6a720 - to_id: 7eba7a72-88c9-4018-82db-100c9521938b - from_port: 0 - to_port: 0 - - from_id: 46d8c16d-66fb-409e-b02a-7825dcf59796 - to_id: 5e27b3cd-7de8-4476-b96f-199ffce9b10c - from_port: 0 - to_port: 0 - - from_id: 46d8c16d-66fb-409e-b02a-7825dcf59796 - to_id: 43d7c799-3db5-4b13-b160-f9133f15a970 - from_port: 0 - to_port: 0 - - from_id: 7eba7a72-88c9-4018-82db-100c9521938b - to_id: a54cf238-a368-4979-abb2-3a435b726d29 - from_port: 0 - to_port: 0 - - from_id: 20b486d3-3558-4d4a-b67b-d6df08e66a6a - to_id: e69c3d51-11d3-408f-bfc8-b955183e2abe - from_port: 0 - to_port: 0 - - from_id: e69c3d51-11d3-408f-bfc8-b955183e2abe - to_id: 27111bc7-cbbd-4a4f-9fe6-cf3948f74efd - from_port: 0 - to_port: 0 - - from_id: 27111bc7-cbbd-4a4f-9fe6-cf3948f74efd - to_id: 7e5d5fd3-1255-4523-8057-377a4fbd50d8 - from_port: 0 - to_port: 0 - - from_id: 5e27b3cd-7de8-4476-b96f-199ffce9b10c - to_id: 4129b4a0-a02e-4751-9ca8-b2bc1c679b02 - from_port: 0 - to_port: 0 - - from_id: 4129b4a0-a02e-4751-9ca8-b2bc1c679b02 - to_id: fb77ea9a-fd4d-4fc8-92a4-1e5d4d1219a8 - from_port: 0 - to_port: 0 - - from_id: fb77ea9a-fd4d-4fc8-92a4-1e5d4d1219a8 - to_id: 0aa908bd-b5fe-4a80-8e74-9a862d7c9af0 - from_port: 0 - to_port: 0 - - from_id: 43d7c799-3db5-4b13-b160-f9133f15a970 - to_id: dff8a1e6-a5ae-41b4-b136-95729bf3a8d3 - from_port: 0 - to_port: 0 - - from_id: dff8a1e6-a5ae-41b4-b136-95729bf3a8d3 - to_id: 676ba8a3-9ac8-4606-858e-5aa3b3e5101c - from_port: 0 - to_port: 0 - - from_id: 676ba8a3-9ac8-4606-858e-5aa3b3e5101c - to_id: 80c69468-6558-4c12-86cd-7ba6533d3758 - from_port: 0 - to_port: 0 - - from_id: 0aa908bd-b5fe-4a80-8e74-9a862d7c9af0 - to_id: c6f9bd56-5025-40f6-97b9-1e73eac1c5f6 - from_port: 0 - to_port: 0 - - from_id: 7e5d5fd3-1255-4523-8057-377a4fbd50d8 - to_id: 03896855-9956-4442-909c-7d633fa97ed9 - from_port: 0 - to_port: 0 - - from_id: 80c69468-6558-4c12-86cd-7ba6533d3758 - to_id: d43494e4-0ec3-4e29-a617-6a3ff7727a11 + - from_id: 4de20bd2-b557-4c29-9613-d4b35ea1f239 + to_id: 3053d123-3f71-4cd0-8f05-f821aa95c702 from_port: 0 to_port: 0 room_node_data_list: - - id: 8b3d645a-96c0-407e-871d-6f4a0b69557b - title: 房间4 + - id: 5a284c6f-2ce5-4dba-b32e-f0fcb9e9940d + title: 房间1 description: '' room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: ba32e05c-0c80-4a79-b5ce-5b8150400e05 - title: 房间3 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 7e3ae680-3d7e-4ae9-b82f-5bfbe1c2f613 - title: 房间5 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 20b486d3-3558-4d4a-b67b-d6df08e66a6a - title: 房间7 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 012795b2-297c-404a-b96f-dff8a6b6a720 - title: 房间8 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 46d8c16d-66fb-409e-b02a-7825dcf59796 - title: 房间6 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 7eba7a72-88c9-4018-82db-100c9521938b - title: 房间9 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 5e27b3cd-7de8-4476-b96f-199ffce9b10c - title: 房间10 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: a54cf238-a368-4979-abb2-3a435b726d29 - title: 房间12 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: e69c3d51-11d3-408f-bfc8-b955183e2abe - title: 房间13 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 4ae948ea-82b7-4b2d-bec2-19ed8a9d4c03 - title: 大厅 - description: 比普通房间要大一些的房间,有多个门,用于连接到其他房间。 - room_template_set: - - res://prefab/roomTemplates/dungeon/utilityRoom.tscn - tags: - room_injection_processor_data: - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: c0255eb6-2c75-44f7-9058-0921fe8fb0d8 - title: 起点房间 - description: 测试的起点房间。 - room_template_set: - - res://prefab/roomTemplates/dungeon/initialRoom.tscn + - res://prefab/roomTemplates/tutorials/spellEditor.tscn tags: - StartingRoom - room_injection_processor_data: + room_injection_processor_data: '' enter_room_event_handler_id: exit_room_event_handler_id: - - id: 27111bc7-cbbd-4a4f-9fe6-cf3948f74efd - title: 房间15 + - id: 4de20bd2-b557-4c29-9613-d4b35ea1f239 + title: 房间2 description: '' room_template_set: - - res://prefab/roomTemplates/dungeon/ + - res://prefab/roomTemplates/tutorials/tripleShotSpell.tscn tags: room_injection_processor_data: '' enter_room_event_handler_id: exit_room_event_handler_id: - - id: 7e5d5fd3-1255-4523-8057-377a4fbd50d8 - title: 房间14 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 4129b4a0-a02e-4751-9ca8-b2bc1c679b02 - title: 房间17 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: fb77ea9a-fd4d-4fc8-92a4-1e5d4d1219a8 - title: 房间18 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 0aa908bd-b5fe-4a80-8e74-9a862d7c9af0 - title: 房间19 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 43d7c799-3db5-4b13-b160-f9133f15a970 - title: 房间11 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 676ba8a3-9ac8-4606-858e-5aa3b3e5101c - title: 房间23 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: dff8a1e6-a5ae-41b4-b136-95729bf3a8d3 - title: 房间20 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 80c69468-6558-4c12-86cd-7ba6533d3758 - title: 房间24 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: c6f9bd56-5025-40f6-97b9-1e73eac1c5f6 - title: 房间22 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: 03896855-9956-4442-909c-7d633fa97ed9 - title: 房间21 - description: '' - room_template_set: - - res://prefab/roomTemplates/dungeon/ - tags: - room_injection_processor_data: '' - enter_room_event_handler_id: - exit_room_event_handler_id: - - id: d43494e4-0ec3-4e29-a617-6a3ff7727a11 - title: 房间16 + - id: 3053d123-3f71-4cd0-8f05-f821aa95c702 + title: 房间3 description: '' room_template_set: - res://prefab/roomTemplates/dungeon/ diff --git a/locals/UI.csv b/locals/UI.csv index 039f953..20b0c22 100644 --- a/locals/UI.csv +++ b/locals/UI.csv @@ -35,3 +35,7 @@ ui_translator,翻译,translator,翻訳 ui_unordered_list_tip,排名不分先后,Ranking is not in order,順位は関係ありません ui_loading,正在加载...,Loading...,読み込み中... ui_spell_editor,法术编辑器,Spell editor,スペルエディター +ui_tutorial_spellEditor,按E捡起地上的武器,\n法杖需要搭配法术使用,\n靠近工作台,\n鼠标左键使用工作台。\n鼠标左键拖动物品,\n以实现在不同的容器之间移动它们。,"Press E to pick up the weapon on the ground, \nthe wand needs to be used with the spell, \nclose to the workbench, \nthe left mouse button to use the workbench.\nDrag items with the left mouse button \nto move them between different containers.",Eを押して地面の武器を拾い上げます。\n杖は魔法と組み合わせて使います。\n作業台に近づいて、\nマウスの左ボタンで作業台を使います。\nマウスの左ボタンでモノをドラッグすると、\nさまざまな容器の間を移動できます。 +ui_tutorial_break_box,鼠标左键使用武器打破箱子->,"Use the left mouse button to break the box with the weapon->",マウスの左ボタンで箱を破ります-> +ui_tutorial_jump_onto_platform,W跳上平台,\nS从平台上跳下。,"W jumps onto the platform, \nS jumps off the platform.",Wは踊り場に、\nSは踊り場に飛び降りるのです。 +ui_tutorial_combine_more_powerful_spells,组合更强力的法术->,Combine more powerful spells->,より強力な術を組み合わせます-> diff --git a/prefab/furnitures/SpellEditor.tscn b/prefab/furnitures/SpellEditor.tscn index f2695c9..83be201 100644 --- a/prefab/furnitures/SpellEditor.tscn +++ b/prefab/furnitures/SpellEditor.tscn @@ -92,6 +92,8 @@ collision_layer = 256 collision_mask = 160 script = ExtResource("1_t1qdg") Path = "res://prefab/ui/SpellEditorUI.tscn" +_initialDurability = null +_maxDurability = null [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(-0.5, -0.5) diff --git a/prefab/furnitures/WoodenBox.tscn b/prefab/furnitures/WoodenBox.tscn new file mode 100644 index 0000000..4992a16 --- /dev/null +++ b/prefab/furnitures/WoodenBox.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=5 format=3 uid="uid://dld3qttpsdjpe"] + +[ext_resource type="Script" path="res://scripts/furniture/Barrier.cs" id="1_hfnuj"] +[ext_resource type="Texture2D" uid="uid://cvlm5tmv43i8t" path="res://sprites/furnitures/wooden_box.png" id="2_24vtp"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_vx4tg"] +size = Vector2(32, 32) + +[sub_resource type="CircleShape2D" id="CircleShape2D_in1f7"] +radius = 52.6118 + +[node name="WoodenBox" type="RigidBody2D"] +collision_layer = 256 +collision_mask = 160 +script = ExtResource("1_hfnuj") +_initialDurability = null +_maxDurability = 1 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_vx4tg") + +[node name="OperateArea2D" type="Area2D" parent="."] +visible = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="OperateArea2D"] +shape = SubResource("CircleShape2D_in1f7") + +[node name="WoodenBox" type="Sprite2D" parent="."] +texture = ExtResource("2_24vtp") diff --git a/prefab/magics/x3.tscn b/prefab/magics/x3.tscn index 2a136dd..e9db64b 100644 --- a/prefab/magics/x3.tscn +++ b/prefab/magics/x3.tscn @@ -15,6 +15,12 @@ collision_layer = 8 collision_mask = 34 angular_damp = -1.0 script = ExtResource("1_cnhod") +NumberOfProjectiles = null +RandomAngle = null +UnitRadian = null +_projectilePath = null +_minContactInjury = null +_maxContactInjury = null [node name="DamageArea2D" type="Area2D" parent="."] collision_layer = 8 diff --git a/prefab/roomTemplates/dungeon/initialRoom.tscn b/prefab/roomTemplates/dungeon/initialRoom.tscn deleted file mode 100644 index 323a7a1..0000000 --- a/prefab/roomTemplates/dungeon/initialRoom.tscn +++ /dev/null @@ -1,106 +0,0 @@ -[gd_scene load_steps=9 format=4 uid="uid://du5ldsp613fei"] - -[ext_resource type="TileSet" uid="uid://c4wpp12rr44hi" path="res://tileSets/dungeon.tres" id="1_rn2om"] -[ext_resource type="Script" path="res://scripts/map/PlayerSpawn.cs" id="2_6p8mv"] -[ext_resource type="Script" path="res://scripts/map/ItemSpawn.cs" id="3_v1tlc"] -[ext_resource type="Texture2D" uid="uid://drw45jlmfo0su" path="res://sprites/light/White_100.png" id="5_4pssd"] -[ext_resource type="PackedScene" uid="uid://djsh4unystlf0" path="res://prefab/furnitures/SpellEditor.tscn" id="5_5u8y1"] - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_kiih8"] -size = Vector2(507, 251) - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_jxmys"] -size = Vector2(18, 57.75) - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_064c7"] -vertices = PackedVector2Array(467.773, 174, 499.828, 174, 499.156, 214.969, 40.9375, 214.023, 40.0469, 41.0625, 470.758, 43.9297) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(0, 3, 4, 5)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(30, 31, 31, 224, 509, 225, 510, 164, 478, 164, 481, 34)]) -source_geometry_group_name = &"navigation_polygon_source_group" - -[node name="InitialRoom" type="Node2D"] - -[node name="RoomArea" type="Area2D" parent="."] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomArea"] -position = Vector2(254.5, 129.5) -shape = SubResource("RectangleShape2D_kiih8") - -[node name="RoomSlotList" type="Node2D" parent="."] - -[node name="Slot1" type="Area2D" parent="RoomSlotList"] -position = Vector2(491, 193) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomSlotList/Slot1"] -position = Vector2(5, 0) -shape = SubResource("RectangleShape2D_jxmys") -debug_color = Color(0, 0.6, 0.701961, 0.419608) - -[node name="Marker2D" type="Marker2D" parent="."] -position = Vector2(221, 134) -script = ExtResource("2_6p8mv") - -[node name="ItemMarker2D" type="Marker2D" parent="."] -position = Vector2(142, 84) -script = ExtResource("3_v1tlc") -ItemId = "staff_necromancy" - -[node name="ItemMarker2D3" type="Marker2D" parent="."] -position = Vector2(214, 83) -script = ExtResource("3_v1tlc") -ItemId = "x3" - -[node name="ItemMarker2D4" type="Marker2D" parent="."] -position = Vector2(366, 90) -script = ExtResource("3_v1tlc") -ItemId = "necromancy" - -[node name="ItemMarker2D2" type="Marker2D" parent="."] -position = Vector2(321, 118) -script = ExtResource("3_v1tlc") -ItemId = "necromancy" - -[node name="ItemMarker2D5" type="Marker2D" parent="."] -position = Vector2(381, 136) -script = ExtResource("3_v1tlc") -ItemId = "iron_axe" - -[node name="ItemMarker2D6" type="Marker2D" parent="."] -position = Vector2(438, 79) -script = ExtResource("3_v1tlc") -ItemId = "curse" - -[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] -navigation_polygon = SubResource("NavigationPolygon_064c7") - -[node name="TileMap" type="Node2D" parent="."] - -[node name="BackgroundWall" type="TileMapLayer" parent="TileMap"] -use_parent_material = true -tile_map_data = PackedByteArray("AAAOAAYAAQAGAAUAAAANAAYAAQAGAAUAAAAMAAYAAQAGAAUAAAALAAYAAQAGAAUAAAAKAAYAAQAGAAUAAAAJAAYAAQAGAAUAAAAIAAYAAQAGAAUAAAAHAAYAAQAGAAUAAAAGAAYAAQAGAAUAAAAOAAEAAQAGAAUAAAAOAAIAAQAGAAUAAAAOAAMAAQAGAAUAAAAOAAQAAQAGAAUAAAAOAAUAAQAGAAUAAAANAAUAAQAGAAUAAAANAAQAAQAGAAUAAAANAAMAAQAGAAUAAAANAAIAAQAGAAUAAAANAAEAAQAGAAUAAAAMAAEAAQAGAAUAAAALAAEAAQAGAAUAAAAKAAEAAQAGAAUAAAAJAAEAAQAGAAUAAAAIAAEAAQAGAAUAAAAHAAEAAQAGAAUAAAAGAAEAAQAGAAUAAAAFAAEAAQAGAAUAAAAEAAEAAQAGAAUAAAADAAEAAQAGAAUAAAACAAEAAQAGAAUAAAABAAEAAQAGAAUAAAABAAIAAQAGAAUAAAACAAIAAQAGAAUAAAADAAIAAQAGAAUAAAAEAAIAAQAGAAUAAAAFAAIAAQAGAAUAAAAGAAIAAQAGAAUAAAAHAAIAAQAGAAUAAAAIAAIAAQAGAAUAAAAJAAIAAQAGAAUAAAAKAAIAAQAGAAUAAAALAAIAAQAGAAUAAAAMAAIAAQAGAAUAAAAMAAMAAQAGAAUAAAALAAMAAQAGAAUAAAAKAAMAAQAGAAUAAAAJAAMAAQAGAAUAAAAIAAMAAQAEAAUAAAAHAAMAAQAGAAUAAAAGAAMAAQAGAAUAAAAFAAMAAQAEAAUAAAAEAAMAAQAGAAUAAAADAAMAAQAGAAUAAAACAAMAAQAGAAUAAAABAAMAAQAGAAUAAAABAAQAAQAGAAUAAAACAAQAAQAGAAUAAAADAAQAAQAGAAUAAAAEAAQAAQAGAAUAAAAFAAQAAQAGAAUAAAAGAAQAAQAGAAUAAAAHAAQAAQAGAAUAAAAIAAQAAQAGAAUAAAAJAAQAAQAGAAUAAAAKAAQAAQAGAAUAAAALAAQAAQAGAAUAAAAMAAQAAQAGAAUAAAAMAAUAAQAGAAUAAAALAAUAAQAGAAUAAAAKAAUAAQAGAAUAAAAJAAUAAQAGAAUAAAAIAAUAAQAGAAUAAAAHAAUAAQAGAAUAAAAGAAUAAQAGAAUAAAAFAAUAAQAGAAUAAAAEAAUAAQAGAAUAAAADAAUAAQAGAAUAAAACAAUAAQAGAAUAAAABAAUAAQAGAAUAAAABAAYAAQAGAAUAAAACAAYAAQAGAAUAAAADAAYAAQAGAAUAAAAEAAYAAQAGAAUAAAAFAAYAAQAGAAUAAAAPAAYAAQAGAAUAAAAPAAUAAQAGAAUAAAA=") -tile_set = ExtResource("1_rn2om") -navigation_enabled = false - -[node name="BackgroundDecoration" type="TileMapLayer" parent="TileMap"] -use_parent_material = true -tile_map_data = PackedByteArray("AAACAAYAAQAHAAUAAAAOAAEAAQAHAAQAAAA=") -tile_set = ExtResource("1_rn2om") - -[node name="Ground" type="TileMapLayer" parent="TileMap"] -use_parent_material = true -tile_map_data = PackedByteArray("AAAAAAAAAQAAAAMAAAAAAAEAAQACAAEAAAAAAAIAAQACAAEAAAAAAAMAAQACAAEAAAAAAAQAAQACAAEAAAAAAAcAAQAAAAUAAAAPAAAAAQACAAMAAAAPAAEAAQACAAQAAAAPAAIAAQACAAQAAAAPAAMAAQACAAQAAAAPAAQAAQACAAQAAAAPAAcAAQACAAUAAAAAAAUAAQACAAEAAAAAAAYAAQACAAEAAAABAAAAAQABAAIAAAACAAAAAQABAAIAAAADAAAAAQABAAIAAAAEAAAAAQABAAIAAAAFAAAAAQABAAIAAAAGAAAAAQABAAIAAAAHAAAAAQABAAIAAAAIAAAAAQABAAIAAAAJAAAAAQABAAIAAAAKAAAAAQABAAIAAAALAAAAAQABAAIAAAAMAAAAAQABAAIAAAANAAAAAQABAAIAAAAOAAAAAQABAAMAAAABAAcAAQABAAAAAAACAAcAAQABAAAAAAADAAcAAQABAAAAAAAEAAcAAQABAAAAAAAFAAcAAQABAAAAAAAGAAcAAQABAAAAAAAHAAcAAQABAAAAAAAIAAcAAQABAAAAAAAJAAcAAQABAAAAAAAKAAcAAQABAAAAAAALAAcAAQABAAAAAAAMAAcAAQABAAAAAAANAAcAAQABAAAAAAAOAAcAAQABAAAAAAA=") -tile_set = ExtResource("1_rn2om") - -[node name="Barrier" type="TileMapLayer" parent="TileMap"] -use_parent_material = true -tile_map_data = PackedByteArray("AAAPAAUAAQAAAAEAAAAPAAYAAQAAAAEAAAA=") -tile_set = ExtResource("1_rn2om") - -[node name="PointLight2D" type="PointLight2D" parent="."] -visible = false -position = Vector2(259.5, 128.5) -scale = Vector2(16.0312, 7.96875) -texture = ExtResource("5_4pssd") - -[node name="RigidBody2D" parent="." instance=ExtResource("5_5u8y1")] -position = Vector2(106, 147) diff --git a/prefab/roomTemplates/tutorials/spellEditor.tscn b/prefab/roomTemplates/tutorials/spellEditor.tscn new file mode 100644 index 0000000..2fd3228 --- /dev/null +++ b/prefab/roomTemplates/tutorials/spellEditor.tscn @@ -0,0 +1,119 @@ +[gd_scene load_steps=11 format=4 uid="uid://du5ldsp613fei"] + +[ext_resource type="Script" path="res://scripts/map/PlayerSpawn.cs" id="1_q04qt"] +[ext_resource type="TileSet" uid="uid://c4wpp12rr44hi" path="res://tileSets/dungeon.tres" id="2_5bnvh"] +[ext_resource type="Texture2D" uid="uid://drw45jlmfo0su" path="res://sprites/light/White_100.png" id="3_atgj7"] +[ext_resource type="Script" path="res://scripts/map/ItemSpawn.cs" id="4_6ihp7"] +[ext_resource type="PackedScene" uid="uid://djsh4unystlf0" path="res://prefab/furnitures/SpellEditor.tscn" id="5_0kep0"] +[ext_resource type="Texture2D" uid="uid://cdjmfqp854utu" path="res://sprites/tutorials/spellEditor.png" id="6_dbg76"] +[ext_resource type="PackedScene" uid="uid://dld3qttpsdjpe" path="res://prefab/furnitures/WoodenBox.tscn" id="7_jybe6"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_kiih8"] +size = Vector2(709, 296) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_jxmys"] +size = Vector2(23, 54.875) + +[sub_resource type="NavigationPolygon" id="NavigationPolygon_064c7"] +vertices = PackedVector2Array(756.172, 267.297, 756.82, 306.008, 45.0312, 306.977, 723.094, 268.297, 45.9688, 42, 721.094, 42) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(3, 2, 4, 5)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(36, 32, 731, 32, 733, 258, 766, 257, 767, 316, 35, 317)]) +source_geometry_group_name = &"navigation_polygon_source_group" + +[node name="InitialRoom" type="Node2D"] + +[node name="RoomArea" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomArea"] +position = Vector2(383.5, 176) +shape = SubResource("RectangleShape2D_kiih8") + +[node name="RoomSlotList" type="Node2D" parent="."] + +[node name="Slot1" type="Area2D" parent="RoomSlotList"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomSlotList/Slot1"] +position = Vector2(751.5, 289.438) +shape = SubResource("RectangleShape2D_jxmys") +debug_color = Color(0, 0.6, 0.701961, 0.419608) + +[node name="Marker2D" type="Marker2D" parent="."] +position = Vector2(54, 256) +script = ExtResource("1_q04qt") + +[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] +navigation_polygon = SubResource("NavigationPolygon_064c7") + +[node name="TileMap" type="Node2D" parent="."] + +[node name="BackgroundWall" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAOAAYAAQAGAAUAAAANAAYAAQAGAAUAAAAMAAYAAQAGAAUAAAALAAYAAQAGAAUAAAAKAAYAAQAGAAUAAAAJAAYAAQAGAAUAAAAIAAYAAQAGAAUAAAAHAAYAAQAGAAUAAAAGAAYAAQAGAAUAAAAOAAEAAQAGAAUAAAAOAAIAAQAGAAUAAAAOAAMAAQAGAAUAAAAOAAQAAQAGAAUAAAAOAAUAAQAGAAUAAAANAAUAAQAGAAUAAAANAAQAAQAGAAUAAAANAAMAAQAGAAUAAAANAAIAAQAGAAUAAAANAAEAAQAGAAUAAAAMAAEAAQAGAAUAAAALAAEAAQAGAAUAAAAKAAEAAQAGAAUAAAAJAAEAAQAGAAUAAAAIAAEAAQAGAAUAAAAHAAEAAQAGAAUAAAAGAAEAAQAGAAUAAAAFAAEAAQAGAAUAAAAEAAEAAQAGAAUAAAADAAEAAQAGAAUAAAACAAEAAQAGAAUAAAABAAEAAQAGAAUAAAABAAIAAQAGAAUAAAACAAIAAQAGAAUAAAADAAIAAQAGAAUAAAAEAAIAAQAGAAUAAAAFAAIAAQAGAAUAAAAGAAIAAQAGAAUAAAAHAAIAAQAGAAUAAAAIAAIAAQAGAAUAAAAJAAIAAQAGAAUAAAAKAAIAAQAGAAUAAAALAAIAAQAGAAUAAAAMAAIAAQAGAAUAAAAMAAMAAQAGAAUAAAALAAMAAQAGAAUAAAAKAAMAAQAGAAUAAAAJAAMAAQAGAAUAAAAIAAMAAQAGAAUAAAAHAAMAAQAGAAUAAAAGAAMAAQAGAAUAAAAFAAMAAQAGAAUAAAAEAAMAAQAGAAUAAAADAAMAAQAGAAUAAAACAAMAAQAGAAUAAAABAAMAAQAGAAUAAAABAAQAAQAGAAUAAAACAAQAAQAGAAUAAAADAAQAAQAGAAUAAAAEAAQAAQAGAAUAAAAFAAQAAQAGAAUAAAAGAAQAAQAGAAUAAAAHAAQAAQAGAAUAAAAIAAQAAQAGAAUAAAAJAAQAAQAGAAUAAAAKAAQAAQAGAAUAAAALAAQAAQAGAAUAAAAMAAQAAQAGAAUAAAAMAAUAAQAGAAUAAAALAAUAAQAGAAUAAAAKAAUAAQAGAAUAAAAJAAUAAQAGAAUAAAAIAAUAAQAGAAUAAAAHAAUAAQAGAAUAAAAGAAUAAQAGAAUAAAAFAAUAAQAGAAUAAAAEAAUAAQAGAAUAAAADAAUAAQAGAAUAAAACAAUAAQAGAAUAAAABAAUAAQAGAAUAAAABAAYAAQAGAAUAAAACAAYAAQAGAAUAAAADAAYAAQAGAAUAAAAEAAYAAQAGAAUAAAAFAAYAAQAGAAUAAAAPAAYAAQAGAAUAAAAPAAUAAQAGAAUAAAABAAcAAQAGAAUAAAABAAgAAQAGAAUAAAABAAkAAQAGAAUAAAACAAkAAQAGAAUAAAACAAgAAQAGAAUAAAACAAcAAQAGAAUAAAADAAcAAQAGAAUAAAADAAgAAQAGAAUAAAADAAkAAQAGAAUAAAAEAAkAAQAGAAUAAAAEAAgAAQAGAAUAAAAEAAcAAQAGAAUAAAAFAAcAAQAGAAUAAAAFAAgAAQAGAAUAAAAFAAkAAQAGAAUAAAAGAAkAAQAGAAUAAAAGAAgAAQAGAAUAAAAGAAcAAQAGAAUAAAAHAAgAAQAGAAUAAAAHAAkAAQAGAAUAAAAHAAcAAQAGAAUAAAAIAAcAAQAGAAUAAAAIAAgAAQAGAAUAAAAIAAkAAQAGAAUAAAAJAAkAAQAGAAUAAAAJAAgAAQAGAAUAAAAJAAcAAQAGAAUAAAAKAAcAAQAGAAUAAAAKAAgAAQAGAAUAAAAKAAkAAQAGAAUAAAALAAkAAQAGAAUAAAALAAgAAQAGAAUAAAALAAcAAQAGAAUAAAAMAAcAAQAGAAUAAAAMAAgAAQAGAAUAAAAMAAkAAQAGAAUAAAANAAkAAQAGAAUAAAANAAgAAQAGAAUAAAANAAcAAQAGAAUAAAAOAAcAAQAGAAUAAAAOAAgAAQAGAAUAAAAOAAkAAQAGAAUAAAAPAAkAAQAGAAUAAAAPAAgAAQAGAAUAAAAPAAcAAQAGAAUAAAAPAAQAAQAGAAUAAAAPAAMAAQAGAAUAAAAPAAIAAQAGAAUAAAAPAAEAAQAGAAUAAAAQAAEAAQAGAAUAAAARAAEAAQAGAAUAAAASAAEAAQAGAAUAAAATAAEAAQAGAAUAAAAUAAEAAQAGAAUAAAAVAAEAAQAGAAUAAAAWAAEAAQAGAAUAAAAWAAIAAQAGAAUAAAAVAAIAAQAGAAUAAAAUAAIAAQAGAAUAAAATAAIAAQAGAAUAAAASAAIAAQAGAAUAAAARAAIAAQAGAAUAAAAQAAIAAQAGAAUAAAAQAAMAAQAGAAUAAAARAAMAAQAGAAUAAAASAAMAAQAGAAUAAAATAAMAAQAGAAUAAAAUAAMAAQAGAAUAAAAVAAMAAQAGAAUAAAAWAAMAAQAGAAUAAAAWAAQAAQAGAAUAAAAVAAQAAQAGAAUAAAAUAAQAAQAGAAUAAAATAAQAAQAGAAUAAAASAAQAAQAGAAUAAAARAAQAAQAGAAUAAAAQAAQAAQAGAAUAAAAQAAUAAQAGAAUAAAARAAUAAQAGAAUAAAASAAUAAQAGAAUAAAATAAUAAQAGAAUAAAAUAAUAAQAGAAUAAAAVAAUAAQAGAAUAAAAWAAUAAQAGAAUAAAAWAAYAAQAGAAUAAAAVAAYAAQAGAAUAAAAUAAYAAQAGAAUAAAATAAYAAQAGAAUAAAASAAYAAQAGAAUAAAARAAYAAQAGAAUAAAAQAAYAAQAGAAUAAAAQAAcAAQAGAAUAAAARAAcAAQAGAAUAAAASAAcAAQAGAAUAAAATAAcAAQAGAAUAAAAUAAcAAQAGAAUAAAAVAAcAAQAGAAUAAAAWAAcAAQAGAAUAAAAWAAgAAQAGAAUAAAAVAAgAAQAGAAUAAAAUAAgAAQAGAAUAAAATAAgAAQAGAAUAAAASAAgAAQAGAAUAAAARAAgAAQAGAAUAAAAQAAgAAQAGAAUAAAAQAAkAAQAGAAUAAAARAAkAAQAGAAUAAAASAAkAAQAGAAUAAAATAAkAAQAGAAUAAAAUAAkAAQAGAAUAAAAVAAkAAQAGAAUAAAAWAAkAAQAGAAUAAAAXAAkAAQAGAAUAAAAXAAgAAQAGAAUAAAA=") +tile_set = ExtResource("2_5bnvh") +navigation_enabled = false + +[node name="BackgroundDecoration" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAEAAkAAQAHAAUAAAAWAAEAAQAHAAQAAAA=") +tile_set = ExtResource("2_5bnvh") + +[node name="Ground" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAAAAAAAQAAAAMAAAAAAAEAAQACAAEAAAAAAAIAAQACAAEAAAAAAAMAAQACAAEAAAAAAAQAAQACAAEAAAAAAAcAAQACAAEAAAAPAAAAAQABAAIAAAAAAAUAAQACAAEAAAAAAAYAAQACAAEAAAABAAAAAQABAAIAAAACAAAAAQABAAIAAAADAAAAAQABAAIAAAAEAAAAAQABAAIAAAAFAAAAAQABAAIAAAAGAAAAAQABAAIAAAAHAAAAAQABAAIAAAAIAAAAAQABAAIAAAAJAAAAAQABAAIAAAAKAAAAAQABAAIAAAALAAAAAQABAAIAAAAMAAAAAQABAAIAAAANAAAAAQABAAIAAAAOAAAAAQABAAMAAAAAAAgAAQACAAEAAAAAAAkAAQACAAEAAAAAAAoAAQAAAAUAAAABAAoAAQABAAAAAAACAAoAAQABAAAAAAADAAoAAQABAAAAAAAEAAoAAQABAAAAAAAFAAoAAQABAAAAAAAGAAoAAQABAAAAAAAHAAoAAQABAAAAAAAIAAoAAQABAAAAAAAJAAoAAQABAAAAAAAKAAoAAQABAAAAAAALAAoAAQABAAAAAAAMAAoAAQABAAAAAAANAAoAAQABAAAAAAAOAAoAAQABAAAAAAAPAAoAAQABAAAAAAAQAAoAAQABAAAAAAARAAoAAQABAAAAAAASAAoAAQABAAAAAAATAAoAAQABAAAAAAAUAAoAAQABAAAAAAAVAAoAAQABAAAAAAAWAAoAAQABAAAAAAAXAAoAAQACAAUAAAAQAAAAAQABAAIAAAARAAAAAQABAAIAAAASAAAAAQABAAIAAAATAAAAAQABAAIAAAAUAAAAAQABAAIAAAAXAAcAAQAAAAEAAAAXAAYAAQAAAAEAAAAXAAUAAQAAAAEAAAAXAAQAAQAAAAEAAAAXAAMAAQAAAAEAAAAXAAIAAQAAAAEAAAAXAAEAAQAAAAEAAAAXAAAAAQACAAMAAAAVAAAAAQABAAIAAAAWAAAAAQABAAIAAAA=") +tile_set = ExtResource("2_5bnvh") + +[node name="Barrier" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAXAAgAAQAAAAEAAAAXAAkAAQAAAAEAAAA=") +tile_set = ExtResource("2_5bnvh") + +[node name="PointLight2D" type="PointLight2D" parent="."] +visible = false +position = Vector2(386, 178) +scale = Vector2(23.9375, 11.0625) +texture = ExtResource("3_atgj7") + +[node name="Marker2D2" type="Marker2D" parent="."] +position = Vector2(100, 250) +script = ExtResource("4_6ihp7") +ItemId = "staff_necromancy" + +[node name="Marker2D3" type="Marker2D" parent="."] +position = Vector2(134, 248) +script = ExtResource("4_6ihp7") +ItemId = "necromancy" + +[node name="Label" type="Label" parent="."] +offset_left = 37.0 +offset_top = 46.0 +offset_right = 200.0 +offset_bottom = 71.0 +text = "ui_tutorial_spellEditor" + +[node name="Label2" type="Label" parent="."] +offset_left = 391.0 +offset_top = 261.0 +offset_right = 554.0 +offset_bottom = 286.0 +text = "ui_tutorial_break_box" + +[node name="SpellEditor" type="Sprite2D" parent="."] +position = Vector2(621, 100) +texture = ExtResource("6_dbg76") + +[node name="RigidBody2D" parent="." instance=ExtResource("5_0kep0")] +position = Vector2(227, 283) +_initialDurability = null +_maxDurability = null + +[node name="WoodenBox" parent="." instance=ExtResource("7_jybe6")] +position = Vector2(715, 244) + +[node name="WoodenBox2" parent="." instance=ExtResource("7_jybe6")] +position = Vector2(715, 200) + +[node name="WoodenBox3" parent="." instance=ExtResource("7_jybe6")] +position = Vector2(715, 162) + +[node name="WoodenBox4" parent="." instance=ExtResource("7_jybe6")] +position = Vector2(714, 122) diff --git a/prefab/roomTemplates/tutorials/tripleShotSpell.tscn b/prefab/roomTemplates/tutorials/tripleShotSpell.tscn new file mode 100644 index 0000000..481eab3 --- /dev/null +++ b/prefab/roomTemplates/tutorials/tripleShotSpell.tscn @@ -0,0 +1,133 @@ +[gd_scene load_steps=11 format=4 uid="uid://dodxp4mm0emj3"] + +[ext_resource type="TileSet" uid="uid://c4wpp12rr44hi" path="res://tileSets/dungeon.tres" id="2_k54gk"] +[ext_resource type="Texture2D" uid="uid://drw45jlmfo0su" path="res://sprites/light/White_100.png" id="3_d6t7n"] +[ext_resource type="PackedScene" uid="uid://dld3qttpsdjpe" path="res://prefab/furnitures/WoodenBox.tscn" id="4_60glh"] +[ext_resource type="Script" path="res://scripts/map/ItemSpawn.cs" id="4_fh50l"] +[ext_resource type="PackedScene" uid="uid://djsh4unystlf0" path="res://prefab/furnitures/SpellEditor.tscn" id="5_ll4ng"] +[ext_resource type="Texture2D" uid="uid://kgodvs3ilxbs" path="res://sprites/tutorials/tripleShotSpell.png" id="6_2qcf3"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_kiih8"] +size = Vector2(709, 296) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_jxmys"] +size = Vector2(23, 54.875) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_xgxoy"] +size = Vector2(26, 57) + +[sub_resource type="NavigationPolygon" id="NavigationPolygon_064c7"] +vertices = PackedVector2Array(728.094, 269, 755.672, 269, 754.328, 309.062, 457.93, 310.93, 621.094, 264.742, 619.094, 45.0781, 726.078, 45.9219, 562.906, 266.273, 456.93, 150.68, 564.898, 43.0078, 42.9531, 43.9766, 404.938, 157.18, 41.9609, 265.109, 405.93, 309.023, 10, 309.969, 10, 268.102) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(4, 5, 6, 0), PackedInt32Array(4, 0, 3, 7), PackedInt32Array(7, 3, 8, 9), PackedInt32Array(10, 9, 8, 11), PackedInt32Array(12, 10, 11, 13), PackedInt32Array(12, 13, 14, 15)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(33, 34, 32, 256, 0, 259, 0, 320, 416, 319, 415, 166, 447, 162, 448, 321, 764, 319, 766, 259, 738, 259, 736, 36, 609, 35, 611, 255, 573, 256, 575, 33)]) +source_geometry_group_name = &"navigation_polygon_source_group" + +[node name="InitialRoom" type="Node2D"] + +[node name="RoomArea" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomArea"] +position = Vector2(383.5, 176) +shape = SubResource("RectangleShape2D_kiih8") + +[node name="RoomSlotList" type="Node2D" parent="."] + +[node name="Slot1" type="Area2D" parent="RoomSlotList"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomSlotList/Slot1"] +position = Vector2(751.5, 289.438) +shape = SubResource("RectangleShape2D_jxmys") +debug_color = Color(0, 0.6, 0.701961, 0.419608) + +[node name="Area2D" type="Area2D" parent="RoomSlotList"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomSlotList/Area2D"] +position = Vector2(17, 288) +shape = SubResource("RectangleShape2D_xgxoy") + +[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] +navigation_polygon = SubResource("NavigationPolygon_064c7") + +[node name="TileMap" type="Node2D" parent="."] + +[node name="BackgroundWall" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAOAAYAAQAGAAUAAAANAAYAAQAGAAUAAAAMAAYAAQAGAAUAAAALAAYAAQAGAAUAAAAKAAYAAQAGAAUAAAAJAAYAAQAGAAUAAAAIAAYAAQAGAAUAAAAHAAYAAQAGAAUAAAAGAAYAAQAGAAUAAAAOAAEAAQAGAAUAAAAOAAIAAQAGAAUAAAAOAAMAAQAGAAUAAAAOAAQAAQAGAAUAAAAOAAUAAQAGAAUAAAANAAUAAQAGAAUAAAANAAQAAQAGAAUAAAANAAMAAQAGAAUAAAANAAIAAQAGAAUAAAANAAEAAQAGAAUAAAAMAAEAAQAGAAUAAAALAAEAAQAGAAUAAAAKAAEAAQAGAAUAAAAJAAEAAQAGAAUAAAAIAAEAAQAGAAUAAAAHAAEAAQAGAAUAAAAGAAEAAQAGAAUAAAAFAAEAAQAGAAUAAAAEAAEAAQAGAAUAAAADAAEAAQAGAAUAAAACAAEAAQAGAAUAAAABAAEAAQAGAAUAAAABAAIAAQAGAAUAAAACAAIAAQAGAAUAAAADAAIAAQAGAAUAAAAEAAIAAQAGAAUAAAAFAAIAAQAGAAUAAAAGAAIAAQAGAAUAAAAHAAIAAQAGAAUAAAAIAAIAAQAGAAUAAAAJAAIAAQAGAAUAAAAKAAIAAQAGAAUAAAALAAIAAQAGAAUAAAAMAAIAAQAGAAUAAAAMAAMAAQAGAAUAAAALAAMAAQAGAAUAAAAKAAMAAQAGAAUAAAAJAAMAAQAGAAUAAAAIAAMAAQAGAAUAAAAHAAMAAQAGAAUAAAAGAAMAAQAGAAUAAAAFAAMAAQAGAAUAAAAEAAMAAQAGAAUAAAADAAMAAQAGAAUAAAACAAMAAQAGAAUAAAABAAMAAQAGAAUAAAABAAQAAQAGAAUAAAACAAQAAQAGAAUAAAADAAQAAQAGAAUAAAAEAAQAAQAGAAUAAAAFAAQAAQAGAAUAAAAGAAQAAQAGAAUAAAAHAAQAAQAGAAUAAAAIAAQAAQAGAAUAAAAJAAQAAQAGAAUAAAAKAAQAAQAGAAUAAAALAAQAAQAGAAUAAAAMAAQAAQAGAAUAAAAMAAUAAQAGAAUAAAALAAUAAQAGAAUAAAAKAAUAAQAGAAUAAAAJAAUAAQAGAAUAAAAIAAUAAQAGAAUAAAAHAAUAAQAGAAUAAAAGAAUAAQAGAAUAAAAFAAUAAQAGAAUAAAAEAAUAAQAGAAUAAAADAAUAAQAGAAUAAAACAAUAAQAGAAUAAAABAAUAAQAGAAUAAAABAAYAAQAGAAUAAAACAAYAAQAGAAUAAAADAAYAAQAGAAUAAAAEAAYAAQAGAAUAAAAFAAYAAQAGAAUAAAAPAAYAAQAGAAUAAAAPAAUAAQAGAAUAAAABAAcAAQAGAAUAAAABAAgAAQAGAAUAAAABAAkAAQAGAAUAAAACAAkAAQAGAAUAAAACAAgAAQAGAAUAAAACAAcAAQAGAAUAAAADAAcAAQAGAAUAAAADAAgAAQAGAAUAAAADAAkAAQAGAAUAAAAEAAkAAQAGAAUAAAAEAAgAAQAGAAUAAAAEAAcAAQAGAAUAAAAFAAcAAQAGAAUAAAAFAAgAAQAGAAUAAAAFAAkAAQAGAAUAAAAGAAkAAQAGAAUAAAAGAAgAAQAGAAUAAAAGAAcAAQAGAAUAAAAHAAgAAQAGAAUAAAAHAAkAAQAGAAUAAAAHAAcAAQAGAAUAAAAIAAcAAQAGAAUAAAAIAAgAAQAGAAUAAAAIAAkAAQAGAAUAAAAJAAkAAQAGAAUAAAAJAAgAAQAGAAUAAAAJAAcAAQAGAAUAAAAKAAcAAQAGAAUAAAAKAAgAAQAGAAUAAAAKAAkAAQAGAAUAAAALAAkAAQAGAAUAAAALAAgAAQAGAAUAAAALAAcAAQAGAAUAAAAMAAcAAQAGAAUAAAAMAAgAAQAGAAUAAAAMAAkAAQAGAAUAAAANAAkAAQAGAAUAAAANAAgAAQAGAAUAAAANAAcAAQAGAAUAAAAOAAcAAQAGAAUAAAAOAAgAAQAGAAUAAAAOAAkAAQAGAAUAAAAPAAkAAQAGAAUAAAAPAAgAAQAGAAUAAAAPAAcAAQAGAAUAAAAPAAQAAQAGAAUAAAAPAAMAAQAGAAUAAAAPAAIAAQAGAAUAAAAPAAEAAQAGAAUAAAAQAAEAAQAGAAUAAAARAAEAAQAGAAUAAAASAAEAAQAGAAUAAAATAAEAAQAGAAUAAAAUAAEAAQAGAAUAAAAVAAEAAQAGAAUAAAAWAAEAAQAGAAUAAAAWAAIAAQAGAAUAAAAVAAIAAQAGAAUAAAAUAAIAAQAGAAUAAAATAAIAAQAGAAUAAAASAAIAAQAGAAUAAAARAAIAAQAGAAUAAAAQAAIAAQAGAAUAAAAQAAMAAQAGAAUAAAARAAMAAQAGAAUAAAASAAMAAQAGAAUAAAATAAMAAQAGAAUAAAAUAAMAAQAGAAUAAAAVAAMAAQAGAAUAAAAWAAMAAQAGAAUAAAAWAAQAAQAGAAUAAAAVAAQAAQAGAAUAAAAUAAQAAQAGAAUAAAATAAQAAQAGAAUAAAASAAQAAQAGAAUAAAARAAQAAQAGAAUAAAAQAAQAAQAGAAUAAAAQAAUAAQAGAAUAAAARAAUAAQAGAAUAAAASAAUAAQAGAAUAAAATAAUAAQAGAAUAAAAUAAUAAQAGAAUAAAAVAAUAAQAGAAUAAAAWAAUAAQAGAAUAAAAWAAYAAQAGAAUAAAAVAAYAAQAGAAUAAAAUAAYAAQAGAAUAAAATAAYAAQAGAAUAAAASAAYAAQAGAAUAAAARAAYAAQAGAAUAAAAQAAYAAQAGAAUAAAAQAAcAAQAGAAUAAAARAAcAAQAGAAUAAAASAAcAAQAGAAUAAAATAAcAAQAGAAUAAAAUAAcAAQAGAAUAAAAVAAcAAQAGAAUAAAAWAAcAAQAGAAUAAAAWAAgAAQAGAAUAAAAVAAgAAQAGAAUAAAAUAAgAAQAGAAUAAAATAAgAAQAGAAUAAAASAAgAAQAGAAUAAAARAAgAAQAGAAUAAAAQAAgAAQAGAAUAAAAQAAkAAQAGAAUAAAARAAkAAQAGAAUAAAASAAkAAQAGAAUAAAATAAkAAQAGAAUAAAAUAAkAAQAGAAUAAAAVAAkAAQAGAAUAAAAWAAkAAQAGAAUAAAAXAAkAAQAGAAUAAAAXAAgAAQAGAAUAAAAAAAkAAQAGAAUAAAAAAAgAAQAGAAUAAAA=") +tile_set = ExtResource("2_k54gk") +navigation_enabled = false + +[node name="BackgroundDecoration" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAWAAEAAQAHAAQAAAACAAkAAQAHAAEAAAA=") +tile_set = ExtResource("2_k54gk") + +[node name="Ground" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAAAAAAAQAAAAMAAAAAAAEAAQACAAEAAAAAAAIAAQACAAEAAAAAAAMAAQACAAEAAAAAAAQAAQACAAEAAAAAAAcAAQACAAEAAAAPAAAAAQABAAIAAAAAAAUAAQACAAEAAAAAAAYAAQACAAEAAAABAAAAAQABAAIAAAACAAAAAQABAAIAAAADAAAAAQABAAIAAAAEAAAAAQABAAIAAAAFAAAAAQABAAIAAAAGAAAAAQABAAIAAAAHAAAAAQABAAIAAAAIAAAAAQABAAIAAAAJAAAAAQABAAIAAAAKAAAAAQABAAIAAAALAAAAAQABAAIAAAAMAAAAAQABAAIAAAANAAAAAQABAAIAAAAOAAAAAQABAAMAAAAAAAoAAQAAAAUAAAABAAoAAQABAAAAAAACAAoAAQABAAAAAAADAAoAAQABAAAAAAAEAAoAAQABAAAAAAAFAAoAAQABAAAAAAAGAAoAAQABAAAAAAAHAAoAAQABAAAAAAAIAAoAAQABAAAAAAAJAAoAAQABAAAAAAAKAAoAAQABAAAAAAALAAoAAQABAAAAAAAMAAoAAQABAAAAAAANAAoAAQABAAAAAAAOAAoAAQABAAAAAAAPAAoAAQABAAAAAAAQAAoAAQABAAAAAAARAAoAAQABAAAAAAASAAoAAQABAAAAAAATAAoAAQABAAAAAAAUAAoAAQABAAAAAAAVAAoAAQABAAAAAAAWAAoAAQABAAAAAAAXAAoAAQACAAUAAAAQAAAAAQABAAIAAAARAAAAAQABAAIAAAASAAAAAQABAAIAAAATAAAAAQABAAIAAAAUAAAAAQABAAIAAAAXAAcAAQAAAAEAAAAXAAYAAQAAAAEAAAAXAAUAAQAAAAEAAAAXAAQAAQAAAAEAAAAXAAMAAQAAAAEAAAAXAAIAAQAAAAEAAAAXAAEAAQAAAAEAAAAXAAAAAQACAAMAAAAVAAAAAQABAAIAAAAWAAAAAQABAAIAAAAEAAkAAQAEAAQAAAAFAAgAAQAEAAQAAAAGAAcAAQAEAAQAAAAHAAYAAQAEAAQAAAAIAAUAAQAEAAQAAAAKAAUAAQAEAAQAAAAMAAUAAQAEAAQAAAAOAAUAAQADAAQAAAAQAAUAAQAEAAQAAAASAAUAAQADAAAAAAAJAAUAAQAEAAQAAAALAAUAAQAEAAQAAAANAAkAAQADAAAAAAANAAgAAQADAAAAAAANAAcAAQADAAAAAAANAAYAAQADAAAAAAANAAUAAQADAAAAAAAPAAUAAQAEAAQAAAARAAUAAQAFAAQAAAASAAYAAQADAAAAAAASAAcAAQADAAAAAAASAAQAAQADAAAAAAASAAMAAQADAAAAAAASAAIAAQADAAAAAAASAAEAAQADAAAAAAA=") +tile_set = ExtResource("2_k54gk") + +[node name="Barrier" type="TileMapLayer" parent="TileMap"] +use_parent_material = true +tile_map_data = PackedByteArray("AAAXAAgAAQAAAAEAAAAXAAkAAQAAAAEAAAAAAAgAAQACAAEAAAAAAAkAAQACAAEAAAA=") +tile_set = ExtResource("2_k54gk") + +[node name="PointLight2D" type="PointLight2D" parent="."] +visible = false +position = Vector2(386, 178) +scale = Vector2(23.9375, 11.0625) +texture = ExtResource("3_d6t7n") + +[node name="Label" type="Label" parent="."] +offset_left = 54.0 +offset_top = 55.0 +offset_right = 277.0 +offset_bottom = 80.0 +text = "ui_tutorial_jump_onto_platform" + +[node name="Label2" type="Label" parent="."] +offset_left = 151.0 +offset_top = 126.0 +offset_right = 453.0 +offset_bottom = 151.0 +text = "ui_tutorial_combine_more_powerful_spells" + +[node name="Marker2D" type="Marker2D" parent="."] +position = Vector2(434, 105) +script = ExtResource("4_fh50l") +ItemId = "x3" + +[node name="WoodenBox" parent="." instance=ExtResource("4_60glh")] +position = Vector2(711, 179) + +[node name="WoodenBox4" parent="." instance=ExtResource("4_60glh")] +position = Vector2(676, 179) + +[node name="WoodenBox5" parent="." instance=ExtResource("4_60glh")] +position = Vector2(676, 144) + +[node name="WoodenBox6" parent="." instance=ExtResource("4_60glh")] +position = Vector2(675, 102) + +[node name="WoodenBox7" parent="." instance=ExtResource("4_60glh")] +position = Vector2(641, 180) + +[node name="WoodenBox8" parent="." instance=ExtResource("4_60glh")] +position = Vector2(640, 142) + +[node name="WoodenBox9" parent="." instance=ExtResource("4_60glh")] +position = Vector2(640, 101) + +[node name="WoodenBox2" parent="." instance=ExtResource("4_60glh")] +position = Vector2(712, 138) + +[node name="WoodenBox3" parent="." instance=ExtResource("4_60glh")] +position = Vector2(711, 98) + +[node name="RigidBody2D" parent="." instance=ExtResource("5_ll4ng")] +position = Vector2(473, 285) +_initialDurability = null +_maxDurability = null + +[node name="TripleShotSpell" type="Sprite2D" parent="."] +position = Vector2(637, 85) +texture = ExtResource("6_2qcf3") diff --git a/project.godot b/project.godot index ca91971..ecdbda5 100644 --- a/project.godot +++ b/project.godot @@ -169,6 +169,7 @@ locale/translations=PackedStringArray("res://locals/DeathInfo.en.translation", " 2d_physics/layer_8="Wall" 2d_physics/layer_9="Furniture" 2d_physics/layer_10="WeaponDamageArea" +2d_physics/layer_11="Barrier" [physics] diff --git a/scripts/Config.cs b/scripts/Config.cs index d808c10..8236050 100644 --- a/scripts/Config.cs +++ b/scripts/Config.cs @@ -583,6 +583,7 @@ public static class Config /// 武器伤害区域 /// public const int WeaponDamageArea = 10; + public const int Barrier = 11; } /// diff --git a/scripts/character/CharacterTemplate.cs b/scripts/character/CharacterTemplate.cs index fab0371..fd163ad 100644 --- a/scripts/character/CharacterTemplate.cs +++ b/scripts/character/CharacterTemplate.cs @@ -318,6 +318,7 @@ public partial class CharacterTemplate : CharacterBody2D //角色不能穿过墙壁和地板 SetCollisionMaskValue(Config.LayerNumber.Wall, true); SetCollisionMaskValue(Config.LayerNumber.Floor, true); + SetCollisionMaskValue(Config.LayerNumber.Barrier, true); InputPickable = true; } diff --git a/scripts/furniture/Barrier.cs b/scripts/furniture/Barrier.cs new file mode 100644 index 0000000..5264486 --- /dev/null +++ b/scripts/furniture/Barrier.cs @@ -0,0 +1,18 @@ +namespace ColdMint.scripts.furniture; + +/// +/// Barrier +/// 屏障型家具 +/// +public partial class Barrier : Furniture +{ + public override void _Ready() + { + base._Ready(); + CanSleep = false; + SetCollisionLayerValue(Config.LayerNumber.Barrier, true); + SetCollisionLayerValue(Config.LayerNumber.Furniture, false); + SetCollisionMaskValue(Config.LayerNumber.Furniture, true); + SetCollisionMaskValue(Config.LayerNumber.Barrier, true); + } +} \ No newline at end of file diff --git a/scripts/furniture/Furniture.cs b/scripts/furniture/Furniture.cs index 3155a2c..8fc7f96 100644 --- a/scripts/furniture/Furniture.cs +++ b/scripts/furniture/Furniture.cs @@ -31,6 +31,7 @@ public partial class Furniture : RigidBody2D } _durability = _initialDurability; + SetCollisionLayerValue(Config.LayerNumber.Furniture, true); SetCollisionMaskValue(Config.LayerNumber.Wall, true); SetCollisionMaskValue(Config.LayerNumber.Platform, true); SetCollisionMaskValue(Config.LayerNumber.Floor, true); @@ -60,6 +61,11 @@ public partial class Furniture : RigidBody2D /// public bool Damage(DamageTemplate damageTemplate) { - return false; + _durability -= damageTemplate.Damage; + if (_durability <= 0) + { + QueueFree(); + } + return true; } } \ No newline at end of file diff --git a/scripts/projectile/Projectile.cs b/scripts/projectile/Projectile.cs index e9cfb18..5fac312 100644 --- a/scripts/projectile/Projectile.cs +++ b/scripts/projectile/Projectile.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using ColdMint.scripts.camp; using ColdMint.scripts.character; using ColdMint.scripts.damage; +using ColdMint.scripts.furniture; using ColdMint.scripts.pickable; using ColdMint.scripts.projectile.decorator; using ColdMint.scripts.utils; @@ -117,6 +118,7 @@ public partial class Projectile : CharacterBody2D SetCollisionMaskValue(Config.LayerNumber.Player, true); SetCollisionMaskValue(Config.LayerNumber.Mob, true); SetCollisionMaskValue(Config.LayerNumber.PickAbleItem, true); + SetCollisionMaskValue(Config.LayerNumber.Barrier, true); //Platform collision layer is not allowed to collide //平台碰撞层不可碰撞 SetCollisionMaskValue(Config.LayerNumber.Platform, false); @@ -191,6 +193,11 @@ public partial class Projectile : CharacterBody2D return true; } + if (target is Furniture) + { + return true; + } + if (target is PickAbleTemplate pickAbleTemplate) { //The picked-up item cannot resist the bullet. @@ -258,6 +265,18 @@ public partial class Projectile : CharacterBody2D pickAbleTemplate.ApplyImpulse(new Vector2(normalized.X * _repelStrength * Config.CellSize, normalized.Y * _repelStrength * Config.CellSize)); } + }else if (target is Furniture furniture) + { + var damage = new Damage + { + Attacker = owner, + MaxDamage = _maxDamage, + MinDamage = _minDamage + }; + damage.CreateDamage(); + damage.MoveLeft = Velocity.X < 0; + damage.Type = _damageType; + furniture.Damage(damage); } } diff --git a/scripts/spell/NodeSpawnOnKillCharacterSpell.cs b/scripts/spell/NodeSpawnOnKillCharacterSpell.cs index 089fdf2..91ffd0f 100644 --- a/scripts/spell/NodeSpawnOnKillCharacterSpell.cs +++ b/scripts/spell/NodeSpawnOnKillCharacterSpell.cs @@ -1,4 +1,3 @@ -using ColdMint.scripts.debug; using ColdMint.scripts.projectile; using ColdMint.scripts.projectile.decorator; using Godot; @@ -31,10 +30,8 @@ public partial class NodeSpawnOnKillCharacterSpell : SpellPickAble { if (_nodeSpawnOnKillCharacterDecorator == null) { - LogCat.Log("添加失败"); return; } - LogCat.Log("添加成功"); projectile.AddProjectileDecorator(_nodeSpawnOnKillCharacterDecorator); } } \ No newline at end of file diff --git a/sprites/furnitures/wooden_box.png b/sprites/furnitures/wooden_box.png new file mode 100644 index 0000000..ef759dd Binary files /dev/null and b/sprites/furnitures/wooden_box.png differ diff --git a/sprites/furnitures/wooden_box.png.import b/sprites/furnitures/wooden_box.png.import new file mode 100644 index 0000000..7649746 --- /dev/null +++ b/sprites/furnitures/wooden_box.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvlm5tmv43i8t" +path="res://.godot/imported/wooden_box.png-e7ba04eee30e6d8bdcb4d83cc293c878.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://sprites/furnitures/wooden_box.png" +dest_files=["res://.godot/imported/wooden_box.png-e7ba04eee30e6d8bdcb4d83cc293c878.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/sprites/tutorials/spellEditor.png b/sprites/tutorials/spellEditor.png new file mode 100644 index 0000000..f089baa Binary files /dev/null and b/sprites/tutorials/spellEditor.png differ diff --git a/sprites/tutorials/spellEditor.png.import b/sprites/tutorials/spellEditor.png.import new file mode 100644 index 0000000..c22c8a9 --- /dev/null +++ b/sprites/tutorials/spellEditor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdjmfqp854utu" +path="res://.godot/imported/spellEditor.png-8983010bf1ca07812126ff7d72e09d7c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://sprites/tutorials/spellEditor.png" +dest_files=["res://.godot/imported/spellEditor.png-8983010bf1ca07812126ff7d72e09d7c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/sprites/tutorials/tripleShotSpell.png b/sprites/tutorials/tripleShotSpell.png new file mode 100644 index 0000000..2b21867 Binary files /dev/null and b/sprites/tutorials/tripleShotSpell.png differ diff --git a/sprites/tutorials/tripleShotSpell.png.import b/sprites/tutorials/tripleShotSpell.png.import new file mode 100644 index 0000000..8ad1037 --- /dev/null +++ b/sprites/tutorials/tripleShotSpell.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://kgodvs3ilxbs" +path="res://.godot/imported/tripleShotSpell.png-b0de68158b44bf1a08d84f07ae59dec2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://sprites/tutorials/tripleShotSpell.png" +dest_files=["res://.godot/imported/tripleShotSpell.png-b0de68158b44bf1a08d84f07ae59dec2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tileSets/dungeon.tres b/tileSets/dungeon.tres index d792279..cc6d078 100644 --- a/tileSets/dungeon.tres +++ b/tileSets/dungeon.tres @@ -29,14 +29,15 @@ texture_region_size = Vector2i(32, 32) 1:2/0 = 0 1:2/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:2/0 = 0 -0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:2/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:1/0 = 0 0:1/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:3/0 = 0 2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:0/0 = 0 2:0/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 4:0/0 = 0