More work on implementing quests and tech trees

This commit is contained in:
2025-12-04 10:12:34 -05:00
parent 4ed4ab95f3
commit f5d479f7ff
16 changed files with 241 additions and 10 deletions

17
scripts/employee_panel.gd Normal file
View File

@@ -0,0 +1,17 @@
extends PanelContainer
var employee : GuildEmployee
func setup(employee : GuildEmployee) -> void:
self.employee = employee
global_position = Vector2(get_viewport().get_mouse_position()) - size / 2
return
func display_develop_tree() -> void:
pass
func _on_develop_button_pressed() -> void:
display_develop_tree()
func _on_focus_exited() -> void:
queue_free()

View File

@@ -0,0 +1 @@
uid://pwj0ai6mg7o2

View File

@@ -15,6 +15,7 @@ static func load_enemy_list() -> void:
list[template.name] = template
filename = dir.get_next()
dir.list_dir_end()
func attack(target : QuestSprite) -> void:

View File

@@ -54,7 +54,10 @@ func toggle_player_profile():
func start_shift(shift_num) -> void:
current_shift = shift_num
panel.reset_timer(shifts[shift_num])
if len(shifts) < 1:
panel.reset_timer(600)
else:
panel.reset_timer(shifts[shift_num])
func end_shift() -> void:
take_screenshot()

View File

@@ -1,5 +1,7 @@
class_name GuildEmployee extends AdventurerSprite
const employee_panel_template = preload("res://templates/employee_panel.tscn")
@export var speech :String
@onready var queue : GuildQueue = $Queue
@@ -10,3 +12,14 @@ func interact(interactor, type : String = "") -> void:
Guild.register_guild_member(interactor.data, true)
#interactor.advance_
service_provided.emit()
func _on_mouse_area_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void:
if event is not InputEventMouseButton:
return
var evt = event as InputEventMouseButton
if evt.button_index == MOUSE_BUTTON_RIGHT:
var emp_panel : PanelContainer = employee_panel_template.instantiate()
get_tree().root.add_child(emp_panel)
emp_panel.setup(self)
emp_panel.grab_focus()

View File

@@ -50,7 +50,7 @@ func _physics_process(delta: float) -> void:
func _unhandled_input(event: InputEvent) -> void:
var evt : InputEventMouseButton = event as InputEventMouseButton
if evt and evt.pressed:
if evt and evt.button_index == MOUSE_BUTTON_LEFT and evt.pressed:
approach(evt.global_position)
nav_agent.target_desired_distance = stop_range
interaction_target = null