Community Patch for BNW

Wait. You said your DLL compilation does NOT work with Smart AI (there are heavy AI bugs) o_o

"More of Smart AI to come in v51"??

There were between 18 and 20 sub-features of Smart AI (I forget the exact number), 4 or 5 of those I've completely dropped, a couple I've merged as they were inextricably linked and I've resolved a few bugs in a couple of others. So it's been more of a salvage effort than a clean integration.
 
Is there any way that making diplomatic relations more modular would fall within the scope of this project? The global limitation of three custom diplomatic values is really inhibiting (for me, at least, but I'm sure other modders have thought about it). I believe that Putmalk's CivIV Diplomacy mod adds additional ones through his DLL. Perhaps it would be non-trivial to allow the addition of new diplomatic modifiers through Lua.
 
This might not even be possible by modding only cvgamecore.dll, but something i would like to see is a way to accelerate animations, rather than just skip them with quick movement/combat or live with the current sluggish animations.

All of the UI (3d-map, sv map, animations, dialog components, etc, etc) are in the UI DLL and not accessible from C++ either :(

Communitas' CAT_Options.sql has unit animation speed parameters (that do work), so it does seem possible. :confused:

(Sorry to bring this up so far after Bob's post, I just discovered this project. Great work, everyone!:beer:)
 
There were between 18 and 20 sub-features of Smart AI (I forget the exact number), 4 or 5 of those I've completely dropped, a couple I've merged as they were inextricably linked and I've resolved a few bugs in a couple of others. So it's been more of a salvage effort than a clean integration.

You are glorious :D I am awaiting on v51 :)
 
Edit: Also, I was thinking last night about a function that might be a fun addition. Would there be any interest in building a table of additional 'gifts' that could be given to players upon meeting CSs? I know whoward has a mod that does this with yields, however what if, in addition to that, we were able to take the 'Goody Hut' gifts (like advanced techs) and have CSs give those out to the first player that meets them? It makes marginally more sense to get free tech/advanced weapons/citizens etc. from CSs than from 'ruins of ancient civilizations.' Thoughts?

Pleased to meet such a great civilization, they teach your unit to use their advanced weapons (for first civ) / grant your unit a promotion (everyone else)
Pleased to meet such a great civilization, they immediately send a trade mission to your lands, creating +3/+1 happiness for x turns.
Pleased to meet such a great civilization, they supply your lands with +X to food stores in the capital.

Other bonuses could be a one-time bump in beakers, heal a wounded unit, great person points, a caravan/cargo ship if the newly met city-state is in range and your routes aren't all used yet, they improve a resource for you, they tell you which direction to go to find a natural wonder... I could go on, but it's getting late here. :crazyeye:

The faith bonus for religious CS's is probably fine as-is.
 
You are glorious :D I am awaiting on v51 :)

V51a is posted on my main DLL thread, it can be copied over the dll in the v50 version of the mod
 
I have an idea. Instead of making city states give these gifts, why don't you just change ruins to native villages like older civs? It makes more sense to me, and makes the world you're playing in more real and interesting.

Talking about goody hut bonuses, some frustating ones really need to be removed and replaced with better ones. I'm looking at you, "discover a map that reveals surrounding area" and "reveals surrounding barbarians".

Some ideas:

- The natives construct a Monument for you! They place it in your city :c5capital: capital.

- The natives gift you with one of their slaves to help you build your empire. (Free worker)

- The natives send you a guide to show you the paths around their village. (Free scout)

- The natives gift you with a prized work of art! (Free :greatwork: work of music/writing/art, only happens if you have an available slot)

Etc.
 
Talking about goody hut bonuses, some frustating ones really need to be removed and replaced with better ones. I'm looking at you, "discover a map that reveals surrounding area" and "reveals surrounding barbarians".
Don't need a DLL mod to remove those.

EDIT: And there's already a GOODY_SCOUT and a GOODY_WORKER (plus a GOODY_WARRIOR and a GOODY_SETTLER). Are they not hooked up?
 
CS gifts and Goody-Huts results are already moddable now with whoward's dll (and to some extand with no dll at all for Goody-Huts) so no need to bother about those. Changing the actual results you get will be done by individual mods, not the Community Patch as the goal here is to provide tools but change the balance as little as possible.

@whoward : If you can't get an easy way to integrate the parameters in the header file it's always possible to get them by searching for each method in the corresponding cpp file and then checking the messy wiki for possible unusual types such as those psenduo-enumerators (that's what i did for the methods i posted). It's time consuming but a well trained chimp could do it. Since we don't have a chimp at hand (as far as i know) i'm willing to do it and put all those in a text file for easy access and let you concentrate on the coding part. That being said, if you can make the task easier without wasting too much efforts then of course it's even better.

Communitas' CAT_Options.sql has unit animation speed parameters (that do work), so it does seem possible. :confused:

(Sorry to bring this up so far after Bob's post, I just discovered this project. Great work, everyone!:beer:)
That only works for part of the animations as far as i can tell. Maybe Expired Reign can tell us more but i looked at this when i was trying to speed up animations. Works for planes and possibly walking speed of units, but not combat animation and not even the moving part of the combat animation (such as cavalry turning around and charging) so you end up with units moving fast but charging slowly and that looks ... weird. I had a slight hope (but not much) that with dll access this could be harmonized so that everything could be accelerated.
 
@whoward : If you can't get an easy way to integrate the parameters in the header file it's always possible to get them by searching for each method in the corresponding cpp file and then checking the messy wiki for possible unusual types such as those psenduo-enumerators (that's what i did for the methods i posted). It's time consuming but a well trained chimp could do it. Since we don't have a chimp at hand (as far as i know) i'm willing to do it and put all those in a text file for easy access and let you concentrate on the coding part. That being said, if you can make the task easier without wasting too much efforts then of course it's even better.

Took about an hour to retro-fit the return values and the parameters, it will make it easier for someone else to fully document. (Note that it doesn't catch methods where additional optional parameters have been added)
Spoiler :
Code:
City
LUAAPIEXTN(GetProcessProductionTurnsLeft, int);
LUAAPIEXTN(IsAddsFreshWater, bool);
LUAAPIEXTN(GetNumBuildingClass, int, iBuildingClassType);
LUAAPIEXTN(IsHasBuildingClass, bool, iBuildingClassType);
LUAAPIEXTN(GetTourismRateModifier, int);
LUAAPIEXTN(ChangeTourismRateModifier, void, iChange);
LUAAPIEXTN(GetBuyPlotDistance, int);
LUAAPIEXTN(GetWorkPlotDistance, int);
LUAAPIEXTN(GetCityWorkingChange, int);
LUAAPIEXTN(ChangeCityWorkingChange, void, iChange);
LUAAPIEXTN(GetBaseYieldRateFromGreatWorks, int, iYield);
LUAAPIEXTN(GetBaseYieldRateFromLeague, int, iYield);
LUAAPIEXTN(GetBombardRange, int); // returns iRange, bIndirectFire
LUAAPIEXTN(SetNumFreeBuilding, void, iBuildingType, iCount);
LUAAPIEXTN(HasDiplomat, bool, iPlayer);
LUAAPIEXTN(HasSpy, bool, iPlayer);
LUAAPIEXTN(HasCounterSpy, bool);
LUAAPIEXTN(GetCounterSpy, int);
LUAAPIEXTN(GetBuildingConversionModifier, int, iBuildingType);
LUAAPIEXTN(GetBuildingGlobalConversionModifier, int, iBuildingType);
LUAAPIEXTN(AddMessage, void, sMessage, iNotifyPlayer);

Game
LUAAPIEXTN(IsInSomeReligion, bool, iBelief, iPlayer);
LUAAPIEXTN(EnhancePantheon, void, iPlayer, iBelief);
LUAAPIEXTN(IsAchievementUnlocked, bool, iAchievement);
LUAAPIEXTN(GetSteamStat, int, iSteamStat);
LUAAPIEXTN(CreateGreatWork, int, iGreatWorkType, iOwningPlayer, iEra, sCreator);
LUAAPIEXTN(GetTradeRoute, table, iRouteIndex);
LUAAPIEXTN(ReloadGameDataDefines, void);
LUAAPIEXTN(ReloadCustomModOptions, void);
LUAAPIEXTN(SpewTestEvents, int, iLimit); // returns iSeconds, iMilliSeconds
LUAAPIEXTN(GetMinimumVoluntaryVassalTurns, int);
LUAAPIEXTN(GetMinimumVassalTurns, int);
LUAAPIEXTN(GetNumTurnsBetweenVassals, int);

League
LUAAPIEXTN(GetSpaceShipProductionMod, int);
LUAAPIEXTN(GetSpaceShipPurchaseMod, int);

Player
LUAAPIEXTN(IsCityNameValid, bool, sName, bTestDestroyed);
LUAAPIEXTN(GetSpecificUnitType, int, sUnitClass);
LUAAPIEXTN(GetSpecificBuildingType, int, sBuildingClass);
LUAAPIEXTN(IsPlotConnectedToPlot, bool, pFromPlot, pToPlot);
LUAAPIEXTN(GetMaxStockpile, int);
LUAAPIEXTN(DoSwapGreatWorks, void, iFocusYield);
LUAAPIEXTN(GetBeliefsInPantheon, table);
LUAAPIEXTN(CanAdoptIdeology, bool, iIdeologyBranch);
LUAAPIEXTN(CanAdoptTenet, bool, iTenetPolicy, bIgnoreCost);
LUAAPIEXTN(GetGreatDiplomatRateModifier, int);
LUAAPIEXTN(GetScienceRateFromMinorAllies, int);
LUAAPIEXTN(GetScienceRateFromLeagueAid, int);
LUAAPIEXTN(GetLeagueCultureCityModifier, int);
LUAAPIEXTN(GetPolicyGreatDiplomatRateModifier, int);
LUAAPIEXTN(SetPersonality, void, iPersonality);
LUAAPIEXTN(GetBuyPlotDistance, int);
LUAAPIEXTN(GetWorkPlotDistance, int);
LUAAPIEXTN(GetCityWorkingChange, int);
LUAAPIEXTN(ChangeCityWorkingChange, void, iChange);
LUAAPIEXTN(DismissNotification, void, iIndex, bUserInvoked);
LUAAPIEXTN(IsTraitAnyBelief, bool);
LUAAPIEXTN(GetPolicyConversionModifier, int, iPolicyType);
LUAAPIEXTN(EspionageCreateSpy, void);
LUAAPIEXTN(EspionagePromoteSpy, void, iSpyIndex);
LUAAPIEXTN(EspionageSetPassive, void, iSpyIndex, bPassive);
LUAAPIEXTN(EspionageSetOutcome, void, iSpyIndex, iSpyResult, bAffectsDiplomacy);
LUAAPIEXTN(GetPotentialInternationalTradeRouteDestinationsFrom, table, pUnit, pCity);
LUAAPIEXTN(AddMessage, void, sMessage);
LUAAPIEXTN(GetVassalGoldMaintenance, int);
LUAAPIEXTN(IsVassalageAcceptable, bool, iOtherPlayer);
LUAAPIEXTN(GetJONSCulturePerTurnFromVassals, int);
LUAAPIEXTN(GetHappinessFromVassals, int);
LUAAPIEXTN(GetScoreFromVassals, int);
LUAAPIEXTN(GetScienceFromVassalTimes100, int);
LUAAPIEXTN(GetMilitaryAggressivePosture, int, iOtherPlayer);
LUAAPIEXTN(MoveRequestTooSoon, bool, iOtherPlayer);
LUAAPIEXTN(GetPlayerMoveTroopsRequestCounter, int, iOtherPlayer);

Plot
LUAAPIEXTN(GetTurnDamage, int, bIgnoreTerrainDamage, bIgnoreFeatureDamage, bExtraTerrainDamage, bExtraFeatureDamage);
LUAAPIEXTN(IsBlockaded, bool, iPlayer);
LUAAPIEXTN(IsAdjacentToIce, bool);
LUAAPIEXTN(IsNaturalWonder, bool);
LUAAPIEXTN(HasDig, bool);
LUAAPIEXTN(GetPlayerThatBuiltImprovement, int);
LUAAPIEXTN(IsFriendlyCityOrPassableImprovement, bool, pUnit, bCheckImprovement);
LUAAPIEXTN(GetUnitLimit, int);
LUAAPIEXTN(GetIndex, int);
LUAAPIEXTN(IsTerraFirma, bool, pUnit);
LUAAPIEXTN(GetPlayerThatBuiltImprovement, int);
LUAAPIEXTN(SetPlayerThatBuiltImprovement, void, iPlayer);
LUAAPIEXTN(GetPlayerResponsibleForImprovement, int);
LUAAPIEXTN(SetPlayerResponsibleForImprovement, void, iPlayer);
LUAAPIEXTN(GetPlayerResponsibleForRoute, int);
LUAAPIEXTN(SetPlayerResponsibleForRoute, void, iPlayer);
LUAAPIEXTN(GetPlayerThatClearedBarbCampHere, int);
LUAAPIEXTN(SetPlayerThatClearedBarbCampHere, void, iPlayer);
LUAAPIEXTN(IsImprovementEmbassy, bool);
LUAAPIEXTN(AddArchaeologicalRecord, void, iArtifactClass, iEra, iPlayer1, iPlayer2);
LUAAPIEXTN(AddMessage, void, sMessage, iNotifyPlayer);
LUAAPIEXTN(AddPopupMessage, void, sMessage, fDelay, iNotifyPlayer);

Team
LUAAPIEXTN(GetCityWorkingChange, int);
LUAAPIEXTN(IsCityWorkingChange, bool);
LUAAPIEXTN(ChangeCityWorkingChange, void, iChange);
LUAAPIEXTN(HasSpyAtTeam, bool, iTeam);
LUAAPIEXTN(IsVassal, bool, iteam);
LUAAPIEXTN(CanBecomeVassal, bool, iTeam);
LUAAPIEXTN(canEndVassal, bool, iTeam);
LUAAPIEXTN(IsVassalageTradingAllowed, bool);
LUAAPIEXTN(GetNumTurnsIsVassal, int, iTeam);
LUAAPIEXTN(GetNumTurnsSinceVassalEnded, int, iTeam);
LUAAPIEXTN(IsTooSoonForVassal, bool, iTeam);
LUAAPIEXTN(IsVassalOfSomeone, bool);
LUAAPIEXTN(IsVassalLockedIntoWar, bool, iTeam);
LUAAPIEXTN(GetMaster, int);
LUAAPIEXTN(IsVoluntaryVassal, bool, iTeam);
LUAAPIEXTN(DoBecomeVassal, void, iTeam, bVoluntary);
LUAAPIEXTN(DoEndVassal, void, iTeam, bPeaceful, bSuppressNotification);

Unit
LUAAPIEXTN(Upgrade, pUnit, bIsFree);
LUAAPIEXTN(UpgradeTo, pUnit, iUpgradeUnitType, bIsFree);
LUAAPIEXTN(RebaseAt, void, iPlotX, iPlotY);
LUAAPIEXTN(CanPlunderTradeRoute, bool, pPlot);
LUAAPIEXTN(PlunderTradeRoute, bool);
LUAAPIEXTN(CanCreateGreatWork, bool, pPlot);
LUAAPIEXTN(CreateGreatWork, bool);
LUAAPIEXTN(CanUpgradeTo, bool, iUpgradeUnitType, bTestVisible);
LUAAPIEXTN(CanUpgradeInTerritory, bool, bTestVisible);
LUAAPIEXTN(GetUnitPromotionType, int);
LUAAPIEXTN(GetTradeRouteIndex, int);
LUAAPIEXTN(IsRecalledTrader, bool);
LUAAPIEXTN(RecallTrader, void, bImmediate);
LUAAPIEXTN(EndTrader, void);
LUAAPIEXTN(IsHoveringUnit, bool);
LUAAPIEXTN(IgnoreTerrainDamage, bool);
LUAAPIEXTN(IgnoreFeatureDamage, bool);
LUAAPIEXTN(ExtraTerrainDamage, bool);
LUAAPIEXTN(ExtraFeatureDamage, bool);
LUAAPIEXTN(GetNearbyImprovementCombatBonus, int);
LUAAPIEXTN(GetNearbyImprovementBonusRange, int);
LUAAPIEXTN(GetCombatBonusImprovement, int);
LUAAPIEXTN(CanCrossMountains, bool);
LUAAPIEXTN(CanCrossOceans, bool);
LUAAPIEXTN(CanCrossIce, bool);
LUAAPIEXTN(GetExtraReconRange, int);
LUAAPIEXTN(IsTerrainHalfMove, bool, iTerrainType);
LUAAPIEXTN(IsFeatureHalfMove, bool, iFeatureType);
LUAAPIEXTN(SetActivityType, void, iActivityType, bClearFortify);
LUAAPIEXTN(SetReligion, void, iReligion);
LUAAPIEXTN(SetConversionStrength, void, iStrength);
LUAAPIEXTN(SetSpreadsLeft, void, iSpreads);
LUAAPIEXTN(AddMessage, void, sMessage, iNotifyPlayer);

and it will now just be a case of adding the details to new ones (which the macro partially enforces)
 
Work is proceeding on the Unified Prereqs - I now have all the missing events in v51 of my DLL.

I'm wondering if we should roll "notification events" into the same block of work.

CityCanConstruct --> CityConstructed
CityCanTrain --> CityTrained
PlayerCanAdoptTenet --> PlayerAdoptedTenet

etc.

Again a large number of these already exist either in the core DLL or my DLL, so adding the missing ones shouldn't be too much work

Edit: Actually the only ones missing are ResolutionPassed and ResolutionFailed - so I'll just add them in
 
Don't need a DLL mod to remove those.

EDIT: And there's already a GOODY_SCOUT and a GOODY_WORKER (plus a GOODY_WARRIOR and a GOODY_SETTLER). Are they not hooked up?

They are, they're just active on the lowest difficulty settings only.

That only works for part of the animations as far as i can tell. Maybe Expired Reign can tell us more but i looked at this when i was trying to speed up animations. Works for planes and possibly walking speed of units, but not combat animation and not even the moving part of the combat animation (such as cavalry turning around and charging) so you end up with units moving fast but charging slowly and that looks ... weird. I had a slight hope (but not much) that with dll access this could be harmonized so that everything could be accelerated.

Oh, I see - I always played without combat animations on. That's a shame.:(
 
Hey all!

Sorry for the quiet lately - busy weekend. I'm getting quite close to a v1 release of the patch. It contains Whoward's v51 dll, as well as a slew of additions and tweaks.

Current changes:

- Whoward's unified prerequisites (built into v51 of his dll)
- Whoward's tactical and military enhancements (rewrite of Smart AI built into v51 of whoward's dll)
- Settler site selection logic vastly improved. True choke-point and strategic location logic created, as well as smart site choices based on relative strength of neighbors and border real estate between two empires. In short, the AI will build tighter empires that are focused on strategic locations and closing gaps between empires.
- Smarter naval invasions and better general invasion/war start logic. The AI will hit harder, with larger armies and navies, and will be more aggressive on the assault if outnumbering their opponents. The AI will also choose to land assaulting troops in friendly territory, if possible, before declaring war or assaulting a coastal city.
- The AI will do a better job of focus-firing high-priority targets, and will view units in forts and defensive terrain as 'hard-points' to be eliminated more quickly. The AI will focus on killing units with lower health if possible, and will be more capable of sustaining a siege.
-The value of all trade goods will vary based on a myriad of factors, including relative happiness of the buyer and seller, personal relationship, comparative military strength, border proximity, and the total quantity of all luxury goods held by a player. For example, if a player has a lot of luxury goods (more than the AI), the AI will value their own goods more. Friends and allies will receive discounts, however the AI will be more shrewd when trading with unfriendly neighbors. Strategic goods will be valued greater if two players are neighbors, or if the other player is stronger than the AI. In short, relationships are not the only factors at stake now.
- Declaring war on a city-state now causes a 30-turn period of forced war with the city-state (you cannot make peace). Your base influence with all city-states is lowered by 10 for every unprovoked war such as this.
- The AI will fortify units that are not on sentry or doing anything else useful (this will save some pathfinding cpu cycles).
- Additional religious, building and player XML tables created for plot-type yields, improvements, or resources. The latter will, for example, allow Dance of the Aurora to require improvements. Plot-type yields will allow buildings to modify mountain etc. yields without resorting to LUA. (These yield changes will be rolled in later).

I'll keep you updated as I continue to refine these features.
G
 
- Whoward's tactical and military enhancements (rewrite of Smart AI built into v51 of whoward's dll)

There is an issue with the original code, in that the AI will still leap, lemming like, into the sea at the end of a unit's move when attacking. Pretty sure the issue is in the path-finder with the AI's insistence in using all possible movement allowance - you can see this if you route lots of units along a road - some will jump off the road if they have 0.1 of a movement point left. The AI needs to learn that sometimes "less is more".

I hope that "30 turns of war with a city state" is configurable in XML as even if you declare war with a major you're only locked into it for 10 turns (IIRC)

Some other random musings.

If you eliminate the host of the WC the victor becomes the new host - there should probably be an election.

If you're at war with the host, you can still vote - very doubtful (pre-UN) the delegates would have gone to be captured/ransomed/slain! If a mechanism is put in place that you can't vote if at war with the host, there also needs to be a quorum mechanism (eg 60% of member states must be able to vote, minimum 3) or the session is delayed.

Why can you swap great works with a civ you're at war with? Actually the whole GW swap screen seems to be a "we need something quick" solution. Great Works should be a tradable commodity (like resources, embassies, WC votes, etc)

W
 
CS gifts and Goody-Huts results are already moddable now with whoward's dll (and to some extand with no dll at all for Goody-Huts) so no need to bother about those. Changing the actual results you get will be done by individual mods, not the Community Patch as the goal here is to provide tools but change the balance as little as possible.
It's a community patch, sometimes patches introduce new stuff. The whole "ruins are now villages" is a bit too big of a change sure, but I don't see why adding new goodies and removing frustating ones would be too "custom". It adds choices and improves balance.

Your base influence with all city-states is lowered by 10 for every unprovoked war such as this.
I agree with the anti-exploit city-state worker protection thing, but isn't this a bit extreme? Also, what if you have city-state friends/allies? Should they not be on your side when you declare war against a city-state?

If you're at war with the host, you can still vote - very doubtful (pre-UN) the delegates would have gone to be captured/ransomed/slain! If a mechanism is put in place that you can't vote if at war with the host, there also needs to be a quorum mechanism (eg 60% of member states must be able to vote, minimum 3) or the session is delayed.
It would be even harder for you to stop being bullied by a large civ though. "I embargo you! And you have no say in this!"

In the same topic, do you guys intend to add more WC/UN options?
 
There is an issue with the original code, in that the AI will still leap, lemming like, into the sea at the end of a unit's move when attacking. Pretty sure the issue is in the path-finder with the AI's insistence in using all possible movement allowance - you can see this if you route lots of units along a road - some will jump off the road if they have 0.1 of a movement point left. The AI needs to learn that sometimes "less is more".

I hope that "30 turns of war with a city state" is configurable in XML as even if you declare war with a major you're only locked into it for 10 turns (IIRC)

Some other random musings.

If you eliminate the host of the WC the victor becomes the new host - there should probably be an election.

If you're at war with the host, you can still vote - very doubtful (pre-UN) the delegates would have gone to be captured/ransomed/slain! If a mechanism is put in place that you can't vote if at war with the host, there also needs to be a quorum mechanism (eg 60% of member states must be able to vote, minimum 3) or the session is delayed.

Why can you swap great works with a civ you're at war with? Actually the whole GW swap screen seems to be a "we need something quick" solution. Great Works should be a tradable commodity (like resources, embassies, WC votes, etc)

W

Hmm...any thoughts on how to tackle the pathfinding bug? I'll start exploring. I guess we could do an 'if not embarked or on route' test?

The CS 30 turn value is a define, yes. If set to zero, it'll disable the cooldown.

I agree regarding great works, though the problem is that great works are not a 'retractable' resource like a luxury - if you trade it for, say, 30 turns of crabs, you don't get it back (unless we designed it to be like an art loan, which could be fun). The current system is very gamey, though.

As far as the WC is concerned, that shouldn't be too hard to enable (the vote-after-host-murder point). There are 'quorum' functions in the dll, but I haven't looked at them. I'll take a look once I've finished up the current slew of stuff.

What's next for you, whoward, now that the unified prereqs are done?

I agree with the anti-exploit city-state worker protection thing, but isn't this a bit extreme? Also, what if you have city-state friends/allies? Should they not be on your side when you declare war against a city-state?

The CS -10 factor only applies if you are not friends or allies with the CS. Extreme, perhaps, but also an extreme exploit. :)

In the same topic, do you guys intend to add more WC/UN options?

CSD includes half a dozen new resolutions, and an entirely revamped WC. I'm going to recommend that players use CSD with the patch, as it makes some significant changes to the AI's performance.

I'll eventually make CSD wholly modular, so that the diplo units/buildings can be disabled, if that isn't to the liking of some players.
G
 
Forgive me if this has already been done and I missed it, but could it be possible to introduce the possibility (though don't necessarily make it the default behavior) of separating the counters for every type of Great Person?

Also, regarding the changes to war durations with City-States and their effects on City-State influence: you did say the minimum war duration can be edited, but can you also edit the influence resting point? -10 to the resting point with all other City-States for just one war is massive and has the unfortunate effect of discouraging the actual conquest of City-States, something which I find needs a lot of encouragement. Though I most definitely understand why you want to squash the worker stealing exploit.

Or am I incorrectly reading into what you mean by "base influence?" Do you just mean that your current influence value is reduced by 10, or do you actually mean its resting point?
 
Forgive me if this has already been done and I missed it, but could it be possible to introduce the possibility (though don't necessarily make it the default behavior) of separating the counters for every type of Great Person?

Also, regarding the changes to war durations with City-States and their effects on City-State influence: you did say the minimum war duration can be edited, but can you also edit the influence resting point? -10 to the resting point with all other City-States for just one war is massive and has the unfortunate effect of discouraging the actual conquest of City-States, something which I find needs a lot of encouragement. Though I most definitely understand why you want to squash the worker stealing exploit.

Or am I incorrectly reading into what you mean by "base influence?" Do you just mean that your current influence value is reduced by 10, or do you actually mean its resting point?

Both CS values are editable. -10 to base influence level is the current setting as a proof-of-concept; the final value will be decided later.

Separating the great person counters would be an enormous task, as there are dozens of functions that call on the combined counters (as well as the WC resolutions). Any particular reason why you want them separated?
G
 
Back
Top Bottom