if (isHasPromotion((PromotionTypes)iDiseased) && bAttacking)
{
pPlot = pLoser->plot();
pUnitNode = pPlot->headUnitNode();
while (pUnitNode != NULL)
{
pLoopUnit = ::getUnit(pUnitNode->m_data);
pUnitNode = pPlot->nextUnitNode(pUnitNode);
if (GC.getGameINLINE().getSorenRandNum(100, "Disease") <= GC.getDefineINT("DISEASE_CHANCE"))
{
pLoopUnit->setHasPromotion((PromotionTypes)iDiseased, true);
gDLL->getInterfaceIFace()->addMessage(getOwner(), false, 25, gDLL->getText("TXT_KEY_MESSAGE_DISEASED_UNIT"), "AS2D_DISEASED", MESSAGE_TYPE_MAJOR_EVENT, GC.getPromotionInfo((PromotionTypes)iDiseased).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), pLoser->getX(), pLoser->getY(), true, true);
gDLL->getInterfaceIFace()->addMessage(pLoser->getOwner(), false, 25, gDLL->getText("TXT_KEY_MESSAGE_DISEASED_ENEMY_UNIT"), "AS2D_DISEASED", MESSAGE_TYPE_MAJOR_EVENT, GC.getPromotionInfo((PromotionTypes)iDiseased).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), pLoser->getX(), pLoser->getY(), true, true);
}
}
}