I thought I was being clever...

General Stars in Shadow Discussion Forum
Post Reply
gaerzi
Posts: 210
Joined: Wed Jul 10, 2019 1:30 pm

I thought I was being clever...

Post by gaerzi »

Capture a mobile base from the Tinkers, retrofit it for habitation, load up colonists, move it to a system with uncolonizable planets but a free slot, deploy it into orbit to turn it into a colony, and build an artificial planet this way...

Image

Last step isn't allowed. :cry:

You'll notice by the way that the interface tells me the "colony" could support three units of population, given by various techs... In fact no.
bjg
Posts: 640
Joined: Wed Feb 03, 2016 10:55 pm

Re: I thought I was being clever...

Post by bjg »

In a similar situation (not having any big plans though) I was wondering why the food making project isn't available on such planet/station.
gaerzi
Posts: 210
Joined: Wed Jul 10, 2019 1:30 pm

Re: I thought I was being clever...

Post by gaerzi »

It took a while because I'm not used at all to Lua and its syntax is strange and alien to me, but I finally figured it out: the bit to change is in
GUI\~GalaxyMap\@ChooseProduction.lua

Code: Select all

function calc_production_candidates(limit)

  local planet = selected_planet
  local empire,star in planet
	local no_colony in planet
  local push, production_candidates = pusher {}

 
  if limit~='projects' and not no_colony
    working_refit_candidates(push)
  end


  if limit~='ships'  and not no_colony
    improvement_candidates(push)
  end

  local refit_candidates = refit_option(push)

  if (limit~='ships')  and not no_colony
    terraforming(push)
    colony_bases(push)
    ground_unit_candidates(push)
  end
  if limit~='projects'  and not no_colony
    ship_candidates(push)
  end
  if limit~='ships' 
    activities (push)
  end

Specifically, it's this:

Code: Select all

  if (limit~='ships')  and not no_colony
    terraforming(push)
    colony_bases(push)
    ground_unit_candidates(push)
  end
Artificial planet creation is part of colony_bases. So you can either remove the "and not no_colony" here (but it would allow you to build ground units, I'm not sure what side effects this could have if you do) or you can move colony_bases(push) to the bit that doesn't have that restriction:

Code: Select all

  if (limit~='ships')  and not no_colony
    terraforming(push)
    ground_unit_candidates(push)
  end
  if limit~='projects'  and not no_colony
    ship_candidates(push)
  end
  if limit~='ships' 
    colony_bases(push)
    activities (push)
  end
bjg wrote:In a similar situation (not having any big plans though) I was wondering why the food making project isn't available on such planet/station.
Presumably lack of room on the orbital station to scale up farming? To change that, it's in Orders\activities.lua:

Code: Select all

do

	local allowed_hab_only_activities = set("Trade","Research")

	function Planet.dont_show_activity(planet,activity)
		if planet.no_colony and planet.productive
			if not allowed_hab_only_activities[activity]
				return 'hab_only'
			end
		end
	end

end
You could add "Synthesize Food" to that set. "Mining" would work too. "City Planning" and "Manufacture Population" would probably be a bad idea, though.
gaerzi
Posts: 210
Joined: Wed Jul 10, 2019 1:30 pm

Re: I thought I was being clever...

Post by gaerzi »

Scratch that, they can build the artificial planet, but they can't complete it. There's some other obstruction somewhere I have to find.

Edit: that's economy_update in Orders\economy.lua.

Code: Select all

      if planet.inhabited

			if(planet.skip_production)
				planet.skip_production=nil
			elseif not planet.no_colony
				production_update(planet)
				change_production_if_needed(planet)	
        planet:create_overflow_project()
			end
		end end
I modified it this way:

Code: Select all

      if planet.inhabited or planet.productive

			if(planet.skip_production)
				planet.skip_production=nil
			else -- if not planet.no_colony
				production_update(planet)
				change_production_if_needed(planet)	
        planet:create_overflow_project()
			end
		end end
The artificial planet was completed from the mobile base. It can now move to another uncolonizable system to do this again.
Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests