Code:
void CvPlayer::doCityStateReward(PlayerTypes eCityState, int iValue)
{
CivilizationTypes eCityStateCiv;
eCityStateCiv = GET_PLAYER(eCityState).getCivilizationType();
if ( GC.getCivilizationInfo(eCityStateCiv).isCitystate() )
{
int iAttitudeChange = iValue/250;
if (iAttitudeChange > 0)
{
iAttitudeChange += getAttitudebonusCitystate()/4;
GET_PLAYER(eCityState).AI_changeAttitudeExtra( getID(), iAttitudeChange );
TeamTypes eTargetTeam;
TeamTypes eCityStateTeam;
eTargetTeam = getTeam();
eCityStateTeam = GET_PLAYER(eCityState).getTeam();
GET_TEAM(eTargetTeam).doCityStateDesert(eCityStateTeam);
}
CvWString szBuffer;
CvCity* pRandomCity;
int iRandomID = GC.getGameINLINE().getSorenRandNum( getNumCities(),"Vassal land war");
pRandomCity = getCity(iRandomID);
if ( pRandomCity == NULL )
{
pRandomCity = getCapitalCity();
}
//Random City darf nicht NULL sein, wenn kein Capital vorhanden!!!
if ( pRandomCity != NULL )
{
if ( GC.getCivilizationInfo(eCityStateCiv).isProductiveCitystate() )
{
pRandomCity->changeOverflowProduction(iValue,0);
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_PRODUCTIVE", GET_PLAYER((eCityState)).getName() , pRandomCity->getName().GetCString() );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
if ( GC.getCivilizationInfo(eCityStateCiv).isMilitaryCitystate() )
{
int iX = pRandomCity->getX();
int iY = pRandomCity->getY();
int iCreateUnits = iValue/100;
if (iCreateUnits == 0)
{
iCreateUnits = 1;
}
EraTypes ePlayerEra = getCurrentEra();
CivilizationTypes ePlayerCiv;
ePlayerCiv = GET_PLAYER(getID()).getCivilizationType();
CvUnit* pNewUnit;
UnitTypes eMercenaryUnit;
eMercenaryUnit = (UnitTypes)GC.getCivilizationInfo(ePlayerCiv).getCivilizationUnits(GC.getEraInfo(ePlayerEra).getMercenaryUnitclass() );
int iUnit;
for (iUnit = 0; iUnit < iCreateUnits; ++iUnit)
{
pNewUnit = initUnit(eMercenaryUnit, iX , iY, NO_UNITAI);
pNewUnit->setOriginalOwner(eCityState);
}
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_MILITARY", GET_PLAYER((eCityState)).getName() , pRandomCity->getName().GetCString() );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
//Random City darf nicht NULL sein, wenn kein Capital vorhanden!!!
if ( GC.getCivilizationInfo(eCityStateCiv).isMaritimCitystate() )
{
pRandomCity->changeFood(iValue/2);
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_MARITIME", GET_PLAYER((eCityState)).getName() , pRandomCity->getName().GetCString() );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
if ( GC.getCivilizationInfo(eCityStateCiv).isArtisticCitystate() )
{
pRandomCity->changeCulture(getID(),iValue*3,true,true);
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_ARTISTIC", GET_PLAYER((eCityState)).getName() , pRandomCity->getName().GetCString() );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
}
if ( GC.getCivilizationInfo(eCityStateCiv).isSteueroase() )
{
changeGold(iValue*2);
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_MERKANTILE", GET_PLAYER((eCityState)).getName() , iValue*2 );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
if ( GC.getCivilizationInfo(eCityStateCiv).isMerkantileCitystate() )
{
changeGold(iValue*2);
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_MERKANTILE", GET_PLAYER((eCityState)).getName() , iValue*2 );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
if ( GC.getCivilizationInfo(eCityStateCiv).isFrommCitystate() )
{
ReligionTypes eStateReligion = getStateReligion();
int iCitiesDone = 0;
int iCitiesConvert = iValue/75;
if (iCitiesConvert == 0)
{
iCitiesConvert = 1;
}
CvCity* pLoopCity;
int iLoop;
iLoop = 0;
for ( pLoopCity = GET_PLAYER(getID()).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(getID()).nextCity(&iLoop))
{
if (!pLoopCity->isHasReligion(eStateReligion))
{
pLoopCity->setHasReligion(eStateReligion,true,true,true );
iCitiesDone +=1;
if ( iCitiesDone == iCitiesConvert)
{
break;
}
}
}
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_FROMM", GET_PLAYER((eCityState)).getName() , iCitiesDone );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
if ( GC.getCivilizationInfo(eCityStateCiv).isWiseCitystate() )
{
TeamTypes eTargetTeam;
eTargetTeam = getTeam();
TechTypes eCurrentResearch = GET_PLAYER(getID()).getCurrentResearch();
GET_TEAM(eTargetTeam).changeResearchProgress(eCurrentResearch, iValue*3/2, getID());
szBuffer = gDLL->getText("TXT_KEY_MESSAGE_DANKBAR_WISE", GET_PLAYER((eCityState)).getName() , iValue*3/2 );
gDLL->getInterfaceIFace()->addMessage((PlayerTypes)this->getID(), false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"));
}
}
}
//Kathy End City-State Missionen