Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CONTRACT_TYPE
{
name = supplySecondGenerationStation
name = SupplySecondGenerationStation
title = Second Generation Station Supply
group = EarlyEarthSpaceStation
agent = Stations
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
CONTRACT_TYPE
{
name = first_modular_spaceStation
title = First Modular Space Station
group = ModularEarthSpaceStation
agent = Stations

description = <b>Program: Modular Earth Space Station<br>Type: <color=green>Required</color></b><br><br>Design, build, and launch a modular space station core into Earth orbit, then expand it to be habitable and get crew living there for 30 days.

synopsis = Build a modular space station core and crew it for 30 days

completedMessage = Congratulations! You have build your first modular space station!

sortKey = 1500

cancellable = true
declinable = false
autoAccept = false
minExpiry = 0
maxExpiry = 0
maxCompletions = 1
maxSimultaneous = 1
deadline = 0

targetBody = HomeWorld()

// ************ REWARDS ************

prestige = Trivial // 1.0x
advanceFunds = 0
rewardScience = 0
rewardReputation = 500
rewardFunds = 0
failureReputation = 0 // was @rewardReputation
failureFunds = 0

// ************ REQUIREMENTS ************

REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = ModularEarthSpaceStation
}
// ************ PARAMETERS ************

PARAMETER
{
name = vesselGroupLaunch
type = VesselParameterGroup
title = Put the core with habitaiton module of Space Station in Orbit
notes = The core with habitaiton module must include life support and room for at least 2 Crew and at least 2 docking ports
define = modularSpaceStation
disableOnStateChange = true

PARAMETER
{
name = NewVessel
type = NewVessel
title = Launch a Core with habitaiton module of the Station
hideChildren = true
}
PARAMETER
{
name = HasCapacity
type = HasCrewCapacity
minCapacity = 3
title = Space for at least 3 crew
hideChildren = true
disableOnStateChange = false
}
PARAMETER
{
name = DockingPort
type = PartValidation
partModule = ModuleDockingNode
minCount = 2
title = Have at least 2 docking ports
hideChildren = true
}
PARAMETER
{
name = Orbit
type = Orbit
minPeA = 250000
maxApA = 500000
targetBody = HomeWorld()
title = Reach orbit with a perigee greater than 250 km and an apogee less than 500 km
hideChildren = true
}
}
PARAMETER
{
name = stayOnStation
type = VesselParameterGroup
title = Keep at least 3 crew aboard the station for 30 days.
vessel = modularSpaceStation
notes = You can work on other contracts while your crew are working. You are safe to return to Mission Control
completeInSequence = true
disableOnStateChange = true

PARAMETER
{
name = HasCrew
type = HasCrew
minCrew = 3
title = Has at least 3 crew members on the station.
hideChildren = true
}
PARAMETER
{
name = Orbit
type = Orbit
minPeA = 250000
maxApA = 500000
targetBody = HomeWorld()
disableOnStateChange = false
title = Remain in a stable orbit
}
PARAMETER
{
name = Multi-Year Habitation Analysis
type = RP1CollectScience
title = Conduct Multi-Year Habitation Analysis of your astronauts for 15d
notes = This experiment requires 750 units of Research Payload every 30d //Placeholder value.
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0longDurationHabit3
fractionComplete = 0.008 //30d
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
CONTRACT_TYPE
{
name = CollectModularStationScience
title = Collect Modular Crewed Station Science
group = ModularEarthSpaceStation

description = <b>Program: Modular Space Stations<br>Type: <color=green>Required</color></b><br><br>Humans staying in space for longer durations allows for different types of experiments from what we can do with unmanned probes. Utilize your stations to complete these experiments. NOTE: You may have already collected some or all of this science. If you have, you won't need to collect it again.

synopsis = Collect modular station science

completedMessage = This is loads of data! Scientists are extremely happy with the results of your efforts.

sortKey = 603

cancellable = false
declinable = false
autoAccept = true
minExpiry = 0
maxExpiry = 0
maxCompletions = 1
maxSimultaneous = 1
deadline = 0

targetBody = HomeWorld()

DATA
{
type = int
optionalRep = 100 // Reputation for additional science.
index = $RepeatModularSpaceStation_Count + 0
}
BEHAVIOUR // Iterate the repeat count to ensure that the next contract tests for an increase in science progress
{
name = IncrementTheCount
type = Expression

PARAMETER_COMPLETED
{
parameter = IteratorCheck1
RepeatModularSpaceStation_Count = $RepeatModularSpaceStation_Count + 1
}
}
BEHAVIOUR
{
name = IncrementTheCount
type = Expression

PARAMETER_COMPLETED
{
parameter = IteratorCheck2
RepeatModularSpaceStation_Count = $RepeatModularSpaceStation_Count + 1
}
}
BEHAVIOUR
{
name = IncrementTheCount
type = Expression

PARAMETER_COMPLETED
{
parameter = IteratorCheck3
RepeatModularSpaceStation_Count = $RepeatModularSpaceStation_Count + 1
}
}

// ************ REWARDS ************
prestige = Trivial // 1.0x
advanceFunds = 0
rewardScience = 0
rewardFunds = 0
failureFunds = 0
rewardReputation = 500 // between 500 and 1200 depending on optionals. Likely minimum of 800
failureReputation = 0 // was @rewardReputation

// ************ REQUIREMENTS ************

REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = ModularEarthSpaceStation
}
REQUIREMENT
{
name = CompleteContract
type = CompleteContract
contractType = first_modular_spaceStation
}

PARAMETER
{
name = Mold Growth In Zero G
type = RP1CollectScience
optional = true
rewardReputation = @/optionalRep
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0MoldGrowthInZeroG
fractionComplete = 1
}
PARAMETER
{
name = Polished Plate Micrometeoroid And Debris
type = RP1CollectScience
optional = true
rewardReputation = @/optionalRep
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0polishedPlateMicrometeoroidAndDebris
fractionComplete = 1
}
PARAMETER
{
name = Passive Optical Sample Assemblies II
type = RP1CollectScience
optional = true
rewardReputation = @/optionalRep
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0passiveOpticalSampleAssembliesII
fractionComplete = 1
}
PARAMETER
{
name = Passive Optical Sample Assemblies I
type = RP1CollectScience
optional = true
rewardReputation = @/optionalRep
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0passiveOpticalSampleAssembliesI
fractionComplete = 1
}
PARAMETER
{
name = Orbital Debris Collector
type = RP1CollectScience
optional = true
rewardReputation = @/optionalRep
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0orbitalDebrisCollector
fractionComplete = 1
}
PARAMETER // Check progress to keep the repeatable contract up to date
{
name = IteratorCheck1
type = RP1CollectScience
title = Complete the multi-year habitation experiment
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0longDurationHabit3
fractionComplete = 0.05
hidden = true
}
PARAMETER
{
name = IteratorCheck2
type = RP1CollectScience
title = Complete the multi-year habitation experiment
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0longDurationHabit3
fractionComplete = 0.1
hidden = true
}
PARAMETER
{
name = IteratorCheck3
type = RP1CollectScience
title = Complete the multi-year habitation experiment
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0longDurationHabit3
fractionComplete = 0.15
hidden = true
}
PARAMETER
{
name = Multi-Year Habitation Analysis
type = RP1CollectScience
title = Complete 6 months of the multi-Year habitation experiment
targetBody = HomeWorld()
situation = InSpaceLow
experiment = RP0longDurationHabit3
fractionComplete = 0.2
}
}
Loading