Some event stuff

This commit is contained in:
2025-06-04 21:51:13 -05:00
parent 7d47cbb86b
commit 6cfbdbc892
7 changed files with 67 additions and 4 deletions

View File

@@ -8,6 +8,8 @@ var ended:bool = false;
var interactor:EntityInteractor = null
var interactee:EntityInteractable = null
signal eventEnded()
# Godot Methods
func _process(delta: float) -> void:
if !started || ended:
@@ -37,6 +39,7 @@ func isDone() -> bool:
func end() -> void:
assert(ended == false)
ended = true
self.eventEnded.emit()
if self.inEventSystemTree:
EVENT.removeEvent(self)

View File

@@ -15,8 +15,6 @@ var conversationEvent:EventConversation = null
var textboxEvent:EventTextbox = null
func start() -> void:
getInventory().addItem(itemType, quantity)
# Should show text?
if !showText:
super.start()
@@ -50,10 +48,18 @@ func start() -> void:
textboxEvent.count = quantity
conversationEvent.addChildEvent(textboxEvent)
conversationEvent.eventEnded.connect(func():
# Reward the item
rewardItem()
)
# Begin processing
super.start()
startChild(conversationEvent)
func rewardItem():
getInventory().addItem(itemType, quantity)
func isDone() -> bool:
if !super.isDone():
return false

View File

@@ -0,0 +1,17 @@
class_name EventAutoStart extends "res://scripts/Event/Flow/EventGroup.gd"
@export var restartWhenEnded: bool = false
func _process(delta: float) -> void:
super._process(delta)
if self.ended:
if !self.restartWhenEnded:
return
self.reset()
if self.started && !self.ended:
return
self.start()

View File

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

View File

@@ -0,0 +1,31 @@
class_name EventQuestObjectiveComplete extends "res://scripts/Event/Flow/EventGroup.gd"
@export var triggerIfObjectiveUncompletedThenComplatedAgain: bool = false
@export var quest:QuestSystem.QuestKey = QuestSystem.QuestKey.TEST_QUEST
@export var objectiveIndex:int = 0
var hasTriggered:bool = false
func _enter_tree() -> void:
QUEST.questUpdated.connect(onQuestUpdated)
pass
func _exit_tree() -> void:
QUEST.questUpdated.disconnect(onQuestUpdated)
pass
func onQuestUpdated(quest:Quest) -> void:
if self.ended:
if !self.triggerIfObjectiveUncompletedThenComplatedAgain:
return
self.reset()
if !quest.isStarted():
return
if !quest.objectives[objectiveIndex].isCompleted():
return
print("onObjectiveCompleted: %s" % quest.questKey)
self.start()
pass

View File

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