In fact we have two systems of relations. One - the simplified model for the monsters, the other one - more complicated model for stalkers. All about relationships described in the file game_relations.ltx

Each group, and each type of monster defines a team.

The relations between the monsters is considered by the command s (yet so, but it is quite possible that "teams" in general will be removed from the game)

Commands for stalkers appear in the stalkers section [game_relations] (communities string.)
Commands for monsters appear in the section [monster_communities] (communities string.)

The relations between the monsters are set in section [monster_relations].

The relationship between the monsters, as well as between the monsters and stalkers is determined by a simple system of "friend", "enemy", "worst enemy".

The difference between an "enemy "and "worst enemy" is in choosing the enemy if there are a few enemies. The first monster will try to attack the worst enemy, when all other parameters are equal.

The relationship between stalkers are on a more complicated scheme:
There are two. scales that characterize the three parameters of the character. This rating (coolness), reputation (goodness). When calculating, the relationship is sensitive to these parameters + added to them the personal attitude of the character, the ratio between the factions.

For a more sensible outputting information to the screen and work with this info ,we set boundary conditions under which the parameters of rating and reputation change values. In section:

[game_relations]

;real separation of the groups on the scale of reputation

rating = novice, 30, experienced, 60, veteran, 90, master

reputation = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent

; scales to display the names instead of numbers
, ratings, reputation and goodwill in the interface

rating_names

= novice, 30, experienced, 60, veteran, 90, master

reputation_names = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent

goodwill_names = enemy, -1000, hostile, -500, indifferent, 500, companionable, 1000, friendly

There are given boundary conditions under which the neutral becomes friend or foe:
, the thresholds for the ratio of characters

attitude_neutal_threshold

= -400 ;when attitude smaller than treshold value, we set ALife::eRelationEnemy

attitude_friend_threshold = 500 ;when attitude smaller than treshold value, we set ALife::eRelationNeutral, иначе ALife::eRelationFriend

in the section [communities_relations] defined the relationship between the factions of stalkers.

Setting 0 means that these groups initially neutral. More precisely that between them there is no modifier relations. -5000, As +5000 indicates that these groups among themselves eternal enemies or friends.

So, they never will change their attitude .

For an actor there is no eternal friends and cannot be.

Example eternal friends - military to military, zombie stalkers to the monolith, and vice versa. If we want to set the initial value other than 0, which then may change depending on player's actions - you need to choose between 1000 -1000. For example at the moment ecologists are friendly to the player, but it could easily change.

Section [rank_relations] described the relationship between the ranks of the stalkers. At the moment there are zero everywhere, as it is stupid like that ;), but in general the mechanism is working, and if you will find for it a logical application - you can use it.

In the section [reputation_relations] described the relationship between reputations. The general sense is - the bads are good to bads. The goods are good to goods.

Varies from -1000 to +1000. In such a way that if we don't do anything bad to Vasya , but did it to everyone else, then the initially neutral.

Further options affect the personal parameters of the character.

[rank_kill_points]

How strong increased our coolness with the killing of the characters.

Changing our goodness while attacking or killing stalkers

[action_points]

friend_attack_goodwill = -500

neutral_attack_goodwill = -300

enemy_attack_goodwill = -100

; IMHO reputation should not be changed during the combat, only for killing.
; other for a couple of fights we will arrange negative reputation:)

friend_attack_reputation = 0

neutral_attack_reputation = 0

enemy_attack_reputation = 0

friend_kill_goodwill = -500

neutral_kill_goodwill = -300

enemy_kill_goodwill = -100

community_member_kill_goodwill = -50000

friend_kill_reputation = -50

neutral_kill_reputation = -20

enemy_kill_reputation = 0

special option, which is responsible for the frequency of reaction.

This will happen if for 1 second character will take two hits from the same object, it will worsen the ratio of only 1 time. Needs to remove effect that machine gun will not compromise attitude more than a shot from sniper rifle. Or like throwing a grenade will cause us 20 hits, but the relationship soured only 1 time instead of 20.

min_attack_delta_time

= 1

parameters under which the character will be assumed that we had helped him and what we get for this. Now we working with this idea:

Assistance is considered successful if the monster is attacking the stalker, and we have make damage to monster.

If our hit greater than 30, then we helped

help_hit_threshold = 30

fight_remember_time = 10 ;(c) for register

Who gives us a profit for the help?

friend_fight_help_goodwill = 30

neutral_fight_help_goodwill = 30

enemy_fight_help_goodwill = 0

friend_fight_help_reputation = 2

neutral_fight_help_reputation = 2

enemy_fight_help_reputation = 0

A single word about the freactions. In [communities_sympathy] are the coefficients of sympathy. If someone changes their attitude toward us, then all his fraction also changes the relation, proportional to the coefficient of Sympathy. Some groups have a coefficient zero, for example loners.