Some event stuff
This commit is contained in:
@@ -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)
|
||||
|
||||
|
@@ -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
|
||||
|
17
scripts/Event/Trigger/EventAutoStart.gd
Normal file
17
scripts/Event/Trigger/EventAutoStart.gd
Normal 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()
|
1
scripts/Event/Trigger/EventAutoStart.gd.uid
Normal file
1
scripts/Event/Trigger/EventAutoStart.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ckeqruxf6boav
|
31
scripts/Event/Trigger/EventQuestObjectiveComplete.gd
Normal file
31
scripts/Event/Trigger/EventQuestObjectiveComplete.gd
Normal 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
|
1
scripts/Event/Trigger/EventQuestObjectiveComplete.gd.uid
Normal file
1
scripts/Event/Trigger/EventQuestObjectiveComplete.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://baywtxo4wy5i4
|
Reference in New Issue
Block a user