Skip to content
  1. May 12, 2020
  2. Apr 14, 2020
  3. Feb 01, 2020
  4. Jan 02, 2020
  5. Dec 11, 2019
  6. Oct 14, 2019
  7. Jun 27, 2019
  8. Jan 21, 2019
  9. Jan 15, 2019
  10. Jan 11, 2019
  11. Jan 09, 2019
  12. Jan 08, 2019
  13. Jan 07, 2019
  14. Jan 06, 2019
    • Nathan Lovato's avatar
      Close #167: Now all InteractivePawns can handle quests · eb521518
      Nathan Lovato authored
      There's more refactoring to the quest system with this commit. It removes extra
      code and scenes.
      
      Quests work from start to finish technically-speaking, although there's more
      work left to get the QuestBubble to display properly and to solidify
      interactions from the player. I haven't decided yet where to handle that last
      part: on the actions themselves or in the QuestSystem.
      
      Now, Quests are the one element that emit signals about their state (started,
      completed, delivered).
      
      To use the QuestSystem, you have to get the real quest object in the
      QuestSystem's database using the reference scene in the corresponding MapActions.
      
      The quest doesn't pass itself through these signals. If you need a reference to
      it on callbacks, you have to bind the quest as the last argument in the connect
      method:
      
      ```quest.connect('completed', self, '_on_Quest_completed', [quest])```
      
      One of the advantages of this code redesign is that each NPC should only connect
      to and track the quest that's referenced in its `[Give/Complete]QuestAction.`
      Thus there's no need for safety checks anymore or looping over all existing
      quests in the game to find which is active, if it's the tracked quest, etc.
      
      The system's functionality is limited but imo we shouldn't try to create too big
      of a system, as we won't have the content to justify it. Now I see how time
      consuming a quest system can be, and it'd be easy to go down the rabbit hole
      trying to make an advanced one (handling all possible events, cinematics,
      spawning npcs or modifying the game world, etc.).
      eb521518
    • Nathan Lovato's avatar
      GameBoard: Fix pathfinding error when clicking on an InteractivePawn · 2952ed06
      Nathan Lovato authored
      Now we only call Pathfinder.find_path() when clicking on empty cells
      2952ed06
    • Nathan Lovato's avatar
      599874d1
    • Nathan Lovato's avatar
    • Nathan Lovato's avatar
      Reconnect the QuestSystem to the Game node · a663a389
      Nathan Lovato authored
      To know when an encounter starts and connect to newly created monsters in CombatArena
      a663a389
    • Nathan Lovato's avatar
      Close #171: Rewrite the quest system to better respect the single responsibility principle · e14fdfe6
      Nathan Lovato authored
      This is a breaking change. I'm looking for some feedback on how the code feels now.
      
      Quests start but won't complete yet at this point. I
      want to do #167 and hopefully #168 as well to simplify the system even more.
      Until now it was a pain to just create quests and place them in the game world,
      for multiple reasons. E.g. The fact that the GiveQuestAction is inherited in
      PawnQuestGiver scenes makes it so the quest reference gets lost every time you
      modify the action's script in all instances.
      
      The Journal is also broken right now!
      
      - Made the QuestSystem as a singleton: it had to be passed around multiple parts
        of the game, and probably more and more files as we expand it. I'd rather
        avoid singletons but as the API is limited this has the potential to simplify
        the code IMO
      - Devs should now ONLY interact with QuestSystem. The API is a lot simpler:
        start() and deliver() to start and finish quests talking to NPCs. For now the
        rest is handled by the quests internally, based on their objectives.
      e14fdfe6
  15. Jan 05, 2019
  16. Jan 04, 2019
  17. Jan 03, 2019
Loading