Weekly Update – April 21, 2023

History generation refinement carried on this week. For variety, I also started working on fixing known bugs in the main game loop, which is the goal for May.

  • New event types: Actor Exiled from Faction, Actor Went Insane, Alchemist Brewed a Potion, Alchemist Died from a Potion Explosion.
  • New history event triggers: Make Truce, Break Truce, Removed from Faction, Added to Faction
  • New entity attributes: Era Created, Era Died. The former is only used for debugging purposes currently; I check to make sure actors created before their lifespan are dead. The latter is used to determine whether a dead actor’s remains are a corpse, bones, or nothing.
  • New entity binding criteria: Has Status Effect
  • New status effect: Insanity
  • Added a new timespan, Eternity. This was needed to prevent actors that don’t die from old age, such as undead, from dying when the era advanced.
  • Actor remains based on the era in which an actor died. Either a corpse, bones, or nothing is added to the map depending on how long ago the actor died.
  • Place entities that don’t have a specific location. This was a use case I knew about but missed when coding entity placement.
  • Add a Corpse attribute to Actor Type definitions. Previously, the corpse that an actor spawned after dying was specified in a parameter of the Actor’s Died event. This worked until I needed to determine an Actor’s Corpse in other parts of the code. I could have scanned the events to find this out, but it was more straightforward to add a new attribute. 
  • Fixed many history event configuration issues, for example:
    • Blind actors can get blindness again
    • Ghosts can be bitten by vampires and changed to vampires
    • Projectiles (which are implemented as items) such as fireballs can be added to the map
    • A giant rat can be the leader of the undead faction
    • An actor can discover an item already in its possession
  • Gameplay bug fixes

Next week, the main objective is to fill in a few major functionality gaps in history generation, in particular being able to place entities inside of other entities (such as placing a corpse in a coffin). There are some annoying bugs in the main game loop I want to fix too.





Leave a Reply

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