Advanced Civ

first impression lasts long time? [...] ai attitude never changes or shifts, still have first impression value.
That's as in BtS. Everlasting. Could be interesting to let it fade over time. I think it's important that the warmongers don't usually end up fighting inconclusive wars amongst each other while the other leaders cooperate and pull ahead, but perhaps it's enough to nudge inter-AI relationships in that direction for the first half of the game, and during the second half the modifiers could gradually decrease. Such a change would be in line with the decay of the memory-based modifiers. Hm. It seems that "lasting" could be understood to mean permanent, so one might have to come up with a different explanation text. Civ 6 has a modifier that says just "First impressions of you" and decays.

Defensive pacts and map trade also work as in BtS. Same as open borders and tech trading. Otherwise you wouldn't have anyone to trade with if you're the first to discover Paper etc.
i still see very weird ai city build - the ai founded a city, on my island on the one spot that was free, desert, half of the tiles are water, really bad place for a city.(ghandi). [...] i can attach save games as usual.
If it's mainly about that city site, a screenshot in Debug mode would also help. Generally, the best tiles are more decisive than the worst. (The 7th best tile won't matter until the city grows to size 7 – to state the obvious.) That's not to say, of course, that you can't be right about this particular city of Gandhi.
ai ghandi can wipe me out, but, i never tried.
Surely, :c5faith:Gandhi:c5faith: isn't supposed to wipe anyone out if he's winning anyway(?).
not sure if the ai aggressive is save game related.
i altered some of the values as we spoke, in the ai stuff over the globals.
None of that should be stored in savegames. Are those changes of yours on GitHub? I don't think I've seen them. It could be that there's some more fundamental issue with AI naval wars that I'll have to address in the DLL. Still planning to look into it.
turn 420 ai declare war on another ai ! yey! action time!
It's Epic speed, but that doesn't make it much better. Early 19th century ...
 
OK,
6 hours of multiplayer game.

That's as in BtS. Everlasting. Could be interesting to let it fade over time. I think it's important that the warmongers don't usually end up fighting inconclusive wars amongst each other while the other leaders cooperate and pull ahead, but perhaps it's enough to nudge inter-AI relationships in that direction for the first half of the game, and during the second half the modifiers could gradually decrease. Such a change would be in line with the decay of the memory-based modifiers. Hm. It seems that "lasting" could be understood to mean permanent, so one might have to come up with a different explanation text. Civ 6 has a modifier that says just "First impressions of you" and decays.
cool, i would like a decay of that sort, more realistic or, vice versa, some new good impression after maybe certain actions?

efensive pacts and map trade also work as in BtS. Same as open borders and tech trading. Otherwise you wouldn't have anyone to trade with if you're the first to discover Paper etc.
yes, realized as i went.

If it's mainly about that city site, a screenshot in Debug mode would also help. Generally, the best tiles are more decisive than the worst. (The 7th best tile won't matter until the city grows to size 7 – to state the obvious.) That's not to say, of course, that you can't be right about this particular city of Gandhi.
ill upload you all the saves i took during the game , i marked them with the situation at hand so you can take a look.

Surely, :c5faith:Gandhi:c5faith: isn't supposed to wipe anyone out if he's winning anyway(?).
i guess that is aligned with his traits,
if he would attack it would be end game for me...im closer to him.
i just say 10 cargo ships moving near me ....

None of that should be stored in savegames. Are those changes of yours on GitHub? I don't think I've seen them. It could be that there's some more fundamental issue with AI naval wars that I'll have to address in the DLL. Still planning to look into it.
ok so only around trun 420 things, became a bit more alive...i counted 3 war declarations ai to ai,
usually point leader to lower.
not sure of the out come yet, some wars still going.
im pretty sure naval movement of ai is somewhat lacking, i remember seeing in re imagined civ mod 1.2 i think, very cool ai landing units from afar or near, small attacks big attacks,
challenging, on archipelago of course. i would have liked to see that, the ai, do send out attack parties sometimes for some quick annoying war.
the long peace time is somewhat boring , the challange comes from my or my friends war declarations.
its still really hard to conquer, my friend stated some, off the odds losses. very hard to attack - are you sure there isnt some modifier that changes stuff?
not that i dont like that challenge, but really hard to push, need tons of troops and siege.

Are those changes of yours on GitHub?
no , we are using my 103 version, might be my master on git - i can link you the file anyway (merged with the hotfix branch).

It's Epic speed, but that doesn't make it much better. Early 19th century .
like i said, i would have liked to see action before, but i guess thats due to the bad start that you described to me before along with the basic 096 version.

my main enjoyment is seeing the ai fight each other and the human players, i hope ill see more of it. i did some tweaks on (xml) my next 104, but not that much.


also -
maybe give some more negative bonus to health and happiness, these were never an issue in our game.
maybe doto related though.

multiplayer double pop up - its gone but once in a million turns, a re pop up and close comes up after some choice - but its rare, so no worries.

my friend also told me he had a catapult that had movement but coudlnt attack, weird, i made a save.


-----
siege and ranged,
im thinking of adding a land unit that can range attack,
with air range (similar to that modern unit, modile artillery maybe)
the one down side is that it cant miss, always hit.
i used it once in old doto, better imo than regular siege units.


i hope im helping out with this report and coming saves :)


good night,
im tired, those Japanese are one hard cookie.
 
very hard to attack - are you sure there isnt some modifier that changes stuff?
Pretty sure. Let's consult the combat logs in your savegames. (I can see that, while playing a game with simultaneous turns, there is no time for such investigations.)
the long peace time is somewhat boring
I'd feel the same way.
like i said, i would have liked to see action before, but i guess thats due to the bad start that you described to me before along with the basic 096 version.
Once the AI has Galleons though, at least when using more aggressive UWAI weights than normal, there should be some warfare. Gandhi (winning peacefully) and Tokugawa and Genghis Khan (on the ropes) are excused. That still leaves 3 or 4 AI civs as far as I remember.
maybe give some more negative bonus to health and happiness, these were never an issue in our game.
maybe doto related though.
Could be. Or too many city sites per player.
my friend also told me he had a catapult that had movement but coudlnt attack, weird, i made a save.
Damage limit reached perhaps.
im thinking of adding a land unit that can range attack,
with air range (similar to that modern unit, modile artillery maybe)
the one down side is that it cant miss, always hit. i used it once in old doto, better imo than regular siege units.
If you don't need the range to be greater than 1, then a combination of a strict damage limit and first strikes could have a similar effect (with, in theory, full AI/UI support). I mean, if the goal is mainly to avoid suicide attacks.
 
ok,
here we are,
the saves - i added in some a situation key word description:
https://www.mediafire.com/file/8m2basl11w4057t/mult_savesi.7z/file

and the version we used:
http://www.mediafire.com/file/mbrin5taj61fkex/Doto_103_2_096eadvc.7z/file

Once the AI has Galleons though, at least when using more aggressive UWAI weights than normal, there should be some warfare. Gandhi (winning peacefully) and Tokugawa and Genghis Khan (on the ropes) are excused. That still leaves 3 or 4 AI civs as far as I remember.
well, we started to see more action there, but not that much i think.

regarding the UWAI,
after the game, i went through all of them and boosted up some,
what do you think ?

Spoiler UWAI :

<DefineName>UWAI_WEIGHT_MILITARY_VICTORY</DefineName>
<iDefineIntVal>125</iDefineIntVal>

<DefineName>UWAI_WEIGHT_FIDELITY</DefineName>
<iDefineIntVal>125</iDefineIntVal>

<DefineName>UWAI_WEIGHT_BORDER_DISPUTES</DefineName>
<iDefineIntVal>125</iDefineIntVal>

<DefineName>UWAI_WEIGHT_PREEMPTIVE_WAR</DefineName>
<iDefineIntVal>150</iDefineIntVal>

<DefineName>UWAI_WEIGHT_KING_MAKING</DefineName>
<iDefineIntVal>125</iDefineIntVal>

<DefineName>UWAI_WEIGHT_FAIR_PLAY</DefineName>
<iDefineIntVal>90</iDefineIntVal>

<DefineName>UWAI_MULTI_WAR_RELUCTANCE</DefineName>
<iDefineIntVal>15</iDefineIntVal>

<DefineName>BBAI_ATTACK_CITY_STACK_RATIO</DefineName>
<iDefineIntVal>115</iDefineIntVal>



Could be. Or too many city sites per player.
for 104,
i added -1 to health and happiness in gunpowder and rifling maybe.

Damage limit reached perhaps.
ah yeah might be.

If you don't need the range to be greater than 1, then a combination of a strict damage limit and first strikes could have a similar effect (with, in theory, full AI/UI support). I mean, if the goal is mainly to avoid suicide attacks.
interesting -
what will the first strike will change? what is it role be to imitate?
i will do some range 1 some range 2.
the ai is using this feature well, its like the air range.
the one thing that had a drawback is that this attack type, with Damage limit or not, is always successful.
edit: oh and what would you recommend should be the unit_ai be?



maybe you can add/or direct me to some small code for this air range attack to check for -
if domain land , then apply some random accuracy thing, or attack it to the bombard mechanism , maybe allow promotion for it and such.
just a thought.

the goal is indeed to prevent sucide attacks of siege,
cause, feels silly for me, to use the siege units to lower city defs and then, attack the city, to gain the collateral damage, and die off :)
 
Last edited:
here we are,
the saves [...] and the version we used:
Thanks.
after the game, i went through all of them and boosted up some, what do you think ?
For more aggressiveness overall, I expect that you'd have to change one or several of the bread-and-butter weights: GREED_FOR_ASSETS, EFFORT, AFFECTION.
interesting -
what will the first strike will change? what is it role be to imitate?
It would be another means of reducing the damage taken by the Siege unit. Could also make Mounted units a bit better at defending against Siege units as some Mounted units ignore first strikes. Well, the effect is probably small. A low damage limit would be much more important I think, and maybe some attack bonus and a rather low base strength to avoid creating a strong and lethal defender. Unfortunately, there is no UnitCombatAttackMod XML tag; just UnitClassAttackMod, TerrainAttacks, FeatureAttacks.
i will do some range 1 some range 2.
the ai is using this feature well, its like the air range.
the one thing that had a drawback is that this attack type, with Damage limit or not, is always successful.
That's true; with a damage limit, only the damage to the attacker is randomized (unless the defender kills it before reaching the damage limit, but that's what we want to avoid).
edit: oh and what would you recommend should be the unit_ai be?
For ranged strike? I've no experience with that ability. I remember that vincentz had written some ranged strike AI code for VIP. I'm not too interested in getting my hands dirty with that because, for my own purposes, attacking adjacent tiles, maybe along with changes to Guided Missile, should be enough. Of course, if you have a specific question that I happen to know the answer to, I'm happy to help.
 
Hey,

UnitCombatAttackMod
Hehe,
Acctually,
There is, also for defense.
I had it once in my Doto. LOPEZ created such a mod.
Do you think that can help?
What should be in these?
Ilmerge it in.

Greed, effort, affection you say?
Humm, raise them all?

Yup, i got Vincentz mod,
Maybe ill check it out.

No worries, i enjoy consulting with you and raise ideas.

I made changes to all siege units now,
You can see tge git if you wish.
Added ranged plus limits plus no city capture to siege.
One thing i wonder is what combat value olays part when air ranged atrack is done on a land unit.

Gnite :)
 
I made changes to all siege units now,
You can see tge git if you wish. Added ranged plus limits plus no city capture to siege
One thing i wonder is what combat value olays part when air ranged atrack is done on a land unit
I didn't know that range strikes are piggybacked on the air strike stats; in the DLL they're mostly separate abilities. The damage is computed in CvUnit::rangeCombatDamage:
Code:
int iOurStrength = airCurrCombatStr(pDefender);
int iTheirStrength = pDefender->maxCombatStr(pPlot, this);
I.e. air combat strength is used for the attacker and regular combat strength for the defender. I've given it a quick try. The damage announcement is incorrect (said "0 damage" in my test); apart from that, it seems to work. Would be interesting for devolution (should he return); he said he wanted range-2 attacks.
Yup, i got Vincentz mod,
Maybe ill check it out.
The modified code could be hard to find. :( I remember trying to assist him with the AI code a bit but didn't really know what I was doing either.
Acctually,
There is, also for defense. I had it once in my Doto. LOPEZ created such a mod. Do you think that can help? What should be in these? Ilmerge it in.
With the 25% damage limits that you have now (not to mention the range strike ability), I think there's no need for an attack modifier. My tentative plan for a Cannon unit at Chemistry:
Code:
100 production; req. Iron; str. 6; Siege unit; 2 first strikes; damage limit 30%;
coll. damage to 1 [2?] target, limit 30%; +50% attack vs. Gunpowder, Melee and Archery;
+25% city defense [and can receive def. bonuses]; bombard rate 16; upgr. to Artillery, Machine Gun
It's not even a plan really, just something I'd like to test.
Greed, effort, affection you say?
Humm, raise them all?
Greed is a pro-war aspect, effort and affection are anti-war. So higher greed, lower effort and affection.
 
Greed is a pro-war aspect, effort and affection are anti-war. So higher greed, lower effort and affection.
Ahh oppsi,
I raised all three... :)
Ill re change.

t (said "0 damage" in my test);
where? i guess its a bug on the textmanager?

The modified code could be hard to find. :( I remember trying to assist him with the AI code a bit but didn't really know what I was doing either.
well - depends if his source was directly to civ4 core files or some other ai mod, comparing can help, but, i guess from what you say, he didnt add comments...? i havnt looked at his code yet.

.e. air combat strength is used for the attacker and regular combat strength for the defender.
Thats what i thought, cause they probably planned it mostly for air to land.

Can you add a line for me here,
Before the our strength,
That will check, if domain land, then use combat strength. Should be easy no?

think there's no need for an attack
I can use the combatdefensive to boost, mounted units, the defense vs siege.

Vip- im interested on the new tag that forcess enemy siege, with ranged, to defend, thats nice,, ill try to extract it.


Also another idea:
maybe, have this our strength, to pull a random number, from say, an array of [0,1,1,1,1],
That will multiply the our strength value.
So theres a 1/5 chances that combat strength, will be 0, thus, no damage.
This can give an accuracy thing, not always a hit.



------
on a different note,
while i was going to work, i thought of a possible existing bug:
in all the turns i played so far,
i never saw a "forest grew near xxx" or jungle.
despite having a growth factor to these.
possible bug? or possible im talking nonsense...?
 
Last edited:
Can you add a line for me here,
Before the our strength,
That will check, if domain land, then use combat strength. Should be easy no?
Sure, but I don't see why you want that. Isn't it nice that the combat strength and range strike strength can be set independently? It seems that you can just set air combat strength to the same value as combat strength in XML if you want them to be the same.
[...] So theres a 1/5 chances that combat strength, will be 0, thus, no damage.
This can give an accuracy thing, not always a hit.
I've added a coin flip function (named "bernoulliSuccess" after the Bernoulli trial in probability theory) in the global namespace. You can just do
if(bernoulliSuccess(0.2)) { return ; }
at the start of CvUnit::rangeStrike. Ideally, you'd show a message before returning. And perhaps do the same for CvUnit::airStrike for consistency. Randomized damage might be less frustrating and not necessarily unrealistic if one assumes that a range strike represents prolonged shelling by a whole battery of guns. Would have to use GC.getGame().getSorenRandNum(...) for that, somewhere in CvUnit::rangeCombatDamage.
in all the turns i played so far,
i never saw a "forest grew near xxx" or jungle.
Usually, that only happens in the early game. It's working for me. I've just set a debugger breakpoint after the line with GC.getGame().getSorenRandNum(iOdds, "Feature Growth") in CvPlot.cpp, loaded some old savegame on turn 30, ended the turn and reached the breakpoint once, i.e. one feature was created (on an unrevealed tile).
I can use the combatdefensive to boost, mounted units, the defense vs siege.
Would that work when Mounted units can't receive defensive bonuses? At least it would be confusing. That's in general a bit of a problem with my idea of making Mounted units more effective defenders against Siege units (even if it's disguised through first strike immunity and combat class attack bonuses): Mounted units are normally supposed to be bad at defending. The attack bonuses for my proposed Cannon unit are also intended to make the unit weaker when defending (except against other siege units). It would be strange if Siege units were effective at killing when attacked while having a low damage limit when attacking.
where? i guess its a bug on the textmanager?
CvUnit::rangeStrike. The messages seem to be generated in just the same way as those in CvUnit::airStrike (which is working correctly). Perhaps there was some problem with my test. If it's working correctly for you, then I wouldn't worry.
well - depends if his source was directly to civ4 core files or some other ai mod, comparing can help, but, i guess from what you say, he didnt add comments...? i havnt looked at his code yet.
I found the code that I had worked on (apparently I only contributed a line or two) on my harddisk. These two tags were used: "Vincentz Rangeattack" "Vincentz Rangestrike"
And possibly some unmarked changes too (CvUnitAI::AI_rangeAttack). Or perhaps, in his latest code, it's all properly commented.
 
but I don't see why you want that.
aye, i gave it more thought, and i realized, why, its a nice touch to have it separated.

"bernoulliSuccess"
huh nice,
thats a cool elegant way.
ok so where have you defined this one :bernoulliSuccess?
and this one - GC.getGame().getSorenRandNum(...) gets us a random number?

one feature was created
ok lovely, thanks. i once used feature growth , appear and disappear as a means for some "natural disaster" like storms.


Would that work when Mounted units can't receive defensive bonuses? At least it would be confusing. That's in general a bit of a problem with my idea of making Mounted units more effective defenders against Siege units (even if it's disguised through first strike immunity and combat class attack bonuses): Mounted units are normally supposed to be bad at defending. The attack bonuses for my proposed Cannon unit are also intended to make the unit weaker when defending (except against other siege units). It would be strange if Siege units were effective at killing when attacked while having a low damage limit when attacking.
well, give out mounted units bonus vs siege, while defending.IMO, i think siege units should not be string while defending, vs most units, as realistic.
i can play with the various tags,
which it seems are unused in bts (?) target defense , combat defend and another one. combined with the tags ill merge in from lopez - combat att and def.
i can set a nice rock paper scissors of vs siege units
siege units will have a low combat value, but higher air combat.
theyle be getting good bonus vs types of units, melee, gunpowder other siege, and such. vs mounted and others low attack value.
they should be only getting defense vs ranged units such as archers and gunpowder footman's.
perhaps, i can give the land units, an air combat value actually,
use the same "bird" , and say, knight unit have combat 10, and air combat , 14, while a Trebuchet have combat 6 , but aircombat of 12.
making the air to air combat be the factor of the combat, which in this case will make the knight more resilient to ranged attacks masked as airstrike.
maybe a check should be added -
(im probabaly way off in the syntax, so im improvising):

int iOurStrength = airCurrCombatStr(pDefender);
int iTheirStrength
if (pDefender->maxairCurrCombatStr(pPlot, this) > 0 ) {
iTheirStrength = pDefender->maxairCurrCombatStr(pPlot, this)
}
else {
iTheirStrength = pDefender->maxCombatStr(pPlot, this)
}

maybe this could be a neat way to control the cat and mouse play of this ranged attacks.
what do you think?

i get the since that combat mechanics interests you :)

Vincentz Rangeattack
ill give him a ping, i just saw he had a post there so the man is still here :)
 
@Leoreth: Thanks for laying that out. Anything on the DoC forum that isn't too specific to the Rhye's & Fall rules I try to read. (One thing I've bookmarked for at least partial adoption is your set of changes around the acquireCity function.)Will this really make a big difference for cities without a Castle? 40% damage (30%?) should be enough to tip the scales heavily in favor of the attacker. Maybe my intuition is failing me here. Not so important – one could e.g. subtract city defense from the attacking unit's collateral damage limit if taking the minimum of those two values doesn't have enough impact. Actually, the first quoted sentence sounds like you might already be doing that, but I guess not:
Code:
int iMaxDamage = std::min(collateralDamageLimit(), (collateralDamageLimit() * (iCollateralStrength + iStrengthFactor)) / (iTheirStrength + iStrengthFactor));
// Leoreth: city defense limits collateral damage
if (pPlot->isCity())
{
   int iCityDefenseLimit = std::max(0, 100 - pPlot->getPlotCity()->getDefenseModifier(false));
   iMaxDamage = std::min(iMaxDamage, iCityDefenseLimit);
}
(source) Perhaps my confusion about this is an indication that adding further complexity to the collateral damage rules is a bit problematic.

One could also lower the regular damage limit of siege units in addition. On that note, I've taken a brief look at the K-Mod Unit AI code; CvUnit::collateralDamageLimit isn't called, so it seems like there's an implicit assumption that the the two damage limits are the same. Well, one would hope that the AI getting hurt less badly by collateral damage makes up for any minor inconsistencies in the AI calculations.

I agree that the role of stack killers should not have fallen onto siege units, at least not the pre-modern ones, but, so long as splitting stacks up isn't usually a viable tactic, an anti-stack attacker is essentially just a powerful attacker. So, I'd argue that the problem isn't that siege units are much better at attacking cities than other tiles, but that they're generally too good at attacking.

I've plans to make the target and damage limits of siege units much stricter overall, but I'm not ready to make such major balance changes. So, smaller temporary measures are a consideration for me, but I'm not sure if it makes sense to do (a little?) something for besieged cities and nothing against siege units in pitched battles.
Sorry for the late reply. You're right, the current implementation just takes the minimum of the city defense reduced collateral damage and the inherent unit collateral limit. I admit that I designed this mostly with late game interactions in mind, where (culture based) city defenses are high and collateral damage limits are low. This leaves the rule with a low impact on the early game where it is probably even more historically intuitive that seeking shelter in fortified cities provides protection against collateral damage.

You're right that the collateral damage rules are not very transparent to the player (if I'm not mistaken, the vanilla civilopedia does not even document collateral damage limits). Part of my reasoning for implementing the rule as it is was that "if your city is at 70% no unit can be damaged below 70%" seemed like a straightforward rule. A subtractive rule may scale better across ages, but make this even more complicated, and may be too powerful overall.

When reading this code snippet I also realised that Forts should probably be covered by this rule as well.

Still, I would really like to emphasise the importance of city battles because there is little incentive for large stacks to clash out on the open map (unless an inferior army is caught by a larger force). If I have superior units, I want to push for a city attack. I have inferior units, I should be able to withdraw to a city to improve my chances.
 
continued my mp game,

things have picked up,
ghandi attacked me with a bunch of ships along with japan.
but, after initial attack from ghandi,
he just continued to bombard with ships and refused me most of the time.
i wonder how committed is the ai to a war after it started, it seems that for now, around 50-100 turns after war was declared, i had not seen any new invasions . just the one.
ghandi leads the score board by far, and he could have sent another wave and wipe me out.

i saw an interesting observation,
japan took my city, held it,
i came back after a while with stack, much stronger, japan left the city with the few units he had there. that was nice . seems he saved his troops after i destroyed most of the defenders in the city.
 
Sorry for the late reply.
Well, I'm not as responsive as I'd like to be myself. Will have to get back to you on this ... tomorrow probably.
ok so where have you defined this one :bernoulliSuccess?
CvGameCoreUtils. By the way, the Visual Studio context menu can take you to the declaration and definition once you've typed in a function call.
and this one - GC.getGame().getSorenRandNum(...) gets us a random number?
Yes. That uses the synchronized RNG – normally the one to use for non-UI purposes. First parameter (iNum) is the upper bound. The random number is in the half-open interval [0, iNum), i.e. >= 0 and < iNum. The second param is a message for the MPLog to help with OOS debugging; NULL can be used. Just for future reference – I see that you've already merged randomization code from VIP.
iTheirStrength = pDefender->maxairCurrCombatStr(pPlot, this)
That looks close enough to being correct. :) airCurrCombatStr doesn't take a plot as parameter though, so no defensive modifiers will apply; nor promotions for that matter. The air combat strength of a land unit probably also isn't shown anywhere on the UI.

Cuirassier defending well against Cannon would, to me, mean that the Cuirassier charges the Cannon in response to being attacked. I don't think taking less damage from a range strike gets that picture across. It'll look like the Cuirassier isn't damaged as much because of its armor or because it dodges the rounds.
i can play with the various tags, [...]
Many ways to skin that cat. I'll have to leave it to you (or others) to experiment with this as it's not on my agenda currently. In the end, it would imo be good to settle on a few abilities to keep the complexity in check.
ghandi attacked me with a bunch of ships along with japan.
That's not very gandhy of him to tread on a weaker civ like that. I doubt that he did it to help Japan (no one usually likes Tokugawa). Well, I guess with the war weight changes in your mod, it's OK.
i wonder how committed is the ai to a war after it started, it seems that for now, around 50-100 turns after war was declared, i had not seen any new invasions . just the one.
The AI needs to gather a sufficient number of land units (iTargetInvasionSize in CvUnitAI::AI_assaultSeaMove) in a coastal city and, in the same city, enough cargo ships to carry those land units. It sounds like most of Gandhi's ships survived the initial invasion. So either he's struggling to get all the units and ships in one place (bad tactics), or it's taking him a long time to rebuild his army (questionable strategy). The tactical side shouldn't be that difficult in this case; I remember that most of Gandhi's cities are on one continent. There could be a bit of a problem if units that survived the war were teleported to a remote island. Slow military build-up could be the result of Gandhi's low BuildUnitProb (the lowest in the game) and, as you say, the war not being prioritized highly. There are, essentially, two possible war plan types, "total" and "limited", and, for each landmass with AI cities, two possible Area AI types for an offensive naval war: "assault" and "assault-massing". The latter results in more build-up.
japan left the city with the few units he had there. that was nice . seems he saved his troops after i destroyed most of the defenders in the city.
That's probably the work of the city evacuation AI code.
 
Well, I'm not as responsive as I'd like to be myself. Will have to get back to you on this ... tomorrow probably.
me bugging you allot add to it..:)

Visual Studio context menu can take you to the declaration
yup i learnt.

i did the merge and all , before i got to try what i wrote here earlier.

so no defensive modifiers will apply
humm, funny, better tell Vincetntz...
ill check the regular air-combat and try to see which one takes in all the modifiers - that will be good since i can get air related promotion to the siege units.

Cuirassier...
i tend to agree, for now, the xml implementation from VIP , seems sufficient.

land unit probably also isn't shown anywhere on the UI.
the air range appears though, probably some change in the textmanager.
for now im gonna keep air==combat.
----
as for my mp,

so yeah, japan and me fought quite allot, but , i liked that i got attacked like this, it was fun and stressful. (i came out victor after loosing two cities, me and my friend now pressing two front attacks on japan...so that will be the last of him...)

ghandi, well yes, i guess theres allot that depends on ghandi peaceful settings.
just to note, that he came in with 16 troops, took my capital. i reconquered it. killed off the last of him.
he has cities on an island near me and his continent solo.
he has a few ships that keep on bombarding me. none of his units are stuck or anything.
i would expect another invasion, soon maybe, but unclear, he is Superior to me .

maybe some of the memory decay should be faster, i dunno, like i wrote before, the first impression that last the whole game is silly i think. is it from the leaderxml?
i think most is adjustable from leader config.

That's probably the work of the city evacuation AI code.
very cool code, me like.
 
Last edited:
he has a few ships that keep on bombarding me. none of his units are stuck or anything.
i would expect another invasion, soon maybe, but unclear, he is Superior to me .
Reminds me of Gort's experiments with the Civ 6 AI:
[...]
Turn 213: Meet Aztecs, declare war, disband all military units.
[...]
Turn 308: Aztec nuclear submarine appears in the sea and starts pillaging improvements. Another Aztec mechanised infantry army shows up. The other units have not moved in the last 67 turns. [...]
Jokes aside – sounds like Gandhi doesn't have enough units then. I guess you can't get a ship through to see what he has in his major coastal cities.

Speaking of turn numbers: As the tech progression in the mod is a bit slower than in BtS (more so on the higher difficulty levels) and with multiplayer adding some waiting time, it could make sense to go down to Normal speed if you're used to playing on Epic in singleplayer. Not to pin the lack of action on the game speed, but slower speed presumably amplifies the problem.
maybe some of the memory decay should be faster,
For what it's worth, the mod slightly adjusts memory decay to game speed (Golden Age factor, i.e. 1.25 slower on Epic speed).
i dunno, like i wrote before, the first impression that last the whole game is silly i think. is it from the leaderxml? i think most is adjustable from leader config.
You'd have to do it for every leader there. In the DLL, the decay roll is
getSorenRandNum(iDecayRand, "Memory Decay" ...
in CvPlayerAI::AI_doCounter. The first impression modifiers don't use the MemoryAttitude/ MemoryDecay system. As you're probably aware, the explanation text "A first impression ..." isn't anything offical. I suppose DaveMcW came up with it for the Show Hidden Attitude mod. In the original code, there are just the names from LeaderHead XML – peace weight, warmonger respect, base attitude (the first two apply only to relations between AI civs).
 
Jokes aside
:)
cant, he got destroyers, and i got frigates.............and he wont talk to me.
ill ask my friend to do so, he aint on bad terms with the nuke guy.
(but anyhow, we are on turn 530, ill check the world builder after game end or sooner, after we pass a bit this turn status so i wont cheat game.

i like epic game,
i dont mind the long progression, my old doto had triple tech length i think, or 2.5.
i changed cause i like the feel that techs, come by after a while, not every few turns, less meaning full i feel.
but, in the future, i might add some buildings and stuff to existing techs, cause sometimes , theres no much to build plus, ai leaves us with no wonders, so ill add some.
all that will need more balance.
on that note, you once mentioned electricity mechanism, i might do something with the current.
all of these plans...are far...to much to do.

Golden Age factor,
oh, interesting.

You'd have to do it for every leader there. In the DLL, the decay roll is
getSorenRandNum(iDecayRand, "Memory Decay" ...
did that, once :(

CvPlayerAI::AI_doCounter,
cool, ill have a look.

anyway,
updated the ranged. 3 days of civ (we are at holiday season, thats why i got more time to mod and range bombard you with questions and posts ...:)
basically i guess now its 95% done, need to test final code and some last input from ya on what ive written.
cheers.
 
hey f1rpo,

iv been working my *** off on the ranged...

i think theres a bug in this function in plot.cpp:

CvUnit* CvPlot::getBestDefender.

after a ranged attack is carried, it does not get the best defender, ig gets the same one.
how to test:

use my last sdk folder - 238 from my 104 git.
start game
via world builder - add 10+ catapults
add 4 warriros barbarians

attack range with al catapults -
the combat limit of the catapult of 50% will apply for the whole stack once one warrior has reach the 50% mark.

i tested both in vip and more, im pretty sure its the this function, since in vip it is vanilla civ,


BINGO -
now i know im right -
<DefineName>LFB_ENABLE</DefineName>
<iDefineIntVal>0</iDefineIntVal>
when left from behind is on,
there is a bug for air range strike,
does not get the best defender.....

edit:
well to be exact:
</Define>
<Define>
<DefineName>LFB_USECOMBATODDS</DefineName>
<iDefineIntVal>0</iDefineIntVal>
without this , it works well.
seems left from behind, does not consider air combat limit or air units .
im trying to find a fix in int CvUnit::LFBgetDefenderCombatOdds...hard so far.
 
Last edited:
we are at holiday season, thats why i got more time to mod and range bombard you with questions and posts ...:)
:lol: I'm a bit relieved to hear that. Maybe I'll be able to catch up with some of your posts and messages in the next days weeks. Didn't get much of anything done today.
i think theres a bug in this function in plot.cpp:
CvUnit* CvPlot::getBestDefender. [...]
I've responded briefly in the Doto thread. General talk about range strikes doesn't seem out of place in the AdvCiv thread as it connects with the combat system discussions, but the technical details ... well, will have to go someplace else. :)
 
Thank you, f1rpo, for sharing this great mod :goodjob:. I'm a new Civ4 player and have tried BAT for a few games so far. I only have my very first AdvCiv game. Although not yet finishing it, I like AdvCiv a lot because of the non-passive AI. For example, multiple wars are being declared, and wars even between the Apostolic Palace members with a good pre-war relation.

Two things I have noticed in my current game:
1. War Weariness does not show up somehow, at the Scoreboard or Foreign Adviser. I can't find it anywhere else. My capital does show a +1 anger with "War ... What is it good for? ..."
2. Rifleman has "+25% vs. Mounted Units" on Civilopedia. It is shown instead to be "-25%" vs an enemy Knight, while holding Alt + Mouse hover. The final odd is correct though. This appears to be display issue only.
 
heya,
posting here, since, its advc bug...

airplanes, cannot bombard cities.
when you carry out an air bomb mission, on a city with x deference, no damage is deducted from the city.
the message that is given is like a successful hit, only with the current unchanged city defense.

in addition, when just choosing an airplane, the defense modifier , on the city, the white colored font,
dis appears .

it came up from my ranged testings,
i checked it on regular advc version to verify that this is a bug from advc code.

second issue is with multiplayer -
diplomatic screens become pretty slow when they pop, they gets stuck a bit. seems that its not be like this i think.
edit : maybe because of this line -
"pCity->changeDefenseModifier(std::min(0, (int)::floor(chg)));"
maybe it should be:
pCity->changeDefenseModifier(std::max(0, (int)::floor(chg)));
?

EDIT2:
ok i got it,
your ignore building defense check, renders the airbomb not to reduce damage.
Code:
/*  <advc.004c> Same as in CvUnit::bombard except that IgnoreBuildingDefense
            doesn't have to be checked here b/c all air units have that */
        int iDefWithBuildings = pCity->getDefenseModifier(false);
        int iDefSansBuildings = pCity->getDefenseModifier(true);
        FAssertMsg(iDefSansBuildings > 0 || isHuman(),
                "The AI shoudn't bombard cities whose def is already 0");
        double chg = -airBombCurrRate() * (iDefWithBuildings / (double)iDefSansBuildings);
        pCity->changeDefenseModifier(std::min(0, (int)::floor(chg)));

EDIT3:
i saw the same issue with bombard units that have ignore building defense.
so,
i remove the whole section of check that you made for ignore.
i think , that a cannon should bother with ignore defense if its inside the action mission of, bombard. bombard is executed to reduce damage, see ignoring it, causes the bombard to be irrelevant.
the ignore - will allow the ranged units, to perform ranged, while ignoring city defense.


hope you can fix it soon..
me and my friend are not far from air planes on our mp session :)
 
Last edited:
Back
Top Bottom