def checkImplosion(self, iGameTurn):
if (iGameTurn > getTurnForYear(-350) and iGameTurn % utils.getTurns(8) == 4): # Leoreth: changed from x % 10 == 5
lCollapsingCivs = []
for iPlayer in range(iNumPlayers):
if gc.getPlayer(iPlayer).isAlive() and iGameTurn >= getTurnForYear(con.tBirth[iPlayer]) + utils.getTurns(25) and iGameTurn >= gc.getPlayer(iPlayer).getLatestRebellionTurn() + utils.getTurns(10) and not gc.getPlayer(iPlayer).isGoldenAge():
if self.getStability(iPlayer) < -40:
lCollapsingCivs.append((iPlayer, self.getStability(iPlayer)))
if len(lCollapsingCivs) == 0: return
lCollapsingCivs.sort(key=itemgetter(1), reverse=False)
iCollapsingCiv = lCollapsingCivs[0][0]
if iCollapsingCiv != utils.getHumanID():
if gc.getPlayer(utils.getHumanID()).canContact(iCollapsingCiv):
CyInterface().addMessage(utils.getHumanID(), False, con.iDuration, gc.getPlayer(iCollapsingCiv).getCivilizationDescription(0) + " " + \
CyTranslator().getText("TXT_KEY_STABILITY_CIVILWAR", ()), "", 0, "", ColorTypes(con.iRed), -1, -1, True, True)
if iGameTurn < getTurnForYear(1400):
utils.pickFragmentation(iCollapsingCiv, iIndependent, iIndependent2, iBarbarian, False)
else:
utils.pickFragmentation(iCollapsingCiv, iIndependent, iIndependent2, -1, False)
else:
if gc.getPlayer(iCollapsingCiv).getNumCities() > -1:
CyInterface().addMessage(iCollapsingCiv, True, con.iDuration, CyTranslator().getText("TXT_KEY_STABILITY_CIVILWAR_HUMAN", ()), "", 0, "", ColorTypes(con.iRed), -1, -1, True, True)
utils.pickFragmentation(iCollapsingCiv, iIndependent, iIndependent2, -1, True)
utils.setStartingStabilityParameters(iCollapsingCiv)
self.setGNPold(iCollapsingCiv, 0)
self.setGNPnew(iCollapsingCiv, 0)