Path-of-Terraria / PathOfTerraria

GNU General Public License v3.0
1 stars 3 forks source link

Quest System Improvements #329

Closed GabeHasWon closed 1 month ago

GabeHasWon commented 2 months ago

Summary

As of right now, the Questing system in the mod is grossly underdeveloped. About half of all quest steps are empty classes, quest text doesn't update, and the UI is barebones. As such, I've tried a ton of things in the quest-rework branch, but there's a major issue with instancing that stops the UI from updating when the player changes something about a quest. For example, Test Quest's "Collect 0/50 Stone" never updates the 0 despite being programmed to do so.

This ticket serves as a place to

  1. Fix the instancing issue, so everything is on the same page and
  2. Polish up and finish the rest of the system so we can move forward with quests and other aspects of the mod.

Reasonings

The mod depends pretty heavily on this system being solid and would benefit greatly from a look-over.

shnakamura commented 2 months ago

Perhaps the instancing issue could be fixed by making quests a ModType? This would also allow for further compatibility with mods if they ever want to include their own quests by any chance, not to mention the integration with tML's own content loading, etc. ModQuest sounds good.

GabeHasWon commented 2 months ago

The fun part is - it is a ModType. I tried both ILoadable, and ModType, neither of which had any substantial changes. Yay! https://github.com/Path-of-Terraria/PathOfTerraria/commit/ae192ec4b59fe154a084951c5cd4a14b18072700

shnakamura commented 2 months ago

Ah weird, I had just checked quest-reworking, guess something was off on GitHub. ModType implements ILoadable so alternating from one another for content loading is effectively the same. I'm not sure what could cause this weird issue, then.

GabeHasWon commented 1 month ago

image Quests now display all steps, all of them update properly, all of them have localization (including the quest's name), and the instancing issue is fixed. Hurrah!