Über das Thema gibt's eigentlich nicht viel zu sagen, aber da ich mir das gerade angesehen hab, schreib ich es jetzt auch mal auf.
Relevant ist dieser Code:
PHP-Code:
void CvPlayer::acquireCity(CvCity* pOldCity, bool bConquest, bool bTrade, bool bUpdatePlotGroups)
{
[...]
bRecapture = ((eHighestCulturePlayer != NO_PLAYER) ? (GET_PLAYER(eHighestCulturePlayer).getTeam() == getTeam()) : false);
[...]
for (iI = 0; iI < GC.getNumBuildingInfos(); iI++)
{
int iNum = 0;
if (paiNumRealBuilding[iI] > 0)
{
BuildingClassTypes eBuildingClass = (BuildingClassTypes)GC.getBuildingInfo((BuildingTypes)iI).getBuildingClassType();
if (::isWorldWonderClass(eBuildingClass))
{
eBuilding = (BuildingTypes)iI;
}
else
{
eBuilding = (BuildingTypes)GC.getCivilizationInfo(getCivilizationType()).getCivilizationBuildings(eBuildingClass);
}
if (eBuilding != NO_BUILDING)
{
if (bTrade || !(GC.getBuildingInfo((BuildingTypes)iI).isNeverCapture()))
{
if (!isProductionMaxedBuildingClass(((BuildingClassTypes)(GC.getBuildingInfo(eBuilding).getBuildingClassType())), true))
{
if (pNewCity->isValidBuildingLocation(eBuilding))
{
if (!bConquest || bRecapture || GC.getGameINLINE().getSorenRandNum(100, "Capture Probability") < GC.getBuildingInfo((BuildingTypes)iI).getConquestProbability())
{
iNum += paiNumRealBuilding[iI];
}
}
}
}
pNewCity->setNumRealBuildingTimed(eBuilding, std::min(pNewCity->getNumRealBuilding(eBuilding) + iNum, GC.getCITY_MAX_NUM_BUILDINGS()), false, ((PlayerTypes)(paiBuildingOriginalOwner[iI])), paiBuildingOriginalTime[iI]);
}
}
}
[...]
}
Wird eine Stadt gehandelt oder zurückerobert, werden keine Gebäude zerstört. "Zurückerobert" heißt dabei, dass der Eroberer derjenige ist, der in der Stadt die höchste Kultur hat, wobei nicht die Feldkultur des Stadtplots (die auch im Stadtbildschirm angezeigt wird), sondern nur die Stadtkultur zählt. Stadtkultur wird nur akkumuliert, während man eine Stadt tatsächlich besitzt, kultureller Einfluss durch Nachbarstädte wird von der Stadtkultur ignoriert. In den meisten Fällen bedeutet "Rückeroberung" also genau das, was man sich darunter vorstellt
Bei einer normalen Eroberung wird für jedes Gebäude separat geprüft, ob es erobert oder zerstört wurde, wobei die Eroberungswahrscheinlichkeit für jedes Gebäude dem Wert iConquestProb (in Prozent) aus dem BuildingsInfos.xml entspricht. Außerdem gibt es den Eintrag bNeverCapture, wenn der 1 ist, kann ein Gebäude nie erobert werden. Soweit ich das sehe, hat das für BtS keinen Einfluss, da alle Gebäude mit bNeverCapture=1 auch iConquestProb=0 haben, aber der Vollständigkeit halber sei es erwähnt
Die XML-Werte aller Gebäude kann man, wie gesagt, in BuildingsInfos.xml finden, ich hab sie in diese Tabelle extrahiert:
In BtS hat jedes Gebäude also eine Eroberungswahrscheinlichkeit von 0%, 66% oder 100%, wobei nur Weltwunder, die (Wissi-) Akademie und die Militärakademie 100% bekommen (es gibt kein normales Gebäude außer den Akademien, das garantiert erobert wird, und kein Weltwunder, das zerstört werden kann). Ansonsten kann man grob sagen, das alle Gebäude mit 0% genau die sind, die
- Kultur erzeugen,
- einen militärischen Nutzen haben (Kaserne, Stallungen, Mauern/Schloss, Flughafen),
- Nationalwunder oder
- Öffentliche Verkehrsmittel sind. Weiß nicht, wieso die in diese Liste fallen
Alle anderen Gebäude haben ne Eroberungschance von 66%.
UBs (danke an Lord of the Civ für den Hinweis ) werden bei Eroberung durch eine andere Civ in Standardgebäude bzw. das UB der anderen Civ umgewandelt und genauso Standardgebäude in UBs, man erhält also immer das, was man in dieser Stadt selbst gebaut hätte. Dabei ist es so, dass die Eroberungschance des ursprünglichen Gebäudes zählt. Erobere ich eine Mali-Stadt mit Münzanstalt, zählt die Eroberungschance der Münzanstalt, auch wenn sie dann zur Schmiede wird; erobere ich als Mali eine Stadt mit Schmiede, zählt die Eroberungschance der Schmiede, auch wenn sie dann zur Münzanstalt wird. Das ist fast immer irrelevant, da Eroberungschance von UB und Standardgebäude fast immer übereinstimmen. Einzige Ausnahme sind die Griechen, deren Odeon eine Eroberungschance von 0 hat, während die Chance beim Kolosseum 66% ist. Das heißt: Griechen können Kolosseen erobern, die dann zu nem Odeon werden; aber wenn jemand anders eine griechische Stadt mit Odeon erobert, wird dieses immer zerstört. Auf den ersten Blick könnte man glauben, dass die veränderte Eroberungschance des Odeons daran liegt, dass es Kultur erzeugt und deshalb zerstört werden soll, aber wie meine Erläuterung zeigt, ist ja genau das Gegenteil der Fall: Es wird nur in den Fällen (garantiert) zerstört, in denen es ohnehin zu einem stinknormalen Kolosseum umgewandelt würde; Griechen können also trotzdem Städte mit einem kulturerzeugenden Odeon erobern. Wahrscheinlich hat da jemand nicht richtig aufgepasst, als der Wert festgelegt wurde
Man beachte übrigens, dass auch KKs zu kulturerzeugenden Inka-Terrassen umgewandelt werden können.
Und mehr gibt es dazu auch nicht zu sagen. Alle Angaben für BtS 3.19 und ohne Gewähr