ihhub / fheroes2

fheroes2 is a recreation of Heroes of Might and Magic II game engine.
https://ihhub.github.io/fheroes2/
GNU General Public License v2.0
2.71k stars 376 forks source link

Diplomacy skill rate #987

Closed Branikolog closed 3 years ago

Branikolog commented 4 years ago

All creatures want to join hero with a diplomacy skill and strong enough army. We should definitely reduce chance of joining.

vincent-grosbois commented 3 years ago

Are you sure the issue is still there? In fheroes2 the quantity of monster to join is dependent on the skill level, AFAIK this is correct The fact that a stack joins is not randomized: it depends on relative strength of army vs stack and some flags set for the stack itself. I'm not sure if it is different than the original game (I couldn't find any info on this)

Branikolog commented 3 years ago

Hi, @vincent-grosbois I've just checked. Issue is still on. While hero having Diplomacy skill (I've tested with expert one) Every creature offered me to join army. 95% with gold and 5% of creatures for free. I've attacked ~30 stacks.

Branikolog commented 3 years ago

@vincent-grosbois, my apologies for incorrect description. I've edited the first post.

vincent-grosbois commented 3 years ago

In that case, shouldn't we also edit the tags / milestone for this ? :) I mean, if we can confirm that the OG is working like this

Branikolog commented 3 years ago

@vincent-grosbois The problem is that in the original game if hero has no free space in his army, no-one would like join his army! But fheroes2 has a nice enhancement, where hero can re-arrange army during joining dialog. So this causes joining dialog to appear constantly. And persistent battles after a refusal too. I think we need either to allow creatures to run away after refusal (with a certain rate) or make not 100% of neutral creatures on a world map to join hero. Or even (which I like more) two this together. As diplomacy was always overpowered in HoMM series.

LeHerosInconnu commented 3 years ago

@Branikolog and @vincent-grosbois.

As diplomacy was always overpowered in HoMM series.

I don't think Diplomacy is too powerful in Heroes 2, it's just another way to recruit creatures. The player must pay the cost of recruiting creatures, it is not free. Diplomacy allows to recruit creatures "on the way", this is its advantage. Also, I find that in Heroes 2, Diplomacy is restrictive to use, I plan to add an option that will allow easier use from the Basic level. (https://github.com/ihhub/fheroes2/discussions/2990)

In fheroes2 the quantity of monster to join is dependent on the skill level, AFAIK this is correct The fact that a stack joins is not randomized: it depends on relative strength of army vs stack and some flags set for the stack itself. I'm not sure if it is different than the original game (I couldn't find any info on this)

In the original game, certain troops of wandering creatures will always join the hero who attacks them, and this without special condition (correction: this is certainly not true, the army's strength is taken into account).

For other troops of wandering creatures, the hero's army power must be between more than two times and maximum five times the power of the wandering troop for the wandering troop to join the hero if he has Diplomacy.

The problem is that in the original game if hero has no free space in his army, no-one would like join his army!

In the original game, in this case, the wandering troop attacks.

But fheroes2 has a nice enhancement, where hero can re-arrange army during joining dialog. So this causes joining dialog to appear constantly. And persistent battles after a refusal too.

I really like this enhancement. Here, with this enhancement, Diplomacy allows the wandering troop to be recruited even if there is no place in the hero's army. If the hero does not make room, the wandering troop attacks. This is what the wandering troop would have done anyway if the enhancement was not available.

I think we need either to allow creatures to run away after refusal (with a certain rate)...

There may be an option whereby when a wandering troop offers to join the hero's army and the hero refuses (or does not make room in his army) the wandering troop disappears without a combat. (Or the hero has to pay not to fight the creatures, see below.)

...or make not 100% of neutral creatures on a world map to join hero.

I think it would be better to keep the way the original game works, and not introduce a luck-related operation for Diplomacy or whatever into the game. The game should be based on strategy and not on luck. :)

Branikolog commented 3 years ago

In the original game, in this case, the wandering troop attacks.

If the hero does not make room, the wandering troop attacks. This is what the wandering troop would have done anyway if the enhancement was not available.

In the OG, if player has no free space in army - none of the wandering creature would like to join. In fheroes2 joining dialog is constantly appearing, which leads to infinite battles. While in the OG all neutral creatures run away.

We should find a solution no to fight each time with all joining creatures...

LeHerosInconnu commented 3 years ago

Hello @Branikolog,

In the original game, in this case, the wandering troop attacks.

If the hero does not make room, the wandering troop attacks. This is what the wandering troop would have done anyway if the enhancement was not available.

In the OG, if player has no free space in army - none of the wandering creature would like to join. In fheroes2 joining dialog is constantly appearing, which leads to infinite battles. While in the OG all neutral creatures run away.

We should find a solution no to fight each time with all joining creatures...

In the original game, the wandering creatures join the hero with Diplomacy if the power of the hero's army is more than twice the power of the wandering creatures. And the wandering creatures flee if the power of the hero's army is more than five times the power of the wandering creatures.

In the original game: In the example, the group of 15 Trolls joins as soon as the power of the hero's army is greater than twice the power of the wandering creatures and there is a free slot. Army diplomacy attack fh2 001 Army diplomacy attack fh2 002

In the example, with the same army, the group of 15 Trolls attacks the hero if there is no free slot. Army diplomacy attack fh2 003 Army diplomacy attack fh2 004

In fheroes2, there is also a problem with the high value of the rallying range. I have updated the corresponding issue: https://github.com/ihhub/fheroes2/issues/3336.

I think it's better to fix first this problem in fheroes2 before going further.

Edit.

An option can be added to make the hero with Diplomacy can pay the wandering troops instead of fighting them when they could have rallied him but there is no room in the hero's army (or the player does not want to make room for them). A button that allows to pay not to fight wandering creatures is added in place of the "Hero" button. The "Hero" button is moved between the "YES" and "NO" buttons.

Diplomacy Basic: the cost of not fighting is 100% of the base cost of the wandering creatures. Diplomacy Advanced: the cost of not fighting is 75% of the base cost of the wandering creatures. Diplomacy Expert: the cost of not fighting is 50% of the base cost of the wandering creatures.

Pay to not fight fh2 01

This is an option: "world: allow to pay not to fight wandering creatures with Diplomacy"

Branikolog commented 3 years ago

In the original game, the wandering creatures join the hero with Diplomacy if the power of the hero's army is more than twice the power of the wandering creatures. And the wandering creatures flee if the power of the hero's army is more than five times the power of the wandering creatures.

image At the original screenshot all wandering creatures (Dwarves and peasants) are willing to join hero army (In a case there's free slot), while hero's army is way much stronger. And peasants are still attacking on refusal. In a case there's no free space in hero's army - everyone flees. (Of course! 500 ghosts is a horrifying army!) That's the behaviour I experienced in the original game.

Anyway, We're talking about fheroes2 now. Currently, wandering creatures are always willing to join hero's army (with certain army strength), like in original game they do in a case hero has free slots. Even in the original game hero can always dismiss some army and be quite sure, wandering creatures will join due to diplomacy rules. In the original game, in a case hero has no free slots - wandering creatures flee. I think we should make as close to original, as we can. Hero should always be able to accept joining creatures (If strength conditions are satisfied), but in a case he refuses, engine should make another check of army's strength: If creatures a comparable to hero's army - they attack. If they are extremely weak - engine should initiate standard pursuing dialog window.

LeHerosInconnu commented 3 years ago

Hello @Branikolog,

There is a bug in the original game, the rule "And the wandering creatures flee if the strength of the hero's army is more than five times the strength of the wandering creatures." does not always work correctly. Look at the end of the original post in this thread: https://github.com/ihhub/fheroes2/issues/3336, there is also a save file to make tests.

Branikolog commented 3 years ago

Hi, @LeHerosInconnu. Actually, I've tried so many times this skill at my test maps, but never noticed the behaviour you've described in the post above. Are you sure it is a bug? Could it be one more hidden condition applied that we don't know about?

LeHerosInconnu commented 3 years ago

@Branikolog.

If we stick to the rule "more than twice the power of the wandering creatures, more than five times the power of the wandering creatures", there is a bug in the original game. Now maybe there is a hidden rule, but what is it? And why?

LeHerosInconnu commented 2 years ago

Hello @Branikolog,

@Branikolog.

If we stick to the rule "more than twice the power of the wandering creatures, more than five times the power of the wandering creatures", there is a bug in the original game. Now maybe there is a hidden rule, but what is it? And why?

In fact the restriction "if the strength of the army is more than five times the strength of the wandering creatures" is not required for Diplomacy in the original game. If the player has the necessary gold and the hero has the Diplomacy skill, the wandering creatures will always want to join the hero. :)