After previous discussions about mood and relation of NPCs (Ann, Alice, Lisa, ...) I had a look at the script to find more details.
Note :
While both mood and relmax are attributes of the class Profile(Chrs), most functions to access these attributes are defined outside the class, so spreading the code and related internal parameters over files and violating some basic principles of object oriented programming. Both mood and relmax with all their details probably would deserve to be defined as own classes or their functions / methods at least should be part of class Profile(Chrs).
Both mood and relation points can be monitored using the cheat mod by Niv-Mizzet the Firemind :
https://f95zone.to/threads/big-brother-another-story-v0-07-p1-02-aleksey90.43101/post-6730967
1. Mood
attribute : mood
Mood ranges from -435 to 435.
Code:
mood <= -285 : -4, "Terrible"
-285 < mood <= -165 : -3, "Very bad"
-165 < mood <= -75 : -2, "Bad"
-75 < mood <= -15 : -1, "So so"
-15 < mood <= 15 : 0, "Neutral"
15 < mood <= 75 : 1, "Not bad"
75 < mood <= 165 : 2, "Good"
165 < mood <= 285 : 3, "Very good"
285 < mood : 4, "Wonderful"
(see method GetMood() )
Mood is raised or lowered based on Max' actions.
(see function AddRelMood(char, rel, mood, rel_limit=None) )
Mood tends to go back to neutral over time.
- Positive mood goes down by 1 point for every 10 min passed in the game time (or -144 points per ingame day).
- Negative mood goes up by 3 point for every 10 min passed.
(see function MoodNeutralize() )
2. Relation (= attitude towards Max)
In contrast to original BB, relation is based on a point system with levels instead of the former system of discrete levels.
attribute : relmax
Relation ranges from -450 to 2000.
Start values :
Ann 250
Lisa 150
Alice 0
Code:
rel <= -300 : -3, "War"
-300 < rel <= -100 : -2, "Hostile"
-100 < rel < 0 : -1, "Rocky"
0 <= rel < 100 : 0, "Acquainted"
100 <= rel < 300 : 1, "Not bad"
300 <= rel < 600 : 2, "Good"
600 <= rel < 1000 : 3, "Warm"
1000 <= rel < 1500 : 4, "Friendly"
1500 <= rel : 5, "Very close"
(see function GetRelMax(char) )
Relation in absolute points is raised or lowered based on Max' actions. Some actions only raise relation until a certain relation level is reached.
(see function AddRelMood(char, rel, mood, rel_limit=None) )
Relation can also be raised or lowered in fractions or multiples of complete relation levels, often used at milestones to push relation as reward for quest progress.
(see function AttitudeChange(char, level) )
3. Example
Washing the dishes can change relation and mood :
$ AddRelMood('alice', 10, 60, 2)
Doing the dishes in the morning raises Alice' relation by 10 until level 2 "good" is reached and improves mood by 60.
$ AddRelMood('lisa', 5, 60, 2)
Doing the dishes in the evening raises Lisa's relation by 5 until level 2 "good" is reached and improves mood by 60.
There are about 179 uses of AddRelMood(char, rel, mood, rel_limit=None) and about 46 uses of AttitudeChange(char, level) in the script, however due to effort to first translate russian texts to english it is very laborious for a non-russian-speaking person to check all these occurences to find more useful examples.