Sigh. This is a modding related rant, as a modder. Yes yes, it's niche, nobody will care, but I care goddamnit and it's the bloody hill I'm very well going to die on. Hediffs, or 'health differences' are the entries in the Health tab and are used from everything such as Scars, Prosthetics, Bionics, Diseases and more. Almost every mod uses them.
I'm hoping a certain someone will see this and take pity on me, but who knows. And if you do read this, Ty, my fine boi, don't take it personally.
Here's a list of why the new hediff description system is painful to both modders and users.
On the outset, it may seem like a cool thing to have hediffs with descriptions, and you're damn right, it is! However! There are some major, glaring issues with the design, UI and code that I believe is not executed nearly as thoughtfully for modders as could be hoped from an otherwise mod-friendly game. This is exceedingly important for mods such as Radiology, Pawnmorpher, Genetic Rim, Alpha Animals, Cybernetic Expansion and every mod that needs to add descriptions for all the many, many hediffs they use. Two of those, Radiology and Pawnmorpher (though, I don't believe the former is any longer in active development) had their own system for doing hediff descriptions. It grinds my gears because we worked on our own system for Pawnmorpher that no longer works at all and is delaying our update to 1.1. More on that later.
TL;DR: They're not optional, flawed from a UX perspective (click instead of hover tooltip), break other working systems, are much more difficult to patch, and would take minimal amounts of core code to fix all these issues.
Let's get into why I really, really don't like the new system, and why you probably won't either.
1. It's not optional.
If you are a modder, you now have to add descriptions for every single hediff you add to the game whether it actually needs one or not, or you get ugly config errors in your log telling everyone you've been a very naughty modder for being lazy and not writing them. Sure, this may bar low-quality mods which don't bother, but not all hediffs need descriptions!
2. It's a click box, not a hover tooltip.
This is bad from a UI and UX perspective. You have to click to open it, but it only displays information that's already available in the tooltip...so, put the description in a tooltip, please. Please. That 'i' can still be there (hell, we used the same thing in Pawnmorpher)
3. It does not support [PAWN_nameDef] or any variants. You cannot personalise them in any way.
So, if you're like Pawnmorpher and like to style things up a little bit with some 'he/she' 'his/her' 'Bob/Mary' personalisation like exists for traits, backstories and pretty much everything else, you can't do that with this system. It just shows as an ugly [PAWN_nameDef].
4. The code is terribly convoluted and the old patches no longer work.
We can't even use our old way out of pure stubbornness. The patches we used no longer function, so we have to migrate to this new system (until we eventually figure out how to not do that, and then we're the weird ones for standing out and putting it in a different place instead of conforming). Why, lord randy in heaven, why are there so many delegates in the code that just shows a description? Why is it that complex?!
5. Related, you can't patch it to override the descriptions.
In the previous system we had made, we were able to change the descriptions of the hediff by stage. So when a mutation, for instance, developed from one tier to the next via stages, the description would update. And it was awesome, since you could watch and read the progression. Now, it only lets you read from the main hediff itself and includes no functionality for reading from stages, as well as breaking the system that let us do it. In trying to improve the amount of flavour text in core and mods, it seriously shafted our own system for adding even more flavour than what is currently possible.
To conclude. It breaks old systems, forces descriptions upon you, doesn't allow itself to be easily overriden or modified, isn't able to be personalised in any way, shape or form, and is displayed in a click-window that's sole function is to display the description and only the description.
We have had our working system utterly broken and given a new system that is, entirely frankly, inferior in every way -- except that it's vanilla. We did raise these concerns multiple times on the discord during the beta phase (which Tynan did reply to one of my requests, but so far it has not been implemented), I now realise that we should have gone to the forums.
Ach. The update is great so far and we're slowly figuring out what's broken and picking up the pieces, I just wish the modding community was given more time to adapt to the changes. Rather than an executive few getting an early heads-up. Ty, if you'd like, I give you full permission to steal the code from Pawnmorpher 1.0's hediff description method and use it instead. You simply hover over the 'i', it displays a personalised description which can be changed via stages, and even allows the label of the hediff to be overriden (which, however, I believe is still patchable, thank god).
Anyhow, that's about it. Bless.
/rant
External link →