First of all, sorry for the belated reply. I've been rather busy the last few days and didn't see a chance to reply before this.
It seems your discussion has already properly determined the semantics of the afflictionsets. It is CORRECT that if skills can give an affliction, you are SURE to have a new added affliction. I imagine the code at the MUDs side indeed goes like 'check for non-present afflicton'-'give non-present affliction'.
The information inside an afflictionset should be 'sensible' at all times. This means that (<RL, LL>, LL) or even the more elaborate (<RL, LL, BLIND>, <RL, LL>, LL) are situations that will not exist - as soon as the final LL is added to the set the entire set is evaluated and the afflictionset is simplified into what would be (RL, LL) and (BLIND, RL, LL).
A simple count of limbs would indeed not be sufficient for all the various reasons given - the various problems and intricacies of this model were easiest to explain using limbs (due to simplicity and not being mud-specific) but in practice limbs are not what I'm concerned with - it is the larger afflictionsets where a single <> can contain 10 to 20 items.
I am very aware that there is no 'one' simplification of a set, since multiple afflictionsets can give the same resultset depending on the road wandered. (<a, b>, <b, c>) and (<a, c>, <b, c>) being the simplest example of that, but if one looks at the 3x<RL, LL, LA, RA>, you can also find several simplifications that are different, but essentially mean the same thing when you look at all the resultsets. This is NOT a problem for me - I merely want the afflictionsets to become as simple (=devoid of possible choices) as possible, and the precise simplification I end up with does not matter for me.
I think that addressed most stuff about the afflictionset idea I came up with. Now, balances. It's a word that we use to denote the time from curing in a certain way until we can cure again. For example:
> eat herbX
You eat some herbX.
Your clarity of mind returns. <-- yay, afflictionY cured.
..wait..wait..some seconds later..
The herb has cleared your system.
This is the point at which I can eat another herb and have the herb cure something. If I'd eat another herb BEFORE the previous herb cleared my system, it would be a dud and not work. 'Having herbbalance' would thus mean that I'd be able to eat a herb at a certain point. This concept prevents people from spamming cures and adds more of a tactical approach to curing, since you can't just spam all possible cures at all times. Hell, it is worse - for quite a few balances it is so that trying to use the balance (eat a herb while not ready to eat one again) would increase the time it'd take to regain the balance, slowing down ones curing considerably. Salve curing (used to cure limbs) in my mud is even a bit more complex - the time to regain the balance depends on the salve used and on top of that, some cures simply fail if another cure isn't done first: curing of the limbs.
Anyhow, I deviate again. The balances themselves do not matter for this problem (I merely mentioned them to clear something up I think) nor does the precise order in which stuff is cured. I've got plenty of experience and working code for that already. The afflictionsets are the ones I need to get simplified.
Premature thanks come in the paragraph, but hey, actually getting this discussion going means a lot to me already given the fact that what I'm doing is kind of over the top for 99% of the people I play my mud with.
Thanks for everything, Isthiriel, Nick Gammon and David Haley. It's very much appreciated. :) |