1 question about planar gates

Discussion in 'Civ4 - Fall from Heaven' started by xalien, Oct 1, 2009.

  1. xalien

    xalien Prince

    Joined:
    Jul 18, 2005
    Messages:
    512
    I know that there's a cap on maximum number of units you can get per gate, but what about the buildings that enable those units? E.g. if I have 5 gates but only 1 of them has mage guild, will I get less moebius witches than if I had 5 MG's?
     
  2. Emptiness

    Emptiness []

    Joined:
    Jan 7, 2009
    Messages:
    1,922
    Yes. The number of Mobius Witches you can have is the number of Mage Guilds you have in cities that also have Planar Gates, multiplied by a factor that increases with the AC. This is true of all the PG-enabling buildings as well.
     
  3. MagisterCultuum

    MagisterCultuum Great Sage

    Joined:
    Feb 14, 2007
    Messages:
    16,428
    Location:
    Kael's head
    Code:
    		if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_PLANAR_GATE')) > 0:
    			iMax = 1
    			iMult = 1
    			if CyGame().getGlobalCounter() >= 50:
    				iMax = 2
    				iMult = 1.5
    			if CyGame().getGlobalCounter() >= 75:
    				iMax = 3
    				iMult = 2
    			if CyGame().getGlobalCounter() == 100:
    				iMax = 4
    				iMult = 2.5
    			if CyGame().getSorenRandNum(10000, "Planar Gate") <= gc.getDefineINT('PLANAR_GATE_CHANCE') * iMult:
    				listUnits = []
    				iMax = iMax * pPlayer.countNumBuildings(gc.getInfoTypeForString('BUILDING_PLANAR_GATE'))
    				if pCity.getNumBuilding(gc.getInfoTypeForString('BUILDING_GAMBLING_HOUSE')) > 0:
    					if pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_REVELERS')) < iMax:
    						listUnits.append(gc.getInfoTypeForString('UNIT_REVELERS'))
    				if pCity.getNumBuilding(gc.getInfoTypeForString('BUILDING_MAGE_GUILD')) > 0:
    					if pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_MOBIUS_WITCH')) < iMax:
    						listUnits.append(gc.getInfoTypeForString('UNIT_MOBIUS_WITCH'))
    				if pCity.getNumBuilding(gc.getInfoTypeForString('BUILDING_CARNIVAL')) > 0:
    					if pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_CHAOS_MARAUDER')) < iMax:
    						listUnits.append(gc.getInfoTypeForString('UNIT_CHAOS_MARAUDER'))
    				if pCity.getNumBuilding(gc.getInfoTypeForString('BUILDING_GROVE')) > 0:
    					if pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_MANTICORE')) < iMax:
    						listUnits.append(gc.getInfoTypeForString('UNIT_MANTICORE'))
    				if pCity.getNumBuilding(gc.getInfoTypeForString('BUILDING_PUBLIC_BATHS')) > 0:
    					if pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_SUCCUBUS')) < iMax:
    						listUnits.append(gc.getInfoTypeForString('UNIT_SUCCUBUS'))
    				if pCity.getNumBuilding(gc.getInfoTypeForString('BUILDING_OBSIDIAN_GATE')) > 0:
    					if pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_MINOTAUR')) < iMax:
    						listUnits.append(gc.getInfoTypeForString('UNIT_MINOTAUR'))
    				if pCity.getNumBuilding(gc.getInfoTypeForString('BUILDING_TEMPLE_OF_THE_VEIL')) > 0:
    					if pPlayer.getUnitClassCount(gc.getInfoTypeForString('UNITCLASS_TAR_DEMON')) < iMax:
    						listUnits.append(gc.getInfoTypeForString('UNIT_TAR_DEMON'))
    				if len(listUnits) > 0:
    					iUnit = listUnits[CyGame().getSorenRandNum(len(listUnits), "Planar Gate")]
    					newUnit = pPlayer.initUnit(iUnit, pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
    					CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_PLANAR_GATE",()),'AS2D_DISCOVERBONUS',1,gc.getUnitInfo(newUnit.getUnitType()).getButton(),ColorTypes(8),pCity.getX(),pCity.getY(),True,True)
    					if iUnit == gc.getInfoTypeForString('UNIT_MOBIUS_WITCH'):
    						promotions = [ 'PROMOTION_AIR1','PROMOTION_BODY1','PROMOTION_CHAOS1','PROMOTION_DEATH1','PROMOTION_EARTH1','PROMOTION_ENCHANTMENT1','PROMOTION_ENTROPY1','PROMOTION_FIRE1','PROMOTION_LAW1','PROMOTION_LIFE1','PROMOTION_MIND1','PROMOTION_NATURE1','PROMOTION_SHADOW1','PROMOTION_SPIRIT1','PROMOTION_SUN1','PROMOTION_WATER1' ]
    						newUnit.setLevel(4)
    						newUnit.setExperience(14, -1)
    						for i in promotions:
    							if CyGame().getSorenRandNum(10, "Bob") == 1:
    								newUnit.setHasPromotion(gc.getInfoTypeForString(i), True)
    
     
  4. Monkeyfinger

    Monkeyfinger Deity

    Joined:
    Oct 24, 2006
    Messages:
    2,002
  5. Emptiness

    Emptiness []

    Joined:
    Jan 7, 2009
    Messages:
    1,922
    Oh, that's right. odalrick had already explained that to me, and I'd subsequently forgotten. Thanks for the correction.
     

Share This Page