FfH2 0.25 Bug Thread

Discussion in 'Civ4 - Fall from Heaven' started by Kael, Oct 4, 2007.

  1. 3141592

    3141592 Warlord

    Joined:
    Jan 24, 2007
    Messages:
    287
    The event that causes you to spend 10 gold, tie up one unit, or lose five food came up for my capital city and I could only choose the first choice, even though I wanted to lose five food instead. It then happened the next turn and I still couldn't choose any option besides the first one.
     
  2. MagisterCultuum

    MagisterCultuum Great Sage

    Joined:
    Feb 14, 2007
    Messages:
    16,396
    Location:
    Kael's head
    So, about how long will it be before patch b is released, and how big will it be?
    (I'm going home for a long weekend in a few hours, and we are still stuck with dial-up there)
     
  3. Dark Russell

    Dark Russell Octagonecologyst

    Joined:
    Dec 24, 2002
    Messages:
    344
    Location:
    Yuggoth
    Just a brief note: Goblins don't seem to upgrade to Wolf Riders on victory so I checked the Python (CvModEvents.py) and the "def onCombatResult(self, argsList):" entry is not in. Any idea when this will be available? (my ModMod is based around it...). Thanks!

    I tried copying the old python but with no luck.

    btw, I keep thinking that I'll get tired of FfH sooner or later and every time my attention drifts you pull it back with an update like this! Thank you!!!!!
     
  4. BlackArchon

    BlackArchon Warlord

    Joined:
    Oct 6, 2007
    Messages:
    250
    Location:
    Germany
    Hello Kael,

    there is a slight problem with the german version of FFH2 (I am in the german translation team with Kontrollator). It is in the german civilipedia text entry from melee unit 'Balor'. Kontrollator informed me just recently that this problem is with all units having elemental damage. Please see this two pictures, the first is the english original (see '+4 Unholy combat'), and the second one german version (see '+4 (-1 Verderbtheit) im Kampf'). 'Verderbtheit' means Unholy.

    There seems to be something wrong with elemental damage...
     
  5. Kael

    Kael Deity

    Joined:
    May 6, 2002
    Messages:
    17,401
    Location:
    Ohio
    Patch "b" is uploaded and linked in the first post. It will break save games and makes the following changes.

    1. Fixed broken graphics on the Pit Beast, Manticore, Sand Lion, Lifespark and Earth Elemental.
    2. Really fixed the Arena CtD.
    3. Fixed the Stable event error.
    4. Fixed the error on religious conversion.
    5. Fixed the Lifespark spell.
    6. Acolytes and Crusaders are now spawned on Order spread.
    7. Added a Debug option to disable Hidden Nationality (for OOS testing).
    8. Enslavement chance won't carry over between players/games.
    9. Trait application rewritten (causing all sorts of issues, traits carrying over between players/game, etc).
    10. Fixed the display of commerce modifiers on buildings.

    @BlackArchon: it should also fix the damage type weirdness you were seeing, though it needs translated)
     
  6. MagisterCultuum

    MagisterCultuum Great Sage

    Joined:
    Feb 14, 2007
    Messages:
    16,396
    Location:
    Kael's head
    I had assumed that this stuff had been moved out of python into C++ for performance. This upset me too, because I couldn't figure out how to make one of my favorite minor modifications: make the barbarians lose the traits when Orthus dies just like the Infernal lose their on Hyborem's death or the Mercurians on Basium's. Of course, I first give the barbs some traits to lose, or this would be meaningless. I want Orthus's death to really mean something, so I was thinking Aggressive, Charismatic, Magic Resistant, Protective, Raiders, and Summoning. A raging Barbs/Labruscum game would them be suicide, especially if AC events kick in before Orthus perishes. (Hm, I wonder if I could make the barbs not gain the traits until Orthus spawns.)
     
  7. Kael

    Kael Deity

    Joined:
    May 6, 2002
    Messages:
    17,401
    Location:
    Ohio
    :confused: FfH doesn't have any functions in CombatResult but that doesn't keep anyone else from creating some.
     
  8. vivictius

    vivictius Prince

    Joined:
    Jan 16, 2004
    Messages:
    425
    I've had that one in normal BTS, so its a bug there, not just here. Hopefully it can be fixed. There is a similar one (in BTS)with loosing population or structures and it never lets me loose the population.
     
  9. arcaner

    arcaner Chieftain

    Joined:
    Jan 30, 2007
    Messages:
    71
    My first game on .25b and the following python error pops up 8 times on every turn end.

    File "CvGameInterface", line 146, in cannotTrain
    File "CvGameUtils", line, 211, in cannotTrain
    RuntimeError: unidentifiable C++ exception

    Save game attached

    Sigh. Back to WoW.

    WinXP SP2
    Standard Install Directory on C:
    No Warlords
    Retail CD
     

    Attached Files:

  10. beorn

    beorn Prince

    Joined:
    Sep 12, 2001
    Messages:
    360
    Location:
    Albion, NY
    The game ran fine for me under patch a, but under patch b, I get a a total computer freeze up every time I try to begin a new game, when it is initializing.
     
  11. Dark Russell

    Dark Russell Octagonecologyst

    Joined:
    Dec 24, 2002
    Messages:
    344
    Location:
    Yuggoth
    Here is the code from the old 0.22h "CvEventManager.py" file:
    Spoiler :
    def onCombatResult(self, argsList):
    'Combat Result'
    pWinner,pLoser = argsList
    playerX = PyPlayer(pWinner.getOwner())
    unitX = PyInfo.UnitInfo(pWinner.getUnitType())
    playerY = PyPlayer(pLoser.getOwner())
    unitY = PyInfo.UnitInfo(pLoser.getUnitType())
    pPlayer = gc.getPlayer(pWinner.getOwner())
    bUncaptured = True

    if pPlayer.isHuman():
    if pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_ACHERON'):
    Trophies.addTrophy("TROPHY_DEFEATED_ACHERON")
    if pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_BASIUM'):
    Trophies.addTrophy("TROPHY_DEFEATED_BASIUM")
    if pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_HYBOREM'):
    Trophies.addTrophy("TROPHY_DEFEATED_HYBOREM")
    if pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_ORTHUS'):
    Trophies.addTrophy("TROPHY_DEFEATED_ORTHUS")

    if pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_LOKI'):
    pPlot = cf.FFHFindClearPlot(pLoser, -1)
    if pPlot != -1:
    pPlayer2 = gc.getPlayer(pLoser.getOwner())
    newUnit = pPlayer2.initUnit(gc.getInfoTypeForString('UNIT_LOKI'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI)
    newUnit.setDamage(50, -1)
    CyInterface().addMessage(pWinner.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_LOKI_RUNS",()),'AS2D_RUN_AWAY',1,'Art/Interface/Buttons/Units/Loki.dds',ColorTypes(7),pLoser.getX(),pLoser.getY(),True,True)
    CyInterface().addMessage(pLoser.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_LOKI_RUNS",()),'AS2D_RUN_AWAY',1,'Art/Interface/Buttons/Units/Loki.dds',ColorTypes(7),pLoser.getX(),pLoser.getY(),True,True)
    bUncaptured = False

    if pWinner.isNoCapture():
    bUncaptured = False

    if pLoser.getCaptureUnitType(pPlayer.getCivilizationType()) != -1:
    bUncaptured = False

    if (pLoser.isAlive() and pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GIANT_SPIDER')):
    bUncaptured = False
    newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_BABY_SPIDER'), pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
    newUnit.setMadeAttack(True)
    newUnit.finishMoves()
    newUnit.setDamage(50, -1)
    CyInterface().addMessage(pWinner.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_BABY_SPIDER",()),'AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/GiantSpider.dds',ColorTypes(8),pWinner.getX(),pWinner.getY(),True,True)
    if pPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
    newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_BABY_SPIDER'), pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
    newUnit.setMadeAttack(True)
    newUnit.finishMoves()

    if (pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LABOR')) == gc.getInfoTypeForString('CIVIC_SLAVERY') or pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_TASKMASTER'))):
    if (bUncaptured and pLoser.isAlive() and pLoser.getUnitCombatType() != gc.getInfoTypeForString('UNITCOMBAT_ANIMAL') and pWinner.getSpecialUnitType() != gc.getInfoTypeForString('SPECIALUNIT_SPELL')):
    if CyGame().getSorenRandNum(100, "Bob") <= gc.getDefineINT('SLAVERY_CHANCE'):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'Slave captured.','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Slave.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)
    unitType = gc.getInfoTypeForString('UNIT_SLAVE')
    if pLoser.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DWARF')):
    unitType = gc.getInfoTypeForString('UNIT_SLAVE_DWARF')
    if pLoser.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ELF')):
    unitType = gc.getInfoTypeForString('UNIT_SLAVE_ELF')
    if pLoser.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ORC')):
    unitType = gc.getInfoTypeForString('UNIT_SLAVE_ORC')
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, unitType, False)

    if (pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_COMMAND')) and bUncaptured):
    if pLoser.isAlive():
    if CyGame().getSorenRandNum(100, "Bob") <= 50:
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, pLoser.getUnitType(), True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN') and bUncaptured):
    if (pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF') or pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF_PACK')):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_WORG_RIDER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_ANIMAL')) and bUncaptured):
    if pLoser.isAnimal() and pLoser.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_ANIMAL'):
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, pLoser.getUnitType(), True)

    if (pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_ORC')) and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_ORC_WARRIOR')and bUncaptured):
    if CyGame().getSorenRandNum(100, "Bob") <= gc.getDefineINT('SLAVERY_CHANCE'):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'Goblins liberated.','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Goblin.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)
    unitType = gc.getInfoTypeForString('UNIT_GOBLIN_RENEGADE')
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, unitType, False)

    if (pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_ORC')) and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN')and bUncaptured):
    if CyGame().getSorenRandNum(100, "Bob") <= gc.getDefineINT('SLAVERY_CHANCE'):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'Goblins liberated.','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Goblin.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)
    unitType = gc.getInfoTypeForString('UNIT_GOBLIN_RENEGADE')
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, unitType, False)

    if (pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SUBDUE_GIANT')) and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_HILL_GIANT')and bUncaptured):
    if CyGame().getSorenRandNum(100, "Bob") <= gc.getDefineINT('SLAVERY_CHANCE'):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'Hill Giant pursuaded.','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Goblin.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)
    unitType = gc.getInfoTypeForString('UNIT_HILL_GIANT')
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, unitType, False)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_SCOUT') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_GOBLIN_TRACKER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_SCOUT') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF_PACK') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_WOLF_RIDER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_TRACKER') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_WOLFMASTER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_TRACKER') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF_PACK') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_WOLFMASTER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_SCOUT') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_BABY_SPIDER') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_GOBLIN_TRAPPER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_HUNTER') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_HUNTMASTER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_HUNTER') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_WOLF_PACK') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_HUNTMASTER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_HUNTER') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_BABY_SPIDER') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_SPIDERMASTER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_GOBLIN_HUNTER') and pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_GIANT_SPIDER') and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pWinner, gc.getInfoTypeForString('UNIT_SPIDERMASTER'), True)
    pWinner.setDamage(100, True)

    if (pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_WEREWOLF')) and pLoser.isAlive() and pLoser.getUnitCombatType() != gc.getInfoTypeForString('UNITCOMBAT_ANIMAL') and pLoser.getUnitCombatType() != gc.getInfoTypeForString('UNITCOMBAT_BEAST') and bUncaptured):
    iNumWW = pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_RAVENOUS_WEREWOLF')) + pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_WEREWOLF')) + pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_GREATER_WEREWOLF'))
    iRand = CyGame().getSorenRandNum(100, "Bob")
    if (iRand <= gc.getDefineINT('WEREWOLF_BASE_CHANCE') - (gc.getDefineINT('WEREWOLF_MINUS_PER_WEREWOLF') * iNumWW)):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'Lycanthropy has spread.','AS2D_WOLF',1,'Art/Interface/Buttons/Units/Ravenouswerewolf.dds',ColorTypes(8),pWinner.getX(),pWinner.getY(),True,True)
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, gc.getInfoTypeForString('UNIT_RAVENOUS_WEREWOLF'), False)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_RAVENOUS_WEREWOLF') and pLoser.isAlive()):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'A Werewolf has become stronger.','AS2D_WOLF',1,'Art/Interface/Buttons/Units/Werewolf.dds',ColorTypes(8),pWinner.getX(),pWinner.getY(),True,True)
    newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_WEREWOLF'), pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
    newUnit.finishMoves()
    newUnit.setExperience(pWinner.getExperience(), -1)
    newUnit.setLevel(pWinner.getLevel())
    newUnit.setDamage(pWinner.getDamage(), False)
    for iCount in range(gc.getNumPromotionInfos()):
    if (pWinner.isHasPromotion(iCount)):
    newUnit.setHasPromotion(iCount, True)
    newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENRAGED'), False)
    pWinner.setDamage(100, True)

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_WEREWOLF') and pLoser.isAlive()):
    iRand = CyGame().getSorenRandNum(100, "Bob")
    if (iRand <= 5):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'A Werewolf has become stronger.','AS2D_WOLF',1,'Art/Interface/Buttons/Units/Greaterwerewolf.dds',ColorTypes(8),pWinner.getX(),pWinner.getY(),True,True)
    newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_GREATER_WEREWOLF'), pWinner.getX(), pWinner.getY(), UnitAITypes.NO_UNITAI)
    newUnit.finishMoves()
    newUnit.setExperience(pWinner.getExperience(), -1)
    newUnit.setLevel(pWinner.getLevel())
    newUnit.setDamage(pWinner.getDamage(), False)
    for iCount in range(gc.getNumPromotionInfos()):
    if (pWinner.isHasPromotion(iCount)):
    newUnit.setHasPromotion(iCount, True)
    pWinner.setDamage(100, True)

    if (pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_BOARDING')) and pLoser.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_NAVAL') and bUncaptured):
    CyInterface().addMessage(pWinner.getOwner(),True,25,'Ship Captured.','AS2D_GOODY_GOLD',1,'Art/Interface/Buttons/Promotions/Boarding.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, pLoser.getUnitType(), True)

    if (pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_BASIUM') or pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_HYBOREM')):
    if pLoser.isHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMORTAL')) == False:
    if pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_BASIUM'):
    CyInterface().addMessage(pLoser.getOwner(),True,25,'Basium has Died!','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Basium.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)
    if pLoser.getUnitType() == gc.getInfoTypeForString('UNIT_HYBOREM'):
    CyInterface().addMessage(pLoser.getOwner(),True,25,'Hyborem has Died!','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Hyborem.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)
    p2Player = gc.getPlayer(pLoser.getOwner())
    for iTrait in range(gc.getNumTraitInfos()):
    if iTrait != gc.getInfoTypeForString('TRAIT_FALLOW'):
    CyMessageControl().sendApplyEvent(5012, EventContextTypes.EVENTCONTEXT_ALL, (pLoser.getOwner(),iTrait,False))

    if (pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_MAGNADINE') and bUncaptured):
    if (pLoser.isAlive() and pLoser.getOwner() == gc.getBARBARIAN_PLAYER() and pLoser.getUnitCombatType() != gc.getInfoTypeForString('UNITCOMBAT_ANIMAL')):
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, pLoser.getUnitType(), True)

    if pWinner.getUnitType() == gc.getInfoTypeForString('UNIT_ARS'):
    if (pLoser.isAlive() and bUncaptured):
    bUncaptured = False
    cf.FFHConvert(pWinner, pLoser, gc.getInfoTypeForString('UNIT_WRAITH'), False)

    if (pLoser.getUnitClassType() == gc.getInfoTypeForString('UNITCLASS_TAR_DEMON') and bUncaptured):
    bUncaptured = False
    iStr = pLoser.baseCombatStr(false) - 2
    if iStr > 1:
    pPlayer2 = gc.getPlayer(pLoser.getOwner())
    newUnit = pPlayer2.initUnit(gc.getInfoTypeForString('UNIT_TAR_DEMON'), pLoser.getX(), pLoser.getY(), UnitAITypes.NO_UNITAI)
    newUnit.setDamage(50, -1)
    newUnit.setMadeAttack(True)
    newUnit.changeExtraCombatDefense(iStr - newUnit.baseCombatStr(false))
    newUnit = pPlayer2.initUnit(gc.getInfoTypeForString('UNIT_TAR_DEMON'), pLoser.getX(), pLoser.getY(), UnitAITypes.NO_UNITAI)
    newUnit.changeExtraCombatDefense(iStr - newUnit.baseCombatStr(false))
    newUnit.setDamage(50, -1)
    newUnit.setMadeAttack(True)
    CyInterface().addMessage(pWinner.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_TAR_DEMON_SPLIT",()),'AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Tar Demon.dds',ColorTypes(7),pLoser.getX(),pLoser.getY(),True,True)
    CyInterface().addMessage(pLoser.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_TAR_DEMON_SPLIT",()),'AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/Units/Tar Demon.dds',ColorTypes(8),pLoser.getX(),pLoser.getY(),True,True)

    if pLoser.isHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMORTAL')):
    if bUncaptured == False:
    pLoser.setHasPromotion(gc.getInfoTypeForString('PROMOTION_IMMORTAL'), False)

    if (not self.__LOG_COMBAT):
    return
    if playerX and playerX and unitX and playerY:
    CvUtil.pyPrint('Player %d Civilization %s Unit %s has defeated Player %d Civilization %s Unit %s'
    %(playerX.getID(), playerX.getCivilizationName(), unitX.getDescription(),
    playerY.getID(), playerY.getCivilizationName(), unitY.getDescription()))



    I am not sure how to re-add this? or if I need to? or what?
     
  12. JDexter

    JDexter Prince

    Joined:
    Dec 18, 2003
    Messages:
    565
    Gender:
    Male
    Location:
    Germany
    I attacked Hyborem in his capital with Sphener. This fight just ended with Hyborem taking about 5 hits and Sphener 2, but there was no message that Hyborem retreated (he doesn't have the withdrawal promotion AND he couldn't really since he stayed in the same tile). Still both units are alive and no clue why it happened.

    Conquering the city in the next turn (with Sphener) it remained of Ashen Veil religion, so the Evangelist promotion either doesn't work or can't replace AV with the Order.
     
  13. Mailbox

    Mailbox King

    Joined:
    Oct 6, 2007
    Messages:
    876
    When playing as Perpentach, when I'm given the Financial trait via Insane I don't get the +1 :commerce: on squares with 2 :commerce:. BtS 3.13 FFH2 .25b
     
  14. Kael

    Kael Deity

    Joined:
    May 6, 2002
    Messages:
    17,401
    Location:
    Ohio
    Patch "c" is linked in the first post. It fixes the cannotTrain error.
     
  15. Falc

    Falc Warlord

    Joined:
    Oct 6, 2007
    Messages:
    292
    Starting a game with Advanced Start doesn't give me the option to regenerate the map.
     
  16. Dora190

    Dora190 Warlord

    Joined:
    Oct 17, 2006
    Messages:
    132
    First Vampires
    A) They gain experience much like a hero now, without having to feast (somehow I don't this is intended)
    B) The text for the feed (on the vampire) button is missing
    C) When I rebase a bird I get to patrol the same turn
    D) Golden age timer is gone
    E) Harvesting Fruit of Ygradsill is impossible


    Aside from that very nice :)
     
  17. Airwreck

    Airwreck Chieftain

    Joined:
    Dec 23, 2005
    Messages:
    57
    Additions/Removals:

    15. Removed the ability to Regenerate maps.
     
  18. Pelaka

    Pelaka Chieftain

    Joined:
    Aug 29, 2006
    Messages:
    43
    I've been playing a game with Hippus/Tasuke that is just weird. I'm playing with prince, epic speed, aggressive AI, raging barbs, more events, more unique features, more animals and barb cities from the beginning. Things that I've noticed so far:

    1. I didn't notice any impact due to more animals.

    2. I've been at war with barbs since the beginning, but as best I can tell, none of the civs are at war with the barbs.

    3. I spent the first 200-300 turns bottled up in my section of the continent because the barb dragon and the lich blocked a choke point. The lich would send 2-3 earth elementals and/or wraiths at any of my units that came near. Most annoyingly, he didn't seem to automatically detect any of my units that came too close.

    4. I finally got a good force of horsemen and chariots and planned to rush past the lich and dragon and try to make progress in the rest of the continent (this was around turn 300). I got past the lich and noticed the dragon was gone, and his city was just guarded by 2 barb warriors. As his city was just outside wraith range I took it. For this I got the dragons horde, yggrdrisil and a size 14 city.

    5. All my chariots immediately upgraded to mithrial (no building requirement). This seems really unbalanced, but given the wraiths I wasn't too upset about it.

    6. Around 350 I founded runes... this was the first religion founded in the game. Trees and Oct didn't get founded until turn 500 or so.

    7. So, not with my strength 9 chariotts I rolled the shediem civ. About 10 cities all with populations between 9 and 17 and fully developed contry sides... each city guarded by 1-2 warriors. No archers, no axemen, nothing. This is around turn 400 to 450. Also weird, almost all cities were founded right on top of resources.

    8. Its now around turn 500 (I've spent the last 50 turns or so digesting the shediem cities and trying to restore my economey. I'm getting ready to try to rush the lich with a mass of str 9 chariots and finally finish the bastard. However...

    9. Lunan has founded a city right next to him (being at peace with barbs) so to get to him I have to go through Lunan. Also, right next by is another barb city... guarded by Orthus. A str 11 highly promoted Orthus (seems he got a mithrial upgrade from the dragon).

    10. I'm now finally starting to see advanced barb units (lizardmen, chariots, warg riders). However, the other AI civs still seem to be stuck with scouts and warriors only.

    I'll finish off the barbs tonight because I'm so annoyed with them, but after that I won't bother to finish... the game is just too messed up.

    Pel
     
  19. Zifnab

    Zifnab Warlord

    Joined:
    Jul 26, 2006
    Messages:
    119
    Location:
    South Dakota
    10. Fixed the display of commerce modifiers on buildings.

    With patch b, the obelisk's mouse-over description in the build list now only says can turn 1 citizen into a bard. It makes no mention of +3 culture or -1 gold.

    edit:

    Playing with perpentech on warlords, huge, normal speed, permanent alliances, more events, bonuses, animals, and advanced start with win xp
     
  20. Kael

    Kael Deity

    Joined:
    May 6, 2002
    Messages:
    17,401
    Location:
    Ohio
    It looks correct in my version, maybe you need to clear cache?
     

Share This Page