• 📚 Admin Project Update: Added a new feature to PictureBooks.io called Story Worlds. It lets your child become the hero of beloved classic tales! Choose from worlds like Alice in Wonderland, Wizard of Oz, Peter Pan, The Jungle Book, Treasure Island, Arabian Nights, or Robin Hood. Give it a try and let me know what you think!
Terraformer for Final Frontier Plus

Adding my planet Mod to Final Frontier Plus 2.3

@Aradziem Re experience being made into floating point: instead of having experience as floating point, I recommend doing it the way Ashes of Erebus did, which is keeping it technically as int, but adding a fixed two-digit decimal setup for higher granularity. This avoids the endless issues Float makes, while the two-digit decimal granularity still allows for the aim of letting squadrons and withdrawn units still earn experience at the reduced rate. It'd also allow for the UI to be tweaked to accommodate this new decimality.

Something to keep in mind.
 
Latest Version uploaded
Factories and Manufacturing yards now do +2 Hammers +5% instead of just +15% so cities don't end up with +200% production or more
Units with advanced shields upgrade can now enter nebulae
Buildings show more prerequisites in civopedia
 
Latest Version Uploaded
Many buildings updated with secondary effects. Buildings that required commerce to maintain now cost credits instead. To balance it out some buildings now provide credits. (Solar Panels on grays and martians, ore processing facilities on class G)
Some planet classes now have extra secondary effects

Ice(P) - Science
Lava(G) - Credits
Desert(H) - Food
Martian(K) - Espionage
 
Latest Version uploaded
Quite a few changes
Wonders now have individual buttons.
wonderbuttons.jpg

Effects more consistent between cvsolarsystem, cvmaininterface and planetinfoscreen
4 more gas giants added (99 different worlds now) see below for starting values. It is now more difficult to use hostile worlds until you have the required tech to build their buildings
here are the names and values
Python:
#
# PLANETMAKER
aszPlanetTypeNames=
       [    "GRAY1_PLANET",
            "GRAY2_PLANET",
            "GRAY3_PLANET",
            "GRAY4_PLANET",

            "GRAY_PLANET",
            "GRAY5_PLANET",
            "GRAY6_PLANET",
            "GRAY7_PLANET",
            "GRAY8_PLANET",

            "GRAY9_PLANET",
            "GRAY10_PLANET",
            "GRAY11_PLANET",
            "GRAY12_PLANET",

            "GRAY13_PLANET",
            "GRAY14_PLANET",
            "GRAY15_PLANET",
            "GRAY16_PLANET",

            "JOVIAN1_PLANET",
            "JOVIAN2_PLANET",

            "SATURN1_PLANET",
            "SATURN2_PLANET",

            "URANIAN1_PLANET",
            "URANIAN2_PLANET",

            "NEPTUNE1_PLANET",
            "NEPTUNE2_PLANET",

                "BROWN1_PLANET",
                "BROWN2_PLANET",
                "JOVIAN3_PLANET",
                "URANIAN3_PLANET",

                "BROWN3_PLANET",
                "BROWN4_PLANET",
                "SATURN3_PLANET",
                "NEPTUNE3_PLANET",
          
                    "WHITE_PLANET",
                    "ICE1_PLANET",
                    "ICE2_PLANET",
                    "URANIAN4_PLANET",

                    "ICE3_PLANET",
                    "ICE4_PLANET",
                    "ICE5_PLANET",
                    "BLUE_PLANET",

                    "ICE6_PLANET",
                    "ICE7_PLANET",
                    "ICE8_PLANET",
                    "SATURN4_PLANET",

                    "ICE9_PLANET",
                    "ICE10_PLANET",

                        "RED_PLANET",
                        "LAVA1_PLANET",
                        "LAVA2_PLANET",
                        "NEPTUNE4_PLANET",

                        "LAVA3_PLANET",
                        "LAVA4_PLANET",
                        "JOVIAN4_PLANET",

                            "TOXIC1_PLANET",
                            "TOXIC2_PLANET",
                            "URANIAN6_PLANET",

                            "TOXIC3_PLANET",
                            "TOXIC4_PLANET",
                            "YELLOW_PLANET",

                                "TOXIC5_PLANET",
                                "TOXIC6_PLANET",

                                "TOXIC7_PLANET",
                                "TOXIC8_PLANET",
                                "JOVIAN5_PLANET",

                                    "DESERT1_PLANET",
                                    "DESERT2_PLANET",
                                    "SATURN5_PLANET",

                                    "DESERT3_PLANET",
                                    "DESERT4_PLANET",
                                    "URANIAN5_PLANET",
                                    "NEPTUNE5_PLANET",

                                    "DESERT5_PLANET",
                                    "DESERT6_PLANET",

                                        "ORANGE_PLANET",
                                        "NEPTUNE6_PLANET",
                                        "SATURN6_PLANET",

                                        "MARS1_PLANET",
                                        "MARS2_PLANET",
                                        "JOVIAN6_PLANET",

                                        "MARS3_PLANET",
                                        "MARS4_PLANET",

                                            "SWAMP1_PLANET",
                                            "SWAMP2_PLANET",
                                            "SWAMP3_PLANET",
                                            "SWAMP4_PLANET",
      
                                            "GREEN_PLANET",
                                            "HOME1_PLANET",
                                            "HOME2_PLANET",
                                            "HOME3_PLANET",
                                            "HOME4_PLANET",

                                            "GIA1_PLANET",
                                            "GIA2_PLANET",
                                            "GIA3_PLANET",
                                            "GIA4_PLANET"

                                ]


def getPlanetIndexFromTag(szTag):
    iIndex = 0
    for szTagLoop in aszPlanetTypeNames:
        if (szTag == szTagLoop):
            return iIndex
        iIndex += 1

# PLANETMAKER
aaiPlanetYields =
           [    [0,1,3],
                [0,2,2],
                [1,1,2],
                [2,1,1],

                [0,3,2],
                [0,1,4],
                [0,2,3],
                [1,1,3],
                [2,2,1],

                [0,1,5],
                [0,3,3],
                [1,1,4],
                [2,2,2],

                [0,2,4],
                [0,4,2],
                [1,2,3],
                [2,3,1],

                [0,3,2],
                [0,2,3],

                [0,1,4],
                [1,1,3],

                [1,2,2],
                [2,1,2],

                [0,0,5],
                [1,3,1],

                    [2,2,3],
                    [2,3,2],
                    [2,2,2],
                    [2,3,1],

                    [3,2,2],
                    [3,3,1],
                    [3,1,2],
                    [3,2,1],

                        [2,-1,6],
                        [2,-2,7],
                        [2,0,5],
                        [2,-1,5],

                        [3,-2,6],
                        [3,-1,5],
                        [3,0,4],
                        [3,1,2],

                        [4,0,3],
                        [4,1,2],
                        [4,2,1],
                        [4,0,2],

                        [5,0,2],
                        [5,1,1],

                            [-2,6,1],
                            [-2,5,2],
                            [-1,5,1],
                            [-1,4,1],

                            [0,4,1],
                            [1,3,1],
                            [0,3,1],

                                [-3,-2,9],
                                [-3,-1,8],
                                [-2,-2,7],

                                [-2,-1,7],
                                [-2,0,6],
                                [-1,-1,5],

                                    [-2,2,4],
                                    [-2,3,3],

                                    [-1,2,3],
                                    [-1,3,2],
                                    [-1,2,2],

                                        [3,1,4],
                                        [3,2,3],
                                        [3,2,2],

                                        [4,1,3],
                                        [4,2,2],
                                        [4,1,2],
                                        [4,2,1],

                                        [5,1,3],
                                        [5,2,2],

                                            [2,2,4],
                                            [2,2,3],
                                            [2,3,2],

                                            [3,1,4],
                                            [3,2,3],
                                            [3,2,2],

                                            [4,1,3],
                                            [4,2,2],

                                                [9,0,2],
                                                [9,1,1],
                                                [10,0,1],
                                                [10,1,0],

                                                    [5,2,2],
                                                    [6,0,3],
                                                    [5,1,3],
                                                    [6,1,2],
                                                    [6,2,1],

                                                        [7,1,2],
                                                        [7,2,1],
                                                        [8,1,1],
                                                        [8,0,2]
                            ]


                            ]

3 temporary buildings added Colonial Farm, Colonial Mine, Colonial Solar, removed from system on cultural expansion, each built by colony ship on settling.
Food values have been recalculated. Citizens now require 5 food to sustain. Most starsystems on settling now have 3 excess food at the start for growth, otherwise the forge has a significant disadvantage with its -1 food per star system. Ideally I would prefer to remove this and just make their growth bar 20% longer.
Python:
    # homewords on size 1(tiny) get free hab
    if (iPlanetSize == 1 or iPlanetSize > 4):
        pPlanet.setHasBuilding(iHabitation, true)
        pCity.setNumRealBuilding(iHabitation, pCity.getNumRealBuilding(iHabitation) + 1)

    # PLANETMAKER pure M classes and Mo get (bank or Mine) silo and colonial building
    # PLANETMAKER Green and home 2 start with 5 food, so get colonial farm and silo so thier surplus is +3
    # PLANETMAKER Home systems start with a best planet with 4 food minimum and 7 maximum
    # PLANETMAKER Non home systems start with a best planet with 2 minimum and 4 maximum
    if (iPlanetType == iPlanetTypeGreen):
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
        pPlanet.setHasBuilding(iSILOMGS, true)
        pCity.setNumRealBuilding(iSILOMGS, pCity.getNumRealBuilding(iSILOMGS) + 1)
    if (iPlanetType == iPlanetTypeHome1):
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iMiningFacility, true)
        pCity.setNumRealBuilding(iMiningFacility, pCity.getNumRealBuilding(iMiningFacility) + 1)
        pPlanet.setHasBuilding(iSILOMGS, true)
        pCity.setNumRealBuilding(iSILOMGS, pCity.getNumRealBuilding(iSILOMGS) + 1)
    if (iPlanetType == iPlanetTypeHome2):
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iSILOMGS, true)
        pCity.setNumRealBuilding(iSILOMGS, pCity.getNumRealBuilding(iSILOMGS) + 1)
    if (iPlanetType == iPlanetTypeHome3):
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
        pPlanet.setHasBuilding(iSILOMGS, true)
        pCity.setNumRealBuilding(iSILOMGS, pCity.getNumRealBuilding(iSILOMGS) + 1)
    if (iPlanetType == iPlanetTypeHome4):
        pPlanet.setHasBuilding(iCOLONIALSOLAR, true)
        pCity.setNumRealBuilding(iCOLONIALSOLAR, pCity.getNumRealBuilding(iCOLONIALSOLAR) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
        pPlanet.setHasBuilding(iSILOMGS, true)
        pCity.setNumRealBuilding(iSILOMGS, pCity.getNumRealBuilding(iSILOMGS) + 1)

    # PLANETMAKER Mg classes get bank or university and silo
    # PLANETMAKER Gia1 and 2 start with 7 food, so get a silo.
    if (iPlanetType == iPlanetTypeGia1):
        pPlanet.setHasBuilding(iUNIVERSITY, true)
        pCity.setNumRealBuilding(iUNIVERSITY, pCity.getNumRealBuilding(iUNIVERSITY) + 1)
        pPlanet.setHasBuilding(iSILOMGS, true)
        pCity.setNumRealBuilding(iSILOMGS, pCity.getNumRealBuilding(iSILOMGS) + 1)
    if (iPlanetType == iPlanetTypeGia2):
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
        pPlanet.setHasBuilding(iSILOMGS, true)
        pCity.setNumRealBuilding(iSILOMGS, pCity.getNumRealBuilding(iSILOMGS) + 1)
    if (iPlanetType == iPlanetTypeGia3):
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
        pPlanet.setHasBuilding(iUNIVERSITY, true)
        pCity.setNumRealBuilding(iUNIVERSITY, pCity.getNumRealBuilding(iUNIVERSITY) + 1)
    if (iPlanetType == iPlanetTypeGia4):
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iUNIVERSITY, true)
        pCity.setNumRealBuilding(iUNIVERSITY, pCity.getNumRealBuilding(iUNIVERSITY) + 1)

    # PLANETMAKER Ms classes get mine or bank. Not normally starting planets as they are only in the second cultural level.
    if (iPlanetType == iPlanetTypeSwamp1 or iPlanetType == iPlanetTypeSwamp3):
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
    if (iPlanetType == iPlanetTypeSwamp2 or iPlanetType == iPlanetTypeSwamp4):
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)

    # PLANETMAKER Deserts
    # PLANETMAKER Arid Hostile deserts get Grennhouse and outpost and (bank or ore) 3 buidlings plus forced food import
    # PLANETMAKER Arid Hostile 3 food per citizen + silo(2) + forced food(2 food +1 per citizen) = 8 so surplus 3
    if (iPlanetType == iPlanetTypeDesert1):
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
        pPlanet.setHasBuilding(iDesertOutpost, true)
        pCity.setNumRealBuilding(iDesertOutpost, pCity.getNumRealBuilding(iDesertOutpost) + 1)
        pPlanet.setHasBuilding(iDESERTARI, true)
        pCity.setNumRealBuilding(iDESERTARI, pCity.getNumRealBuilding(iDESERTARI) + 1)
    if (iPlanetType == iPlanetTypeDesert2 or iPlanetType == iPlanetTypeSaturn5):
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iDesertOutpost, true)
        pCity.setNumRealBuilding(iDesertOutpost, pCity.getNumRealBuilding(iDesertOutpost) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
    # PLANETMAKER Arid deserts start with 4 food, plus silo(2) + Outpost(1) + Colonial farm(1) = 8
    if (iPlanetType == iPlanetTypeDesert3 or iPlanetType == iPlanetTypeUranian5):
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iDesertOutpost, true)
        pCity.setNumRealBuilding(iDesertOutpost, pCity.getNumRealBuilding(iDesertOutpost) + 1)
        pPlanet.setHasBuilding(iDESERTARI, true)
        pCity.setNumRealBuilding(iDESERTARI, pCity.getNumRealBuilding(iDESERTARI) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
    if (iPlanetType == iPlanetTypeDesert4 or iPlanetType == iPlanetTypeNeptune5):
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iDesertOutpost, true)
        pCity.setNumRealBuilding(iDesertOutpost, pCity.getNumRealBuilding(iDesertOutpost) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
    # PLANETMAKER Mh gets outpost silo and (mine or bank)
    # PLANETMAKER Mh provides 5 food per citizen, silo(2) and outpost(1) = surplus 8
    if (iPlanetType == iPlanetTypeDesert5):
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iDesertOutpost, true)
        pCity.setNumRealBuilding(iDesertOutpost, pCity.getNumRealBuilding(iDesertOutpost) + 1)
        pPlanet.setHasBuilding(iDESERTARI, true)
        pCity.setNumRealBuilding(iDESERTARI, pCity.getNumRealBuilding(iDESERTARI) + 1)
    if (iPlanetType == iPlanetTypeDesert6):
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iDesertOutpost, true)
        pCity.setNumRealBuilding(iDesertOutpost, pCity.getNumRealBuilding(iDesertOutpost) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)

    # PLANETMAKER Martians
    # PLANETMAKER Barren Colds start with 2 food per citizen +greenhouse(3) + foodimport(2 +1 per citizen) + colonial Farm(1) = 8
    if (iPlanetType == iPlanetTypeNeptune6):
        pPlanet.setHasBuilding(iHabitation, true)
        pCity.setNumRealBuilding(iHabitation, pCity.getNumRealBuilding(iHabitation) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
    if (iPlanetType == iPlanetTypeOrange or iPlanetType == iPlanetTypeSaturn6):
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
    # PLANETMAKER Very Arid Cold Martians
    # PLANETMAKER start with 3 food per citizen + silo(2) + Food import(2 +1 per citizen) = 8
    if (iPlanetType == iPlanetTypeMars1):
        pPlanet.setHasBuilding(iMiningFacility, true)
        pCity.setNumRealBuilding(iMiningFacility, pCity.getNumRealBuilding(iMiningFacility) + 1)
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    if (iPlanetType == iPlanetTypeMars2 or iPlanetType == iPlanetTypeJovian6):
        pPlanet.setHasBuilding(iMartianOutpost, true)
        pCity.setNumRealBuilding(iMartianOutpost, pCity.getNumRealBuilding(iMartianOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER Arid Cold
    # PLANETMAKER start with 4 food per citizen + greenhouse(3) + Colonial Farm(1) = 8
    if (iPlanetType == iPlanetTypeMars3):
        pPlanet.setHasBuilding(iMartianOutpost, true)
        pCity.setNumRealBuilding(iMartianOutpost, pCity.getNumRealBuilding(iMartianOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iMiningFacility, true)
        pCity.setNumRealBuilding(iMiningFacility, pCity.getNumRealBuilding(iMiningFacility) + 1)
    if (iPlanetType == iPlanetTypeMars4):
        pPlanet.setHasBuilding(iMartianOutpost, true)
        pCity.setNumRealBuilding(iMartianOutpost, pCity.getNumRealBuilding(iMartianOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)

    # PLANETMAKER Browns
    # PLANETMAKER Barren Browns 2 food per citizen + greenhouse(3) food import (2 +1 Per citizen) = 8
    if (iPlanetType == iPlanetTypeBrown1 or iPlanetType == iPlanetTypeBrown2 or iPlanetType == iPlanetTypeJovian3 or iPlanetType == iPlanetTypeUranian3):
        pPlanet.setHasBuilding(iBrownOutpost, true)
        pCity.setNumRealBuilding(iBrownOutpost, pCity.getNumRealBuilding(iBrownOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER Cold Browns
    # PLANETMAKER Cold Browns 3 food per citizen + silo(2) forced food import
    if (iPlanetType == iPlanetTypeBrown3 or iPlanetType == iPlanetTypeBrown4 or iPlanetType == iPlanetTypeNeptune3):
        pPlanet.setHasBuilding(iBrownOutpost, true)
        pCity.setNumRealBuilding(iBrownOutpost, pCity.getNumRealBuilding(iBrownOutpost) + 1)
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iBANK, true)
        pCity.setNumRealBuilding(iBANK, pCity.getNumRealBuilding(iBANK) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    if (iPlanetType == iPlanetTypeSaturn3):
        pPlanet.setHasBuilding(iBrownOutpost, true)
        pCity.setNumRealBuilding(iBrownOutpost, pCity.getNumRealBuilding(iBrownOutpost) + 1)
        pPlanet.setHasBuilding(iSILOLKH, true)
        pCity.setNumRealBuilding(iSILOLKH, pCity.getNumRealBuilding(iSILOLKH) + 1)
        pPlanet.setHasBuilding(iBROWNCMC, true)
        pCity.setNumRealBuilding(iBROWNCMC, pCity.getNumRealBuilding(iBROWNCMC) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)

    # PLANETMAKER Ices
    # PLANETMAKER Hostile ices 2 food per citizen + greenhouse(3) + Food import (2 + 1 Per citizen) = 8
    # PLANETMAKER Ices also get crater mining and colonial mine because of thier low production but are not normally in the first cultural level
    if (iPlanetType == iPlanetTypeWhite or iPlanetType == iPlanetTypeUranian4):
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iICECMC, true)
        pCity.setNumRealBuilding(iICECMC, pCity.getNumRealBuilding(iICECMC) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER ice 1 is worst hostile (-2 hammers) so gets factory but highly unlikely
    if (iPlanetType == iPlanetTypeIce1):
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iICECMC, true)
        pCity.setNumRealBuilding(iICECMC, pCity.getNumRealBuilding(iICECMC) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iFACTORY, true)
        pCity.setNumRealBuilding(iFACTORY, pCity.getNumRealBuilding(iFACTORY) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    if (iPlanetType == iPlanetTypeIce2):
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iICECMC, true)
        pCity.setNumRealBuilding(iICECMC, pCity.getNumRealBuilding(iICECMC) + 1)
        pPlanet.setHasBuilding(iUNIVERSITY, true)
        pCity.setNumRealBuilding(iUNIVERSITY, pCity.getNumRealBuilding(iUNIVERSITY) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER Harsh ices
    # PLANETMAKER Harsh ices 3 food per citizen + Silo(2) + Forced food (2+ 1 per citizen) = 8
    if (iPlanetType == iPlanetTypeIce3):
        pPlanet.setHasBuilding(iICECMC, true)
        pCity.setNumRealBuilding(iICECMC, pCity.getNumRealBuilding(iICECMC) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iSILODP, true)
        pCity.setNumRealBuilding(iSILODP, pCity.getNumRealBuilding(iSILODP) + 1)
        pPlanet.setHasBuilding(iFACTORY, true)
        pCity.setNumRealBuilding(iFACTORY, pCity.getNumRealBuilding(iFACTORY) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    if (iPlanetType == iPlanetTypeIce4):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iSILODP, true)
        pCity.setNumRealBuilding(iSILODP, pCity.getNumRealBuilding(iSILODP) + 1)
        pPlanet.setHasBuilding(iICECMC, true)
        pCity.setNumRealBuilding(iICECMC, pCity.getNumRealBuilding(iICECMC) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    if (iPlanetType == iPlanetTypeBlue):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iSILODP, true)
        pCity.setNumRealBuilding(iSILODP, pCity.getNumRealBuilding(iSILODP) + 1)
        pPlanet.setHasBuilding(iFACTORY, true)
        pCity.setNumRealBuilding(iFACTORY, pCity.getNumRealBuilding(iFACTORY) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    if (iPlanetType == iPlanetTypeIce5):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iSILODP, true)
        pCity.setNumRealBuilding(iSILODP, pCity.getNumRealBuilding(iSILODP) + 1)
        pPlanet.setHasBuilding(iICECMR, true)
        pCity.setNumRealBuilding(iICECMR, pCity.getNumRealBuilding(iICECMR) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER Frozen ices
    # PLANETMAKER Frozen ices 4 food per citizen + greenhouse(3) + colonal Farm(1) = 8
    if (iPlanetType == iPlanetTypeIce6 or iPlanetType == iPlanetTypeSaturn4):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iICECMR, true)
        pCity.setNumRealBuilding(iICECMR, pCity.getNumRealBuilding(iICECMR) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
    if (iPlanetType == iPlanetTypeIce7):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
    if (iPlanetType == iPlanetTypeIce8):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iUNIVERSITY, true)
        pCity.setNumRealBuilding(iUNIVERSITY, pCity.getNumRealBuilding(iUNIVERSITY) + 1)
    # PLANETMAKER Ice age M class Mp
    # PLANETMAKER 5 food per citizen + silo(2) + colonial Farm(1)
    if (iPlanetType == iPlanetTypeIce9):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iSILODP, true)
        pCity.setNumRealBuilding(iSILODP, pCity.getNumRealBuilding(iSILODP) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iICECMR, true)
        pCity.setNumRealBuilding(iICECMR, pCity.getNumRealBuilding(iICECMR) + 1)
    if (iPlanetType == iPlanetTypeIce10):
        pPlanet.setHasBuilding(iIceOutpost, true)
        pCity.setNumRealBuilding(iIceOutpost, pCity.getNumRealBuilding(iIceOutpost) + 1)
        pPlanet.setHasBuilding(iSILODP, true)
        pCity.setNumRealBuilding(iSILODP, pCity.getNumRealBuilding(iSILODP) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iUNIVERSITY, true)
        pCity.setNumRealBuilding(iUNIVERSITY, pCity.getNumRealBuilding(iUNIVERSITY) + 1)

    # PLANETMAKER 0 food Grays not normally starting planets no way to help paradise, they cant start with 2 citizens
    # PLANETMAKER 0 food per citizen + greenhouse(3) + silo(2) + forced food(2+1 per citizen) = 8
    if (iPlanetType == iPlanetTypeGray1 or iPlanetType == iPlanetTypeGray2 or iPlanetType == iPlanetTypeGray or iPlanetType == iPlanetTypeGray4 or iPlanetType == iPlanetTypeGray5 or iPlanetType == iPlanetTypeGray6 or iPlanetType == iPlanetTypeGray9 or iPlanetType == iPlanetTypeGray10 or iPlanetType == iPlanetTypeJovian1 or iPlanetType == iPlanetTypeJovian2 or iPlanetType == iPlanetTypeSaturn1 or iPlanetType == iPlanetTypeNeptune1):
        pPlanet.setHasBuilding(iGrayOutpost, true)
        pCity.setNumRealBuilding(iGrayOutpost, pCity.getNumRealBuilding(iGrayOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iSILODP, true)
        pCity.setNumRealBuilding(iSILODP, pCity.getNumRealBuilding(iSILODP) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER 1 food Grays not normally starting planets no way to help paradse, they cant start with 2 citizens
    # PLANETMAKER 1 food per citizen + greenhouse(3) + colonial farm(1) + forced food(2+1 per citizen) = 8
    if (iPlanetType == iPlanetTypeGray3 or iPlanetType == iPlanetTypeGray7 or iPlanetType == iPlanetTypeGray11 or iPlanetType == iPlanetTypeGray15 or iPlanetType == iPlanetTypeSaturn2 or iPlanetType == iPlanetTypeUranian1 or iPlanetType == iPlanetTypeNeptune2):
        pPlanet.setHasBuilding(iGrayOutpost, true)
        pCity.setNumRealBuilding(iGrayOutpost, pCity.getNumRealBuilding(iGrayOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER 2 food Grays can be starting planets
    # PLANETMAKER 2 food per citizen + greenhouse(3) + Food import (2 +1 per citizen)
    if (iPlanetType == iPlanetTypeGray4 or iPlanetType == iPlanetTypeGray8 or iPlanetType == iPlanetTypeGray12 or iPlanetType == iPlanetTypeGray16 or iPlanetType == iPlanetTypeUranian2):
        pPlanet.setHasBuilding(iGrayOutpost, true)
        pCity.setNumRealBuilding(iGrayOutpost, pCity.getNumRealBuilding(iGrayOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)

    # PLANETMAKER Hostile Lava planets no growth not normally starting planets paradise will lose thier second citizen
    # PLANETMAKER Hostile Lava planets - 2 food per citizen + Greenhouse(3) +Forced food (2 + 1 percitizen) + Colonial food(1) = 5 stagnent 
    if (iPlanetType == iPlanetTypeRed or iPlanetType == iPlanetTypeLava1):
        pPlanet.setHasBuilding(iCOLONIALSOLAR, true)
        pCity.setNumRealBuilding(iCOLONIALSOLAR, pCity.getNumRealBuilding(iCOLONIALSOLAR) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
    # PLANETMAKER Hostile Lava planets - 1 food per citizen + Greenhouse(3) +Forced food (2 + 1 percitizen) = 5 stagnent 
    if (iPlanetType == iPlanetTypeLava2 or iPlanetType == iPlanetTypeNeptune4):
        pPlanet.setHasBuilding(iLavaOutpost, true)
        pCity.setNumRealBuilding(iLavaOutpost, pCity.getNumRealBuilding(iLavaOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
        pPlanet.setHasBuilding(iCOLONIALSOLAR, true)
        pCity.setNumRealBuilding(iCOLONIALSOLAR, pCity.getNumRealBuilding(iCOLONIALSOLAR) + 1)
    # PLANETMAKER Volcanic Lava planets 0 food per citizen +outpost(1) + greenhouse (3) + colonial farm(1) = 5 stagnent
    if (iPlanetType == iPlanetTypeLava3 or iPlanetType == iPlanetTypeJovian4):
        pPlanet.setHasBuilding(iLavaOutpost, true)
        pCity.setNumRealBuilding(iLavaOutpost, pCity.getNumRealBuilding(iLavaOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
    # PLANETMAKER Volcanic Lava planets 1 food per citizen + Greenhouse(3) + Food import(2+1 per citizen) + Outpost(1) = 8 can actually grow and hold 2 citizens
    if (iPlanetType == iPlanetTypeLava4):
        pPlanet.setHasBuilding(iLavaOutpost, true)
        pCity.setNumRealBuilding(iLavaOutpost, pCity.getNumRealBuilding(iLavaOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)

    # PLANETMAKER Venusian planets you are doomed but we will try paradise will lose thier second citizen
    # PLANETMAKER Venusian planets  - 3 food per citizen + greenhouse(3) + forced food(2 + 1 per citizen) Outopst(1) Colonial food (1)  = 5 stagnent
    if (iPlanetType == iPlanetTypeToxic1 or iPlanetType == iPlanetTypeToxic2):
        pPlanet.setHasBuilding(iVenusianOutpost, true)
        pCity.setNumRealBuilding(iVenusianOutpost, pCity.getNumRealBuilding(iVenusianOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
        pPlanet.setHasBuilding(iCOLONIALFARM, true)
        pCity.setNumRealBuilding(iCOLONIALFARM, pCity.getNumRealBuilding(iCOLONIALFARM) + 1)
    # PLANETMAKER Venusian planets  - 2 food per citizen + greenhouse(3) + forced food(2 + 1 per citizen) Outopst(1)  = 5 stagnent
    if (iPlanetType == iPlanetTypeToxic3 or iPlanetType == iPlanetTypeToxic5 or iPlanetType == iPlanetTypeUranian6):
        pPlanet.setHasBuilding(iVenusianOutpost, true)
        pCity.setNumRealBuilding(iVenusianOutpost, pCity.getNumRealBuilding(iVenusianOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER Venusian planets  - 1 food per citizen + greenhouse(3) + forced food(2 + 1 per citizen) = 5 stagnent
    if (iPlanetType == iPlanetTypeYellow):
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
    # PLANETMAKER Venusian planets  - 2 hammers per citizen + factory(2) + Colonial mine (1)  = 1
    if (iPlanetType == iPlanetTypeToxic1 or iPlanetType == iPlanetTypeUranian6):
        pPlanet.setHasBuilding(iFACTORY, true)
        pCity.setNumRealBuilding(iFACTORY, pCity.getNumRealBuilding(iFACTORY) + 1)
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)
    # PLANETMAKER Venusian planets  - 1 hammers per citizen + factory(2)  = 1
    if (iPlanetType == iPlanetTypeToxic2 or iPlanetType == iPlanetTypeToxic3 or iPlanetType == iPlanetTypeYellow):
        pPlanet.setHasBuilding(iFACTORY, true)
        pCity.setNumRealBuilding(iFACTORY, pCity.getNumRealBuilding(iFACTORY) + 1)
    # PLANETMAKER Venusian planets  0 hammers per citizen + Colonial mine (1)  = 1
    if (iPlanetType == iPlanetTypeToxic4):
        pPlanet.setHasBuilding(iCOLONIALMINE, true)
        pCity.setNumRealBuilding(iCOLONIALMINE, pCity.getNumRealBuilding(iCOLONIALMINE) + 1)

    # PLANETMAKER Toxic planets you are doomed but we will try paradise will lose thier second citizen
    # PLANETMAKER Toxic planets -2 food per citizen +greenhouse(3) + food import(2 +1 per citizen) + outpost(1) = 5 stagnent
    if (iPlanetType == iPlanetTypeToxic5 or iPlanetType == iPlanetTypeToxic6):
        pPlanet.setHasBuilding(iToxicOutpost, true)
        pCity.setNumRealBuilding(iToxicOutpost, pCity.getNumRealBuilding(iToxicOutpost) + 1)
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)

    # PLANETMAKER Toxic planets -1 food per citizen +greenhouse(3) + food import(2 +1 per citizen) = 5 stagnent
    if (iPlanetType == iPlanetTypeToxic7 or iPlanetType == iPlanetTypeToxic8 or iPlanetType == iPlanetTypeJovian5):
        pPlanet.setHasBuilding(iGreenhouseComplex, true)
        pCity.setNumRealBuilding(iGreenhouseComplex, pCity.getNumRealBuilding(iGreenhouseComplex) + 1)
        pPlanet.setHasBuilding(iFOODIMPORT, true)
        pCity.setNumRealBuilding(iFOODIMPORT, pCity.getNumRealBuilding(iFOODIMPORT) + 1)
 
Last edited:
Below is a link to my latest version - quite a bit different from the previous version.
Now, on the left hand side, in the buildings tab, you have a list of the planets in the system, giving a quick overview of the planets available in the system, and helpful hints on how to utilize them
planet descriptions.jpg

Note that only the home system shows all the planets at first, and has access to their benefits from the start. Settled and captured systems only get access to the outer 5 on cultural expansion*1
Since both Mg and Ms planets give a passive +1 bonus to food, their food per citizen working has been reduced by 1.
Also the Capitol Building has been nerfed a little, it only has 3 commerce now instead of 8, as you can see some planets give credits. This will help the player to think about their strategy and research priorities a bit. Hopefully this will also help the AI not run around with no money all the time.*2
Gas Giants now have different Hydrogen Ram Scoop buildings, by size. There are now 48 more textures to give more variety to their appearance. Hope you like them.

As this is experimental It has a different folder - you will have to archive rename your existing Terraformer folder first, then rename teraformerEvolved to just terraformer before you play. I have not had time to extensively test and there might be bugs I have not seen.

I'm going to take a break now from modding for Christmas and new year, but will pop by to answer any questions you might have from time to time. In the mean time a very merry Christmas to you all!

*1 Sometimes the onCultureExpansion (line 1936 finalfrontierevents.py) fails to put definitions on all the planets. I can't figure out why, if any of you have any ideas please let me know.
*2 Sometimes if I give credits to an AI, then go back to diplomacy they seem to have spent it/ lost it instantly.
 
*2 Sometimes if I give credits to an AI, then go back to diplomacy they seem to have spent it/ lost it instantly.
Afaik, gold available in diplomacy isn't actually all they have. Turn on debug mode and enter one of their cities to check for sure.
 
Happy new year everyone!
Continuing to work on the experimental Terraformer evolved...
3 new classes of planets
Chthonian - Metal cores of gas giants that have strayed too close to their parent stars. Only colonized in the late game purely for military purposes. Can only be found in the first two planet slots.
Chthonian.jpg

Ocean Worlds - Low production worlds colonized in in the mid to late game - provides heath and happiness mostly. Can be starting worlds in non-home systems.
Ocean word.jpg

Chthonian and Ocean building buttons:
Chthonian and Ocean Worlds.jpg

Ice Giants - I've yet to add specific ice giant buildings to them. Any suggestions?
Like Gas giants you colonize their moons. Now you can have 2 or even 3 classes of moon available so quite flexible. 1 major - can build all buildings. 1 or 2 minor - can only build a few buildings. At the moment they only show major moon class buildings.
Ice giant.jpg
Ice giant2.jpg

Gas giants can now have 2 classes of moon available to colonize. So that they cant be too populous the multiple moon outposts buildings now give 1 less population point.
'Solved' the buildings problem. It seems that 'oncultureexpansion' isn't reliably called, so added code to 'onbuilt' as well. Not perfect but does the job.
 

Attachments

  • Ice giant2.jpg
    Ice giant2.jpg
    27.7 KB · Views: 4
Back
Top Bottom