The time has come to tackle that damned AdjustXXX mess. This comprises the problems of the relationships, the moods, their acceder values, and the adjuster routines that handle them. There are five issues:
1. Some variables take the range -100 to +100; others take the range 0 to +100. We need to clearly define, once and for all, what those ranges will be.
2. Acceder values are not defined for all moods and relationships. We need to define them all.
3. The effect of acceder values has shifted from a volatility factor to an inclination factor. For example, Gullibility is not the volatility in Trust, it is biased towards positive values of Trust. We need to clearly differentiate between volatility and bias.
4. The AdjustXXX routines are no longer functioning properly. In their original form they worked perfectly with ±100 range variables with acceders operating as volatility factors, but now with the incremental changes we have made, they no longer perform as expected.
5. Laura has requested a modification to AdjustXXX that allows her to assign the adjustment to any character.
Variable Bottom Acceder OPTIONS
Relationships:
Affection -100 Magnanimity Acceder = Nurturing
Trust -100 Gullibility
Submission -100 Timidity
Commitment 0 Loyalty delete entirely
Obligation -100 Dutifulness
Approval -100 Acceder = 50
Envy -100 Enviousness
Kinship 0 logical range, nonadjustable
CustomReln -100 Acceder = 50
Moods:
Anger 0 Temper
Arousal 0 Libido
Joy 0 Acceder = 50
Fear 0 Acceder = 50
CustomMood 0 Acceder = 50
Discussion
I have a problem with the relationship Commitment; I believe that its meaning is covered by Affection, Submission, and Obligation. What is there about Commitment that is not covered by some combination of these three relationships? Let's look at it from the point of view of acceders: Affection:Magnanimity; Submission:Timidity; Obligation:Dutifulness; Commitment:Loyalty. What is it about Loyalty that is not covered by some combination of Dutifulness, Timidity, and Magnanimity?
Moreover, Commitment has a serious problem with negative values: what is the meaning of negative Commitment? I can see no meaning here. Because of all these considerations, I am proposing the elimination of Commitment from the personality model.
Since Kinship is not adjustable, I think it should become a logical.
Adjustment algorithm for Relationships (-100 to +100):
I have redesigned this algorithm from scratch and here it is, in a form that is more self-explanatory:
Inputs:
Relationship (current value of relationship, -100 to +100)
Change (amount of change desired, -100 to +100)
Acceder (value of acceder)
if (Change > 0)
DistanceFromEdge = 10,000 - Relationship
Acceder = 100 - Acceder
Signum = 1
else
Signum = -1
Change = -Change
DistanceFromEdge = 10,000 + Relationship
BufferedAcceder = 100 + Acceder
MovementFactor = (10,000 * BufferedAcceder) / (BufferedAcceder + Change)
ChangeInRelationship =
(Signum * DistanceFromEdge * (10,000 - MovementFactor)) / 10,000
Relationship = Relationship + ChangeInRelationship
Adjustment algorithm for Moods (0 to +100):
This uses the same algorithm that is used for relationships, with a simple change in the algorithm:
Inputs:
Mood (current value of mood, 0 to +100)
Change (amount of change desired, -100 to +100)
Acceder (value of acceder)
if (Change > 0)
DistanceFromEdge = 10,000 - Mood
Acceder = 100 - Acceder
Signum = 1
else
Signum = -1
Change = -Change
DistanceFromEdge = Mood ***this is the only real change***
BufferedAcceder = 100 + Acceder
MovementFactor = (10,000 * BufferedAcceder) / (BufferedAcceder + Change)
ChangeInMood =
(Signum * DistanceFromEdge * (10,000 - MovementFactor)) / 10,000
Mood = Mood + ChangeInMood