Jedenfalls interpretiere ich den Abschnitt im Python so:
PHP-Code:
# ------- Furor germanicus / teutonicus: 30% / 20% / 10% Chance
if not bUnitDone:
iWinnerST = pWinner.baseCombatStr()
iLoserST = pLoser.baseCombatStr()
# weak units without death calc (eg animal)
# enemy units should be equal
if iLoserST >= (iWinnerST/5)*4:
iPromoFuror1 = gc.getInfoTypeForString('PROMOTION_FUROR1')
iPromoFuror2 = gc.getInfoTypeForString('PROMOTION_FUROR2')
iPromoFuror3 = gc.getInfoTypeForString('PROMOTION_FUROR3')
if pWinner.isHasPromotion(iPromoFuror3): iChanceSuicide = 1
elif pWinner.isHasPromotion(iPromoFuror2): iChanceSuicide = 2
elif pWinner.isHasPromotion(iPromoFuror1): iChanceSuicide = 3
else: iChanceSuicide = 0
if iChanceSuicide > 0:
if iChanceSuicide > self.myRandom(10, None):
if gc.getPlayer(pWinner.getOwner()).isHuman():
CyInterface().addMessage(pWinner.getOwner(), True, 5, CyTranslator().getText("TXT_KEY_MESSAGE_UNIT_FUROR_SUICIDE",(pWinner.getName(),0)), None, 2, pWinner.getButton(), ColorTypes(7), pWinner.getX(), pWinner.getY(), True, True)
#pWinner.doCommand(CommandTypes.COMMAND_DELETE, 1, 1)
pWinner.kill(1,pWinner.getOwner())
bUnitDone = True
# ----------------
Deckt sich auch mit meiner Erfahrung, ich dachte bisher immer, das funktioniert nicht, weil ich immer nur Ger-Mannen gegen Krieger getestet hab (um sicher zu sein, dass ich gewinnen und der Suizid eintreten kann). Dann wird der Code natürlich nicht ausgeführt. Kämpfe ich aber gegen ähnlich starke Einheiten, funktioniert es einwandfrei.
Ist ja auch sinnvoll: Wenn mein Teutone gegen nen Krieger kämpft, wär das schon irgendwie doof, wenn der danach stirbt
Edit: Hab das jetzt auch in das Beförderungs-Konzept zur Auflistung neuer Beförderungen geschrieben, aber gibt es irgendeine Möglichkeit, dass auch in diese
reinzuschreiben? Die Konzepte liest ja eh kaum einer, und grad so eine Auflistung von Beförderungen überspringt man ja oft einfach...