Added wooden boxes and tutorial levels.

加入木箱子和教程关卡。
This commit is contained in:
Cold-Mint 2024-10-07 23:29:08 +08:00
parent a9ab4a687c
commit 291ef653f0
Signed by: Cold-Mint
GPG Key ID: C5A9BF8A98E0CE99
22 changed files with 457 additions and 401 deletions

View File

@ -1,311 +1,34 @@
connection_data_list: connection_data_list:
- from_id: c0255eb6-2c75-44f7-9058-0921fe8fb0d8 - from_id: 5a284c6f-2ce5-4dba-b32e-f0fcb9e9940d
to_id: 4ae948ea-82b7-4b2d-bec2-19ed8a9d4c03 to_id: 4de20bd2-b557-4c29-9613-d4b35ea1f239
from_port: 0 from_port: 0
to_port: 0 to_port: 0
- from_id: 4ae948ea-82b7-4b2d-bec2-19ed8a9d4c03 - from_id: 4de20bd2-b557-4c29-9613-d4b35ea1f239
to_id: ba32e05c-0c80-4a79-b5ce-5b8150400e05 to_id: 3053d123-3f71-4cd0-8f05-f821aa95c702
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_port: 0 from_port: 0
to_port: 0 to_port: 0
room_node_data_list: room_node_data_list:
- id: 8b3d645a-96c0-407e-871d-6f4a0b69557b - id: 5a284c6f-2ce5-4dba-b32e-f0fcb9e9940d
title: 房间4 title: 房间1
description: '' description: ''
room_template_set: room_template_set:
- res://prefab/roomTemplates/dungeon/ - res://prefab/roomTemplates/tutorials/spellEditor.tscn
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
tags: tags:
- StartingRoom - StartingRoom
room_injection_processor_data: room_injection_processor_data: ''
enter_room_event_handler_id: enter_room_event_handler_id:
exit_room_event_handler_id: exit_room_event_handler_id:
- id: 27111bc7-cbbd-4a4f-9fe6-cf3948f74efd - id: 4de20bd2-b557-4c29-9613-d4b35ea1f239
title: 房间15 title: 房间2
description: '' description: ''
room_template_set: room_template_set:
- res://prefab/roomTemplates/dungeon/ - res://prefab/roomTemplates/tutorials/tripleShotSpell.tscn
tags: tags:
room_injection_processor_data: '' room_injection_processor_data: ''
enter_room_event_handler_id: enter_room_event_handler_id:
exit_room_event_handler_id: exit_room_event_handler_id:
- id: 7e5d5fd3-1255-4523-8057-377a4fbd50d8 - id: 3053d123-3f71-4cd0-8f05-f821aa95c702
title: 房间14 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: 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
description: '' description: ''
room_template_set: room_template_set:
- res://prefab/roomTemplates/dungeon/ - res://prefab/roomTemplates/dungeon/

View File

@ -35,3 +35,7 @@ ui_translator,翻译,translator,翻訳
ui_unordered_list_tip,排名不分先后,Ranking is not in order,順位は関係ありません ui_unordered_list_tip,排名不分先后,Ranking is not in order,順位は関係ありません
ui_loading,正在加载...,Loading...,読み込み中... ui_loading,正在加载...,Loading...,読み込み中...
ui_spell_editor,法术编辑器,Spell editor,スペルエディター 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->,より強力な術を組み合わせます->

1 id zh en ja
35 ui_unordered_list_tip 排名不分先后 Ranking is not in order 順位は関係ありません
36 ui_loading 正在加载... Loading... 読み込み中...
37 ui_spell_editor 法术编辑器 Spell editor スペルエディター
38 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さまざまな容器の間を移動できます。
39 ui_tutorial_break_box 鼠标左键使用武器打破箱子-> Use the left mouse button to break the box with the weapon-> マウスの左ボタンで箱を破ります->
40 ui_tutorial_jump_onto_platform W跳上平台,\nS从平台上跳下。 W jumps onto the platform, \nS jumps off the platform. Wは踊り場に、\nSは踊り場に飛び降りるのです。
41 ui_tutorial_combine_more_powerful_spells 组合更强力的法术-> Combine more powerful spells-> より強力な術を組み合わせます->

View File

@ -92,6 +92,8 @@ collision_layer = 256
collision_mask = 160 collision_mask = 160
script = ExtResource("1_t1qdg") script = ExtResource("1_t1qdg")
Path = "res://prefab/ui/SpellEditorUI.tscn" Path = "res://prefab/ui/SpellEditorUI.tscn"
_initialDurability = null
_maxDurability = null
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-0.5, -0.5) position = Vector2(-0.5, -0.5)

View File

@ -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")

View File

@ -15,6 +15,12 @@ collision_layer = 8
collision_mask = 34 collision_mask = 34
angular_damp = -1.0 angular_damp = -1.0
script = ExtResource("1_cnhod") script = ExtResource("1_cnhod")
NumberOfProjectiles = null
RandomAngle = null
UnitRadian = null
_projectilePath = null
_minContactInjury = null
_maxContactInjury = null
[node name="DamageArea2D" type="Area2D" parent="."] [node name="DamageArea2D" type="Area2D" parent="."]
collision_layer = 8 collision_layer = 8

View File

@ -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)

View File

@ -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)

View File

@ -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")

View File

@ -169,6 +169,7 @@ locale/translations=PackedStringArray("res://locals/DeathInfo.en.translation", "
2d_physics/layer_8="Wall" 2d_physics/layer_8="Wall"
2d_physics/layer_9="Furniture" 2d_physics/layer_9="Furniture"
2d_physics/layer_10="WeaponDamageArea" 2d_physics/layer_10="WeaponDamageArea"
2d_physics/layer_11="Barrier"
[physics] [physics]

View File

@ -583,6 +583,7 @@ public static class Config
/// <para>武器伤害区域</para> /// <para>武器伤害区域</para>
/// </summary> /// </summary>
public const int WeaponDamageArea = 10; public const int WeaponDamageArea = 10;
public const int Barrier = 11;
} }
/// <summary> /// <summary>

View File

@ -318,6 +318,7 @@ public partial class CharacterTemplate : CharacterBody2D
//角色不能穿过墙壁和地板 //角色不能穿过墙壁和地板
SetCollisionMaskValue(Config.LayerNumber.Wall, true); SetCollisionMaskValue(Config.LayerNumber.Wall, true);
SetCollisionMaskValue(Config.LayerNumber.Floor, true); SetCollisionMaskValue(Config.LayerNumber.Floor, true);
SetCollisionMaskValue(Config.LayerNumber.Barrier, true);
InputPickable = true; InputPickable = true;
} }

View File

@ -0,0 +1,18 @@
namespace ColdMint.scripts.furniture;
/// <summary>
/// <para>Barrier</para>
/// <para>屏障型家具</para>
/// </summary>
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);
}
}

View File

@ -31,6 +31,7 @@ public partial class Furniture : RigidBody2D
} }
_durability = _initialDurability; _durability = _initialDurability;
SetCollisionLayerValue(Config.LayerNumber.Furniture, true);
SetCollisionMaskValue(Config.LayerNumber.Wall, true); SetCollisionMaskValue(Config.LayerNumber.Wall, true);
SetCollisionMaskValue(Config.LayerNumber.Platform, true); SetCollisionMaskValue(Config.LayerNumber.Platform, true);
SetCollisionMaskValue(Config.LayerNumber.Floor, true); SetCollisionMaskValue(Config.LayerNumber.Floor, true);
@ -60,6 +61,11 @@ public partial class Furniture : RigidBody2D
/// </returns> /// </returns>
public bool Damage(DamageTemplate damageTemplate) public bool Damage(DamageTemplate damageTemplate)
{ {
return false; _durability -= damageTemplate.Damage;
if (_durability <= 0)
{
QueueFree();
}
return true;
} }
} }

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using ColdMint.scripts.camp; using ColdMint.scripts.camp;
using ColdMint.scripts.character; using ColdMint.scripts.character;
using ColdMint.scripts.damage; using ColdMint.scripts.damage;
using ColdMint.scripts.furniture;
using ColdMint.scripts.pickable; using ColdMint.scripts.pickable;
using ColdMint.scripts.projectile.decorator; using ColdMint.scripts.projectile.decorator;
using ColdMint.scripts.utils; using ColdMint.scripts.utils;
@ -117,6 +118,7 @@ public partial class Projectile : CharacterBody2D
SetCollisionMaskValue(Config.LayerNumber.Player, true); SetCollisionMaskValue(Config.LayerNumber.Player, true);
SetCollisionMaskValue(Config.LayerNumber.Mob, true); SetCollisionMaskValue(Config.LayerNumber.Mob, true);
SetCollisionMaskValue(Config.LayerNumber.PickAbleItem, true); SetCollisionMaskValue(Config.LayerNumber.PickAbleItem, true);
SetCollisionMaskValue(Config.LayerNumber.Barrier, true);
//Platform collision layer is not allowed to collide //Platform collision layer is not allowed to collide
//平台碰撞层不可碰撞 //平台碰撞层不可碰撞
SetCollisionMaskValue(Config.LayerNumber.Platform, false); SetCollisionMaskValue(Config.LayerNumber.Platform, false);
@ -191,6 +193,11 @@ public partial class Projectile : CharacterBody2D
return true; return true;
} }
if (target is Furniture)
{
return true;
}
if (target is PickAbleTemplate pickAbleTemplate) if (target is PickAbleTemplate pickAbleTemplate)
{ {
//The picked-up item cannot resist the bullet. //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, pickAbleTemplate.ApplyImpulse(new Vector2(normalized.X * _repelStrength * Config.CellSize,
normalized.Y * _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);
} }
} }

View File

@ -1,4 +1,3 @@
using ColdMint.scripts.debug;
using ColdMint.scripts.projectile; using ColdMint.scripts.projectile;
using ColdMint.scripts.projectile.decorator; using ColdMint.scripts.projectile.decorator;
using Godot; using Godot;
@ -31,10 +30,8 @@ public partial class NodeSpawnOnKillCharacterSpell : SpellPickAble
{ {
if (_nodeSpawnOnKillCharacterDecorator == null) if (_nodeSpawnOnKillCharacterDecorator == null)
{ {
LogCat.Log("添加失败");
return; return;
} }
LogCat.Log("添加成功");
projectile.AddProjectileDecorator(_nodeSpawnOnKillCharacterDecorator); projectile.AddProjectileDecorator(_nodeSpawnOnKillCharacterDecorator);
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -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

View File

@ -29,14 +29,15 @@ texture_region_size = Vector2i(32, 32)
1:2/0 = 0 1:2/0 = 0
1:2/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 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 = 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:2/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:1/0 = 0 0:1/0 = 0
0:1/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 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 = 0
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 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 = 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 = 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 = 0
2:0/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:0/0/physics_layer_2/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
4:0/0 = 0 4:0/0 = 0