OnlineCop / kq-fork

Fork of KQ r910. Just for fun.
GNU General Public License v2.0
15 stars 9 forks source link

Quest Items #125

Closed pedro-w closed 2 years ago

pedro-w commented 2 years ago

There is a subsection of the menu that appears when you press 'RETURN' called 'Quest'. The intention was to remind the player where they're up to in the various quests, since considerable time could elapse in the real world between starting a quest and finishing it. Pretty sure it was me that implemented it, but it was never finished and I've forgotten exactly how I thought it would work. At the moment it just has placeholder text.

Should we finish this or just drop it?

OnlineCop commented 2 years ago

I'd hate for that effort to go to waste, and I'd really like to know how to incorporate quests as an in-game reminder.

This may be a question best left up to whoever will be writing/maintaining the story.

  1. It would need to be heavily Lua-based.
  2. Progress identifiers, such as progress.talkderig, would need to have corresponding quest data to get printed when 'Quest' is selected: "You spoke to Derig by the campfire. Now he wants to meet you somewhere..."
  3. How many simultaneous quests can there be? Do completed quests get greyed out but still selectable (so multiple pages would need to be available) or removed?
  4. The Quest "details" section may not be long enough to fit a proper description (especially when localized) unless it opens a modal window where a user can scroll.

I think for the short-term, we would disable 'Quest' unless someone's willing to go through ALL the towns/caves/locations and add in Quest reminder details.

pedro-w commented 2 years ago

What happens is that every time "Quest" is selected it starts with an empty list and then runs this function:

https://github.com/OnlineCop/kq-fork/blob/1ac22bf910e0aa93cd1a4e530cf10300ab3e8200/scripts/global.lua#L544-L552

which will be responsible for adding global items and then calling the map-specific version (LOC_add_quest_item) which might or might not exist in each map script.

Those should contain a load of if progress.XYZ = ABC then ... end to conditionally add items to the list.

I agree the details section needs to scroll/paginate properly.