Weekly Update – February 16, 2024

When I wrote the 2023 retrospective at the beginning of this year, I calculated that the time I spent on this project dropped 10% from the prior year. Since then, I’ve made a deliberate effort to make more time. I’ve started getting more done when I get home from work. I didn’t think that was possible because my brain is usually fried after work. What I’m finding is that the crux of the issue is that it’s harder to engage right when I get home. If I push through that and start on some task, as long as the task is not extremely complicated, I can make progress. The extra time was put to good use this week.

  • Object/Item interaction demo.
  • New content
    • Status Effects: Slow, Haste. These halve and double the number of actions per turn, respectively.
    • Items: Slow Potion, Haste Potion, Slow Arrow.
    • Interactions: Campfire + Water, Campfire Ring + Lit Torch.
  • Multiple actions per turn. I implemented this capability a couple of years ago but disabled it because it was buggy and not a priority at the time. I re-implemented it this week from scratch (the old code was gone or didn’t work the way I wanted it to). I needed this to support actors that move faster or slower than the player and Slow and Haste status effects. 
  • Duplicate event listener checking. I’ve recently come across a few instances where object destruction methods added an event listener instead of removed it due to copy/paste errors. I’ve also encountered situations where an existing object was reinitialized without removing its original listeners. In both cases, objects ended up with multiple listeners for the same event type, resulting in strange behavior and game-breaking bugs. These tend to be non-obvious, time-consuming issues to troubleshoot. To catch duplicate listeners before they cause downstream issues, the custom event-handling class now checks for attempts to add the same listener twice.
  • Tooltips for empty equipment and combine slots.
  • Bug fixes
    • Performing an interaction at the same time that a nearby Stalagmite Monster reveals itself displays the Stalagmite Monster in the Inspect Panel. This was certainly unexpected! I found the cause  quickly because I’ve come across it several times recently – a listener for a broadcasted event was responding to cases it should have ignored. In this instance, the Inspect Panel was responding to an Actor Type Changed event generated by an actor other than the one being inspected.
    • Starting items added to converted objects. For example, if a Poison Fountain is converted into a Water Fountain, gold coins may appear in the Water Fountain’s inventory because this object has a chance of containing gold.
    • Interaction particle effects and animations sometimes appear on incorrect items.
    • Interaction visual effects are being applied to Quick Switch slots.
    • Sometimes interaction visual effects are applied to empty slots.
    • Apples aren’t destroyed after being eaten.
    • Error when drinking from a Healing Fountain.
    • Error converting a Dry Fountain to Healing Fountain.
    • Drinking a potion doesn’t leave behind an Empty Vial.
    • The Inspect Panel registers event listeners twice.
    • Interaction visual effects not appearing when scooping liquid from a fountain into an Empty Vial.
    • Cursor displays Combine action when hovering over a Dry Fountain. 

Next week, my focus is on adding content and completing an old, partially-implemented item degradation mechanic.





Leave a Reply

Your email address will not be published. Required fields are marked *