Skip to content

- A reference guide and manual in Russian for Heroes 3.

User Avatar
#363
Auto-translated
The Art of Diplomacy, or What Hero Charisma Is.

As is known, each neutral unit on the map receives a certain numerical characteristic when a save is generated, which determines the degree of its hostility. The higher the hostility of the unit, the less chance the Hero has of joining it to his army. This value is the only unknown in the problem of joining neutral units. Let's call it X (the degree of hostility assigned by the map designer is already reflected in this number). The new version of the "traffic light" determines this unknown value.

Docile units always join the Hero's army, while it is impossible to join bloodthirsty units (see the "Diplomacy and its application" section of the manual by AmberSoler).

1) We calculate the strength of the Hero's army. The army's strength is equal to the sum of the products of the number of warriors in the unit by the strength of the warrior in the unit
(PA = sum[i=1,7](N*AI_Value). It seems that in early versions of FizMiG, there was a table of warrior strengths. For example, the strength of a centaur is 100, a royal griffin is 448;

2) We calculate the "internal strength" of the Hero, which depends on his attack and defense. Hero_Power = sqrt((1 + 0.05*att)*(1 + 0.05*def));

3) The total army strength is equal to the product of the Hero's "internal strength" and the army strength. Army_Power = floor(Hero_Power*PA);

4) We calculate the strength of the neutral army. To do this, you need to know their exact number. We do not take into account the probability of the appearance of an upgraded unit. Neutrals_Power = N*Neutral_AI_Value, where N is the number of neutrals, Neutral_AI_Value is the strength of the neutral in the unit;

5) We find the ratio k = Army_Power/Neutrals_Power;

Note.
The number k is placed in a memory area of 4 bytes (in short, it is truncated from Extended to Single), and then reloaded into the st register of the mathematical coprocessor (in short, it is expanded from Single to Extended), which entails a slight distortion of this coefficient, but this fact can almost always be ignored.

6) We find the "relative army strength" SF of the Hero:
a) If k >= 7, SF = 11;
b) If 1 <= k < 7, SF = floor(2*(k - 1)) - takes values from 0 to 11 (not to 10!);
c) If 0.5 <= k < 1, SF = -1;
d) If 0.333 < k <= 0.5, SF = -2;
e) If k <= 0.333, SF = -3.

7) If the Hero's army contains the same creatures as in the neutral army, or their upgrades, the charisma increases by one (let's call such creatures in the Hero's army recruiters);

8) If the number of recruiters is strictly greater than the total number of other warriors in the Hero's army, then the charisma increases by another unit, and it does not matter whether the recruiters are in one or more units;

9) Each level of Diplomacy (Diplomacy_Level) increases charisma by one unit. Diplomatic artifacts (as well as morale and other modifiers not mentioned here) do not increase charisma;

10) At the Easy level, the Hero receives a free unit of charisma (due to a hidden basic level of diplomacy) even at birth. Computer players are deprived of this advantage (in general, the scheme for joining neutrals is slightly different for them).

Let's call the sum obtained in points 7-8 sympathy (Sympathy, ranges from 0 to 2).

Note. Joining magma, ice, and energy elementals will not be helped by earth, water, and fire elementals (sympathy does not increase).

Thus, the scheme described above is perfectly consistent with the material from AmberSoler, with the exception of the point about the distribution of recruiters and the fact that the presence of units from only one castle in the Hero's army somehow affects charisma.

So, we find the charisma: Ch = SF + Diplomacy_Level + Sympathy.

9) If Ch >= X, the neutral unit will join:
a) for the sake of the idea, if Sympathy + Diplomacy_Level + 1 >= X;
b) for money, if Sympathy + 2*Diplomacy_Level + 1 >= X.

Note. X is an integer, as is the charisma Ch.
The minimum value of X is -4 (for docile neutrals), the maximum is 10 (for bloodthirsty units).
Charisma Ch ranges from -3 to 16.

P. S. Thus, if the hostility of the neutral unit is greater than 6, then you will never be able to join it for free (2 + 3 + 1 = 6). If the hostility is greater than 9 (i.e., if the unit is bloodthirsty), then you will also not be able to join it for money

Statistics

Welcome our newest member: artem

Users Online 1 users 1505 guests