I favor pillaging the copper. Losing 1 Woodsman II warrior to try to prevent multiple axes from being produced is a good trade.
I recommend a pause or stopping point to discuss.
I recommend a pause or stopping point to discuss.
Okay, I get the power. +4=TW. +2=Pop8. +3=archer in Vienne.
===
Here's what I suggest: First move the slave 1W, so we can see if it's safe to move him to Silk-1W.
My thinking is that we might have to bail out on pillaging the copper, but at least we can try to get the slave through rapidly. To do that, I'm thinking Louis goes NE-NE !!! The idea is to threaten his CIty3, defended by only an archer. Hopefully this will draw the axe onto the hill mine. But since he'll complete another axe IT, we don't want it to move NW/W, so it's better if the slave is not on the silk, but west of it, if possible. Meanwhile, Eve should probably stay put, to possibly draw a unit southward.
Whaddaya think?
xpost w/ STW
..
I favor pillaging the copper. Losing 1 Woodsman II warrior to try to prevent multiple axes from being produced is a good trade.
I recommend a pause or stopping point to discuss.
DOn't konw the code on that, but my experience is that the AI will try to beef up his city protection as fast as possible. Okay, I agree with SHulec, let's stop for 24 hours. We can examine the unit preferences. I believe that Axe is probably something like AI_COUNTER, but we can take a look and see how threatening a worker matches up with protecting a city.Don't you think the axe would be lured 1S1W to get the worker? Is a warrior such a threat to an archer defended city? or the AI fears threatened cities most?
tables.
cheers
EDIT:
session turn log
[SPOILER]Here is your Session Turn Log from 2040 BC to 1920 BC:
Turn 49, 2040 BC: You have discovered Animal Husbandry!
Turn 49, 2040 BC: You have discovered Mysticism!
Turn 49, 2040 BC: You have discovered Hunting!
Turn 49, 2040 BC: You have discovered Mining!
Turn 49, 2040 BC: You have declared war on Brennus!
Turn 50, 2000 BC: You are the worst enemy of Brennus.
Turn 50, 2000 BC: Ramesses II will trade Archery
Turn 51, 1960 BC: The enemy has been spotted near Paris!
Turn 51, 1960 BC: Ramesses II will trade Bronze Working
Turn 51, 1960 BC: You have discovered Bronze Working!
Turn 51, 1960 BC: You have discovered Archery!
Turn 51, 1960 BC: Ramesses II adopts Slavery!
Turn 52, 1920 BC: The enemy has been spotted near Paris![/SPOILER]
[SPOILER]Reference number: 11865
Game: C-IV SGOTM 16
Your team: Kakumeika
Your name: Walter_Wolf
Date submitted: 2012-10-15
Software Version: BtS 3.19
Game date: 1920BC
Total turns played: 52
Session turns played: 3
Player race: France
Firaxis score: 184
Session time played (hh:mm:ss): 02:53:04
Total time played (hh:mm:ss): 08:06:10
Game status: Incomplete
Submitted save: Louis XIV_1920-BC_Oct-16-2012_00-48-10.CivBeyondSwordSave
Renamed file: Kakumeika_SG016_BC1920_01.CivBeyondSwordSave
Right click the Renamed File link above to copy it.
You can then paste it into your team post as the download link for the next player.
News Update: Humbaba is still alive[/SPOILER]
BUFFY log:
[SPOILER]Logging by BUFFY 3.19.003 (BtS 3.19)
------------------------------------------------
[u][b]Turn 49/500 (2040 BC) [10-Oct-2012 00:21:51][/b][/u]
[color="Green"]Tech traded to Ramesses II (Egypt): Writing[/color]
[color="Green"]Tech acquired (trade, lightbulb, hut, espionage): Animal Husbandry[/color]
Logging by BUFFY 3.19.003 (BtS 3.19)
------------------------------------------------
[u][b]Turn 49/500 (2040 BC) [10-Oct-2012 08:35:46][/b][/u]
[color="Green"]Tech traded to Brennus (Celtia): Agriculture[/color]
[color="Green"]Tech traded to Brennus (Celtia): Writing[/color]
[color="Green"]Tech traded to Brennus (Celtia): The Wheel[/color]
[color="Green"]Tech acquired (trade, lightbulb, hut, espionage): Mysticism[/color]
[color="Green"]Tech acquired (trade, lightbulb, hut, espionage): Hunting[/color]
[color="Green"]Tech acquired (trade, lightbulb, hut, espionage): Mining[/color]
Logging by BUFFY 3.19.003 (BtS 3.19)
------------------------------------------------
[u][b]Turn 49/500 (2040 BC) [15-Oct-2012 22:37:23][/b][/u]
[color="Green"]Research begun: Meditation (125 Turns)[/color]
[color="Green"]Research begun: Priesthood (125 Turns)[/color]
[color="Green"]Research begun: Mathematics (125 Turns)[/color]
[color="Green"]Research begun: Meditation (125 Turns)[/color]
[color="Red"]Louis XIV (France) declares war on Brennus (Celtia)[/color]
[color="DarkRed"]While attacking in the wild near Bibracte, Eve (2.00/2) defeats Celtic Worker (Prob Victory: 0.0%)[/color]
[color="Blue"]0% Research: 0 per turn[/color]
[color="Blue"]0% Espionage: 4 per turn[/color]
[color="Blue"]100% Gold: 17 per turn, 0 in the bank[/color]
[b]After End Turn:[/b]
[color="Purple"]Paris finishes: Library[/color]
[b]Other Player Actions:[/b]
[color="Blue"]Attitude Change: Brennus (Celtia) towards Louis XIV (France), from 'Cautious' to 'Annoyed'[/color]
[u][b]Turn 50/500 (2000 BC) [15-Oct-2012 22:41:00][/b][/u]
[color="Purple"]Paris begins: Settler (9 turns)[/color]
[color="Blue"]100% Research: 37 per turn[/color]
[color="Blue"]0% Espionage: 4 per turn[/color]
[color="Blue"]0% Gold: -3 per turn, 17 in the bank[/color]
[b]After End Turn:[/b]
[color="RoyalBlue"]A Hamlet was built near Paris[/color]
[u][b]Turn 51/500 (1960 BC) [15-Oct-2012 23:04:48][/b][/u]
[color="Green"]Tech traded to Ramesses II (Egypt): Alphabet[/color]
[color="Green"]Tech acquired (trade, lightbulb, hut, espionage): Bronze Working[/color]
[color="Green"]Tech acquired (trade, lightbulb, hut, espionage): Archery[/color]
[color="Blue"]100% Research: 38 per turn[/color]
[color="Blue"]0% Espionage: 4 per turn[/color]
[color="Blue"]0% Gold: -3 per turn, 14 in the bank[/color]
[b]After End Turn:[/b]
[b]Other Player Actions:[/b]
[color="SeaGreen"]Civics Change: Ramesses II(Egypt) from 'Tribalism' to 'Slavery'[/color]
[u][b]Turn 52/500 (1920 BC) [15-Oct-2012 23:27:10][/b][/u]
[color="RoyalBlue"]A Pasture was built near Orleans[/color][/SPOILER]
void CvUnitAI::AI_counterMove()
{
PROFILE_FUNC();
if (AI_guardCity(false, true, 1))
{
return;
// Returns true if a mission was pushed...
bool CvUnitAI::AI_guardCity(bool bLeave, bool bSearch, int iMaxPath)
if (bSearch)
{
iBestValue = MAX_INT;
pBestPlot = NULL;
pBestGuardPlot = NULL;
for (pLoopCity = GET_PLAYER(getOwnerINLINE()).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(getOwnerINLINE()).nextCity(&iLoop))
{
if (AI_plotValid(pLoopCity->plot()))
{
if (!(pLoopCity->AI_isDefended((!AI_isCityAIType()) ? pLoopCity->plot()->plotCount(PUF_canDefendGroupHead, -1, -1, getOwnerINLINE(), NO_TEAM, PUF_isNotCityAIType) : 0))) // XXX check for other team's units?
{
if (!(pLoopCity->plot()->isVisibleEnemyUnit(this)))
{
if ((GC.getGame().getGameTurn() - pLoopCity->getGameTurnAcquired() < 10) || GET_PLAYER(getOwnerINLINE()).AI_plotTargetMissionAIs(pLoopCity->plot(), MISSIONAI_GUARD_CITY, getGroup()) < 2)
{
if (!atPlot(pLoopCity->plot()) && generatePath(pLoopCity->plot(), 0, true, &iPathTurns))
{
if (iPathTurns <= iMaxPath)
{
iValue = iPathTurns;
if (iValue < iBestValue)
{
iBestValue = iValue;
pBestPlot = getPathEndTurnPlot();
pBestGuardPlot = pLoopCity->plot();
FAssert(!atPlot(pBestPlot));
}
}
}
}
}
}
Okay, I think I actually like this plan, but I would move Louis 1NE-1NE. We have to assume that Bibracte will produce another axe IT. So my hope would be that the axe we see would move 1NE to the hill, while the new axe would move 1W to the forest.Possible solution (current turn is 52).
T52 - Eve and slave 1N1W to the silk; Louis 2N via the forest. Hope the axe moves 1S.
T53 - Eve 1S1W escapes the axe; Louis smells the forest, Slave moves to the other silk 1N1W. Axe moves to the silk or 1E.
T54 - Slave escapes 2N2E to the forest Louis was camping a lot.
The axe move 1S1W instead of 1S IBT 52 - 53 ruins the plan.
So, now reading the other plans. I like WalterWolf's plan with the Louis NE-NE that LC and I like.
In general, I'd say forget the pillage, save the worker and warriors.
Some parts, but too big of a file to have gone through.Have you ever studied AI units?
That's right. That's the break; that ends a check and passes to next check.through a sequence of checks
Perhaps be careful in using terms or deducing from what you see in the code.Furthermore, the AI units will promote and move around according to _type.
That's a hunch but I think what you said about units moving in order of creation just like cities do seem the correct mechanics. Will come by this subject later....if possible.but my understanding is that each UNITAI_type will go through a sequence of checks to decide what to do each turn.
void CvUnitAI::AI_counterMove()
{
PROFILE_FUNC();
if (AI_guardCity(false, true, 1))
{
return;
// Returns true if a mission was pushed...
bool CvUnitAI::AI_guardCity(bool bLeave, bool bSearch, int iMaxPath)
pPlot = plot();
pCity = pPlot->getPlotCity();
if ((pCity != NULL) && (pCity->getOwnerINLINE() == getOwnerINLINE())) // XXX check for other team?
{
if (bLeave && !(pCity->AI_isDanger()))
{
iExtra = 1;
}
else
{
iExtra = (bSearch ? 0 : -GET_PLAYER(getOwnerINLINE()).AI_getPlotDanger(pPlot, 2));
}
bDefend = false;
if (pPlot->plotCount(PUF_canDefendGroupHead, -1, -1, getOwnerINLINE()) == 1) // XXX check for other team's units?
{
bDefend = true;
}
else if (!(pCity->AI_isDefended(((AI_isCityAIType()) ? -1 : 0) + iExtra))) // XXX check for other team's units?
{
if (AI_isCityAIType())
{
bDefend = true;
}
else
{
iCount = 0;
pUnitNode = pPlot->headUnitNode();
while (pUnitNode != NULL)
{
pLoopUnit = ::getUnit(pUnitNode->m_data);
pUnitNode = pPlot->nextUnitNode(pUnitNode);
if (pLoopUnit->getOwnerINLINE() == getOwnerINLINE())
{
if (pLoopUnit->isGroupHead())
{
if (!(pLoopUnit->isCargo()))
{
if (pLoopUnit->canDefend())
{
if (!(pLoopUnit->AI_isCityAIType()))
{
if (!(pLoopUnit->isHurt()))
{
if (pLoopUnit->isWaiting())
{
FAssert(pLoopUnit != this);
iCount++;
}
}
}
else
{
if (pLoopUnit->getGroup()->getMissionType(0) != MISSION_SKIP)
{
iCount++;
}
}
}
}
}
}
}
if (!(pCity->AI_isDefended(iCount + iExtra))) // XXX check for other team's units?
{
bDefend = true;
}
}
}
pCity = pPlot->getPlotCity();
if ((pCity != NULL) && (pCity->getOwnerINLINE() == getOwnerINLINE()))
if (bLeave && !(pCity->AI_isDanger()))
{
iExtra = 1;
}
else
{
iExtra = (bSearch ? 0 : -GET_PLAYER(getOwnerINLINE()).AI_getPlotDanger(pPlot, 2));
}
bool CvCityAI::AI_isDefended(int iExtra)
{
PROFILE_FUNC();
return ((plot()->plotCount(PUF_canDefendGroupHead, -1, -1, getOwnerINLINE(), NO_TEAM, PUF_isCityAIType) + iExtra) >= AI_neededDefenders()); // XXX check for other team's units?
}
int CvCityAI::AI_neededDefenders()
{
PROFILE_FUNC();
int iDefenders;
bool bOffenseWar = ((area()->getAreaAIType(getTeam()) == AREAAI_OFFENSIVE) || (area()->getAreaAIType(getTeam()) == AREAAI_MASSING));
bool bDefenseWar = ((area()->getAreaAIType(getTeam()) == AREAAI_DEFENSIVE));
if (!(GET_TEAM(getTeam()).AI_isWarPossible()))
{
return 1;
}
if (isBarbarian())
{
iDefenders = 2 + ((getPopulation() - 2) / 7);
return iDefenders;
}
iDefenders = 1;
if (hasActiveWorldWonder() || isCapital())
{
iDefenders++;
}
if (!GET_PLAYER(getOwner()).AI_isDoStrategy(AI_STRATEGY_CRUSH))
{
iDefenders += AI_neededFloatingDefenders();
}
else
{
iDefenders += (AI_neededFloatingDefenders() + 2) / 4;
}
if (bDefenseWar)
{
if (!(plot()->isHills()))
{
iDefenders++;
}
}
if ((GC.getGame().getGameTurn() - getGameTurnAcquired()) < 10)
{
if (bOffenseWar)
{
if (!hasActiveWorldWonder() && !isHolyCity())
{
iDefenders /= 2;
iDefenders = std::max(1, iDefenders);
}
}
}
if (GC.getGame().getGameTurn() - getGameTurnAcquired() < 10)
{
iDefenders = std::max(2, iDefenders);
if (AI_isDanger())
{
iDefenders ++;
}
if (bDefenseWar)
{
iDefenders ++;
}
}
if (GET_PLAYER(getOwnerINLINE()).AI_isDoStrategy(AI_STRATEGY_LAST_STAND))
{
iDefenders += 10;
}
iDefenders = std::max(iDefenders, AI_minDefenders());
return iDefenders;
}
if ((GC.getGame().getGameTurn() - getGameTurnAcquired()) < 10)
{
if (bOffenseWar)
{
if (!hasActiveWorldWonder() && !isHolyCity())
{
iDefenders /= 2;
iDefenders = std::max(1, iDefenders);
}
Esionage mission Score
----------------------- ----------
Turn Bitracte Vienna Brennus Ramesses Power ratio (w Brennus)
------ --------- --------- -------- --------- -----------------
T49 82 118 168 (+18) 133 (+6) 0,5745
T50 74 135 168 (+18) 138 (+11) 0,5745
T51 149 152 182 (+14) 144 (+6) 0,5510
156 (+18) 0,8367 - after the BW trade
T52 231 0 182 161 (+17) 0,7885
Sorry Sun Tzu Wu
This is the situation:
![]()
Possible solution (current turn is 52).
T52 - Eve and slave 1N1W to the silk; Louis 2N via the forest. Hope the axe moves 1S.
T53 - Eve 1S1W escapes the axe; Louis smells the forest, Slave moves to the other silk 1N1W. Axe moves to the silk or 1E.
T54 - Slave escapes 2N2E to the forest Louis was camping a lot.
The axe move 1S1W instead of 1S IBT 52 - 53 ruins the plan.
EDIT: Brennus axe is combat1 promoted.
The axe is likely to attack in the situation we are right now.
Brennus put 10h into something on T49, then switched builds after our tech trade and DoW.Passive intelligence data:
Code:Esionage mission Score ----------------------- ---------- Turn Bitracte Vienna Brennus Ramesses Power ratio (w Brennus) ------ --------- --------- -------- --------- ----------------- T49 82 118 168 (+18) 133 (+6) 0,5745 T50 74 135 168 (+18) 138 (+11) 0,5745 T51 149 152 182 (+14) 144 (+6) 0,5510 156 (+18) 0,8367 - after the BW trade T52 231 0 182 161 (+17) 0,7885
EDIT: well, it's not really alligned, but still ...
BUild Cost Power Comments
----- ---- ----- --------
axe 29h 6000
spear 29h 4000
Dun 37h 3000 assuming cost is 50h*85% ???
lib 76h assuming 60h*85%
GW
if (bDanger)
{
if (AI_cityAttack(1, 30))
{
return;
}
if (AI_anyAttack(1, 40))
{
return;
}
bool bDanger = (GET_PLAYER(getOwnerINLINE()).AI_getPlotDanger(plot(), 3) > 0);
iDistance = stepDistance(pPlot->getX_INLINE(), pPlot->getY_INLINE(), pLoopPlot->getX_INLINE(), pLoopPlot->getY_INLINE());
if (atWar(pLoopPlot->getTeam(), getTeam()))
{
if (iDistance == 1)
{
iBorderDanger++;
}
else if ((iDistance == 2) && (pLoopPlot->isRoute()))
{
iBorderDanger++;
}
}
if (iBorderDanger > 0)
{
if (!isHuman() && !pPlot->isCity())
{
iCount += iBorderDanger;
}
}
return iCount;