-
Notifications
You must be signed in to change notification settings - Fork 583
Tavern rumors and Thieves Guild fixes #145
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
Conversation
Original game used "Rumors" and not "Gossips" and we already using rumor in CMap.
Actually information about this week rumor should be stored in gamestate and updated weekly
|
There is very little details on rumors mechanic and zero reports on bug tracker so here is some info:
|
Multiple rumors of same type can go in a row, but not identical rumors.
This also fix income ranking in Thieves' Guild
|
Income code is really bad for now, but I have some ideas to refactor StatsHLP and reuse it for both client (Kingdom Overview) and server (instead of current income calculation on new turn). |
|
I'm to start work on this -_- but you made more than me, so i will stop. But you can add rumors for mod just like i want to do in my wip. |
|
@edeksumo Sent you PM on forums with my skype contact if you agree to talk. @DjWarmonger |
|
I am hoping there will be an option to get new rumor for gold, like in Heroes 5. |
|
@Alucard648 Any example of what rumors you mean? |
|
Just in case I'm not planning any modding support there for now, but I'll need to take it into account to not break rumor serialization formation in future. E.g currently I only store rumor type, rumor ID and additional ID (terrain for grail or player). Though I suppose some modability may require more complex struct. |
|
I mean buy new rumor in tavern for 100 gold, instead of waiting another week. |
|
Ah, okay. Sadly something like that would require a bit different implementation. In H3 rumors are always shared between all players while mechanics like that may require to make rumors unique per players. It's not hard at all to implement, but then we need to store rumors differently and actually avoid showing duplicates, etc. |
This looks like one more case where "object roles"/mixins may work. Each object that provides daily income implements "IDailyIncomeRole" and to get all your daily income all you need is to sum daily income of all owned objects with daily income role. So I'd suggest to keep it as it for now since I've started looking into this - no need to duplicate effords. |
|
Okay then I won't touch it for now and just merge it as it's now with other branches. |
71eaa5a to
3b3c494
Compare
We also now check not number of towns, but only towns that has tavern built. Also according to original mechanics all taverns always display information based on your number of taverns and not number of taverns of object owner.
lib/CGameInfoCallback.cpp
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a thought - what about marking all places for backwards compatibiltiy in some consistent format? Or even static_assert'ing that this version is not less than minimal supported?
This would allow us to remove all compatibility code once save version is increased instead of accumulating it over releases.
Tavern rumors and Thieves Guild fixes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before I can't test it because I have't got any time, so now when I test it, this one provides me an error: operator =' is ambiguous
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Confirmed. This does not compile in Visual and I don't see how it could.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RumorState(): type(TYPE_NONE), last(){};Is this works?
|
Probably not: Error 5 error C2440: 'return' : cannot convert from 'CGTownInstance *' to 'CGObjectInstance *' in another file: CommonConstructors.h |
|
Yeah, CommonConstructor.h needs some includes. |
|
It's work, if nobody fix it tomorow I will make a PR. |
Work in progress on all 3 kind of rumors: