void CvCity::doMeltdown()
{
if (GC.getUSE_CAN_DO_MELTDOWN_CALLBACK() && Cy::call<bool>(PYGameModule, "doMeltdown", Cy::Args() << this))
{
return;
}
for (int iI = 0; iI < GC.getNumBuildingInfos(); iI++)
{
if (getNumBuilding((BuildingTypes)iI) > 0)
{
const int iOdds = GC.getBuildingInfo((BuildingTypes)iI).getNukeExplosionRand();
if (iOdds > 0 && GC.getGame().getSorenRandNum(1000, "Meltdown!!!") < iOdds)
{
if (getNumRealBuilding((BuildingTypes)iI) > 0)
{
setNumRealBuilding(((BuildingTypes)iI), 0);
}
plot()->nukeExplosion(1);
{
MEMORY_TRACK_EXEMPT();
CvWString szBuffer = gDLL->getText("TXT_KEY_MISC_MELTDOWN_CITY", getNameKey());
AddDLLMessage(getOwner(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_MELTDOWN", MESSAGE_TYPE_MINOR_EVENT,
ARTFILEMGR.getInterfaceArtInfo("INTERFACE_UNHEALTHY_PERSON")->getPath(), (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), getX(), getY(), true, true);
}
break;
}
}
}
}