Scenario/Unit/Library workshop

General discussion for the game Anacreon
Post Reply
User avatar
Watch TV, Do Nothing
Militia Captain
Militia Captain
Posts: 709
Joined: Sun Feb 05, 2012 12:22 am

Fri Mar 31, 2017 7:10 pm

Now that our understanding of how Anacreon works under the hood is expanding, I'm sure some people are brainstorming custom units, improvements, traits, designations, etc. that might get added to custom scenarios in the future. Here is an example to kick things off. It's an artifact structure that appears on a small subset of worlds which converts basic infantry into special heavy infantry unit. I am asking the game engine to do something that I have not seen elsewhere (use units as an input), and since I don't know whether that would even work I have commented appropriately.

Code: Select all

	// This adds a special improvement- the high-G augment facility.
	// These irreproduceable structures were built thousands of years ago by the Aelion empire.
	// High-gravity augment facilities train and modify standard infantry, turning them into super-soldiers.
	//
	// Augment facilities differ from normal infantry academies significantly:
	//
	// a) they convert existing units rather than creating new ones
	// b) they are not the primary structure on their world, so they can exist on worlds of any designation
	// c) they exist only on a small subset of worlds determined at the time of scenario creation
	//
	// Smart players might turn high-G worlds into academies, citadels or sector capitals.
	// This will provide a continuous stream of basic infantry to convert into heavy infantry.

Trait core.highGravity

	// This planetary feature will show up in the same area as mineral abundance
	// It signals to players that a world has a high-G augment facility
	// We will apply it to a few underground and transuranic worlds at scenario creation.

	{
	category: feature
	name: "high gravity"
}

Trait core.highGfacility {

	// This is a special improvement that converts normal infantry into heavy infantry.
	// I think it will work without a "role:", provided that it is not considered "industry"
	// If it were industry, it would get overwritten when the world gets redesignated.
	// These improvements will persist like the "neural processors" still visible on some planets in Alpha 1
	// We want it to remain on the world no matter what the world is being used as.
	// The player should not be able to build or destroy it.
	// Players manually control WU allocation to the structure, similar to the militia base; they can even set it to 100% if they are committed to periodically shipping in infantry from elsewhere.

	name: "high-gravity augment facility"
	category: improvement
	defaultAlloc: { alloc:fixed allocValue:5.0 }
	requirements: (core.highGravity)

	production: (core.heavyInfantry)

}

ResourceType core.heavyInfantry
	{
	category: groundUnit
	name: "heavy infantry brigade"
	isCargo: true
	mass: 20.0
	halfLife: 5.0
	elementCount: 5000

	attack: { name:"pressure-caviton bolter" damage:2 type:direct range:0.0 area:0.1 }

	// I don't know what messing with range, area, elementcount do to ground units
	// so I'm keeping it pretty basic. This unit is tougher than infantry and imperial guards
	// but not as strong as armored infantry.

	defense: { armor:4 minArea:10.0 counters:{ missile:1 } }

	production: {
		workUnits: 250.0
		inputs: (
			{ type:core.infantry amount:1.0 }
			)

	// This unit requires other units as an input!
	// I believe it should work fine, although it probably will not import infantry via trade routes

		minTechLevel: 4

		}
}

//	Add the following code to the creation block of a scenario after player worlds are created
// 	There is a more elegant way to accomplish this, by modifying worlds at or after generation, but IDK how
//	This just adds worlds, which will upset the distribution of world types a little

Table scenario.highGWorldClassTable
	{
	type: byTrait
	value: (

	// does not spawn at all in bright nebula, I hope this will not mess things up

		(core.inDarkNebula
			{ type: table
				value: (
					(75		core.transuranicWorld)
					(25		core.undergroundWorld)
					)
				}
			)

		(()
			{ type: table
				value: (
					(75		core.transuranicWorld)
					(25		core.undergroundWorld)
					)
				}
			)
		)
	}

{ create:worlds
			count:80
			
			region:sectorRegion 
			minDist:16
			
			sovereign:core.independent
			
			traits: (
				worldTechTable
				highGWorldClassTable
				core.highImperialCulture
				core.highGravity
				core.highGfacility		//	I hope we can add a facility this way
				)

	resources: (
				{	type: core.infantry
					value: { type:gaussian
						median: { type:byTechAndPopulation
							value: (
								(preIndustrial		0.1)
								(industrial			0.1)
								(atomic				0.1)
								(digital			0.09)
								(spacefaring		0.08)
								(fusion				0.07)
								(biotech			0.05)
								(antimatter			0.04)
								(quantum			0.04)
								(postIndustrial		0.04)
								)
							}
							
						low: 150
						high: 300
						}
					}
				)

}
Last edited by Watch TV, Do Nothing on Thu Apr 13, 2017 1:29 am, edited 2 times in total.

User avatar
Xephyr
Militia Captain
Militia Captain
Posts: 828
Joined: Fri Dec 14, 2007 1:52 am
Location: Orion Arm, Milky Way
Contact:

Fri Mar 31, 2017 7:25 pm

Great idea! Maybe we can work on getting content from older versions brought over. Things like planet types would be super easy to do (and I can offer up graphics for them in that case)

The following planets aren't in Beta II. Most of them are redundant, so maybe I'll just select a few to write up.:

- Ambrosia; These can wait for ambrosia implementation

- Arid; desert planets without a Trillium bonus.

- Artificial; Can probably wait for megastructures

- Classes j-m; Variants of Earthlike worlds

- Forest world; Bonus to food/resource efficiency

- Gas Giant; Actually the moons around them. Bonus to exotic chemicals (Chrominium/nebular resources?) and ship production

- Hostile Life; Chance of losing troops proportional to number of troops on the planet, minor chance of hostile life joining troops

- Ice World; "not very useful"

- Jungle World; Forest worlds with a higher advantage to resource production.

- Paradise; Extremely rare and abundant in everything with a bonus to production. I think these are the most tactically interesting planets.

- Poisonous; Functionally these wouldn't be different from Transuranic or Primordial planets so not sure about them

- Ancient Ruins; Possibility of finding lost tech, like the gravity room in your post. Otherwise Earthlike.

- Terraforming; A gate level technology, where you can terraform appropriate worlds over the course of several years. Planets being terraformed would probably have a major hit to productivity (maybe even down to zero).
Last edited by Xephyr on Fri Mar 31, 2017 8:07 pm, edited 1 time in total.
Project Renegade (Beta) : "The Poor Man's Corporate Command!"
"Cowards die many times before their deaths; The valiant never taste of death but once. " -Julius Caesar as written by William Shakespeare, a notorious permadeath player.

User avatar
Watch TV, Do Nothing
Militia Captain
Militia Captain
Posts: 709
Joined: Sun Feb 05, 2012 12:22 am

Fri Mar 31, 2017 8:05 pm

For old-style planet classes I think you would define a worldClass trait for the planet and one or more feature trait for the production modifiers. For example if you were trying to replicate the old Gas Giant class you would create a single trait that has distinct 66% WU cost modifiers for each starship and ramjet class.

I think the letter-class worlds were right to be removed since their names were not meaningful or evocative.

I believe that hostile life worlds would periodically lose population, not troops. They were the only way get to elite troops/ninjas without ambrosia.

User avatar
Xephyr
Militia Captain
Militia Captain
Posts: 828
Joined: Fri Dec 14, 2007 1:52 am
Location: Orion Arm, Milky Way
Contact:

Sat Apr 01, 2017 5:19 am

Jungle/Forest world (Probably fine to just have one of the two)

How to make it tactically interesting: We'll have a bonus to production that decreases as tech level increases. High technology means that industry isn't as dependent on good working conditions, and the environment starts to hinder production more than help it. This means that they'll be high value targets for low-tech empires and less useful otherwise.

Image
Project Renegade (Beta) : "The Poor Man's Corporate Command!"
"Cowards die many times before their deaths; The valiant never taste of death but once. " -Julius Caesar as written by William Shakespeare, a notorious permadeath player.

User avatar
--Imperator--
Militia Lieutenant
Militia Lieutenant
Posts: 136
Joined: Wed Aug 10, 2016 8:35 am

Sat Apr 01, 2017 5:40 am

Whoa, awesome!

Would it be possible to start new scenarios with custom backstories, unique units, world types, doctrines etc? That would make Anacreon really extensible like the modding system in Transcendence, plus even if George doesn't release updates all that often, there would be a lot of content from the community.

I'm thinking of a system where people can "mod" the base game with whatever new features they would like, then release them as new games online. I noticed the old Anacreon had scenario files which were basically plain text and could be edited to create a scenario with custom world positions, with units on those worlds, or AI empires.

There could also be public games and private ones between just a few people. Is there a limit on how many games the size of Beta 2 can run at once on the server? Is the galaxy layout procedural generated, created by hand or a mixture of both (I'm suspecting the former)?

It's unfortunate the source isn't available though... maybe in the future.
"Live long and may the Force be ever in your favour, Mr. Potter"
-- Gandalf (The Chronicles of Narnia)

User avatar
Watch TV, Do Nothing
Militia Captain
Militia Captain
Posts: 709
Joined: Sun Feb 05, 2012 12:22 am

Sat Apr 01, 2017 2:10 pm

Yep, you could write your own scenario and change quite a lot of stuff. One issue is that I suspect that running a game requires a fair bit of server resources and there is a ticket on ministry indicating that old save states are accumulating which suggests to me that the game isn't really in a state to start adding a bunch of additional games.
--Imperator-- wrote:
Sat Apr 01, 2017 5:40 am
Is the galaxy layout procedural generated, created by hand or a mixture of both
It seems to be totally procedurally generated, with the code for generating nebula strands in the FallenWorlds file.I suspect that George might generate a couple galaxies and then pick the best one when he runs the scenario.

User avatar
Xephyr
Militia Captain
Militia Captain
Posts: 828
Joined: Fri Dec 14, 2007 1:52 am
Location: Orion Arm, Milky Way
Contact:

Sat Apr 01, 2017 4:09 pm

Watch TV, Do Nothing wrote:
Sat Apr 01, 2017 2:10 pm
It seems to be totally procedurally generated, with the code for generating nebula strands in the FallenWorlds file.I suspect that George might generate a couple galaxies and then pick the best one when he runs the scenario.
When the Beta II map was started, we actually got to see it happen on George's stream. There's no hand-picking from what I've seen. It's also revealed that George plays as the Omnithor empire.

I would think that the code is good enough to frequently generate a decent map.
Project Renegade (Beta) : "The Poor Man's Corporate Command!"
"Cowards die many times before their deaths; The valiant never taste of death but once. " -Julius Caesar as written by William Shakespeare, a notorious permadeath player.

User avatar
Watch TV, Do Nothing
Militia Captain
Militia Captain
Posts: 709
Joined: Sun Feb 05, 2012 12:22 am

Sat Apr 01, 2017 7:02 pm

Here is a special ground defender (guided missile emplacements) for citadels, so that citadels aren't limited to building crummy basic infantry. This unit is a great value from a WU and resource perspective, but it can't be transported offworld. It uses the light missile launcher component, which is obtained via the same trade route to jumpship autofacs that the citadel already has. I don't know if having a missile-type projectile interacts with basic infantry's missile protection; I hope it does! The flavor would be that this unit is effective against armor (armored infantry, exotroops, even imperial guards) but can be defeated by basic infantry which are too small to target effectively. This unit requires that the default citadel complex improvement be overwritten with a new version capable of building the new unit.

Code: Select all


ResourceType core.missileEmplacement
{
category: groundUnit
name: "light missile emplacement"
attackValue: {???}
isCargo: false
mass: 100.0
halfLife: 8.0
elementCount: 1000

attack: { name:"guided missile" damage:20 type:missile range:0.0 area:0.1 }
defense: { armor:75 minArea:10.0 }

noRebellionDefection: true

production: {
workUnits: 1000.0
inputs: (
{ type:core.lightMissileLauncher amount:1.0 }
{ type:core.hexacarbide amount:10.0}
)
minTechLevel: 7
}
}

Trait core.citadelComplex {
name: "citadel complex"
category: industry
role: citadelIndustry

production: (
core.infantry
core.missileEmplacement
core.jumpmissilePartisan
)

defaultAlloc: { alloc:max }
designationOnly: true
workingConditions: 7
}
Last edited by Watch TV, Do Nothing on Thu Apr 13, 2017 1:30 am, edited 1 time in total.

User avatar
--Imperator--
Militia Lieutenant
Militia Lieutenant
Posts: 136
Joined: Wed Aug 10, 2016 8:35 am

Sun Apr 02, 2017 7:25 am

Looks like everyone's having fun creating custom units, maybe I'll join in :lol:

Code: Select all

ResourceType core.capship {
	category: maneuveringUnit
	name: "Imperator-class capital ship" // name just for fun, heh :P
	role: capital ship
	attackValue: 1 // needs calculation
	FTL: 0.1 // capship speed, half starship speed
	mass: 2000.0
	maxDeltaV: 0.1
	scanner: 7.5 // powerful long range sensors, 3x Helion radius
	visibility: 18.0 // can probably see it coming from the other side of the galaxy...
	halfLife: 36500.0 // does not attrition, 100 years half life

	attack: { name:"Imperialis plasma archcannon" count:1 damage:960 type:direct range:35.0 area:1.0 }
	attack: { name:"Tempestus lightning turret" count:10 damage:48 type:direct range:30.0 area:0.1 }
	attack: { name:"Exterminatus antimatter warhead" count:2 damage:640 type:missile strength:6 range:40.0 area:2.0 }
	
	// multiple attack types at once, and mutiple "counts" of weapons
	// i.e. firing multiple times per combat round... is this possible?
	
	defense: { armor:28800 counters:{ missile:4 } } // shield:14400 counters:{ direct:1 }
	
	// 3x Typhon armor, possible "shield" attribute which nullifies cannon damage, similar to missile defense?
	// shield "depleted" before armor, or chance of destroying capship accounts for armor + shield combined?
	
	unitsPerCell: 0.25 // can this occupy mutiple cells on the screen, resulting in a larger "dot" for a bigger ship?

	production: {
	
	// oh dear... let's put those economies to good use!
	
		workUnits:10000000.0
		inputs: (
			{ type:core.aetherium amount:50000.0 }
			{ type:core.chtholon amount:100000.0 }
			{ type:core.hexacarbide amount:200000.0 }
			{ type:core.trillum amount:50000.0 }
			{ type:core.chronimium amount:50000.0 }
			{ type:core.advancedRamscoop amount:5.0 }
			{ type:core.heavyRamscoop amount:10.0 }
			{ type:core.HKMissileLauncher amount:1.0 }
			{ type:core.grondLauncher amount:2.0 }
			{ type:core.hellfireCannon amount:1.0 }
			{ type:core.reactorX9 amount:5.0 }
			{ type:core.basiliskCannon amount:4.0 }
			{ type:core.reactorR50 amount:10.0 }
			{ type:core.heavyMissileLauncher amount:4.0 }
			{ type:core.reactorN8 amount:15.0 }
			{ type:core.positronLancer amount:10.0 }
			{ type:core.reactorS100 amount:20.0 }
			)
		minTechLevel: 10
		minTechLevelToDisplay: 10
		}
	}
This here's a capital ship. It can probably single-handedly annihilate an entire battlefleet unless outnumbered more than 10,000 to 1. It is absurdly expensive, requiring multiple cycles of production and resources from both nebular and clearspace worlds. It also requires multiple ship components, both low and high tech, and costs millions of work units. In comparison, you could probably build 10000 Typhon starcruisers or something with the same investment.

So... better be worth it right? Well let's see... its main armament, the dreaded Imperialis plasma archcannon will destroy hundreds of ships per combat round, with 960 damage spread over 1.0 area, the only cannon-type weapon to have more AOE than the top tier missile. It has secondary weapons which fire at the same time, the Tempestus lightning turret will take care of smaller ships, firing 10x per combat round (if this is possible). Lastly, the Exterminatus missile bombards planetary defenses from afar with range 40, and 2.0 area will destroy entire wings which come into contact with the antimatter warhead.

The Imperator-class also has shields (if possible), which can nullify cannon damage similar to point defense systems do against missiles. And its most terrifying aspect? It isn't subject to attrition. A handful of these would be enough to win a war, although... it's extremely unlikely an empire will be able to build more than a few.

Disclaimer: yes, it's stupidly overpowered, probably not suggesting it for the base game lol :twisted: An interesting idea nonetheless, perhaps I'd put it into a custom scenario or something
"Live long and may the Force be ever in your favour, Mr. Potter"
-- Gandalf (The Chronicles of Narnia)

User avatar
Watch TV, Do Nothing
Militia Captain
Militia Captain
Posts: 709
Joined: Sun Feb 05, 2012 12:22 am

Thu Apr 06, 2017 2:29 am

Here's what I believe is a complete system for implementing gas giants. Gas giants get a bonus to ship production but are slow to develop. Gas giants do not support ground based-defenses, but gain additional orbital defense options.

Code: Select all

//	Some settlements can be found on moons and space platforms orbiting
//  gas giants. Although food and metals are difficult to produce on these
//  worlds, the incredible variety of rare gases make them excellent gas
//  processors. These colonies' low gravity also makes them ideal for ship
//  building. Since gas giants have no surface and orbiting colonies are widely
//  dispersed, gas giants may only be defended by satellites and ships.
//  This block of code defines gas giants and several types of defenses unique
//  to gas giant systems.


//	Add this line to all defenses in the GroundDefenseIndustry
//	(GDMs, HELs, hypersonic missiles, plasma towers)

	exclusions: (core.gasGiant)


//	This trait marks a world as a gas giant.

Trait core.gasGiant
	{
	category: feature
	name: "gas giant"

    productionAdj: (
    		{	type: core.gunshipSirius 
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.starfrigateDefiance 
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.starcruiserVictory 
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.gunshipMinotaur 
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.starfrigateGorgos
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.starcruiserMegathere 
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.gunshipHammerhead 
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.starfrigateManta 
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.starcruiserBehemoth  
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.core.gunshipCerberus  
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
     		{	type: core.starfrigateCyclops  
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
     		{	type: core.starcruiserTyphon  
    			workUnitsAdj: { value:1.25		op:defaultValue }
    			}
    		{	type: core.organicFood
		    	workUnitsAdj: { value:0.80		op:defaultValue }
                }    	    	   	   	    	   	   	    	   	   	    	   	
    			
    )

}

//  This trait defines gas giant worlds.

Trait core.gasGiantWorld
	{
	category: worldClass
	name: "gas giant"
	density: 0.2							//	Density (Earth = 1)
	radius: 2   							//	Radius (Earth = 1)
	
	impartTraits: (
		core.atmosphereNone
		core.gasGiant
        

		{	type:table
			value: (
				(35		core.trillumAbundant)
				(55		core.trillumCommon)
				(10		core.trillumUncommon)
				)
			}

		{	type:table
			value: (
				(20		core.chronimiumAbundant)
				(60		core.chronimiumCommon)
				(15		core.chronimiumUncommon)
				(5      core.chronimiumRare)
				)
			}

//  I am not sure if this is expressed right. Gas giants in nebulas get
//  aetherium, while those outside nebulas do not get aetherium.

        {   type:byTrait
            value: ((core.inNebula) (		{	type:table
    			value: (
    				(35		core.aetheriumAbundant)
    				(55		core.aetheriumCommon)
    				(10		core.aetheriumUncommon)
    				)
    			}
            )
            (()     nil)
            }
            
		core.orbitalOutpost
		)

	populationAdj: { type:byTech
		value: (
			(digital			 500)
			(spacefaring		 900)
			(fusion				1175)
			(biotech			1425)
			(antimatter			1600)
			(quantum			1550)
			(postIndustrial		1250)
			)

		op:defaultValue
		}

    consumption: (                              //  also consumes life support supplies, as implied by core.atmosphereNone
    		{	type: core.radiationShielding	//	Item to consume
    			minTechLevel: 3					//	Only consume if world is this tech or higher
    			
    			amount: {
    				type:byTechAndPopulation
    				value: (
    					(atomic				0.06)
    					(digital			0.08)
    					(spacefaring		0.10)
    					(fusion				0.12)
    					(biotech			0.15)
    					(antimatter			0.19)
    					(quantum			0.24)
    					(postIndustrial		0.30)
    					)
    				}
    
    			consequences: (
    				{	demandMet: 1.0
    					deathRate: 0.01			//	1% killed if 100% of demand fails
    					revIndex: 100
    					techRegress: 0.25
    					efficiencyAdj: 0.95
    					}
    				)
    			}
    )

	techLevelAdj: { value:4.0	op:min }

	imageLarge: { type:constant
		resource: core.gasGiantWorldHemisphere  // will need to be defined
		size: (800 800)
		}

	imageSmall: { type:constant
		resource: core.worldClassIcons
		pos: (0 0)                              // will need to be redefined
		size: (48 48)
		}
}

Trait core.orbitalOutpost {
	name: "orbital outpost"
	category: improvement
	role: lifeSupport

	production: (
	            core.lifeSupportSupplies
	            core.radiationShielding
	            )

	workingConditions: 4

	description: "Gas giant worlds are uninhabitable, with colonists eking out a precarious existence on airless moons and orbiting stations. Economically valuable resources are harvested from the planet and ring system using tethered aerostats and platforms." // In practice this description will not be displayed, similar to all other basic hab structures
}

Trait core.orbitalHabitat {
	name: "orbital habitat"
	category: improvement
	role: lifeSupport

	production: (
	            core.lifeSupportSupplies
	            core.radiationShielding
	            )
	            
	populationAdj: { type:byTech
		value: (
			(spacefaring		2350)
			(fusion				3300)
			(biotech			4300)
			(antimatter			4800)
			(quantum			4650)
			(postIndustrial		3250)
			)

		op:min
		}

	minTechLevel: 6
	buildUpgrade: (core.orbitalOutpost core.orbitalHabitatRuins)
	buildTime: 1440
	destroysTo: (core.orbitalHabitatRuins)

	workingConditions: 6

	description: "Gas giant worlds are uninhabitable, with colonists eking out a precarious existence on airless moons and orbiting stations. Economically valuable resources are harvested from the planet and ring system using tethered aerostats and platforms."
	}

//  All classes of gas giant habitat ruin to the same structure class. When a
//  gas giant system fails, it fails hard. Recovery takes a long time

Trait core.orbitalHabitatRuins {
	name: "derelict orbital habitat"
	category: improvement
	role: lifeSupport

	production: (core.lifeSupportSupplies)

	workingConditions: 4

	description: "Life is tenuous in a gas giant system. When external support is lost, all but the most resilient habitats succumb to gravity and intense radiation. A derelict habitat provides minimal life support to a small population."
}

Trait core.orbitalMetropolis {
	name: "orbital metropolis"
	category: improvement
	role: lifeSupport

	production: (
		core.lifeSupportSupplies
	    core.radiationShielding
		)

	populationAdj: { type:byTech
		value: (
			(fusion				7500)
			(biotech			7450)
			(antimatter			6800)
			(quantum			5400)
			(postIndustrial		4400)
			)

		op:min
		}

	minTechLevel: 7
	buildUpgrade: (core.orbitalHabitat)
	buildTime: 2880
	destroysTo: (core.orbitalHabitatRuins)

	workingConditions: 5

	description: "An orbital metropolis is a large installation on a moon, asteroid, or stable Lagrange point. An orbital metropolis allows a larger population to inhabit a gas giant system. This structure upgrades an orbital habitat."
}

Trait core.orbitalArcology {
	name: "orbital arcology"
	category: improvement
	role: lifeSupport

	production: (
		core.lifeSupportSupplies
		core.radiationShielding
		)

	populationAdj: { type:byTech
		value: (
			(biotech			8700)
			(antimatter			8200)
			(quantum			6650)
			(postIndustrial		5550)
			)

		op:min
		}

	minTechLevel: 8
	buildUpgrade: (core.orbitalMetropolis)
	buildTime: 5760
	destroysTo: (core.orbitalHabitatRuins)

	workingConditions: 6

	description: "An orbital arcology is a massive installation that enables a spacebourne population to fully exploit the resources of a gas giant."
	}


//  Independent  gas giants are unable to build any of the default defenses,
//  since they don't have access to hexacarbide and can't build GDMs. We need to
//  define special defenses that are unique to gas giants. Gas giants in empires
//  can build normal satellites, since they can import hexacarbide. Gas giant
//  defenses have low armor since they are made of ceramics. If the monitor unit
//  is impracticable, we should omit it and substitute another satellite class.

ResourceType core.ODMsatellite
	{
	category: orbitalUnit
	name: "ODM satellite"
	mass: 25.0
	halfLife: 2.0

	attack: { name:"nuclear warhead" count:1 damage:32 type:missile strength:1 range:10.0 area:0.2 }
	defense: { armor:16 }

	production: {
		workUnits: 30.0
		inputs: (
			{ type:core.trillum amount:0.5 }
			)
		minTechLevel: 4
		}
}

ResourceType core.excimerSatellite
	{
	category: orbitalUnit
	name: "excimer array"
	mass: 15.0
	halfLife: 4.0

	attack: { name:"Norrsken particle cannon" count:1 damage:48 type:direct range:15.0 area:0.2 }
	defense: { armor:96 }

	production: {
		workUnits: 132.0
		inputs: (
			{ type:core.trillum amount:6.0 }
			{ type:core.aetherium amount:12.0 }
			)
		minTechLevel: 6
		}
}

//  This "ship" is a monitor: a gunship built by a defense structure and unable
//  to leave the planet that builds it. Unlike an orbitalUnit, it forms wings
//  and actively pursues enemies.

ResourceType core.monitorWarlock {
	category: maneuveringUnit
	name: "Warlock-class monitor"
//	role: gunship           // I don't know what this field does, can I just comment it out?
//	FTL: 0                  // Ideally this unit would not deployable at all, but I don't jnow how.
	mass: 10.0
	maxDeltaV: 3
	scanner: 0
//	visibility: 0.15        //
	halfLife: 6.0

	attack: { name:"Shtorm repeater" count:1 damage:64 type:direct range:15.0 area:0.1 }
	defense: { armor:76 counters:{ missile:1 }}
	unitsPerCell: 16

	production: {
		workUnits: 220.0
		inputs: (
			{ type:core.trillum amount:8.0 }
			{ type:core.chronimium amount:5.0 }
			)
		minTechLevel: 7
		}
	}

Trait core.ODMConstellation {
	name: "ODM satellite constellation"
	category: improvement
	role: orbitalDefenseIndustry

	production: (core.ODMsatellite)

	defaultAlloc: { alloc:fixed allocValue:5.0 }
	minTechLevel: 4
	buildUpgrade: (core.excimerConstellation)
	buildTime: 5
	createsResourcesOnGameCreate: true
	requires: (core.gasGiant)

	workingConditions: 5

	description: "Gas giant worlds are unable to build ground-based defenses. An Orbital Defense Missile constellation mounts nuclear-tipped missiles in orbital batteries. ODM satellites are inexpensive but highly exposed to counterattack."
}

Trait core.excimerConstellation {
	name: "excimer array constellation"
	category: improvement
	role: orbitalDefenseIndustry

	production: (core.excimerSatellite)

	defaultAlloc: { alloc:fixed allocValue:5.0 }
	minTechLevel: 6
	buildTime: 30
	createsResourcesOnGameCreate: true
	requires: (core.gasGiant)

	workingConditions: 5

	description: "This program is an upgrade of the ODM satellite constellation improvement. Excimer arrays are ceramic satellites designed to protect colonies orbiting gas giant worlds. Excimer shards require aetherium, only found in nebulas."
}

Trait core.monitorGantry {
	name: "monitor gantry"
	category: improvement
	role: orbitalDefenseIndustry

	production: (core.monitorWarlock)

	defaultAlloc: { alloc:fixed allocValue:5.0 }
	minTechLevel: 7
	buildTime: 120
	createsResourcesOnGameCreate: true
	requires: (core.gasGiant)

	workingConditions: 5

	description: "This improvement is an orbital shipyard that builds Warlock-class monitors. Monitors are orbital superiority gunships which are incapable of interstellar travel. Low-gravity habitats around gas giants are ideal for building monitors, starships and ramjets."
}


//	We need to modify the worldImprovements table in core.Independent to reflect
//  the special defense situation of gas giants. Nest it in a type:byTrait table
//  with the existing table for the trait () and this table for the trait
//  (gasGiant):

value: (
			(postIndustrial	{ type:byTrait
				value:(
					((core.aetheriumsource core.chronimiumSource)
												(core.excimerConstellation core.monitorGantry))

					(()							(core.monitorGantry core.ODMconstellation))
					)
				})
			(quantum	{ type:byTrait
				value:(
					((core.aetheriumsource core.chronimiumSource)
												(core.excimerConstellation core.monitorGantry))
												
					(()							(core.monitorGantry core.ODMconstellation))
					)
				})
			(antimatter		{ type:byTrait
				value:(
					((core.aetheriumsource core.chronimiumSource)
						{ type:byDestiny
							value:(
								(50				(core.excimerConstellation core.monitorGantry))
								(25				core.monitorGantry)
	                            (15				core.excimerConstellation)
								(10				(core.monitorGantry core.ODMConstellation))
								)
							}
						)
					(()
						{ type:byDestiny
							value:(
								(50				(core.monitorGantry core.ODMconstellation))
								(50				core.monitorGantry)
								)
							}
					    )
					)
				})
			(biotech		{ type:byTrait
				value:(
					((core.aetheriumsource core.chronimiumSource)
						{ type:byDestiny
							value:(
								(35				core.monitorGantry)
								(25				(core.excimerConstellation core.monitorGantry))
								(20				core.excimerConstellation)
								(20				(core.monitorGantry core.ODMConstellation))
								)
							}
						)
					(()
						{ type:byDestiny
							value:(
								(25				core.monitorGantry core.ODMconstellation)
								(50				core.monitorGantry)
								(25				core.ODMconstellation)
								)
							}
					    )
					)
				})
			(fusion		    { type:byTrait
				value:(
					((core.aetheriumsource)
						{ type:byDestiny
							value:(
								(75				core.excimerConstellation)
								(25				core.ODMConstellation)
								)
							}
						)
					(()					        core.ODMConstellation)
					)
				})
			(spacefaring    { type:byDestiny 
				value:(
					(95						    core.ODMConstellation)
					(5							nil)
					)
				})
			(digital    { type:byDestiny 
				value:(
					(80						    core.ODMConstellation)
					(20							nil)
					)
				})
			)
}
Last edited by Watch TV, Do Nothing on Thu Apr 13, 2017 12:54 am, edited 1 time in total.

TheBugKing
Militia Lieutenant
Militia Lieutenant
Posts: 107
Joined: Sat Nov 05, 2016 1:38 pm

Thu Apr 06, 2017 8:07 pm

""
--Imperator-- wrote:
Sun Apr 02, 2017 7:25 am
Looks like everyone's having fun creating custom units, maybe I'll join in :lol:""




Perhaps you would really only need about 50 of these to take on the galaxy? Go big or Go home eh?
Fire, Fire, Fire;
Streaks of golden light,
Rays of cosmic waves crashing through still dead night.

User avatar
Xephyr
Militia Captain
Militia Captain
Posts: 828
Joined: Fri Dec 14, 2007 1:52 am
Location: Orion Arm, Milky Way
Contact:

Thu Apr 06, 2017 8:18 pm

It crossed my mind that it should probably be possible to create robotic troops. They would be a high TL industry and probably have some disadvantages, like poorer performance on biospheres than barren worlds.

They could also need some support tech, like the droid control ship in Star Wars, that would make them tactically interesting.

This wouldn't be an alternative to clone banks, since robots probably can't replace a population, but it might make for an interesting contrast between empires if robotic empires flourished on sterile worlds.
Project Renegade (Beta) : "The Poor Man's Corporate Command!"
"Cowards die many times before their deaths; The valiant never taste of death but once. " -Julius Caesar as written by William Shakespeare, a notorious permadeath player.

User avatar
Watch TV, Do Nothing
Militia Captain
Militia Captain
Posts: 709
Joined: Sun Feb 05, 2012 12:22 am

Thu Apr 13, 2017 1:05 am

Anyone know what determines whether a ship is treated as having jump propulsion (requiring a beacon, unless defined as an explorer) vs. warp propulsion (not requiring a beacon)? Ramjets and explorers are specifically defined with tags like FTL: { type:explorer speed:100.0 }, but although jumpships and starships both define FTL with a bare value the game is able to distinguish them somehow.

My guess is that it is some sort of speed threshold but I'm not sure. We know that the game uses the terms jump and warp internally since, e.g., transpace rifts have ftlBarrier: { explorer:true jump:true ramjet:true warp:true tradeRoute:true }

Post Reply