private static SectorEntityToken buildEntity(StarSystemAPI pickedSystem, FactionAPI faction, int minMarketSize, int maxMarketSize, boolean isCapital){
int marketSize = MathUtils.getRandomNumberInRange(minMarketSize, maxMarketSize);
if(isCapital) marketSize = maxMarketSize;
if(pickedSystem == null) return null;
if(faction == null) return null;
if(pickedSystem.getStar() == null) return null;
if(pickedSystem.getStar().getName() == null) return null;
if(faction.getId() == null) return null;
if(pickedSystem.isHyperspace() || pickedSystem.isNebula()) return null;
SectorEntityToken ezColony;
try{
String starName = pickedSystem.getStar().getName();
String factionID = faction.getId();
String denomination = pickDenomination(pickedSystem,faction,false,true);
ezColony = pickedSystem.addPlanet(starName + factionID + "planet" + denomination,//Attempts to build a random numbered location id; needs improving
pickedSystem.getStar(), starName+" "+ denomination,//Probably needs improving
planetType(faction),//Pulls a string at random
MathUtils.getRandomNumberInRange(30f,60f),//Angle
MathUtils.getRandomNumberInRange(50f,300f),//Radius
MathUtils.getRandomNumberInRange(4000f,8000f),//Orbital radius
MathUtils.getRandomNumberInRange(100f,300f));//Orbital period
ezColony.addTag("customColony");
}catch (Throwable ex) {
return null;
}
ezColony.setFaction(faction.getId());
ezColony.setInteractionImage("illustrations", ILLUSTRATIONS.get((int)MathUtils.getRandomNumberInRange(0, ILLUSTRATIONS.size()-1)));
ezColony.addTag(Tags.STATION);
MarketAPI market = Global.getFactory().createMarket(faction.getId() + ezColony.getId() +"_market"+MathUtils.getRandom(), ezColony.getName(), 0);
ezColony.setMarket(market);
market.setPlanetConditionMarketOnly(false);
market.addCondition(Conditions.SPACEPORT);
market.addCondition(Conditions.OUTPOST);
market.setFactionId(faction.getId());
market.setSurveyLevel(SurveyLevel.FULL);
market.setPrimaryEntity(ezColony);
//Set up all of the Market Conditions here
if(isCapital == true || MathUtils.getRandomNumberInRange(0f, 100f) > 66f) market.addCondition(Conditions.MILITARY_BASE);
setMarketConditions(market, marketSize, ezColony, false);
//Set the market's size and population here
market.setSize(marketSize);
assignPopulation(market,marketSize);
market.addSubmarket(Submarkets.SUBMARKET_OPEN);
if(market.hasCondition(Conditions.MILITARY_BASE)){
market.addSubmarket(Submarkets.GENERIC_MILITARY);
}
market.addSubmarket(Submarkets.SUBMARKET_BLACK);
market.addSubmarket(Submarkets.SUBMARKET_STORAGE);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCommodity(Commodities.FOOD, 1000);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCommodity(Commodities.LUXURY_GOODS, 100);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCommodity(Commodities.ORGANICS, 3000);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCommodity(Commodities.VOLATILES, 3000);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCommodity(Commodities.HEAVY_MACHINERY, 1000);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCommodity(Commodities.METALS, 1000);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCommodity(Commodities.RARE_METALS, 1000);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addCrew(300);
market.getSubmarket(Submarkets.SUBMARKET_OPEN).getCargo().addFuel(5000);
Global.getSector().getEconomy().addMarket(market);
buildCommRelayIfNeeded(pickedSystem,faction);
Logger log = Global.getLogger(CoreScript.class);
log.info("Created EZ Faction Colony " + ezColony.getName() + " for Faction " + faction.getDisplayName() + " at System " +pickedSystem.getBaseName());
return ezColony;
}