Stat system overhaul. The largest chunk of work this week was in the Stat system. Most numeric entity properties are represented as Stats – Current Health, Maximum Health, Damage, Evasion, Sight, etc. Stat Modifiers allow Stat values to be modified. For example, higher Might scores add to Damage. Stat Modifiers are contained in lists to allow multiple Stat Modifiers to be defined for a particular entity. Actors, Items, Cells, and Status Effects all have Stat Modifier lists. The Stat Modifier Resolver gathers all of the Stat Modifiers from the relevant sources and calculates the final value.
The Stat system got very messy over time. I’ll skip the details except for one: at some point I made a dumb decision to define Stat Modifier Types (an enum) as a combination of the Stat Type and the Modifier Operation. So, there were enum values such as SetBaseHealth and AddHealth, in addition to legacy values such as Health. During the recent work I did on Attributes, Stat importers, and balancing, it all fell apart.
To fix this, I did what I should have done originally – store the Stat Type and Modifier Operation as separate values. Updating the code and migrating the data was a chore, but I got it done within the week.
Fixing multiple resolution images. There are many instances of images where the source image’s dimensions don’t match the in-game size. This is a problem because the mismatches introduce scaling artifacts that break the pixel art aesthetic. I resized numerous source images in the UI this week. There are still many to fix. I’m not sure what to do about text yet. I may leave it at a higher resolution if I’m not satisfied with how it looks at 960×540 (the virtual resolution).
Improved Hotbar. The Hotbar received layout improvements in response to the image resizing.
Many bug fixes. General playtesting exposed lots of bugs, all stemming from recent changes. It’s frustrating to have to fix things that previously worked but it’s unavoidable with major rework. And, the rework addressed many problems that needed to be fixed either way.
Next week, I’ll do more Ranger and Wizard playtesting and balancing. I gave myself a stretch goal of adding a few enemies and/or abilities.

