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
Chance of disclosure of the enslaving civ to the victim (including AI awareness) #72
Comments
I think, this is a bug. And enslaving shouldn't make the AI declare war. The AI doesn't do it on free slaves, either. |
It is in RegardEvent.cpp. InciteRevolution is a cold war attack and breaks alliances and military pacts. |
Thanks for looking into this. |
The thing is that those are stealth attacks, so naively I would assume that the victim does not know who it was. Of course for some are indicators, in that case you would know but for others not. And also I have seen the AIs using InciteRevolution as a very effective strategy to cripple opponents, InciteUprising has actually the same effect, but is harder to execute, because the city needs slaves, but is treated as attack. The results of these actions and my expectations do not match. You can expect that planting a nuke is a secret action and if the secrecy does not break, the AI should not declare war, even so it is a war crime. So I would favor not to declare war, actually this can also be changed in RegardEvent.cpp, you just have to change the LogViolationEvent, it should not be ceasefire. |
@LynxAbraxas have we resolved that issue? |
Hm, I think not. As far as I remember, one of your commits should have made the AI not to declare war upon "stepping" into a cleric, which might apply also to a slaver (not sure), but here I really meant that the AI seems to "get a message" which civ enslaved while the normal player does not told the enslaving civ, so that is kind of unfair. a) name enslaving civ in message to the victim? |
Well, the AI gets a trust violation event, so it knows that you did something bad to it. But also as human player you can discover, just look at the nice chain icons next to an AI city, so you can know that they stole your citizens. We could add a chance that the attacker is disclosed. If the attacker is disclosed then the chains are in the color of the victim if the attacker is not disclosed then the chains are in the color of the Barbarians. And if the attacker disclosed then the message tells the player. |
In principle yes, but you have to go there with a unit to reveal that state that is otherwise hidden by the fog of war. Also the slave might have been assigned to a city that you have not discovered yet. |
So then we go for a random message with random trust violation. However as human you could still discover it and well get mad. So should it in that case be a Barbarian icon? |
Hm, how about white? I would guess you could enslave from a barabarian city which should yield a red icon already. |
Yes, you can enslave from Barbarian cities, but they are on war with you, anyway. So what? And in the end it is a player color, which would also cause some additional code. |
Was not aware that white is another player color, is it? (Would be bad for the pirating color square in the trade manager which is white if no pirating happens.) If so, how about grey, black white inverted or with stripes? Red is basically always associated with barbarians, which would not be the case if used here. |
White isn't a player color, but the slave icons use player colors. But still Barbs come from no man's land, so what is wrong with it? |
Ah, I see you want to use a player color to keep the code changes to a minimum. Then just go for red, I just proposed a non-player color because I would find red irritating if I were not aware of this conversation. Probably something that should go in the documentation of "new features, concepts and changes". |
Actually, think it is just enough to add a chance to disclose the attacker, if the attacking slaver was not visible to the victim. If the slaver was visible then the chance is 100 %. In principle, the AI should send so many slavers that eventual you will be informed, anyway. And you can also work it out if you have some slavers or abolitionists of your own in your cities. They can see slavers. In fact we, only have to give away the information of the slaver was caught or seen. |
Agreed. NB: Is it not possible to build abolitionists under some circumstances, like being in a theology or when owning slaver? |
You can't build abolitionists if you have slavers or slaves. So you have to decide on which side you stand. Maybe we can put this into the Great Library. And by the way, if you have abolitionists you cannot build slavers, either. |
Thanks, that explains my observation, can't remember though if that actually also applied to the AI civs during my play-testing, could it be that the AI can doge that rule? |
No they can't, they just build what is in line with their strategy, most of the AIs build slavers and the rest abolitionists. |
I do have the impression now that the original issue is solved (AI does not declare war any more upon enslavement), however the ideas in following discussion are not realized so far, so instead of closing this decided to rename the issue. |
Does the AI get the info what civ/player successfully took slaves from a city?
During play testing, it often happens that the AI civ declares war on the enslaving civ upon successful enslavement.
A player only gets the info in what city slaves were taken but not by what civ:
civctp2/ctp2_code/gs/gameobj/ArmyData.cpp
Line 3052 in 9a1ab16
The text was updated successfully, but these errors were encountered: