terrarium-earth / Heracles

A tree style questing mod allowing creators to set completable quests for their users
MIT License
35 stars 19 forks source link

[Feature Request]: Context map cross quest, task, reward #159

Closed SettingDust closed 10 months ago

SettingDust commented 10 months ago

Is your feature request related to a problem?

I'm going to make an addon to get the target entity from the interact task when granting the reward But there isn't any context in Heracles.

I can pass the quest or any objects to test. But I can't know which task added by the other mods will provide the entity. I have to match the type/instanceof one by one for compatibility with them. I think something like LootContext is helpful

Solution(s)

No response

Describe alternatives you've considered

No response

Mod Version

1.1.7

Mod Loader Version

1.20.1 0.15.3

Mod Loader

Fabric

Additional context

No response

ThatGravyBoat commented 10 months ago

No this is way too much data to be storing. There are events that ran when a task is completed can be used to store it yourself but in the base mod I will not be storing such info. Remember the data isnt going to be 1 time it has to persist across instances as you can leave after completing 1 task and rejoin to complete another to complete a quest.

SettingDust commented 10 months ago

@ThatGravyBoat As you said I can save the data by myself with a task complete event. But how can I get the task context that passed into the test of the completed task?

Maybe the TaskEventTarget should include the input of test?

I'll mixin for now

ThatGravyBoat commented 10 months ago

What I am saying is what you are trying to do its flawed because if you will only ever get the last entity that is interacted with so if a quest task requires clicking lets say 10 zombies you will only ever know about the last zombie as if you dont you will need to save 10 whole entities and store a massive amount of data. Quests are not like loot they arent done instantly after 1 interaction you can interact with a quest 100s even 1000s of times before it is complete.

SettingDust commented 10 months ago

What I am saying is what you are trying to do its flawed because if you will only ever get the last entity that is interacted with so if a quest task requires clicking lets say 10 zombies you will only ever know about the last zombie as if you dont you will need to save 10 whole entities and store a massive amount of data. Quests are not like loot they arent done instantly after 1 interaction you can interact with a quest 100s even 1000s of times before it is complete.

aw. The complete will trigger multiple times. I don't know. I need check if the task is edited. Thanks for your help XD