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.72k stars 377 forks source link

Allow the AI to dig an Ultimate Artifact if it uncovered the whole puzzle map by visiting all obelisks #8710

Open ihhub opened 5 months ago

ihhub commented 5 months ago

Preliminary checks

Describe the problem requiring a solution

The current AI cannot do this. However, we must not allow to do it if Ultimate Artifact is a winning condition for human player.

Describe the possible solution

We have to add logic for this.

Additional info

No response

zenseii commented 5 months ago

I've heard many players say that the original AI knew how to dig for the UA. If this is the case then it would be interesting to see what happens if they find the UA in a map where the winning condition is to find the UA.

It's likely that it would be the same as if a human opponent finds it first?

LeHerosInconnu commented 5 months ago

Hello @ihhub and @zenseii,

In the original game, the AI can dig for the ultimate artifact even if this is a victory condition for the human player. In Roland's campaign, for example, it's possible to lose the campaign in the scenario where the Ultimate Crown must be recovered before the opponent. I think it's important to keep this possibility of losing for the human player if the AI recovers it before him, it's part of the game. The requirement for the AI to visit all the obelisks before digging is a sufficient constraint.

oleg-derevenetz commented 5 months ago

Hi @LeHerosInconnu

In the original game, the AI can dig for the ultimate artifact even if this is a victory condition for the human player. In Roland's campaign, for example, it's possible to lose the campaign in the scenario where the Ultimate Crown must be recovered before the opponent.

Are you sure? At least, in the original map editor, there is no way to set (or unset) the "Comp. also wins via Special VC" setting for "Find a particular artifact" victory condition (unlike, e.g., "Capture a particular castle" or "Accumulate gold" conditions).

P.S. It seems that this is indeed the case:

https://github.com/ihhub/fheroes2/assets/32623900/09e834fe-4f38-49e5-8fed-de3d03ae71e0

but IMHO it's not good that it can't be turned on/off, unlike other VCs.

LeHerosInconnu commented 5 months ago

Hello @oleg-derevenetz,

Hi @LeHerosInconnu

In the original game, the AI can dig for the ultimate artifact even if this is a victory condition for the human player. In Roland's campaign, for example, it's possible to lose the campaign in the scenario where the Ultimate Crown must be recovered before the opponent.

Are you sure? At least, in the original map editor, there is no way to set (or unset) the "Comp. also wins via Special VC" setting for "Find a particular artifact" victory condition (unlike, e.g., "Capture a particular castle" or "Accumulate gold" conditions).

P.S. It seems that this is indeed the case:

DOSBox.0.74-2.1.Cpu.speed.max.100.cycles.Frameskip.0.Program.HEROES2.2024-05-22.17-32-43.mp4 but IMHO it's not good that it can't be turned on/off, unlike other VCs.

Yes, I'm sure it is. When the AI digs and finds the ultimate artifact in a scenario where this is a victory condition for the human player, it's not the AI that wins, it's the human player who loses. :)

If the human player wouldn't be competing with the AI for the possession of the ultimate artifact, it would be a kind of challenge taken away from the game. It's part of the game to try and get the ultimate artifact before the AI, even if it's not a win/lose condition.