A lot of time was put in by AnonDev2 recently creating a new character API, and by Crimson merging it into the main branch. Now that that’s done, we’ve been moving forward on the system which concerns itself with calculating damage and other numbers in battle.
The API in question is a clever idea of Crimson’s that AnonDev2 (who shall henceforth be known as Goldie) has been working on. It’s a level of abstraction that allows us to easily generate facets (health, stamina, resistances, things like that) without weighing down the system with properties we know they won’t need. For example, one NPC might not need health and other battle-centric stats since it will never be in combat, while a feral Canen or other monster won’t need sets of data necessary for simulating their physical body. It’s very light and means we only ever create what we need. It also means tht if we want to rewrite how a part works, the interface that the rest of the code uses doesn’t have to be rewritten. We can do drop-in replacements using the same API to be able to to do testing, if and when we need to.