SGOTM 15 - Kakumeika

I need everyone who is available testing if buying peace between civs with a civ who is the worst enemy of the other civ causes a -4 penalty. This would guarantee 100% our T166 win if it turns out to be true I'd say.

**Edit**

Opening and testing in old games like GMjaor 90 etc. So far no diplo hits for buying a peace treaty between civs from a lot of people's worst enemy.

Delaying turnset until this issue is resolved.

OK will take a look.
 
I looked at the code. Trades that are not peace deals between others (i.e. !isPeaceDealBetweenOthers()) have the counters for trades and gifts updated, and inside those routines (e.g. AI_changePeacetimeTradeValue()) is the check for whether the trade was to a worst enemy. The peace-brokering deal is immune from that check.

So we can gift Shaka anything we like during the deal that brokers peace between he and Hammu, and no AI will care.

Spoiler :
[pre]void CvDeal::addTrades(CLinkList<TradeData>* pFirstList, CLinkList<TradeData>* pSecondList, bool bCheckAllowed)
{
CLLNode<TradeData>* pNode;
bool bAlliance;
bool bSave;
int iValue;

if (isVassalTrade(pFirstList) && isVassalTrade(pSecondList))
{
return;
}

if (pFirstList != NULL)
{
for (pNode = pFirstList->head(); pNode; pNode = pFirstList->next(pNode))
{
if (bCheckAllowed)
{
if (!(GET_PLAYER(getFirstPlayer()).canTradeItem(getSecondPlayer(), pNode->m_data)))
{
return;
}
}
}
}

if (pSecondList != NULL)
{
for (pNode = pSecondList->head(); pNode; pNode = pSecondList->next(pNode))
{
if (bCheckAllowed && !(GET_PLAYER(getSecondPlayer()).canTradeItem(getFirstPlayer(), pNode->m_data)))
{
return;
}
}
}

TeamTypes eFirstTeam = GET_PLAYER(getFirstPlayer()).getTeam();
TeamTypes eSecondTeam = GET_PLAYER(getSecondPlayer()).getTeam();

if (atWar(eFirstTeam, eSecondTeam))
{
// free vassals of capitulating team before peace is signed
if (isVassalTrade(pSecondList))
{
for (int iI = 0; iI < MAX_TEAMS; iI++)
{
TeamTypes eLoopTeam = (TeamTypes) iI;
CvTeam& kLoopTeam = GET_TEAM(eLoopTeam);
if ((eLoopTeam != eFirstTeam) && (eLoopTeam != eSecondTeam))
{
if (kLoopTeam.isAlive() && kLoopTeam.isVassal(eSecondTeam))
{
GET_TEAM(eSecondTeam).freeVassal(eLoopTeam);
int iSecondSuccess = GET_TEAM(eFirstTeam).AI_getWarSuccess(eSecondTeam) + GC.getDefineINT("WAR_SUCCESS_CITY_CAPTURING") * GET_TEAM(eSecondTeam).getNumCities();
GET_TEAM(eFirstTeam).AI_setWarSuccess(eLoopTeam, std::max(iSecondSuccess, GET_TEAM(eFirstTeam).AI_getWarSuccess(eLoopTeam)));
}
}
}
}

if (isVassalTrade(pFirstList))
{
for (int iI = 0; iI < MAX_TEAMS; iI++)
{
TeamTypes eLoopTeam = (TeamTypes) iI;
CvTeam& kLoopTeam = GET_TEAM(eLoopTeam);
if ((eLoopTeam != eFirstTeam) && (eLoopTeam != eSecondTeam))
{
if (kLoopTeam.isAlive() && kLoopTeam.isVassal(eFirstTeam))
{
GET_TEAM(eFirstTeam).freeVassal(eLoopTeam);
int iFirstSuccess = GET_TEAM(eSecondTeam).AI_getWarSuccess(eFirstTeam) + GC.getDefineINT("WAR_SUCCESS_CITY_CAPTURING") * GET_TEAM(eFirstTeam).getNumCities();
GET_TEAM(eSecondTeam).AI_setWarSuccess(eLoopTeam, std::max(iFirstSuccess, GET_TEAM(eSecondTeam).AI_getWarSuccess(eLoopTeam)));
}
}
}
}

GET_TEAM(eFirstTeam).makePeace(eSecondTeam, !isVassalTrade(pFirstList) && !isVassalTrade(pSecondList));
}
else
{
if (!isPeaceDealBetweenOthers(pFirstList, pSecondList))
{
if ((pSecondList != NULL) && (pSecondList->getLength() > 0))
{
iValue = GET_PLAYER(getFirstPlayer()).AI_dealVal(getSecondPlayer(), pSecondList, true);

if ((pFirstList != NULL) && (pFirstList->getLength() > 0))
{
GET_PLAYER(getFirstPlayer()).AI_changePeacetimeTradeValue(getSecondPlayer(), iValue);
}
else
{
GET_PLAYER(getFirstPlayer()).AI_changePeacetimeGrantValue(getSecondPlayer(), iValue);
}
}
if ((pFirstList != NULL) && (pFirstList->getLength() > 0))
{
iValue = GET_PLAYER(getSecondPlayer()).AI_dealVal(getFirstPlayer(), pFirstList, true);

if ((pSecondList != NULL) && (pSecondList->getLength() > 0))
{
GET_PLAYER(getSecondPlayer()).AI_changePeacetimeTradeValue(getFirstPlayer(), iValue);
}
else
{
GET_PLAYER(getSecondPlayer()).AI_changePeacetimeGrantValue(getFirstPlayer(), iValue);
}
}
}
}

if (pFirstList != NULL)
{
for (pNode = pFirstList->head(); pNode; pNode = pFirstList->next(pNode))
{
bSave = startTrade(pNode->m_data, getFirstPlayer(), getSecondPlayer());

if (bSave)
{
insertAtEndFirstTrades(pNode->m_data);
}
}
}

if (pSecondList != NULL)
{
for (pNode = pSecondList->head(); pNode; pNode = pSecondList->next(pNode))
{
bSave = startTrade(pNode->m_data, getSecondPlayer(), getFirstPlayer());

if (bSave)
{
insertAtEndSecondTrades(pNode->m_data);
}
}
}

bAlliance = false;

if (pFirstList != NULL)
{
for (pNode = pFirstList->head(); pNode; pNode = pFirstList->next(pNode))
{
if (pNode->m_data.m_eItemType == TRADE_PERMANENT_ALLIANCE)
{
bAlliance = true;
}
}
}

if (pSecondList != NULL)
{
for (pNode = pSecondList->head(); pNode; pNode = pSecondList->next(pNode))
{
if (pNode->m_data.m_eItemType == TRADE_PERMANENT_ALLIANCE)
{
bAlliance = true;
}
}
}

if (bAlliance)
{
if (eFirstTeam < eSecondTeam)
{
GET_TEAM(eFirstTeam).addTeam(eSecondTeam);
}
else if (eSecondTeam < eFirstTeam)
{
GET_TEAM(eSecondTeam).addTeam(eFirstTeam);
}
}
}
[/pre]


Spoiler :
[pre]void CvPlayerAI::AI_changePeacetimeTradeValue(PlayerTypes eIndex, int iChange)
{
PROFILE_FUNC();

int iI;

FAssertMsg(eIndex >= 0, "eIndex is expected to be non-negative (invalid Index)");
FAssertMsg(eIndex < MAX_PLAYERS, "eIndex is expected to be within maximum bounds (invalid Index)");

if (iChange != 0)
{
m_aiPeacetimeTradeValue[eIndex] = (m_aiPeacetimeTradeValue[eIndex] + iChange);
FAssert(AI_getPeacetimeTradeValue(eIndex) >= 0);

FAssert(iChange > 0);

if (iChange > 0)
{
if (GET_PLAYER(eIndex).getTeam() != getTeam())
{
for (iI = 0; iI < MAX_CIV_TEAMS; iI++)
{
if (GET_TEAM((TeamTypes)iI).isAlive())
{
if (GET_TEAM((TeamTypes)iI).AI_getWorstEnemy() == getTeam())
{
GET_TEAM((TeamTypes)iI).AI_changeEnemyPeacetimeTradeValue(GET_PLAYER(eIndex).getTeam(), iChange);
}
}
}
}
}
}
}
[/pre]
 
I've been testing every idea proposed so far including Hamsville beg/liberate games and I think Sun Tzu Wu might have caught onto something.

It seems that buying peace between two civs with a hugely unbalanced trade might not affect worst enemy diplo penalties. This might solve our last major problem if we buy peace between Shaka/Hamma through Shaka and then give him GhostTown.

Here is the test game. Be sure to give absolutely everything to Isabella for peace with Joao. She is the worst enemy of the entire world and no diplo penalties occur with anyone. Give her a big tech for free though, and everyone dings you with -4 "worst enemy" penalties.

We have to make 100% sure. If we are wrong Hamma goes to +9 with us and we lose T166 win and have to wait until T176.

I regard this as proved. We have a test game and evidence from the code.

I like the gift of another city to Liz, too. PG might be another option if Toku's units and peace status are unsuitable for us. Or if SheepTown's culture is good enough, closing borders with Toku.
 
I looked at the code. Trades that are not peace deals between others (i.e. !isPeaceDealBetweenOthers()) have the counters for trades and gifts updated, and inside those routines (e.g. AI_changePeacetimeTradeValue()) is the check for whether the trade was to a worst enemy. The peace-brokering deal is immune from that check.

So we can gift Shaka anything we like during the deal that brokers peace between he and Hammu, and no AI will care.

Spoiler :
[pre]void CvDeal::addTrades(CLinkList<TradeData>* pFirstList, CLinkList<TradeData>* pSecondList, bool bCheckAllowed)
{
CLLNode<TradeData>* pNode;
bool bAlliance;
bool bSave;
int iValue;

if (isVassalTrade(pFirstList) && isVassalTrade(pSecondList))
{
return;
}

if (pFirstList != NULL)
{
for (pNode = pFirstList->head(); pNode; pNode = pFirstList->next(pNode))
{
if (bCheckAllowed)
{
if (!(GET_PLAYER(getFirstPlayer()).canTradeItem(getSecondPlayer(), pNode->m_data)))
{
return;
}
}
}
}

if (pSecondList != NULL)
{
for (pNode = pSecondList->head(); pNode; pNode = pSecondList->next(pNode))
{
if (bCheckAllowed && !(GET_PLAYER(getSecondPlayer()).canTradeItem(getFirstPlayer(), pNode->m_data)))
{
return;
}
}
}

TeamTypes eFirstTeam = GET_PLAYER(getFirstPlayer()).getTeam();
TeamTypes eSecondTeam = GET_PLAYER(getSecondPlayer()).getTeam();

if (atWar(eFirstTeam, eSecondTeam))
{
// free vassals of capitulating team before peace is signed
if (isVassalTrade(pSecondList))
{
for (int iI = 0; iI < MAX_TEAMS; iI++)
{
TeamTypes eLoopTeam = (TeamTypes) iI;
CvTeam& kLoopTeam = GET_TEAM(eLoopTeam);
if ((eLoopTeam != eFirstTeam) && (eLoopTeam != eSecondTeam))
{
if (kLoopTeam.isAlive() && kLoopTeam.isVassal(eSecondTeam))
{
GET_TEAM(eSecondTeam).freeVassal(eLoopTeam);
int iSecondSuccess = GET_TEAM(eFirstTeam).AI_getWarSuccess(eSecondTeam) + GC.getDefineINT("WAR_SUCCESS_CITY_CAPTURING") * GET_TEAM(eSecondTeam).getNumCities();
GET_TEAM(eFirstTeam).AI_setWarSuccess(eLoopTeam, std::max(iSecondSuccess, GET_TEAM(eFirstTeam).AI_getWarSuccess(eLoopTeam)));
}
}
}
}

if (isVassalTrade(pFirstList))
{
for (int iI = 0; iI < MAX_TEAMS; iI++)
{
TeamTypes eLoopTeam = (TeamTypes) iI;
CvTeam& kLoopTeam = GET_TEAM(eLoopTeam);
if ((eLoopTeam != eFirstTeam) && (eLoopTeam != eSecondTeam))
{
if (kLoopTeam.isAlive() && kLoopTeam.isVassal(eFirstTeam))
{
GET_TEAM(eFirstTeam).freeVassal(eLoopTeam);
int iFirstSuccess = GET_TEAM(eSecondTeam).AI_getWarSuccess(eFirstTeam) + GC.getDefineINT("WAR_SUCCESS_CITY_CAPTURING") * GET_TEAM(eFirstTeam).getNumCities();
GET_TEAM(eSecondTeam).AI_setWarSuccess(eLoopTeam, std::max(iFirstSuccess, GET_TEAM(eSecondTeam).AI_getWarSuccess(eLoopTeam)));
}
}
}
}

GET_TEAM(eFirstTeam).makePeace(eSecondTeam, !isVassalTrade(pFirstList) && !isVassalTrade(pSecondList));
}
else
{
if (!isPeaceDealBetweenOthers(pFirstList, pSecondList))
{
if ((pSecondList != NULL) && (pSecondList->getLength() > 0))
{
iValue = GET_PLAYER(getFirstPlayer()).AI_dealVal(getSecondPlayer(), pSecondList, true);

if ((pFirstList != NULL) && (pFirstList->getLength() > 0))
{
GET_PLAYER(getFirstPlayer()).AI_changePeacetimeTradeValue(getSecondPlayer(), iValue);
}
else
{
GET_PLAYER(getFirstPlayer()).AI_changePeacetimeGrantValue(getSecondPlayer(), iValue);
}
}
if ((pFirstList != NULL) && (pFirstList->getLength() > 0))
{
iValue = GET_PLAYER(getSecondPlayer()).AI_dealVal(getFirstPlayer(), pFirstList, true);

if ((pSecondList != NULL) && (pSecondList->getLength() > 0))
{
GET_PLAYER(getSecondPlayer()).AI_changePeacetimeTradeValue(getFirstPlayer(), iValue);
}
else
{
GET_PLAYER(getSecondPlayer()).AI_changePeacetimeGrantValue(getFirstPlayer(), iValue);
}
}
}
}

if (pFirstList != NULL)
{
for (pNode = pFirstList->head(); pNode; pNode = pFirstList->next(pNode))
{
bSave = startTrade(pNode->m_data, getFirstPlayer(), getSecondPlayer());

if (bSave)
{
insertAtEndFirstTrades(pNode->m_data);
}
}
}

if (pSecondList != NULL)
{
for (pNode = pSecondList->head(); pNode; pNode = pSecondList->next(pNode))
{
bSave = startTrade(pNode->m_data, getSecondPlayer(), getFirstPlayer());

if (bSave)
{
insertAtEndSecondTrades(pNode->m_data);
}
}
}

bAlliance = false;

if (pFirstList != NULL)
{
for (pNode = pFirstList->head(); pNode; pNode = pFirstList->next(pNode))
{
if (pNode->m_data.m_eItemType == TRADE_PERMANENT_ALLIANCE)
{
bAlliance = true;
}
}
}

if (pSecondList != NULL)
{
for (pNode = pSecondList->head(); pNode; pNode = pSecondList->next(pNode))
{
if (pNode->m_data.m_eItemType == TRADE_PERMANENT_ALLIANCE)
{
bAlliance = true;
}
}
}

if (bAlliance)
{
if (eFirstTeam < eSecondTeam)
{
GET_TEAM(eFirstTeam).addTeam(eSecondTeam);
}
else if (eSecondTeam < eFirstTeam)
{
GET_TEAM(eSecondTeam).addTeam(eFirstTeam);
}
}
}
[/pre]


Spoiler :
[pre]void CvPlayerAI::AI_changePeacetimeTradeValue(PlayerTypes eIndex, int iChange)
{
PROFILE_FUNC();

int iI;

FAssertMsg(eIndex >= 0, "eIndex is expected to be non-negative (invalid Index)");
FAssertMsg(eIndex < MAX_PLAYERS, "eIndex is expected to be within maximum bounds (invalid Index)");

if (iChange != 0)
{
m_aiPeacetimeTradeValue[eIndex] = (m_aiPeacetimeTradeValue[eIndex] + iChange);
FAssert(AI_getPeacetimeTradeValue(eIndex) >= 0);

FAssert(iChange > 0);

if (iChange > 0)
{
if (GET_PLAYER(eIndex).getTeam() != getTeam())
{
for (iI = 0; iI < MAX_CIV_TEAMS; iI++)
{
if (GET_TEAM((TeamTypes)iI).isAlive())
{
if (GET_TEAM((TeamTypes)iI).AI_getWorstEnemy() == getTeam())
{
GET_TEAM((TeamTypes)iI).AI_changeEnemyPeacetimeTradeValue(GET_PLAYER(eIndex).getTeam(), iChange);
}
}
}
}
}
}
}
[/pre]

Well, that should solve our problem then :).

T163 Make peace with Shaka for GhostTown. Then buy peace between Hamma/Shaka from Hamma if possible, and if not then buy it from Shaka. GhostTown is 74% Shaka so has a much better chance of not revolting than SBB. No sense waiting until T164 since GhostTown is currently at 10% chance to flip to Hamma. Just need to check now if we have enough techs and gold for Shaka to approve peace between Shaka/Hamma. I will ask what do you want for this, screenshot the result, close the game.
 
Well, that should solve our problem then :).

T163 Make peace with Shaka for GhostTown. Then buy peace between Hamma/Shaka from Hamma if possible, and if not then buy it from Shaka. GhostTown is 74% Shaka so has a much better chance of not revolting than SBB. No sense waiting until T164 since GhostTown is currently at 10% chance to flip to Hamma. Just need to check now if we have enough techs and gold for Shaka to approve peace between Shaka/Hamma. I will ask what do you want for this, screenshot the result, close the game.

Yeah we have three techs to give to Shaka. Should be comfortable.
 
Yeah we have three techs to give to Shaka. Should be comfortable.

Guilds, Divine Right, and Paper. We can't know for sure until after we make peace with Shaka, but I'd eat my hat if that wasn't enough :crazyeye:.

I will update the PPP to version 2 and start play once I like it.
 
summary for front page

Plans
Resolved to use a missionary (or both) from the teleport stack to spread in SBB, and chop/whip out 2 more using OR and the forests and population there. The galley and roads will get these to Bulawayo in time for the T164 spread. Sweet. Meanwhile, we tech up hard to get Hammu into the war to distract Shaka's SoD.

T154 Hatse DOWs us for the bait city we settled. Akhetaten looks easy to take. Embargo Cyrus of Shaka to keep SBB safe from Shaka. Unfortunately C was already WHEOOHRN - later we found it was against us :-(. Gifted Hamsville to Shaka and flipped him to Hinduism.

T155 An Incan border pop meant that the Great Wall teleported some barbs into our back pocket. Mild nuisance only. Cyrus stack appears for SBB. Panic gift SBB to Shaka. We're down to one 89% missionary chance for the Bulawayo spread. Popped GPro for SR for our Hammu-bribing.

Plans
  • If Cyrus DOWs Shaka in a few turns and takes SBB, then Shaka will send up his big SoD to hit Cyrus probably, and we leave Hamma out of it and let Shaka keep GhostTown. We tiptoe past and do a job on Bulawayo. Hopefully, with his stack on the far side of the world, Hammu does not dogpile.
  • If Cyrus does not DOW Shaka, he will likely not take SBB, then we were likely his war target, so SBB will hopefully be Shaka's hindu city. We DOW whenever we can bribe in Hammu, definitely securing Hammsville, and securing GT if the OB/war/whatever timing lets us do this. (Securing GT might be necessary if Cyrus dogpiles and takes SBB later.) Shaka stack heads for Borsippa and we tiptoe to Bulawayo.

T154 Started missionaries for remaining homeland Hindu spreads.

T155 Confirmed Cyrus was going to take SBB. Took Akhetaten for loss of a few units, infected (100%) and gifted to Inca. Will lose a few more units on the way out.

T156 Abused AP to get a second +2 "you voted for us" with Toku by assigning TH to us and then voting against it. Finished Paper, sold some world maps. Still teching hard to finish DR.

T157 Boring

T158 We lost one of the above +2, so unlikely to get Toku as a backup voting ally.

T159 Finished DR. Simultaneously, Hammu finished Feudalism, which unlocks our ability to gift him Guilds and Banking. So now we have an embarrassment of techs for bribing!

Plans
Because nearly-Friendly Hammu still won't let us have OB, it's still awkward to get Hammu into the war on Shaka, lest he take GhostTown before we can. Resolved to suggest Nobamba to him as a war target, run for GT as fast as we can and hope that one of GT or SBB will survive in our possession as Shaka's eventual Hindu city. We let Shaka target on Borsippa, and then our SOD takes out Bulawayo in a sneak attack.

T159 DOW Shaka, bribed in Hammu, got OB, suggested Nobamba, ran for GT, got Hammu in Merc.

T160 Great news! Hammu send only one unit against GT, so we capture it without loss. Hatched yet another plan to capture SBB, hold it for a turn and chop out a missionary, but this was doubly-flawed because our culture was insufficient to get either forest tile, and Cyrus' stack was in position to take SBB with an immediate DOW. So we gifted SBB back off to Genghis, and might re-take it in a T164 DOW to re-gift to Shaka to be a Hindu city chance. Hammu is finally spreading around Buddhism, which may help us get his Hindu population up, too, without him switching to Hinduism prematurely and being our voting opponent.

T161 Shaka SoD heads for Borsippa as we expected.

T162 Got OB with Inca/Mali from shared civic. Pity it's useless.

T163 Captured Bulawayo for trivial losses, successfully spread Hinduism at 89%. Gifted to Mali. So the setup is nearly complete. Missionaries lurking to spread to Hammurabi after the vote selection and before votes are counted.

Plans
Whip population down below 75% to ensure victory vote is available T164, then T165 flip Hammu to Hindu+OR, spread Hinduism around and maybe gift cities to buff our net vote well over 80%. Manage GT to be Shaka's Hindu city with SBB as backup. Gift LizTown and a whipped-out FishTown to be Liz's Hindu cities, as LT is under too much culture pressure to be reliable. Set up for Buddhism-capturing war on Toku if somehow we fail, as we'll need to get Hammu back out of Hinduism, and mass Buddhism spread is the only way.
 
If Shaka can/may end up with both GT and SBB as Hindu cities and is still in Hinduism, the vote counting needs to remember that he will count double for both of them, and so have (1+1)*2=4 votes. Not sure if the voting analysis has accounted for this. We need to be able to cater for Shaka with 1-4 votes and still have a safety margin, lest he switch out of Hinduism or lose SBB to culture.
 
PPP#2 T163-T165


Goal: Get all civs to have a safe Hindu city by T164. Vote for religious victory and use Hammarugawa to get over 75% for a T166 win.


We plan on giving Shaka GhostTown for peace T163. Then we will buy peace between Shaka/Hamma to keep GhostTown safe. GhostTown is 73% Shaka and should be flip resistant for a few turns at least.

Liz will be given LizTown T164 and then a 2nd city afterwards, hopefully a whipped FishTown. This should ensure all civs have Hindu.

Then we infect Hamma with mass Hindu and convert him T165 and we should have a combine 80%+ of the vote.



Hamma's lands and current vote totals:

Spoiler :
HammasLands.jpg


Votes.jpg


T163

1) Sign a peace treaty with Shaka for GhostTown.
2) Buy peace between Shaka/Hamma by trading techs to Shaka.
3) Move Axe using the galley and Maceman towards Shaka Bacon Bit in case we need SBB later.
4) 2-Pop Whip a Hindu Missionary in DeerGold City. Have it head to Size_8 BabsTown T164.
5) Move one Northern Hindu Missionary to Size_10 Akkad and the other to Size_8 Dur-Kurigalen
6) Halt all city growths. We are currently at 75% of the vote. Dehli builds wealth, DeerGold builds Missionary, all other cities start on Pike/Maceman/Treb for possible whip T164. Start an archer 30:hammers: or less unit in LizTown and let it grow to Size 2. Will whip the city to Size 1 before giving to Elizagawa for a peace treaty T164.
7) Let our SoD teleport into Bulawayo when peace is signed with Shaka.
8) Will crank espionage slider to 100% if the Shaka/Hamma situation is resolved just in case.
9) Send eastern units and spies to the Tokugawa front once healed. Keep one unit behind to gift to LizTown.

T164

1) Make peace with Elizagawa for LizTown after whipping the city to Size 1. Sign open borders treaty. Move all nearby military units in to keep it from revolting. Gift Liz one unit to hopefully prevent flip if a revolt occurs.
2) Try to buy peace between Liz and Tokugawa so Toku doesn't take any Liz gift cities. If this isn't possible, close borders with Tokugawa.
3) Gift Elizagawa FishTown if she will take it after whipping it down as much as possible. Flip should be impossible so no unit gift.
4) Whip our population down to 70% exactly if all civs have a stable Hindu city. Make sure no cities grow, or if the whips cause the food box to be overful and assure growth, whip a bit more.
5) Move DeerGold's Hindu Missionary to BabsTown.
6) Upload game for team to check that all AI have a Hindu vote and that we are under 75% for the Religious Resolution.

T165

1) Vote Ghandi for Religious Victory.
2) Bribe Hammarugawa into Organized Religion and Hinduism if possible. If Hindu not possible because not enough Hindu pop, then try to flip into Hindu with spies. We really need Hamma to have both Organized Religion and Hinduism.
3) Infect Dur, Akkad, and BabsTown with Hindu missionaries.
4) The approximately 59 votes that Hamma will have after the spreads and Hindu conversion will give him about 24% of the vote and us about 58% of the vote. That is 82% total.
5) Grow all cities, as we can't possibly reach from 58% to 75% with 240ish votes in the world now.
6) Pray that Hammu doesn't vote for Shaka even though we have a +16 diplo advantage over him.


Diplo

Refuse any demands from Shaka as Hamma hates him. Also refuse demands from Liz as Toku hates her.
Grant demands for gold/tech/resources to other Gawas.

Stopping Points

Any of steps 1-2 from T163 don't go as planned.
Any of steps 1-3 from T164 don't go as planned.
Step 2 from T165 doesn't go as planned.
Something unexpected comes up.

Check Every Turn

To Make sure and save!
Borders between angry Hatty and Toku stay closed

Backup Plans

If we miss T166 win because we can't get Shaka a Hindu city, then North_AI might Liberate Bulawayo back to Shaka in a few turns and the peace treaty prevents us from another shot at Religious Victory until T186. Our stack would get teleported to Cyrus' lands hopefully and we could start invading Shaka again T174. If North_AI keeps Bulawayo, then we can try for T176 win by once again getting Shaka a Hindu City somehow.
 
If Shaka can/may end up with both GT and SBB as Hindu cities and is still in Hinduism, the vote counting needs to remember that he will count double for both of them, and so have (1+1)*2=4 votes. Not sure if the voting analysis has accounted for this. We need to be able to cater for Shaka with 1-4 votes and still have a safety margin, lest he switch out of Hinduism or lose SBB to culture.

I think we should abandon the SBB plan as there is a 10% chance we will lose GhostTown within the next turn. It is by far the safer city for Shaka to own.

The only way I can see us continuing with it is if we aren't 100% sure we can buy peace between Shaka/Hamma. 3 techs has to be enough right? Hamma will tell us to talk to the other guy(Shaka) and he ought to be willing to talk to us and agree to peace for huge techs right?

I don't think we've done anything that will make Shaka "refuse" to even talk to us once we are at peace. If he did though we will have shot ourselves in the foot pretty good.
 
I think we should abandon the SBB plan as there is a 10% chance we will lose GhostTown within the next turn. It is by far the safer city for Shaka to own.

I don't follow that logic, but if GT is assured, then DOWing Genghis to capture SBB can be avoided, in case the game continues for some reason.

The only way I can see us continuing with it is if we aren't 100% sure we can buy peace between Shaka/Hamma. 3 techs has to be enough right? Hamma will tell us to talk to the other guy(Shaka) and he ought to be willing to talk to us and agree to peace for huge techs right?

Yes

I don't think we've done anything that will make Shaka "refuse" to even talk to us once we are at peace. If he did though we will have shot ourselves in the foot pretty good.

I don't think that's even possible
 
Even if we are Shakagawa's worst enemy, he will still do a peace for techs deal according to the testgame using a different civ.

One of the three techs might be grayed out if he has partially researched one, so we need to figure out of if any 2 out of 3 will be enough to purchase peace before abandoning SBB plan.
 
Even if we are Shakagawa's worst enemy, he will still do a peace for techs deal according to the testgame using a different civ.

One of the three techs might be grayed out if he has partially researched one, so we need to figure out of if any 2 out of 3 will be enough to purchase peace before abandoning SBB plan.

Won't we see all this work in T163 1) and 2) before we have to consider committing to SBB?
 
Ew, in the test game, when one side says talk to the other side, the other side demanded 3200:science: to stop the war. They were a Team_AI so that might not be accurate, but it is a lot more than I thought it would be.

Maybe we should just stick to the SBB plan. GhostTown is at 10% chance to revolt because of Hamma's culture pressure on it. I hope we can hold it one more turn.
 
Won't we see all this work in T163 1) and 2) before we have to consider committing to SBB?

If we sign peace with Shaka and can't stop the Hamma/Shaka war, then taking SBB the next turn does us no good because gifting it to Shaka will get us the "-4 traded with worst enemy" penalty with Hammarugawa.

**Edit** Oh I see what you mean :). All 3 techs we have currently that we might trade to Shaka are not grayed out, so all are good! Let's see, they add up to umm, 4200:science:. Yes! that should be enough to make Shaka make peace between Shaka/Hamma for sure.
 
I now favor proceeding with PPP#2 as planned unless there are any objections. Will be abandoning capturing SBB from Ghenghi and hope the peace deals work.

I'm trying to read the code from DanF's post that pertains to our situation to see if I can glimpse anything.
 
Thinking more has reached the end of its usefulness unless a code reader can predict Shaka's exact price for peace with Hamma. :lol:

I will play in 30 minutes as we are running out of time and I feel this is the right choice.
 
Back
Top Bottom