More work on taking quests
This commit is contained in:
@@ -1,33 +1,6 @@
|
||||
class_name Adventurer extends CharacterBody2D
|
||||
class_name Adventurer extends Npc
|
||||
|
||||
const popup_template = preload("res://profile_popup.tscn")
|
||||
var profile_popup
|
||||
|
||||
@onready var bt_player : BTPlayer = $BTPlayer
|
||||
@export var movement_speed : float = 400.0
|
||||
@onready var movement_target_position : Vector2 = global_position
|
||||
@onready var nav_agent : NavigationAgent2D = $NavigationAgent2D
|
||||
|
||||
var data : AdventurerData = null
|
||||
var interaction_target = null
|
||||
var last_position : Vector2 = Vector2.ZERO
|
||||
var stuck : bool = false
|
||||
var stuck_time_remaining : float = 0
|
||||
var busy : bool = false
|
||||
var _activity : String = ""
|
||||
var activity : String :
|
||||
get:
|
||||
return _activity
|
||||
set(value):
|
||||
_activity = value
|
||||
if profile_popup:
|
||||
profile_popup.change_activity(_activity)
|
||||
@onready var bubble : SpeechBubble = $SpeechBubble
|
||||
@export var interaction_range : float = 75
|
||||
@export var stop_range : float = 25
|
||||
|
||||
signal navigation_finished()
|
||||
signal navigation_failed()
|
||||
|
||||
func _ready() -> void:
|
||||
nav_agent.navigation_finished.connect(_on_nav_agent_finished)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=13 format=4 uid="uid://cd08dp16bixfv"]
|
||||
[gd_scene load_steps=14 format=4 uid="uid://cd08dp16bixfv"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ccorfvcfa84gf" path="res://guildhall.gd" id="1_lsinl"]
|
||||
[ext_resource type="TileSet" uid="uid://6im0g3eg6sr4" path="res://test_tiles.tres" id="1_qel1r"]
|
||||
@@ -7,7 +7,9 @@
|
||||
[ext_resource type="Texture2D" uid="uid://cg6ptmynq0aq0" path="res://basic-sprite.png" id="4_l3mu1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cf6nnjyp8kv78" path="res://receptionist.tscn" id="5_l3mu1"]
|
||||
[ext_resource type="Texture2D" uid="uid://bnt2dlv7kxw7s" path="res://questboard.png" id="6_2wofw"]
|
||||
[ext_resource type="Script" uid="uid://blo7tb5135vfm" path="res://quest_board.gd" id="7_bog1h"]
|
||||
[ext_resource type="Script" uid="uid://b0q2233msdtgo" path="res://guild_queue.gd" id="7_hph4e"]
|
||||
[ext_resource type="PackedScene" uid="uid://drrtypncppjps" path="res://quest_board_window.tscn" id="8_uo85v"]
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_w7eqs"]
|
||||
vertices = PackedVector2Array(591.3203, 170.54688, 591.3125, 170.53906, 614.1094, 159.47656, 694.9531, 80.92969, 694.9375, 80.921875, 702.6406, 67, 1053, 67, 1053, 605, 665.27344, 134.64063, 35, 605, 578.35156, 176.85938, 512.60156, 177.99219, 445.89844, 179.14063, 35, 35, 432.14063, 172.14844, 432.14063, 172.14063, 406.6172, 159.21875, 368.17188, 139.71875, 368.17188, 139.71094, 357.59375, 134.42969, 326.3125, 77.5625, 324.82813, 35, 325.8828, 65.21875)
|
||||
@@ -25,10 +27,6 @@ vertices = PackedVector2Array(117.96875, 286, 9.96875, 286, 9.03125, 0, 117.0312
|
||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||
outlines = Array[PackedVector2Array]([PackedVector2Array(-1, -10, 127, -10, 128, 296, 0, 296)])
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_hph4e"]
|
||||
radius = 25.0
|
||||
height = 282.0
|
||||
|
||||
[node name="Guildhall" type="Node2D"]
|
||||
script = ExtResource("1_lsinl")
|
||||
|
||||
@@ -85,14 +83,18 @@ navigation_polygon = SubResource("NavigationPolygon_l3mu1")
|
||||
|
||||
[node name="Quest Board" type="StaticBody2D" parent="."]
|
||||
position = Vector2(935, 32)
|
||||
script = ExtResource("7_bog1h")
|
||||
|
||||
[node name="QuestBoardWindow" parent="Quest Board" instance=ExtResource("8_uo85v")]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Quest Board"]
|
||||
position = Vector2(0, -64)
|
||||
texture = ExtResource("6_2wofw")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Quest Board"]
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Quest Board"]
|
||||
position = Vector2(-1, 11)
|
||||
rotation = 1.5707964
|
||||
shape = SubResource("CapsuleShape2D_hph4e")
|
||||
polygon = PackedVector2Array(-39.999996, 128, -26.999994, 139, -3.9999943, 139, 12.000006, 129, 13.999994, -127, -7.6293945e-06, -140, -30.000008, -140, -43.000008, -126)
|
||||
|
||||
[node name="Queue" type="Node2D" parent="Quest Board"]
|
||||
position = Vector2(-12, 44)
|
||||
|
||||
@@ -18,8 +18,8 @@ func enable(en: bool) -> void:
|
||||
else:
|
||||
mouse_filter=Control.MOUSE_FILTER_IGNORE
|
||||
|
||||
func setup(adv : AdventurerData) -> void:
|
||||
data = adv
|
||||
func setup(member : AdventurerData) -> void:
|
||||
data = member
|
||||
%NameLabel.text = data.given_name + " " + data.surname
|
||||
%LevelLabel.text = str(data.level)
|
||||
if data.job:
|
||||
|
||||
31
npc.gd
Normal file
31
npc.gd
Normal file
@@ -0,0 +1,31 @@
|
||||
class_name Npc extends Person
|
||||
|
||||
const popup_template = preload("res://profile_popup.tscn")
|
||||
var profile_popup
|
||||
|
||||
@export var is_player : bool = false
|
||||
@onready var bt_player : BTPlayer = $BTPlayer
|
||||
@export var movement_speed : float = 400.0
|
||||
@onready var movement_target_position : Vector2 = global_position
|
||||
@onready var nav_agent : NavigationAgent2D = $NavigationAgent2D
|
||||
|
||||
var data : AdventurerData = null
|
||||
var interaction_target = null
|
||||
var last_position : Vector2 = Vector2.ZERO
|
||||
var stuck : bool = false
|
||||
var stuck_time_remaining : float = 0
|
||||
var busy : bool = false
|
||||
var _activity : String = ""
|
||||
var activity : String :
|
||||
get:
|
||||
return _activity
|
||||
set(value):
|
||||
_activity = value
|
||||
if profile_popup:
|
||||
profile_popup.change_activity(_activity)
|
||||
@onready var bubble : SpeechBubble = $SpeechBubble
|
||||
@export var interaction_range : float = 75
|
||||
@export var stop_range : float = 25
|
||||
|
||||
signal navigation_finished()
|
||||
signal navigation_failed()
|
||||
1
npc.gd.uid
Normal file
1
npc.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bh54wpqgau8hc
|
||||
1
person.gd.uid
Normal file
1
person.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cr3kvsepqabgt
|
||||
@@ -1,4 +1,4 @@
|
||||
class_name Player extends CharacterBody2D
|
||||
class_name Player extends Person
|
||||
|
||||
@onready var movement_speed : float = 400.0
|
||||
@onready var movement_target_position : Vector2 = global_position
|
||||
@@ -7,8 +7,12 @@ class_name Player extends CharacterBody2D
|
||||
var interaction_target = null
|
||||
@export var interaction_range : float = 75
|
||||
@export var stop_range : float = 25
|
||||
var data : AdventurerData
|
||||
|
||||
func _ready() -> void:
|
||||
Game.player = self
|
||||
data = AdventurerData.new()
|
||||
data.name = "Player"
|
||||
setup.call_deferred()
|
||||
|
||||
|
||||
|
||||
22
quest.gd
22
quest.gd
@@ -1,6 +1,12 @@
|
||||
class_name Quest extends Object
|
||||
|
||||
|
||||
|
||||
enum Status{
|
||||
OPEN,
|
||||
TAKEN,
|
||||
IN_PROGRESS,
|
||||
COMPLETED
|
||||
}
|
||||
|
||||
|
||||
var name : String = "A Basic Quest"
|
||||
@@ -20,9 +26,19 @@ var current_step : int = 0
|
||||
var taken : bool = false
|
||||
|
||||
var questor : AdventurerData = null
|
||||
var entry : QuestLogEntry = null
|
||||
signal status_changed(status : Status)
|
||||
|
||||
func initiate(member : AdventurerData) -> void:
|
||||
questor = member
|
||||
taken = true
|
||||
entry.update()
|
||||
status_changed.emit(Status.TAKEN)
|
||||
|
||||
func difficulty_name() -> String:
|
||||
match(difficulty):
|
||||
0: return "None"
|
||||
1: return "Trivial"
|
||||
2: return "Moderate"
|
||||
3: return "Severe"
|
||||
4: return "Extreme"
|
||||
5: return "Legendary"
|
||||
_: return "Unknown"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
class_name QuestBoard extends Interactable
|
||||
|
||||
|
||||
@onready var polygon : CollisionPolygon2D = $CollisionPolygon2D
|
||||
@onready var window : QuestBoardWindow = $QuestBoardWindow
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
class_name QuestBoardEntry extends TextureButton
|
||||
class_name QuestBoardEntry extends Button
|
||||
|
||||
|
||||
const quest_window_template = preload("res://quest_window.tscn")
|
||||
var quest : Quest = null
|
||||
@onready var icon : TextureRect = %Icon
|
||||
@onready var tex_icon : TextureRect = %Icon
|
||||
@onready var name_label : Label = %NameLabel
|
||||
@onready var status_label : Label = %StatusLabel
|
||||
|
||||
@@ -15,5 +17,8 @@ func update() -> void:
|
||||
|
||||
|
||||
func _on_pressed() -> void:
|
||||
if pressed:
|
||||
Guild.assign_quest(player.member, quest)
|
||||
var window = quest_window_template.instantiate()
|
||||
window.setup(quest, true)
|
||||
add_child(window)
|
||||
window.popup_centered()
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
[ext_resource type="Script" uid="uid://hsks1qah12sh" path="res://quest_board_entry.gd" id="1_qfdrh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://icon.svg" id="2_ovx2i"]
|
||||
|
||||
[node name="QuestBoardEntry" type="TextureButton"]
|
||||
[node name="QuestBoardEntry" type="Button"]
|
||||
custom_minimum_size = Vector2(200, 50)
|
||||
offset_right = 200.0
|
||||
offset_bottom = 50.0
|
||||
@@ -13,16 +13,19 @@ script = ExtResource("1_qfdrh")
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Icon" type="TextureRect" parent="HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(50, 50)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
texture = ExtResource("2_ovx2i")
|
||||
expand_mode = 1
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="NameLabel" type="Label" parent="HBoxContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
class_name QuestBoardWindow extends Window
|
||||
class_name QuestBoardWindow extends Popup
|
||||
|
||||
const entry_template = preload("res://quest_log_entry.tscn")
|
||||
const entry_template = preload("res://quest_board_entry.tscn")
|
||||
|
||||
@onready var entry_list : VBoxContainer = %Entries
|
||||
var entries : Array[QuestLogEntry] = []
|
||||
var entries : Array[QuestBoardEntry] = []
|
||||
|
||||
func populate(quests : Array[Quest]) -> void:
|
||||
for entry in entries:
|
||||
@@ -14,7 +14,7 @@ func populate(quests : Array[Quest]) -> void:
|
||||
add_entry(quest)
|
||||
|
||||
func add_entry(quest : Quest) -> void:
|
||||
var qle : QuestLogEntry = entry_template.instantiate()
|
||||
var qle : QuestBoardEntry = entry_template.instantiate()
|
||||
entries.append(qle)
|
||||
entry_list.add_child(qle)
|
||||
qle.setup(quest)
|
||||
|
||||
@@ -2,19 +2,25 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://de4lnikqqk7b4" path="res://quest_board_window.gd" id="1_0tsne"]
|
||||
|
||||
[node name="QuestBoardWindow" type="Window"]
|
||||
[node name="QuestBoardWindow" type="PopupPanel"]
|
||||
handle_input_locally = false
|
||||
oversampling_override = 1.0
|
||||
title = "Quest Board"
|
||||
size = Vector2i(231, 282)
|
||||
popup_window = true
|
||||
visible = true
|
||||
script = ExtResource("1_0tsne")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 4.0
|
||||
offset_top = 4.0
|
||||
offset_right = -4.0
|
||||
offset_bottom = -4.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 5
|
||||
theme_override_constants/margin_top = 5
|
||||
theme_override_constants/margin_right = 5
|
||||
@@ -23,9 +29,11 @@ theme_override_constants/margin_bottom = 5
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer"]
|
||||
custom_minimum_size = Vector2(205, 215)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Entries" type="VBoxContainer" parent="MarginContainer/ScrollContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[connection signal="close_requested" from="." to="." method="_on_close_requested"]
|
||||
|
||||
@@ -10,7 +10,6 @@ func _ready() -> void:
|
||||
|
||||
func add_entry(quest : Quest) -> void:
|
||||
var qle : QuestLogEntry = entry_template.instantiate()
|
||||
quest.entry = qle
|
||||
entries.append(qle)
|
||||
entry_list.add_child(qle)
|
||||
qle.setup(quest)
|
||||
|
||||
@@ -9,6 +9,10 @@ func setup(quest : Quest) -> void:
|
||||
self.quest = quest
|
||||
name_label.text = quest.name
|
||||
status_label.text = "Available" if !quest.taken else "Unavailable"
|
||||
quest.status_changed.connect(_on_quest_status_changed)
|
||||
|
||||
func update() -> void:
|
||||
status_label.text = "Available" if !quest.taken else "Unavailable"
|
||||
|
||||
func _on_quest_status_changed(status : Quest.Status) -> void:
|
||||
update()
|
||||
|
||||
36
quest_window.gd
Normal file
36
quest_window.gd
Normal file
@@ -0,0 +1,36 @@
|
||||
extends Window
|
||||
|
||||
var quest : Quest
|
||||
|
||||
func setup(qst : Quest, board : bool) -> void:
|
||||
quest = qst
|
||||
quest.status_changed.connect(_on_quest_status_changed)
|
||||
%NameField.text = quest.name
|
||||
%DifficultyField.text = quest.difficulty_name()
|
||||
%LocationField.text = quest.location
|
||||
if !board:
|
||||
%AcceptButton.hide()
|
||||
|
||||
if quest.taken:
|
||||
%StatusField.text = "Taken"
|
||||
%AcceptButton.disabled = true
|
||||
else:
|
||||
%StatusField.text = "OPEN"
|
||||
%AcceptButton.disabled = false
|
||||
|
||||
|
||||
func _on_quest_status_changed(status : Quest.Status) -> void:
|
||||
if status == Quest.Status.COMPLETED:
|
||||
queue_free()
|
||||
if quest.taken:
|
||||
%StatusField.text = "Taken"
|
||||
%AcceptButton.disabled = true
|
||||
else:
|
||||
%StatusField.text = "OPEN"
|
||||
%AcceptButton.disabled = false
|
||||
|
||||
func _on_accept_pressed() -> void:
|
||||
Guild.assign_quest(Game.player.data, quest)
|
||||
|
||||
func _on_close_button_pressed() -> void:
|
||||
queue_free()
|
||||
1
quest_window.gd.uid
Normal file
1
quest_window.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b3flxu0sduc1
|
||||
116
quest_window.tscn
Normal file
116
quest_window.tscn
Normal file
@@ -0,0 +1,116 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://ba2wunbmxgevl"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b3flxu0sduc1" path="res://quest_window.gd" id="1_qk27i"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://icon.svg" id="2_bctmf"]
|
||||
|
||||
[node name="QuestWindow" type="Popup"]
|
||||
oversampling_override = 1.0
|
||||
size = Vector2i(500, 655)
|
||||
visible = true
|
||||
exclusive = true
|
||||
script = ExtResource("1_qk27i")
|
||||
|
||||
[node name="PostQuest" type="VBoxContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="PostQuest"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PostQuest/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("2_bctmf")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PostQuest/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="PostQuest/HBoxContainer2/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Quest Name"
|
||||
|
||||
[node name="NameField" type="Label" parent="PostQuest/HBoxContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(0.7204674, 0.7204675, 0.7204674, 1)
|
||||
custom_minimum_size = Vector2(365, 35)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "A Simple Task"
|
||||
|
||||
[node name="Label2" type="Label" parent="PostQuest/HBoxContainer2/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Difficulty"
|
||||
|
||||
[node name="DifficultyField" type="Label" parent="PostQuest/HBoxContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(0.7204674, 0.7204675, 0.7204674, 1)
|
||||
custom_minimum_size = Vector2(365, 35)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "Trivial"
|
||||
|
||||
[node name="Label3" type="Label" parent="PostQuest"]
|
||||
layout_mode = 2
|
||||
text = "Location"
|
||||
|
||||
[node name="LocationField" type="Label" parent="PostQuest"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(0.72156864, 0.72156864, 0.72156864, 1)
|
||||
custom_minimum_size = Vector2(480, 35)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "Nestor Woods"
|
||||
|
||||
[node name="Label4" type="Label" parent="PostQuest"]
|
||||
layout_mode = 2
|
||||
text = "Reward"
|
||||
|
||||
[node name="RewardField" type="TextEdit" parent="PostQuest"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(0.7204674, 0.7204675, 0.7204674, 1)
|
||||
custom_minimum_size = Vector2(480, 300)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "Reward"
|
||||
editable = false
|
||||
context_menu_enabled = false
|
||||
emoji_menu_enabled = false
|
||||
shortcut_keys_enabled = false
|
||||
selecting_enabled = false
|
||||
deselect_on_focus_loss_enabled = false
|
||||
drag_and_drop_selection_enabled = false
|
||||
virtual_keyboard_enabled = false
|
||||
virtual_keyboard_show_on_focus = false
|
||||
middle_mouse_paste_enabled = false
|
||||
empty_selection_clipboard_enabled = false
|
||||
tab_input_mode = false
|
||||
use_default_word_separators = false
|
||||
|
||||
[node name="Label5" type="Label" parent="PostQuest"]
|
||||
layout_mode = 2
|
||||
text = "Status"
|
||||
|
||||
[node name="StatusField" type="Label" parent="PostQuest"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(0.7204674, 0.7204675, 0.7204674, 1)
|
||||
custom_minimum_size = Vector2(480, 35)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "(Status here)"
|
||||
|
||||
[node name="OptionsList" type="HBoxContainer" parent="PostQuest"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AcceptButton" type="Button" parent="PostQuest/OptionsList"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(248, 60)
|
||||
layout_mode = 2
|
||||
text = "ACCEPT"
|
||||
|
||||
[node name="CloseButton" type="Button" parent="PostQuest/OptionsList"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(248, 60)
|
||||
layout_mode = 2
|
||||
text = "CLOSE"
|
||||
|
||||
[connection signal="pressed" from="PostQuest/OptionsList/AcceptButton" to="." method="_on_accept_pressed"]
|
||||
[connection signal="pressed" from="PostQuest/OptionsList/CloseButton" to="." method="_on_close_button_pressed"]
|
||||
@@ -2,7 +2,7 @@ extends Node2D
|
||||
|
||||
var test_adv = preload("res://test_adventurer.tscn")
|
||||
func _ready() -> void:
|
||||
var adv : AdventurerData = test_adv.instantiate() as AdventurerData
|
||||
Guild.register_guild_member(adv)
|
||||
#var adv : AdventurerData = test_adv.instantiate() as AdventurerData
|
||||
#Guild.register_guild_member(adv)
|
||||
var quest : Quest = Quest.new()
|
||||
Guild.add_quest(quest)
|
||||
|
||||
12
top_menu.gd
12
top_menu.gd
@@ -9,20 +9,28 @@ const quest_panel_entry_template = preload("res://quest_panel_entry.tscn")
|
||||
@onready var quests = %Quests
|
||||
func _ready() -> void:
|
||||
Game.top_menu = self
|
||||
|
||||
func hide_submenus() -> void:
|
||||
members.visible = false
|
||||
quests.visible = false
|
||||
|
||||
func _on_members_button_pressed() -> void:
|
||||
if !members.visible:
|
||||
hide_submenus()
|
||||
members.visible = !members.visible
|
||||
for child in members_list.get_children():
|
||||
child.enabled = members.visible
|
||||
|
||||
func _on_quests_button_pressed() -> void:
|
||||
if !quests.visible:
|
||||
hide_submenus()
|
||||
quests.visible = !quests.visible
|
||||
for child in quest_list.get_children():
|
||||
child.enabled = quests.visible
|
||||
|
||||
func add_member(data : AdventurerData) -> void:
|
||||
func add_member(member : AdventurerData) -> void:
|
||||
var entry = member_panel_entry_template.instantiate()
|
||||
entry.setup(data)
|
||||
entry.setup(member)
|
||||
members_list.add_child(entry)
|
||||
|
||||
func add_quest(quest : Quest) -> void:
|
||||
|
||||
@@ -24,6 +24,7 @@ anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
script = ExtResource("1_o3fau")
|
||||
|
||||
[node name="Menu" type="Control" parent="."]
|
||||
@@ -74,9 +75,9 @@ texture_hover = ExtResource("6_8h6j7")
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 0
|
||||
offset_top = 53.0
|
||||
offset_top = 109.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 93.0
|
||||
offset_bottom = 149.0
|
||||
|
||||
[node name="Panel" type="PanelContainer" parent="Members"]
|
||||
layout_mode = 0
|
||||
@@ -143,19 +144,6 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("9_ehkcg")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="GenerateQuestDialog"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -4.0
|
||||
offset_top = 9.0
|
||||
offset_right = -4.0
|
||||
offset_bottom = 9.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 0.42745098)
|
||||
|
||||
[node name="Window" type="PanelContainer" parent="GenerateQuestDialog"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
|
||||
Reference in New Issue
Block a user