Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix visited info when hero has visited a tree under another player's control #9077

Merged

Conversation

zenseii
Copy link
Collaborator

@zenseii zenseii commented Sep 1, 2024

In current master if you right click a tree which was visited and claimed by a hero who is now under your command the quick info would say "not claimed", which is wrong. Visiting the tree will not give you the chance to level up this hero.

This PR also restores the behavior observed in the original game, although originally the info would say "visited" or "not visited".

Bug introduced in: #8147

under another player's control
@zenseii zenseii added bug Something doesn't work ui UI/GUI related stuff labels Sep 1, 2024
@zenseii zenseii added this to the 1.1.2 milestone Sep 1, 2024
@oleg-derevenetz
Copy link
Collaborator

Hi @zenseii

Visiting the tree will not give you the chance to level up this hero.

Despite the fact that this is indeed the case, are you sure that this information should be shown? After all, a player cannot know whether another player visited the Tree with this hero or not. It probably should be a surprise.

@zenseii
Copy link
Collaborator Author

zenseii commented Sep 1, 2024

Hi, @oleg-derevenetz.

It probably should be a surprise.

I agree that logically this makes more sense. A similar situation is when you right click other bonus adventure map objects like witch's huts if memory serves right, they will show you this information even though you haven't visited them. I haven't checked what the behavior is in the original game, though whatever the case be in the OG, I agree that it would be better to not tell the player what they wouldn't be able to know at that point.

The most important thing is that the behavior is consistent throughout the game of course.

@LeHerosInconnu
Copy link

Hello @zenseii and @oleg-derevenetz,

I've tested this in the original game and the correct information is displayed based on the hero's past actions regarding his visits, regardless of his past affiliation.
Why would you want to display false information in fheroes2?
This can only lead to misunderstanding on the part of the player, who will think it's a bug, and to save/load behavior at the slightest of his actions.
That's not what I call a reliable or fun game.

@oleg-derevenetz
Copy link
Collaborator

Why would you want to display false information in fheroes2?
This can only lead to misunderstanding on the part of the player, who will think it's a bug, and to save/load behavior at the slightest of his actions.
That's not what I call a reliable or fun game.

I really don't think that player should somehow get info based on other players' actions not directly observable by this player. This is not a "false" information, this is abcence of information.

@zenseii
Copy link
Collaborator Author

zenseii commented Sep 2, 2024

Hi, @LeHerosInconnu. Thank you for checking how this works in the original game.

Now that I think about it, I believe this is how it works in Heroes 3 and 4 too. Edit: In Heroes 4, the heroes never switch sides under normal circumstances.

@oleg-derevenetz,
The way I always thought about it is that the hero himself tells the commander, the player, that they have already visited these places.

If this is indeed the way it works in the heroes series, then I'm a bit reluctant to change how this works in fheroes2.

@oleg-derevenetz
Copy link
Collaborator

The way I always thought about it is that the hero himself tells the commander, the player, that they have already visited these places.

Well, maybe so :)

@LeHerosInconnu
Copy link

@zenseii and @oleg-derevenetz,

Why would you want to display false information in fheroes2?
This can only lead to misunderstanding on the part of the player, who will think it's a bug, and to save/load behavior at the slightest of his actions.
That's not what I call a reliable or fun game.

I really don't think that player should somehow get info based on other players' actions not directly observable by this player. This is not a "false" information, this is abcence of information.

It seems conceivable to me that a previously opposing hero would bring the information he knows to his new commander.

Hi, @LeHerosInconnu. Thank you for checking how this works in the original game.

👍

@oleg-derevenetz, The way I always thought about it is that the hero himself tells the commander, the player, that they have already visited these places.

If this is indeed the way it works in the heroes series, then I'm a bit reluctant to change how this works in fheroes2.

Yes.

@zenseii
Copy link
Collaborator Author

zenseii commented Sep 2, 2024

@LeHerosInconnu and @oleg-derevenetz,

It seems conceivable to me that a previously opposing hero would bring the information he knows to his new commander.

The way I always thought about it is that the hero himself tells the commander, the player, that they have already visited these places.

It should be pointed out that there are clear holes in this logic.

Like why doesn't a hero who helped clear a graveyard for another player, tell you that it is now empty? Why aren't you told what the price for the tree of knowledge is too? A cleared troll bridge? Etc.

I guess only some information is allowed to be shared by the hero to their new commander, perhaps due to contractual obligations like an NDA.

@oleg-derevenetz
Copy link
Collaborator

Like why doesn't a hero who helped clear a graveyard for another player, tell you that it is now empty? Why aren't you told what the price for the tree of knowledge is too? A cleared troll bridge? Etc.

Why such a hero doesn't reveal the fog visible to his former employers? :)

@zenseii
Copy link
Collaborator Author

zenseii commented Sep 2, 2024

Why such a hero doesn't reveal the fog visible to his former employers? :)

It was covered by the contract same as the number of peasants in the former employer's army.

@LeHerosInconnu
Copy link

LeHerosInconnu commented Sep 2, 2024

@zenseii and @oleg-derevenetz,

@LeHerosInconnu and @oleg-derevenetz,

It seems conceivable to me that a previously opposing hero would bring the information he knows to his new commander.

The way I always thought about it is that the hero himself tells the commander, the player, that they have already visited these places.

It should be pointed out that there are clear holes in this logic.

Like why doesn't a hero who helped clear a graveyard for another player, tell you that it is now empty? Why aren't you told what the price for the tree of knowledge is too? A cleared troll bridge? Etc.

In the original game, for these places to visit, graveyard, pyramid, city of the dead, etc., it is not indicated whether they have already been visited or not, even for the player controlling the hero.

This has been improved and is indicated in fheroes2, and you raise an interesting point here.
Personally, I'd be in favor of displaying this information for all locations that can be visited by a hero.

I guess only some information is allowed to be shared by the hero to their new commander, perhaps due to contractual obligations like an NDA.

A good sum of gold can also loosen tongues. :D
But above all, the hero must have complete allegiance to his ...current commander. 😎

Like why doesn't a hero who helped clear a graveyard for another player, tell you that it is now empty? Why aren't you told what the price for the tree of knowledge is too? A cleared troll bridge? Etc.

Why such a hero doesn't reveal the fog visible to his former employers? :)

Why such a hero doesn't reveal the fog visible to his former employers? :)

It was covered by the contract same as the number of peasants in the former employer's army.

As for the fog of war, I wouldn't mind updating it too depending on which previously opposing heroes are recruited, after all an allied player reveals the discovered fog of war to allied players, but I wouldn't mind if it stayed as it is now.
It could also be options (for the fog of war), but I can already hear you crying heresy! It's not WoG! Etc.! Etc.! Etc.! :D

**Edit. **

If the tree of knowledge has already been visited by the hero, the cost to be paid should also be displayed.

@zenseii
Copy link
Collaborator Author

zenseii commented Sep 2, 2024

In the original game, for these places to visit, graveyard, pyramid, city of the dead, etc., it is not indicated whether they have already been visited or not, even for the player controlling the hero.

This has been improved and is indicated in fheroes2, and you raise an interesting point here. Personally, I'd be in favor of displaying this information for all locations that can be visited by a hero.

EDIT: I might not have understood completely what you are saying here. However, it doesn't directly concern this PR and it would be better to open a new discussion about these proposed changes.

As for the fog of war, I wouldn't mind updating it too depending on which previously opposing heroes are recruited, after all an allied player reveals the discovered fog of war to allied players, but I wouldn't mind if it stayed as it is now. It could also be options (for the fog of war), but I can already hear you crying heresy! It's not WoG! Etc.! Etc.! Etc.! :D

As you guessed, this is completely changing what the game is and adding completely new mechanics. I would not want to see it in the fheroes2 project.

If the tree of knowledge has already been visited by the hero, the cost to be paid should also be displayed.

The way I've come to see this mechanic of knowing what bonus objects a hero has visited and used, is that this is a gameplay feature. It answer the player's simple question of "Will there be any use for my hero to visit this location?"

Having done some tests myself now of how the original game works (and encountered one huge bug in the original game...), I see that if you buy a hero who has visited buildings (tree of knowledge, witch doctor's hut etc.) then these will show as "already visited" in the original game. Except for the Arena which lets you get the bonus again for that hero though I consider this as irrelevant to this issue and most likely another bug.

I could agree that changing how this works into something like showing (unknown if hero has visited) if the hero was recruited would make sense, but it complicates things unnecessarily in my opinion. The way it currently works is that if you buy a level 16 hero you stumble upon in the tavern, then you won't have to go around guessing what stat boost places will be worth your time to visit, and which of them will be a waste of time.

To keep consistent with the style used
@oleg-derevenetz oleg-derevenetz merged commit d004216 into ihhub:master Sep 2, 2024
20 checks passed
@oleg-derevenetz
Copy link
Collaborator

@zenseii thank you!

@zenseii zenseii deleted the fix-tree-of-knowledge-visit-logic branch September 2, 2024 17:40
@LeHerosInconnu
Copy link

LeHerosInconnu commented Sep 3, 2024

Hello @zenseii,

In the original game, for these places to visit, graveyard, pyramid, city of the dead, etc., it is not indicated whether they have already been visited or not, even for the player controlling the hero.
This has been improved and is indicated in fheroes2, and you raise an interesting point here. Personally, I'd be in favor of displaying this information for all locations that can be visited by a hero.

EDIT: I might not have understood completely what you are saying here. However, it doesn't directly concern this PR and it would be better to open a new discussion about these proposed changes.

I'll open a more detailed thread for this (#9081).

As for the fog of war, I wouldn't mind updating it too depending on which previously opposing heroes are recruited, after all an allied player reveals the discovered fog of war to allied players, but I wouldn't mind if it stayed as it is now. It could also be options (for the fog of war), but I can already hear you crying heresy! It's not WoG! Etc.! Etc.! Etc.! :D

As you guessed, this is completely changing what the game is and adding completely new mechanics. I would not want to see it in the fheroes2 project.

Fine. :)

If the tree of knowledge has already been visited by the hero, the cost to be paid should also be displayed.

The way I've come to see this mechanic of knowing what bonus objects a hero has visited and used, is that this is a gameplay feature. It answer the player's simple question of "Will there be any use for my hero to visit this location?"

Having done some tests myself now of how the original game works (and encountered one huge bug in the original game...), I see that if you buy a hero who has visited buildings (tree of knowledge, witch doctor's hut etc.) then these will show as "already visited" in the original game. Except for the Arena which lets you get the bonus again for that hero though I consider this as irrelevant to this issue and most likely another bug.

I could agree that changing how this works into something like showing (unknown if hero has visited) if the hero was recruited would make sense, but it complicates things unnecessarily in my opinion. The way it currently works is that if you buy a level 16 hero you stumble upon in the tavern, then you won't have to go around guessing what stat boost places will be worth your time to visit, and which of them will be a waste of time.

As this PR is closed, I will open another issue for this (#9080).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something doesn't work ui UI/GUI related stuff
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants