void CvUnit::setWeapons()
{
CvPlot* pPlot;
CvCity* pCity;
if (GC.getDefineINT("WEAPON_PROMOTION_TIER1") == -1)
{
return;
}
pPlot = plot();
if (pPlot->isCity())
{
pCity = pPlot->getPlotCity();
if (pCity->getOwner() == getOwner())
{
PromotionTypes ePromT1 = (PromotionTypes)GC.getDefineINT("WEAPON_PROMOTION_TIER1");
PromotionTypes ePromT2 = (PromotionTypes)GC.getDefineINT("WEAPON_PROMOTION_TIER2");
PromotionTypes ePromT3 = (PromotionTypes)GC.getDefineINT("WEAPON_PROMOTION_TIER3");
if (isHasPromotion(ePromT3) == false)
{
if (pCity->hasBonus((BonusTypes)GC.getDefineINT("WEAPON_REQ_BONUS_TIER3")) &&
m_pUnitInfo->getWeaponTier() >= 3)
{
setHasPromotion(ePromT3, true);
gDLL->getInterfaceIFace()->addMessage(getOwner(), true, GC.getDefineINT("EVENT_MESSAGE_TIME"), gDLL->getText("TXT_KEY_MESSAGE_WEAPONS_MITHRIL"), "AS2D_REPAIR", MESSAGE_TYPE_MAJOR_EVENT, GC.getPromotionInfo(ePromT3).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), getX(), getY(), true, true);
setHasPromotion(ePromT2, false);
setHasPromotion(ePromT1, false);
}
else
{
if (isHasPromotion(ePromT2) == false)
{
if (pCity->hasBonus((BonusTypes)GC.getDefineINT("WEAPON_REQ_BONUS_TIER2")) &&
m_pUnitInfo->getWeaponTier() >= 2)
{
setHasPromotion(ePromT2, true);
gDLL->getInterfaceIFace()->addMessage(getOwner(), true, GC.getDefineINT("EVENT_MESSAGE_TIME"), gDLL->getText("TXT_KEY_MESSAGE_WEAPONS_IRON"), "AS2D_REPAIR", MESSAGE_TYPE_MAJOR_EVENT, GC.getPromotionInfo(ePromT2).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), getX(), getY(), true, true);
setHasPromotion(ePromT1, false);
}
else
{
if (isHasPromotion(ePromT1) == false)
{
if (pCity->hasBonus((BonusTypes)GC.getDefineINT("WEAPON_REQ_BONUS_TIER1")) &&
m_pUnitInfo->getWeaponTier() >= 1)
{
gDLL->getInterfaceIFace()->addMessage(getOwner(), true, GC.getDefineINT("EVENT_MESSAGE_TIME"), gDLL->getText("TXT_KEY_MESSAGE_WEAPONS_BRONZE"), "AS2D_REPAIR", MESSAGE_TYPE_MAJOR_EVENT, GC.getPromotionInfo(ePromT1).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), getX(), getY(), true, true);
setHasPromotion(ePromT1, true);
}
}
}
}
}
}
}
}
}