EDIT: I don't like the idea of deactivating the firaxis code. It means that there are a lot of systems and policy choices that become irrelevant
that's why it would be optional, or increase max loyalty
EDIT: I don't like the idea of deactivating the firaxis code. It means that there are a lot of systems and policy choices that become irrelevant
I could add an option button to deactivate the loyalty may be
that's why it would be optional, or increase max loyalty
I completely agree, the first part is what I was reporting before. It's bad for the player because it's out of his hands and it's bad for the AI because at constant -300 they cannot keep their cities together.- Revolt penalties from being at war are far, far too high and far too simple. I think the maximum of 300 should be lowered (maybe to 150-200), and it should be based on you losing units more than simply being at war. This is because the AI will often declare war at you from across the entire map but refuse to make peace, or will just be in an awkward position to attack them from but will not accept a peace deal. This makes being at war extremely punishing and not always in your control.
- Revolts should be based on factors you can control more. Having governors should reduce revolts, having high or low amenities should have more of an effect, the penalty for being far away from the capital should be increased, and civics/spies/leader abilities should play a role just like they do for normal loyalty. There should also be other ways to mitigate revolts or cause them in other civilizations - in particular, I think Tourism and different governments should be a major factor like in Civ V.
Before going on vacation I was trying to make some changes to Gueux's code to test an era modifier for distance from the capital so that in renaissance and industrial era you could colonize as much as youy wish, but in earlier and later eras it would be more difficult, modeling for example decolonization.- Oh, one more suggestion: would it be possible to have revolts get more severe/more likely depending on the era? Like in the Renaissance era or the Modern era, to simulate the French Revolution, American Revolution, Russian Revolution, etc.
@DrNooooo what version of the mod were you playing for your review?
Revolt penalties from being at war are far, far too high and far too simple. I think the maximum of 300 should be lowered (maybe to 150-200), and it should be based on you losing units more than simply being at war. This is because the AI will often declare war at you from across the entire map but refuse to make peace, or will just be in an awkward position to attack them from but will not accept a peace deal. This makes being at war extremely punishing and not always in your control.
Revolts should be based on factors you can control more. Having governors should reduce revolts, having high or low amenities should have more of an effect, the penalty for being far away from the capital should be increased, and civics/spies/leader abilities should play a role just like they do for normal loyalty. There should also be other ways to mitigate revolts or cause them in other civilizations - in particular, I think Tourism and different governments should be a major factor like in Civ V.
local cityLoyalty = pCity:GetCulturalIdentity():GetLoyalty() * 4; -- city loyalty multiplied by 4 , to get the per turn value pCity:GetCulturalIdentity():GetUprisingLvlPerTurn()
if cityLoyalty < 0 then
otherEffectToolTip = otherEffectToolTip .. "[NEWLINE][ICON_PressureDown]-"..cityLoyalty.." due to the loyalty of the city";
else
otherEffectToolTip = otherEffectToolTip .. "[NEWLINE][ICON_PressureUp]-"..cityLoyalty.." due to the loyalty of the city";
end
local otherEffect = cityFoodSurplusMod + cityNumberOfWonderMod + cityNumberOfBuildings + numberOfDistrictMod + peaceEffect + cityCountMod + cityLoyalty;
The penalty for having suffered a revolt is just nuts. Barbarians spawned by revolts will destroy all your improvements and districts, which is very punishing, but on top of that you're looking at 20 turns or so of losing massive amounts of yields per turn. I think this element should be removed, personally, or the recovery period should be drastically shortened.
- Because revolts are technically barbarians, they will attack your trade routes. It's nearly impossible to protect them on very large maps, especially with mods that increase trade route distance. This makes policies (with mods) or golden age bonuses that protect your trade routes more valuable, but it's also a huge pain. Is there any way to prevent revolt barbarians from attacking third-party trade routes? It might even be worth reserving a civilization slot specifically for partizans that is only at war with people suffering a revolt (which also prevents the AI from attacking partizans of another nation) but I don't know if this is feasible.
the units are based on your era, so if you are at start of an era it can be weird, even more if your are more advandced in culture, I will modify that- It's a little silly that partizans can be units that you haven't invented yet. I feel like partizans should be only the strongest types of units you have available or weaker, rather than based on the technology level of the rest of the world.
it's random, actualy I wanted to do something more complex but never did it, may be one day.- I have no idea what the "your leader died" part of your government stability means. Is it just RNG?
I could do it, I would like to find a realistic way to add it, I ll see.- Oh, one more suggestion: would it be possible to have revolts get more severe/more likely depending on the era? Like in the Renaissance era or the Modern era, to simulate the French Revolution, American Revolution, Russian Revolution, etc.
I won't do it but you can modify max war exhaustion in "SetWarExhaustion()" at line 1189- Decrease the maximum at war penalty to 150, and slightly increase the penalty for units taking damage and dying to simulate the effects of a war actually being fought instead of just declared.
search and modify all line where you find "* 30" to "* 50"- Increase happiness from amenities to 50 per amenity.
I will update it, I just need to test the mod to be sure, but every time I add things and I need to retest ...The most recent version linked on this page! It's not uploaded to the main post, which is kind of confusing, but that's the one I used.
in SetColonialRiot() at line 3289 add at the first line of the function- Increase malus from distance to the capital by -5.
it's interesting but I don't know if it's possible- Each point of visiting tourists that all other civilizations have against an opponent should equal a point or two of negative revolt score, up to a maximum of 200. Differing governments with the civilization accepting the tourists doubles the effect of each tourist.
that's not even your fault, my code is very bad and there near no comment, I learned lua and wasn't knowing what I was doing at start, even I have trouble understanding some parts.Before going on vacation I was trying to make some changes to Gueux's code to test an era modifier for distance from the capital so that in renaissance and industrial era you could colonize as much as youy wish, but in earlier and later eras it would be more difficult, modeling for example decolonization.
But I don't know LUA and my test results were janky at best XD
My mod already have a migration system, it doesn't create any uprising yet, so I don't know if I add tourism too, actually the migration system is partly responsible of the memory problem of my mod.What if, instead of individual tourists (which might not be feasible to use, I don't know anything about LUA in Civ VI), it was based on overall tourism and decreased based on distance from the capital of the neighboring empire? That way, neighboring civs with high tourism output will affect cities that are close to their capital, making them more likely to revolt, and *this* could be multiplied by differing governments. This also has the side effect of making revolts more likely from this scenario as the game progresses.
the problem is how do you change the government back.I think it'd be interesting if differing governments also caused a unique kind of revolt, a Government Revolt, something like this:
- If a city successfully revolts as a result of differing governments, it "changes governments" from the official government of the empire. So it will be marked in the UI as being Communist even if the empire is Capitalist, for example.
- Every city you have that has mismatched governments applies negative revolt score in all cities that are still your original government type (Capitalist, to use the last example) towards another government revolt.
- If 50% or more of your cities successfully have a government revolt and are marked as a different government from the official one, the player's government immediately changes to the "new" government, all cities are reset, and there is no instability from having changed governments (or it's countered by an equal positive score).
I'm not sure what you mean about the migration system? But I don't understand how the migration system in the mod works currently.
Anyway, I think starting a revolt in the capital would work I think, and be simpler to understand and manage. As for how you change the government back... hmm. If I'm understanding this right, why not just use the regular government change mechanics? As in vanilla, you'd be able to change governments if you gain new policies or pay the gold fee to unlock it. If you're manually going back to your previous government (i.e. Capitalism from Communism), it causes several turns of anarchy as in vanilla, which is a suitable punishment for "going against the will of the people" by returning to a form of government they dislike.
I guess the question then is what prevents you from having another government revolt immediately from enemy tourism and differing governments. And I think the answer is nothing - the onus would be on the player to prevent another revolt by building up their army and increasing their revolt score. My opinion is that making it more complicated than that would clutter up the mechanics.
Also, a thought: culture could serve as a counter to tourism, like in Civ V, to further put control in the player's hands by letting them build up culture. So, for example, every two points in culture that you have globally would counteract one point of the tourism affecting your cities. So let's do some possible math:
A civilization is exporting 150 tourism per turn and has Communism. It's capital is 15 tiles away from your nearest city and let's say each tile of distance decreases the effect by 5 points. You follow capitalism and produce 250 culture per turn. Pressure from tourism on that city would be (150 * 2) - ( 5 * 15 ) - ( 250 / 2) = 100 revolt score per turn. Not insignificant, and since this stacks with other civilizations neighboring the player's city, this could easily add up.
Or, a civilization is exporting 200 tourism per turn and has Capitalism. It's capital is 8 tiles away from your nearest city. You also follow Capitalism and produce 250 culture per turn. Pressure from tourism on that city would be 200 - ( 5 * 8) - ( 250 / 2) = 35. So, because you follow the same government, even though the enemy's tourism is higher and the capital is almost 50% closer, it has much less of an overall effect.
Or, a civilization is exporting 100 tourism per turn and has Communism. Its capital is a mere 4 tiles from your nearest city. You follow Capitalism and produce 250 culture per turn. Pressure from tourism on that city would be (100 * 2) - ( 5 * 4) - ( 250 / 2 ) = 55. So in comparison to the first example, even though the city is much closer to the capital, the civilization's decreased tourism from 150 to 100 means it only has about half the effect.
What this overall means is that the greatest effect would be from different governments and increased tourism, while the lowest effect would be from distance to the capital.
you can look at the mod description for details, for more information ingame you need to expand the panel and then click on the bar on the right,
I mean how to change a city government back, from your suggestion every city would have its government and could change it after a revolt.
may be I could make tourism modify cultural identity but idk for gouvernment, may be if government stability is lower than neighbour empire then tourism could have a little effect but not that much.
The mod doesn't need any dlc,
changed many things and I don't remember them all, I think it's easier to read the mod description at this point
<Dependencies>
<Mod id="1B28771A-C749-434B-9053-D1380C553DE9" title="Extension : Rise and Fall" />
</Dependencies>
local bIsRiseFall :boolean = Modding.IsModActive("1B28771A-C749-434B-9053-D1380C553DE9");
function HasTrait( traitName:string, playerId:number )
if playerId == nil then playerId = Game.GetLocalPlayer(); end
if playerId == -1 then return false; end -- Autoplay.
local config :table = PlayerConfigurations[playerId];
if(config ~= nil) then
local leaderType:string = config:GetLeaderTypeName();
local civType :string = config:GetCivilizationTypeName();
if leaderType then
for row in GameInfo.LeaderTraits() do
if row.LeaderType==leaderType and row.TraitType == traitName then
return true;
end
end
end
if civType then
for row in GameInfo.CivilizationTraits() do
if row.CivilizationType== civType then
if row.TraitType == traitName then
return true;
end
end
end
end
end
return false;
end
function GetCulturePresure(playerID, cityID, cityKey, pCity, divisor)
culturePresure = emptyTable(culturePresure);
if not divisor then
divisor = 3
end
local kPlayers :table = PlayerManager.GetWasEverAlive();
for _, pPlayer in ipairs (kPlayers) do
local pCapitalCity = pPlayer:GetCities():GetCapitalCity();
local CityOwnerID = pCity:GetOwner()
if playerID == pPlayer:GetID() then
playerdivisor = 1
else
playerdivisor = 3 - pPlayer:GetDiplomacy():GetVisibilityOn(playerID)/2 ;
end
for _,pCity2 in pPlayer:GetCities():Members() do
local City2OwnerID = pCity2:GetOwner()
if cityID ~= pCity2:GetID() or playerID ~= pPlayer:GetID() then
local capitalMultiplier = 1;
local DiffGovMultiplier = 1;
if pCapitalCity == pCity2 then
capitalMultiplier = 1.5;
end
if PlayerConfigurations[City2OwnerID]:GetLeaderTypeName() == "LEADER_SNACK_JFK" and (Players[CityOwnerID]:GetCulture():GetCurrentGovernment() ~= Players[City2OwnerID]:GetCulture():GetCurrentGovernment()) then
local DiffGovMultiplier = 100;
print("John F. Kennedy multiplier is "..DiffGovMultiplier);
end
local cityKey2 = pCity2:GetX().."."..pCity2:GetY()
local DistancebtweenCities = Map.GetPlotDistance(pCity:GetX(), pCity:GetY(), pCity2:GetX(), pCity2:GetY());
if DistancebtweenCities <= 10 then
local Valuemodifier = Round( (11 - DistancebtweenCities) * GetCityData(pCity2).CulturePerTurn * pCity2:GetPopulation() / divisor / playerdivisor * capitalMultiplier * DiffGovMultiplier, 1 );
local city2Culture = uprisingEmpireData[cityKey2].Culture;
if not culturePresure[city2Culture] then
culturePresure[city2Culture] = {}
culturePresure[city2Culture].TotalPresure = 0;
elseif not culturePresure[city2Culture].TotalPresure then
culturePresure[city2Culture].TotalPresure = 0;
end
culturePresure[city2Culture][cityKey2] = Valuemodifier
culturePresure[city2Culture].TotalPresure = culturePresure[city2Culture].TotalPresure + Valuemodifier;
end
end
end
end