def onGreatPersonBorn(self, argsList): 'Great Person Born' pUnit, iPlayer, pCity = argsList gp.onGreatPersonBorn(pUnit, iPlayer, pCity) vic.onGreatPersonBorn(iPlayer, pUnit) sta.onGreatPersonBorn(iPlayer)
def onGreatPersonBorn(self, argsList): 'Great Person Born' pUnit, iPlayer, pCity = argsList player = PyPlayer(iPlayer) iUnitType = pUnit.getUnitType() iUnitClassType = pUnit.getUnitClassType() sName = pUnit.getName() # Leoreth: replace graphics for female GP names if sName[0] == "f": pUnit.setName(sName[1:]) pUnit = utils.replace(pUnit, con.dFemaleGreatPeople[utils.getBaseUnit(iUnitType)]) # Leoreth: display notification if iPlayer not in [con.iIndependent, con.iIndependent2, con.iBarbarian]: pDisplayCity = pCity if pDisplayCity.isNone(): pDisplayCity = gc.getMap().findCity(pUnit.getX(), pUnit.getY(), PlayerTypes.NO_PLAYER, TeamTypes.NO_TEAM, False, False, TeamTypes.NO_TEAM, DirectionTypes.NO_DIRECTION, CyCity()) sCity = "%s (%s)" % (pDisplayCity.getName(), gc.getPlayer(pDisplayCity.getOwner()).getCivilizationShortDescription(0)) sMessage = localText.getText("TXT_KEY_MISC_GP_BORN", (pUnit.getName(), sCity)) sUnrevealedMessage = localText.getText("TXT_KEY_MISC_GP_BORN_SOMEWHERE", (pUnit.getName(),)) if pCity.isNone(): sMessage = localText.getText("TXT_KEY_MISC_GP_BORN_OUTSIDE", (pUnit.getName(), sCity)) for iLoopPlayer in range(con.iNumPlayers): if gc.getPlayer(iLoopPlayer).isAlive(): if pUnit.plot().isRevealed(gc.getPlayer(iLoopPlayer).getTeam(), False): CyInterface().addMessage(iLoopPlayer, False, con.iDuration, sMessage, "AS2D_UNIT_GREATPEOPLE", InterfaceMessageTypes.MESSAGE_TYPE_MAJOR_EVENT, pUnit.getButton(), ColorTypes(gc.getInfoTypeForString("COLOR_UNIT_TEXT")), pUnit.getX(), pUnit.getY(), True, True) else: CyInterface().addMessage(iLoopPlayer, False, con.iDuration, sUnrevealedMessage, "AS2D_UNIT_GREATPEOPLE", InterfaceMessageTypes.MESSAGE_TYPE_MAJOR_EVENT, "", ColorTypes(gc.getInfoTypeForString("COLOR_UNIT_TEXT")), -1, -1, False, False) vic.onGreatPersonBorn(iPlayer, pUnit) sta.onGreatPersonBorn(iPlayer)
def onGreatPersonBorn(self, argsList): 'Great Person Born' pUnit, iPlayer, pCity = argsList gp.onGreatPersonBorn(pUnit, iPlayer, pCity) vic.onGreatPersonBorn(iPlayer, pUnit) sta.onGreatPersonBorn(iPlayer) # Leoreth: Silver Tree Fountain effect if gc.getUnitInfo(pUnit.getUnitType()).getLeaderExperience( ) > 0 and gc.getPlayer(iPlayer).isHasBuildingEffect( iSilverTreeFountain): city = utils.getHighestEntry( utils.getCityList(iPlayer), lambda city: city.getGreatPeopleProgress()) if city and city.getGreatPeopleProgress() > 0: iGreatPerson = utils.getHighestEntry( range(iNumUnits), lambda iUnit: city.getGreatPeopleUnitProgress(iUnit)) if iGreatPerson >= 0: gc.getPlayer(iPlayer).createGreatPeople( iGreatPerson, False, False, city.getX(), city.getY()) # Leoreth: Nobel Prize effect if gc.getGame().getBuildingClassCreatedCount( gc.getBuildingInfo(iNobelPrize).getBuildingClassType()) > 0: if gc.getUnitInfo(pUnit.getUnitType()).getLeaderExperience( ) == 0 and gc.getUnitInfo( pUnit.getUnitType()).getEspionagePoints() == 0: for iLoopPlayer in range(iNumPlayers): if gc.getPlayer(iLoopPlayer).isHasBuildingEffect( iNobelPrize): if pUnit.getOwner() != iLoopPlayer and gc.getPlayer( pUnit.getOwner()).AI_getAttitude( iLoopPlayer ) >= AttitudeTypes.ATTITUDE_PLEASED: for pLoopCity in utils.getCityList(iLoopPlayer): if pLoopCity.isHasBuildingEffect(iNobelPrize): iGreatPersonType = pUnit.getUnitType() if iGreatPersonType in dFemaleGreatPeople.values( ): for iLoopGreatPerson in dFemaleGreatPeople: if iGreatPersonType == dFemaleGreatPeople[ iLoopGreatPerson]: iGreatPersonType = iLoopGreatPerson break iGreatPeoplePoints = max( 4, gc.getPlayer(iLoopPlayer). getGreatPeopleCreated()) pLoopCity.changeGreatPeopleProgress( iGreatPeoplePoints) pLoopCity.changeGreatPeopleUnitProgress( iGreatPersonType, iGreatPeoplePoints) CyInterface().setDirty( InterfaceDirtyBits. MiscButtons_DIRTY_BIT, True) CyInterface().addMessage( iLoopPlayer, False, iDuration, CyTranslator().getText( "TXT_KEY_BUILDING_NOBEL_PRIZE_EFFECT", (gc.getPlayer(pUnit.getOwner( )).getCivilizationAdjective(0), pUnit.getName(), pLoopCity.getName(), iGreatPeoplePoints)), "", 0, "", ColorTypes(iWhite), -1, -1, True, True) break break