def onGreatPersonBorn(self, argsList):
		'Great Person Born'
		pUnit, iPlayer, pCity = argsList
		
		gp.onGreatPersonBorn(pUnit, iPlayer, pCity)
		vic.onGreatPersonBorn(iPlayer, pUnit)
		sta.onGreatPersonBorn(iPlayer)
示例#2
0
    def onGreatPersonBorn(self, argsList):
        'Great Person Born'
        pUnit, iPlayer, pCity = argsList

        gp.onGreatPersonBorn(pUnit, iPlayer, pCity)
        vic.onGreatPersonBorn(iPlayer, pUnit)
        sta.onGreatPersonBorn(iPlayer)
示例#3
0
	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)
示例#4
0
    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