help me please lord
This commit is contained in:
parent
368816e1ff
commit
8ceb6e1027
12 changed files with 54 additions and 34 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
TextEdit
|
||||||
CollisionShape2D
|
CollisionShape2D
|
||||||
Area2D
|
Area2D
|
||||||
Node
|
Node
|
||||||
|
@ -5,7 +6,6 @@ Sprite2D
|
||||||
Node2D
|
Node2D
|
||||||
StaticBody2D
|
StaticBody2D
|
||||||
RichTextLabel
|
RichTextLabel
|
||||||
TextEdit
|
|
||||||
Timer
|
Timer
|
||||||
AnimatedSprite2D
|
AnimatedSprite2D
|
||||||
Camera2D
|
Camera2D
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
dock_3_selected_tab_idx=0
|
dock_3_selected_tab_idx=0
|
||||||
dock_4_selected_tab_idx=0
|
dock_4_selected_tab_idx=0
|
||||||
dock_5_selected_tab_idx=1
|
dock_5_selected_tab_idx=0
|
||||||
dock_floating={}
|
dock_floating={}
|
||||||
dock_filesystem_h_split_offset=240
|
dock_filesystem_h_split_offset=240
|
||||||
dock_filesystem_v_split_offset=0
|
dock_filesystem_v_split_offset=0
|
||||||
|
@ -29,10 +29,11 @@ dock_5="Inspector,Node,History"
|
||||||
[EditorNode]
|
[EditorNode]
|
||||||
|
|
||||||
open_scenes=PackedStringArray("res://scenes/maps/map.tscn", "res://scenes/player-npc/player.tscn", "res://scenes/enemies/slime.tscn")
|
open_scenes=PackedStringArray("res://scenes/maps/map.tscn", "res://scenes/player-npc/player.tscn", "res://scenes/enemies/slime.tscn")
|
||||||
current_scene="res://scenes/maps/map.tscn"
|
current_scene="res://scenes/player-npc/player.tscn"
|
||||||
center_split_offset=-289
|
center_split_offset=-289
|
||||||
selected_default_debugger_tab_idx=0
|
selected_default_debugger_tab_idx=0
|
||||||
selected_main_editor_idx=0
|
selected_main_editor_idx=2
|
||||||
|
selected_bottom_panel_item=0
|
||||||
|
|
||||||
[EditorWindow]
|
[EditorWindow]
|
||||||
|
|
||||||
|
@ -48,11 +49,11 @@ selected_script="res://scripts/player.gd"
|
||||||
open_help=[]
|
open_help=[]
|
||||||
script_split_offset=200
|
script_split_offset=200
|
||||||
list_split_offset=0
|
list_split_offset=0
|
||||||
zoom_factor=1.07143
|
zoom_factor=0.928575
|
||||||
|
|
||||||
[GameView]
|
[GameView]
|
||||||
|
|
||||||
floating_window_rect=Rect2i(1920, 23, 1920, 1009)
|
floating_window_rect=Rect2i(2298, 151, 1164, 695)
|
||||||
floating_window_screen=2
|
floating_window_screen=2
|
||||||
|
|
||||||
[ShaderEditor]
|
[ShaderEditor]
|
||||||
|
|
|
@ -8,7 +8,7 @@ Anim={
|
||||||
"grid_snap_active": false,
|
"grid_snap_active": false,
|
||||||
"grid_step": Vector2(8, 8),
|
"grid_step": Vector2(8, 8),
|
||||||
"grid_visibility": 1,
|
"grid_visibility": 1,
|
||||||
"ofs": Vector2(-721.364, -472),
|
"ofs": Vector2(1999.81, -1932.01),
|
||||||
"primary_grid_step": Vector2i(8, 8),
|
"primary_grid_step": Vector2i(8, 8),
|
||||||
"show_group_gizmos": true,
|
"show_group_gizmos": true,
|
||||||
"show_guides": true,
|
"show_guides": true,
|
||||||
|
@ -34,7 +34,7 @@ Anim={
|
||||||
"snap_rotation_step": 0.261799,
|
"snap_rotation_step": 0.261799,
|
||||||
"snap_scale": false,
|
"snap_scale": false,
|
||||||
"snap_scale_step": 0.1,
|
"snap_scale_step": 0.1,
|
||||||
"zoom": 1.1
|
"zoom": 0.289664
|
||||||
}
|
}
|
||||||
3D={
|
3D={
|
||||||
"fov": 70.01,
|
"fov": 70.01,
|
||||||
|
@ -192,4 +192,4 @@ Game={
|
||||||
"hide_selection": true,
|
"hide_selection": true,
|
||||||
"select_mode": 1
|
"select_mode": 1
|
||||||
}
|
}
|
||||||
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@21272/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@54/@VBoxContainer@55/@EditorMainScreen@102/MainScreen/@CanvasItemEditor@11482/@VSplitContainer@11134/@HSplitContainer@11136/@HSplitContainer@11138/@Control@11139/@SubViewportContainer@11140/@SubViewport@11141/Game/conversations/Area2D")])
|
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@21272/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@54/@VBoxContainer@55/@EditorMainScreen@102/MainScreen/@CanvasItemEditor@11482/@VSplitContainer@11134/@HSplitContainer@11136/@HSplitContainer@11138/@Control@11139/@SubViewportContainer@11140/@SubViewport@11141/Player/TextEdit")])
|
||||||
|
|
|
@ -8,7 +8,7 @@ Anim={
|
||||||
"grid_snap_active": false,
|
"grid_snap_active": false,
|
||||||
"grid_step": Vector2(8, 8),
|
"grid_step": Vector2(8, 8),
|
||||||
"grid_visibility": 1,
|
"grid_visibility": 1,
|
||||||
"ofs": Vector2(-96056.7, -43555.7),
|
"ofs": Vector2(-210.168, -100.509),
|
||||||
"primary_grid_step": Vector2i(8, 8),
|
"primary_grid_step": Vector2i(8, 8),
|
||||||
"show_group_gizmos": true,
|
"show_group_gizmos": true,
|
||||||
"show_guides": true,
|
"show_guides": true,
|
||||||
|
@ -34,7 +34,7 @@ Anim={
|
||||||
"snap_rotation_step": 0.261799,
|
"snap_rotation_step": 0.261799,
|
||||||
"snap_scale": false,
|
"snap_scale": false,
|
||||||
"snap_scale_step": 0.1,
|
"snap_scale_step": 0.1,
|
||||||
"zoom": 0.0078125
|
"zoom": 2.85312
|
||||||
}
|
}
|
||||||
3D={
|
3D={
|
||||||
"fov": 70.01,
|
"fov": 70.01,
|
||||||
|
@ -192,4 +192,4 @@ Game={
|
||||||
"hide_selection": false,
|
"hide_selection": false,
|
||||||
"select_mode": 0
|
"select_mode": 0
|
||||||
}
|
}
|
||||||
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@21272/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@54/@VBoxContainer@55/@EditorMainScreen@102/MainScreen/@CanvasItemEditor@11482/@VSplitContainer@11134/@HSplitContainer@11136/@HSplitContainer@11138/@Control@11139/@SubViewportContainer@11140/@SubViewport@11141/Game/conversations/Area2D")])
|
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@21272/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@54/@VBoxContainer@55/@EditorMainScreen@102/MainScreen/@CanvasItemEditor@11482/@VSplitContainer@11134/@HSplitContainer@11136/@HSplitContainer@11138/@Control@11139/@SubViewportContainer@11140/@SubViewport@11141/Player/TextEdit")])
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[folding]
|
[folding]
|
||||||
|
|
||||||
node_unfolds=[NodePath("."), PackedStringArray("Collision"), NodePath("healthbar"), PackedStringArray("Visibility"), NodePath("DodgeCoolDownBar"), PackedStringArray("Visibility")]
|
node_unfolds=[NodePath("."), PackedStringArray("Collision"), NodePath("healthbar"), PackedStringArray("Visibility"), NodePath("DodgeCoolDownBar"), PackedStringArray("Visibility"), NodePath("TextEdit"), PackedStringArray("Visibility")]
|
||||||
resource_unfolds=["res://scenes/player-npc/player.tscn::SpriteFrames_tfyf1", PackedStringArray(), "res://scenes/player-npc/player.tscn::RectangleShape2D_oqexx", PackedStringArray(), "res://scenes/player-npc/player.tscn::CircleShape2D_fb3s1", PackedStringArray()]
|
resource_unfolds=["res://scenes/player-npc/player.tscn::SpriteFrames_tfyf1", PackedStringArray(), "res://scenes/player-npc/player.tscn::RectangleShape2D_oqexx", PackedStringArray(), "res://scenes/player-npc/player.tscn::CircleShape2D_fb3s1", PackedStringArray()]
|
||||||
nodes_folded=[NodePath("player_hitbox")]
|
nodes_folded=[NodePath("player_hitbox")]
|
||||||
|
|
|
@ -21,7 +21,7 @@ search_help=Rect2(2400, 270, 960, 540)
|
||||||
|
|
||||||
[project_settings]
|
[project_settings]
|
||||||
|
|
||||||
show_builtin_actions=false
|
show_builtin_actions=true
|
||||||
|
|
||||||
[color_picker]
|
[color_picker]
|
||||||
|
|
||||||
|
|
|
@ -3,16 +3,12 @@
|
||||||
state={
|
state={
|
||||||
"bookmarks": PackedInt32Array(),
|
"bookmarks": PackedInt32Array(),
|
||||||
"breakpoints": PackedInt32Array(),
|
"breakpoints": PackedInt32Array(),
|
||||||
"column": 30,
|
"column": 28,
|
||||||
"folded_lines": Array[int]([]),
|
"folded_lines": Array[int]([]),
|
||||||
"h_scroll_position": 0,
|
"h_scroll_position": 0,
|
||||||
"row": 379,
|
"row": 412,
|
||||||
"scroll_position": 404.0,
|
"scroll_position": 397.0,
|
||||||
"selection": true,
|
"selection": false,
|
||||||
"selection_from_column": 2,
|
|
||||||
"selection_from_line": 379,
|
|
||||||
"selection_to_column": 30,
|
|
||||||
"selection_to_line": 379,
|
|
||||||
"syntax_highlighter": "GDScript"
|
"syntax_highlighter": "GDScript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +21,7 @@ state={
|
||||||
"folded_lines": Array[int]([]),
|
"folded_lines": Array[int]([]),
|
||||||
"h_scroll_position": 0,
|
"h_scroll_position": 0,
|
||||||
"row": 94,
|
"row": 94,
|
||||||
"scroll_position": 98.0,
|
"scroll_position": 94.0,
|
||||||
"selection": false,
|
"selection": false,
|
||||||
"syntax_highlighter": "GDScript"
|
"syntax_highlighter": "GDScript"
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,4 +192,4 @@ Game={
|
||||||
"hide_selection": false,
|
"hide_selection": false,
|
||||||
"select_mode": 0
|
"select_mode": 0
|
||||||
}
|
}
|
||||||
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@21272/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@54/@VBoxContainer@55/@EditorMainScreen@102/MainScreen/@CanvasItemEditor@11482/@VSplitContainer@11134/@HSplitContainer@11136/@HSplitContainer@11138/@Control@11139/@SubViewportContainer@11140/@SubViewport@11141/Game/conversations/Area2D")])
|
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@21272/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@54/@VBoxContainer@55/@EditorMainScreen@102/MainScreen/@CanvasItemEditor@11482/@VSplitContainer@11134/@HSplitContainer@11136/@HSplitContainer@11138/@Control@11139/@SubViewportContainer@11140/@SubViewport@11141/Player/TextEdit")])
|
||||||
|
|
|
@ -21,6 +21,12 @@ global="*res://scripts/global.gd"
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
|
ui_accept={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
ui_left={
|
ui_left={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
|
|
@ -2396,6 +2396,7 @@ texture = SubResource("AtlasTexture_ttkqu")
|
||||||
[node name="conversations" type="Node" parent="."]
|
[node name="conversations" type="Node" parent="."]
|
||||||
|
|
||||||
[node name="Area2D" type="Area2D" parent="conversations"]
|
[node name="Area2D" type="Area2D" parent="conversations"]
|
||||||
|
position = Vector2(-25, 41)
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="conversations/Area2D"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="conversations/Area2D"]
|
||||||
position = Vector2(24, -69)
|
position = Vector2(24, -69)
|
||||||
|
|
|
@ -497,6 +497,15 @@ fit_content = true
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
autowrap_mode = 0
|
autowrap_mode = 0
|
||||||
|
|
||||||
|
[node name="TextEdit" type="TextEdit" parent="."]
|
||||||
|
visible = false
|
||||||
|
offset_left = -141.0
|
||||||
|
offset_top = 15.0
|
||||||
|
offset_right = 143.0
|
||||||
|
offset_bottom = 79.0
|
||||||
|
editable = false
|
||||||
|
wrap_mode = 1
|
||||||
|
|
||||||
[connection signal="body_entered" from="player_hitbox" to="." method="_on_player_hitbox_body_entered"]
|
[connection signal="body_entered" from="player_hitbox" to="." method="_on_player_hitbox_body_entered"]
|
||||||
[connection signal="body_exited" from="player_hitbox" to="." method="_on_player_hitbox_body_exited"]
|
[connection signal="body_exited" from="player_hitbox" to="." method="_on_player_hitbox_body_exited"]
|
||||||
[connection signal="timeout" from="attack_cooldown" to="." method="_on_attack_cooldown_timeout"]
|
[connection signal="timeout" from="attack_cooldown" to="." method="_on_attack_cooldown_timeout"]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
extends CharacterBody2D
|
extends CharacterBody2D
|
||||||
|
|
||||||
const speed = 100
|
const speed = 250 # return to 100 before handin
|
||||||
const dodge_speed = 200 # Speed during dodge
|
const dodge_speed = 500 # Speed during dodge --> return to 200 before handin
|
||||||
const dodge_duration = 0.5 # How long the dodge lasts (in seconds)
|
const dodge_duration = 0.5 # How long the dodge lasts (in seconds)
|
||||||
const dodge_cooldown_time = 3.0 # Dodge cooldown (in seconds)
|
const dodge_cooldown_time = 3.0 # Dodge cooldown (in seconds)
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ var dodge_cooldown_active = false
|
||||||
|
|
||||||
var enemy_in_attack_range = false
|
var enemy_in_attack_range = false
|
||||||
var enemy_attack_cooldown = true
|
var enemy_attack_cooldown = true
|
||||||
var healt = 100
|
var healt = 64806524502 # return to 100 before turnin
|
||||||
var player_alive = true
|
var player_alive = true
|
||||||
var attack_ip = false
|
var attack_ip = false
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ func resetGame():
|
||||||
has_blue_potion = false
|
has_blue_potion = false
|
||||||
has_red_potion = false
|
has_red_potion = false
|
||||||
has_green_potion = false
|
has_green_potion = false
|
||||||
coin_count = 0
|
|
||||||
current_direction = "none"
|
current_direction = "none"
|
||||||
is_dodging = false
|
is_dodging = false
|
||||||
dodge_cooldown_active = false
|
dodge_cooldown_active = false
|
||||||
|
@ -340,41 +339,48 @@ func pickUpCoin1(body: Node2D) -> void:
|
||||||
if body == self:
|
if body == self:
|
||||||
$"../collectables/coins/coin1".queue_free()
|
$"../collectables/coins/coin1".queue_free()
|
||||||
coin_count +=1
|
coin_count +=1
|
||||||
|
print(coin_count)
|
||||||
|
|
||||||
func pickUpCoin2(body: Node2D) -> void:
|
func pickUpCoin2(body: Node2D) -> void:
|
||||||
if body == self:
|
if body == self:
|
||||||
$"../collectables/coins/coin2".queue_free()
|
$"../collectables/coins/coin2".queue_free()
|
||||||
coin_count +=1
|
coin_count +=1
|
||||||
|
print(coin_count)
|
||||||
|
|
||||||
|
|
||||||
func pickUpCoin3(body: Node2D) -> void:
|
func pickUpCoin3(body: Node2D) -> void:
|
||||||
if body == self:
|
if body == self:
|
||||||
$"../collectables/coins/coin3".queue_free()
|
$"../collectables/coins/coin3".queue_free()
|
||||||
coin_count +=1
|
coin_count +=1
|
||||||
|
print(coin_count)
|
||||||
|
|
||||||
|
|
||||||
func pickUpCoin4(body: Node2D) -> void:
|
func pickUpCoin4(body: Node2D) -> void:
|
||||||
if body == self:
|
if body == self:
|
||||||
$"../collectables/coins/coin4".queue_free()
|
$"../collectables/coins/coin4".queue_free()
|
||||||
coin_count +=1
|
coin_count +=1
|
||||||
|
print(coin_count)
|
||||||
|
|
||||||
|
|
||||||
func pickUpCoin5(body: Node2D) -> void:
|
func pickUpCoin5(body: Node2D) -> void:
|
||||||
if body == self:
|
if body == self:
|
||||||
$"../collectables/coins/coin5".queue_free()
|
$"../collectables/coins/coin5".queue_free()
|
||||||
coin_count +=1
|
coin_count +=1
|
||||||
|
print(coin_count)
|
||||||
|
|
||||||
|
|
||||||
func pickUpCoin6(body: Node2D) -> void:
|
func pickUpCoin6(body: Node2D) -> void:
|
||||||
if body == self:
|
if body == self:
|
||||||
$"../collectables/coins/coin6".queue_free()
|
$"../collectables/coins/coin6".queue_free()
|
||||||
coin_count +=1
|
coin_count +=1
|
||||||
|
print(coin_count)
|
||||||
|
|
||||||
|
|
||||||
func pickUpCoin7(body: Node2D) -> void:
|
func pickUpCoin7(body: Node2D) -> void:
|
||||||
if body == self:
|
if body == self:
|
||||||
$"../collectables/coins/coin7".queue_free()
|
$"../collectables/coins/coin7".queue_free()
|
||||||
coin_count += 1
|
coin_count += 1
|
||||||
|
print(coin_count)
|
||||||
|
|
||||||
|
|
||||||
func wizardTalking(body: Node2D) -> void:
|
func wizardTalking(body: Node2D) -> void:
|
||||||
|
@ -393,8 +399,7 @@ func wizardTalking(body: Node2D) -> void:
|
||||||
)
|
)
|
||||||
gameEnd()
|
gameEnd()
|
||||||
else:
|
else:
|
||||||
print(
|
var text = "Ah... you're not from this world, are you? Curious. Your aura—it's foreign, like a breeze from a land long forgotten.
|
||||||
"Ah... you're not from this world, are you? Curious. Your aura—it's foreign, like a breeze from a land long forgotten.
|
|
||||||
Fear not! I can send you back... but the spell requires three ancient potions: red, green, and blue. They're scattered deep within this slime-infested forest. Charming place, really.
|
Fear not! I can send you back... but the spell requires three ancient potions: red, green, and blue. They're scattered deep within this slime-infested forest. Charming place, really.
|
||||||
|
|
||||||
Oh, before you go stumbling into a slime's belly, a few pointers:
|
Oh, before you go stumbling into a slime's belly, a few pointers:
|
||||||
|
@ -403,11 +408,13 @@ func wizardTalking(body: Node2D) -> void:
|
||||||
and to deal with trouble, just left-click or press E to strike.
|
and to deal with trouble, just left-click or press E to strike.
|
||||||
|
|
||||||
Now go! The forest won’t wait... and neither will the slimes."
|
Now go! The forest won’t wait... and neither will the slimes."
|
||||||
)
|
$"TextEdit".visible = true
|
||||||
|
while Input.is_action_just_pressed("ui_accept"):
|
||||||
|
$"TextEdit".text = "test"
|
||||||
|
|
||||||
|
|
||||||
func knightTalking(body: Node2D) -> void:
|
func knightTalking(body: Node2D) -> void:
|
||||||
if body == self and coin_count >= 7:
|
if body == self and coin_count >= 6:
|
||||||
print(
|
print(
|
||||||
"...Well now. You actually returned... and with all seven coins of Lazaret, no less.
|
"...Well now. You actually returned... and with all seven coins of Lazaret, no less.
|
||||||
|
|
||||||
|
@ -428,7 +435,7 @@ func knightTalking(body: Node2D) -> void:
|
||||||
|
|
||||||
Know this: that potion is not yours for the taking—not yet. Only those who prove their worth may claim it.
|
Know this: that potion is not yours for the taking—not yet. Only those who prove their worth may claim it.
|
||||||
|
|
||||||
Venture into the dungeon below and retrieve the Seven Gold Coins of Lazaret. Only then will I raise this gate.
|
Venture into the dungeon below and retrieve the Sixa Gold Coins of Lazaret. Only then will I raise this gate.
|
||||||
|
|
||||||
Do not return empty-handed... or not at all."
|
Do not return empty-handed... or not at all."
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue