diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/EarlyComSat-CA.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyComSat-CA.cfg
new file mode 100644
index 00000000000..a377efda3d0
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyComSat-CA.cfg
@@ -0,0 +1,195 @@
+CONTRACT_TYPE
+{
+ name = EarlyComSat-CA
+ title = Commercial Communications Satellite (Early)
+ group = CommApp
+
+ description = Program: Early Commercial Applications
Type: Optional
Now that satellite communications technology has been proven, launch more capable satellites to expand communication coverage further around Earth. Every major Telecom now wants their own satellite capabilities tailored to their specific needs. Launch new communications satellites with the required specifications into the specified orbits.
NOTE: The satellite will be destroyed upon completion of the contract. This simulates transfer of the payload back to the customer.
The reward of this contract will slowly increase over time but will be reset to 0 after each completion.
Current reward is at @rewardFactorPercent % of its nominal value. Elapsed/Expected Days: @elapsedDays / @RP0:expectedDays_EarlyComSat
Number of Contracts Completed: @index / unlimited
+ genericDescription = Put a satellite with the required amount of communications satellite payload into the desired orbit.
+
+ synopsis = Launch a Communications Satellite for a customer.
+
+ completedMessage = Success! The communications satellite was launched into the proper orbit. Your customer is very happy.
+
+ sortKey = 499
+
+ cancellable = true
+ declinable = true
+ autoAccept = false
+ minExpiry = 1
+ maxExpiry = 1
+ maxCompletions = 0
+ maxSimultaneous = 1
+ deadline = 0
+
+ targetBody = HomeWorld()
+
+
+ // ************ REWARDS ************
+ prestige = Trivial // 1.0x
+ advanceFunds = 0
+ rewardFunds = 0
+ rewardScience = 0
+ rewardReputation = Round(55 * Pow(@EarlyComSat/Orbit/minApA / 6000000, 0.5) * Pow((@EarlyComSat/HasComSatPayload/minQuantity / 325), 0.5) * @rewardFactor, 1)
+ failureReputation = 0 // was @rewardReputation
+ failureFunds = 0
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstComSat-CA
+ title = Complete First Communication Satellite contract
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyComNetwork3
+ invertRequirement = true
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyComNetwork4
+ invertRequirement = true
+ }
+
+ DATA
+ {
+ type = int
+ index = $EarlyComSat_Count + 0
+ }
+
+ BEHAVIOUR
+ {
+ name = IncrementTheCount
+ type = Expression
+
+ CONTRACT_OFFERED
+ {
+ RepeatSat_Completion = ($RepeatSat_Completion + 0) == 0 ? (UniversalTime() - @RP0:expectedDays_EarlyComSat * 86400) : ($RepeatSat_Completion + 0)
+ }
+ CONTRACT_COMPLETED_SUCCESS
+ {
+ EarlyComSat_Count = $EarlyComSat_Count + 1
+ RepeatSat_Completion = UniversalTime()
+ }
+ }
+
+ DATA
+ {
+ type = int
+ antiGrindCompletion = $RepeatSat_Completion == 0 ? (UniversalTime() - @RP0:expectedDays_EarlyComSat * 86400) : $RepeatSat_Completion
+ }
+
+ DATA
+ {
+ type = float
+ elapsedDays = Round((UniversalTime() - @antiGrindCompletion) / 86400.0)
+ rewardFactor = Log(Max(@elapsedDays / @RP0:expectedDays_EarlyComSat * 20 - 9, 1), 2) / 3.46
+ rewardFactorPercent = Round(@rewardFactor * 100, 1)
+ }
+
+ DATA
+ {
+ type = float
+ payload = Round(Random(100,300),10)
+ }
+
+ // ************ PARAMETERS ************
+
+ PARAMETER
+ {
+ name = EarlyComSat
+ type = VesselParameterGroup
+ define = EarlyComSat
+ dissassociateVesselsOnContractCompletion = true
+ title = Communications Satellite (Early)
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasComSatPayload
+ type = HasResource
+ resource = ComSatPayload
+ minQuantity = @/payload-0.1
+ title = Have a ComSatPayload of at least @/payload units on the craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 1000000
+ minApA = Round(Random(3000000, 10000000), 10000)
+ maxApA = Round(Random(10000000, 30000000), 10000)
+ disableOnStateChange = true
+ title = Achieve orbit within the parameters
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2m
+
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+ }
+ }
+
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = EarlyComSat
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellite has been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/EarlyMolniyaSat.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyMolniyaSat.cfg
new file mode 100644
index 00000000000..4df3c7f20b7
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyMolniyaSat.cfg
@@ -0,0 +1,184 @@
+CONTRACT_TYPE
+{
+ name = EarlyMolniyaSat
+ title = Molniya Communications Satellite (Early)
+ group = CommApp
+
+ description = Program: Early Commercial Applications
Type: Optional
Now that satellite communications technology has been proven, launch more capable satellites to expand communication coverage further around Earth. Some customers want satellites that dwell longer over the higher latitudes using Molniya orbits. Launch a new communications satellite with the required specifications with the unique Molniya orbital parameters.
NOTE: The satellite will be destroyed upon completion of the contract. This simulates transfer of the payload back to the customer.
The reward of this contract will slowly increase over time but will be reset to 0 after each completion.&br;Current reward is at @rewardFactorPercent % of its nominal value. Elapsed/Expected Days: @elapsedDays / @RP0:expectedDays_EarlyComSat
Number of Contracts Completed: @index / unlimited
+ genericDescription = Put a satellite with the required amount of communications satellite payload into the desired orbit.
+
+ synopsis = Launch a customer communication satellite into a Molniya orbit.
+
+ completedMessage = Success! The communications satellite was launched into the proper orbit. Your customer is very happy.
+
+ sortKey = 499
+
+ cancellable = true
+ declinable = true
+ autoAccept = false
+ minExpiry = 1
+ maxExpiry = 1
+ maxCompletions = 0
+ maxSimultaneous = 1
+ deadline = 0
+
+ targetBody = HomeWorld()
+
+
+ // ************ REWARDS ************
+ prestige = Trivial // 1.0x
+ advanceFunds = 0
+ rewardFunds = 0
+ rewardScience = 0
+ rewardReputation = Round(55 * Pow(@EarlyMolniya/ReachOrbit/minPeA / 6000000, 0.5) * Pow((@EarlyMolniya/HasComSatPayload/minQuantity / 325), 0.5) * @rewardFactor, 1)
+ failureReputation = 0 // was @rewardReputation
+ failureFunds = 0
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstMolniyaSat-CA
+ title = Complete First Molniya Satellite contract
+ }
+
+ DATA
+ {
+ type = int
+ index = $EarlyMolniya_Count + 0
+ }
+
+ BEHAVIOUR
+ {
+ name = IncrementTheCount
+ type = Expression
+
+ CONTRACT_OFFERED
+ {
+ RepeatSat_Completion = ($RepeatSat_Completion + 0) == 0 ? (UniversalTime() - @RP0:expectedDays_EarlyComSat * 86400) : ($RepeatSat_Completion + 0)
+ }
+ CONTRACT_COMPLETED_SUCCESS
+ {
+ EarlyMolniya_Count = $EarlyMolniya_Count + 1
+ RepeatSat_Completion = UniversalTime()
+ }
+ }
+
+ DATA
+ {
+ type = int
+ antiGrindCompletion = $RepeatSat_Completion == 0 ? (UniversalTime() - @RP0:expectedDays_EarlyComSat * 86400) : $RepeatSat_Completion
+ }
+
+ DATA
+ {
+ type = float
+ elapsedDays = Round((UniversalTime() - @antiGrindCompletion) / 86400.0)
+ rewardFactor = Log(Max(@elapsedDays / @RP0:expectedDays_EarlyComSat * 20 - 9, 1), 2) / 3.46
+ rewardFactorPercent = Round(@rewardFactor * 100, 1)
+ }
+
+ DATA
+ {
+ type = float
+ payload = 40
+ }
+
+ // ************ PARAMETERS ************
+
+ PARAMETER
+ {
+ name = EarlyMolniya
+ type = VesselParameterGroup
+ define = EarlyMolniyaSat
+ dissassociateVesselsOnContractCompletion = true
+ title = Molniya Satellite
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasComSatPayload
+ type = HasResource
+ resource = ComSatPayload
+ minQuantity = @/payload-0.1
+ title = Have a ComSatPayload of at least @/payload units on the craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachOrbit
+ type = Orbit
+ title = Reach the correct orbit within the parameters. Note, the argument of periapsis values mean that the apogee needs to be high in the northern latitudes.
+ minInclination = 61.4
+ maxInclination = 65.4
+ minEccentricity = 0.7
+ minArgumentOfPeriapsis = 220
+ maxArgumentOfPeriapsis = 320
+ minPeA = 500000
+ minPeriod = 11h 56m 2s
+ maxPeriod = 12h 00m 2s
+ disableOnStateChange = true
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2m
+
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+ }
+ }
+
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = EarlyMolniyaSat
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellite has been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavNetwork3.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavNetwork3.cfg
new file mode 100644
index 00000000000..7b11d75b948
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavNetwork3.cfg
@@ -0,0 +1,258 @@
+CONTRACT_TYPE
+{
+ name = EarlyNavNetwork3
+ title = Early Navigation Network (3 Satellites)
+ group = CommApp
+
+
+ description = Program: Early Commercial Applications
Type: Required
The previous launch of the first navigation satellite proved the theories that Doppler shift timing can be used to precisely locate a point or location on the surface of the Earth using satellites. Put that concept into operational use with the first rudimentary satellite navigation network.&br;&br;Build a navigation network with three NavSats that provide more frequent revisit rates than the single previous satellite. Try to phase the orbits so that each satellite provides equal revisit times.&br;&br;NOTE: You may choose only the 3-satellite or 4-satellite contract.
+
+ synopsis = Launch a 3-satellite navigation network
+
+ completedMessage = Congratulations! The network is up and transmitting, and our shakedown testing is complete!
+
+ sortKey = 901
+
+ cancellable = true
+ declinable = true
+ autoAccept = false
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+ maxSimultaneous = 1
+ deadline = 0
+ targetBody = HomeWorld()
+
+ // ************ REWARDS ************
+ prestige = Trivial // 1.0x
+ advanceFunds = 0
+ rewardScience = 0
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 150
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstNavSat-CA
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyNavSat-CA
+ invertRequirement = true
+ }
+
+ REQUIREMENT
+ {
+
+ name = CompleteContract
+ type = CompleteContract
+ contractType = EarlyNavNetwork4
+ invertRequirement = true
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyNavNetwork4
+ invertRequirement = true
+ }
+
+ // NavSat I
+ PARAMETER
+ {
+ name = NavSat1
+ type = VesselParameterGroup
+ define = NavSat I
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat II
+ }
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = NavSat III
+ }
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have ElectricCharge after 2 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 50
+ title = Have a NavSatPayload of at least 50 units on the craft
+ disableOnStateChange = false
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ disableOnStateChange = false
+ minPeA = 700000
+ maxApA = 1200000
+ minInclination = 89
+ maxInclination = 91
+ maxEccentricity = 0.004
+ }
+ }
+ // NavSat II
+ PARAMETER
+ {
+ name = NavSat2
+ type = VesselParameterGroup
+ define = NavSat II
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat III
+ }
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have ElectricCharge after 2 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 50
+ title = Have a NavSatPayload of at least 50 units on the craft
+ disableOnStateChange = false
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ disableOnStateChange = false
+ minPeA = 700000
+ maxApA = 1200000
+ minInclination = 89
+ maxInclination = 91
+ maxEccentricity = 0.004
+ }
+ }
+ // NavSat III
+ PARAMETER
+ {
+ name = NavSat3
+ type = VesselParameterGroup
+ define = NavSat III
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat I
+ }
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have ElectricCharge after 2 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 50
+ title = Have a NavSatPayload of at least 50 units on the craft
+ disableOnStateChange = false
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ disableOnStateChange = false
+ minPeA = 700000
+ maxApA = 1200000
+ minInclination = 89
+ maxInclination = 91
+ maxEccentricity = 0.004
+ }
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2d
+
+ preWaitText = Testing time after network launch
+ waitingText = Performing shakedown testing
+ completionText = Shakedown testing completed
+ }
+
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = NavSat I
+ vessel = NavSat II
+ vessel = NavSat III
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellites have been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavNetwork4.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavNetwork4.cfg
new file mode 100644
index 00000000000..d428ef2ec98
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavNetwork4.cfg
@@ -0,0 +1,324 @@
+CONTRACT_TYPE
+{
+ name = EarlyNavNetwork4
+ title = Early Navigation Network (4 Satellites)
+ group = CommApp
+
+
+ description = Program: Early Commercial Applications
Type: Required
The previous launch of the first navigation satellite proved the theories that Doppler shift timing can be used to precisely locate a point or location on the surface of the Earth using satellites. Put that concept into operational use with the first rudimentary satellite navigation network.
Build a navigation network with four NavSats that provide more frequent revisit rates than the single previous satellite. Try to phase the orbits so that each satellite provides equal revisit times.
NOTE: You may choose only the 3-satellite or 4-satellite contract.
+
+ synopsis = Launch a 4-satellite navigation network
+
+ completedMessage = Congratulations! The network is up and transmitting, and our shakedown testing is complete!
+
+ sortKey = 902
+
+ cancellable = true
+ declinable = true
+ autoAccept = false
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+ maxSimultaneous = 1
+ deadline = 0
+ targetBody = HomeWorld()
+
+ // ************ REWARDS ************
+ prestige = Trivial // 1.0x
+ advanceFunds = 0
+ rewardScience = 0
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 200
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ REQUIREMENT
+ {
+
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstNavSat-CA
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyNavSat-CA
+ invertRequirement = true
+ }
+
+ REQUIREMENT
+ {
+
+ name = CompleteContract
+ type = CompleteContract
+ contractType = EarlyNavNetwork3
+ invertRequirement = true
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyNavNetwork3
+ invertRequirement = true
+ }
+
+ // NavSat I
+ PARAMETER
+ {
+ name = NavSat1
+ type = VesselParameterGroup
+ define = NavSat I
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat II
+ }
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat III
+ }
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat IV
+ }
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have ElectricCharge after 2 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 50
+ title = Have a NavSatPayload of at least 50 units on the craft
+ disableOnStateChange = false
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ disableOnStateChange = false
+ minPeA = 700000
+ maxApA = 1200000
+ minInclination = 89
+ maxInclination = 91
+ maxEccentricity = 0.004
+ }
+ }
+
+ PARAMETER
+ {
+ name = NavSat2
+ type = VesselParameterGroup
+ define = NavSat II
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat III
+ }
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat IV
+ }
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have ElectricCharge after 2 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 50
+ title = Have a NavSatPayload of at least 50 units on the craft
+ disableOnStateChange = false
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ disableOnStateChange = false
+ minPeA = 700000
+ maxApA = 1200000
+ minInclination = 89
+ maxInclination = 91
+ maxEccentricity = 0.004
+ }
+ }
+
+ PARAMETER
+ {
+ name = NavSat3
+ type = VesselParameterGroup
+ define = NavSat III
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat I
+ }
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat IV
+ }
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have ElectricCharge after 2 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 50
+ title = Have a NavSatPayload of at least 50 units on the craft
+ disableOnStateChange = false
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ disableOnStateChange = false
+ minPeA = 700000
+ maxApA = 1200000
+ minInclination = 89
+ maxInclination = 91
+ maxEccentricity = 0.004
+ }
+ }
+
+ PARAMETER
+ {
+ name = NavSat4
+ type = VesselParameterGroup
+ define = NavSat IV
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = NavSat II
+ }
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have ElectricCharge after 2 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 50
+ title = Have a NavSatPayload of at least 50 units on the craft
+ disableOnStateChange = false
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ disableOnStateChange = false
+ minPeA = 700000
+ maxApA = 1200000
+ minInclination = 89
+ maxInclination = 91
+ maxEccentricity = 0.004
+ }
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2d
+
+ preWaitText = Testing time after network launch
+ waitingText = Performing shakedown testing
+ completionText = Shakedown testing completed
+ }
+
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = NavSat I
+ vessel = NavSat II
+ vessel = NavSat III
+ vessel = NavSat IV
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellites have been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavSat-CA.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavSat-CA.cfg
new file mode 100644
index 00000000000..f2ffbd1488c
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/EarlyNavSat-CA.cfg
@@ -0,0 +1,198 @@
+CONTRACT_TYPE
+{
+ name = EarlyNavSat-CA
+ title = Commercial Navigation Satellite (Early)
+ group = CommApp
+
+ description = Program: Early Commercial Applications
Type: Optional
The First Navigation Satellite contract proved that measuring signals from a satellite is an effective method for determining position data on the surface of the Earth. Expand on this capability to create the first rudimentary satellite-based precision location network. At least 3 satellites are required to locate a position on a sphere, with a fourth necessary to determine vertical position. Launch at least 4 more navigation satellites into polar orbits.
NOTE: The satellite will be destroyed upon completion of the contract. This simulates transfer of the payload back to the customer.
The reward of this contract will slowly increase over time but will be reset to 0 after each completion.
Current reward is at @rewardFactorPercent % of its nominal value. Elapsed/Expected Days: @elapsedDays / @RP0:expectedDays_EarlyComSat
Number of Contracts Completed: @index / unlimited
+ genericDescription = Put a satellite with the required amount of navigation satellite payload into the desired orbit.
+
+ synopsis = Launch a Navigation Satellite for a customer.
+
+ completedMessage = Success! The navigation satellite was launched into the proper orbit. Precision satellite-based navigation is one step closer to being a reality.
+
+ sortKey = 499
+
+ cancellable = true
+ declinable = true
+ autoAccept = false
+ minExpiry = 1
+ maxExpiry = 1
+ maxCompletions = 0
+ maxSimultaneous = 1
+ deadline = 0
+
+ targetBody = HomeWorld()
+
+
+ // ************ REWARDS ************
+ prestige = Trivial // 1.0x
+ advanceFunds = 0
+ rewardFunds = 0
+ rewardScience = 0
+ rewardReputation = Round(55 * Pow(@EarlyNavSat/Orbit/minApA / 6000000, 0.5) * Pow((@EarlyNavSat/HasNavSatPayload/minQuantity / 325), 0.5) * @rewardFactor, 1)
+ failureReputation = 0 // was @rewardReputation
+ failureFunds = 0
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstNavSat-CA
+ title = Complete First Navigation Satellite contract
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyNavNetwork3
+ invertRequirement = true
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyNavNetwork4
+ invertRequirement = true
+ }
+
+ DATA
+ {
+ type = int
+ index = $EarlyNavSat_Count + 0
+ }
+
+ BEHAVIOUR
+ {
+ name = IncrementTheCount
+ type = Expression
+
+ CONTRACT_OFFERED
+ {
+ RepeatSat_Completion = ($RepeatSat_Completion + 0) == 0 ? (UniversalTime() - @RP0:expectedDays_EarlyComSat * 86400) : ($RepeatSat_Completion + 0)
+ }
+ CONTRACT_COMPLETED_SUCCESS
+ {
+ EarlyNavSat_Count = $EarlyNavSat_Count + 1
+ RepeatSat_Completion = UniversalTime()
+ }
+ }
+
+ DATA
+ {
+ type = int
+ antiGrindCompletion = $RepeatSat_Completion == 0 ? (UniversalTime() - @RP0:expectedDays_EarlyComSat * 86400) : $RepeatSat_Completion
+ }
+
+ DATA
+ {
+ type = float
+ elapsedDays = Round((UniversalTime() - @antiGrindCompletion) / 86400.0)
+ rewardFactor = Log(Max(@elapsedDays / @RP0:expectedDays_EarlyComSat * 20 - 9, 1), 2) / 3.46
+ rewardFactorPercent = Round(@rewardFactor * 100, 1)
+ }
+
+ DATA
+ {
+ type = float
+ payload = Round(Random(100,300),10)
+ }
+
+ // ************ PARAMETERS ************
+
+ PARAMETER
+ {
+ name = EarlyNavSat
+ type = VesselParameterGroup
+ define = EarlyNavSat
+ dissassociateVesselsOnContractCompletion = true
+ title = Navigation Satellite (Early)
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = @/payload-0.1
+ title = Have a NavSatPayload of at least @/payload units on the craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minInclination = 89
+ maxInclination = 91
+ minPeA = Round(Random(300000, 400000), 10000)
+ minApA = Round(Random(500000, 1000000), 10000)
+ maxApA = @minApA + 50000
+ disableOnStateChange = true
+ title = Achieve orbit within the parameters
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2m
+
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+ }
+ }
+
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = EarlyNavSat
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellite has been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/FirstComSat-CA.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/FirstComSat-CA.cfg
new file mode 100644
index 00000000000..879911da036
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/FirstComSat-CA.cfg
@@ -0,0 +1,131 @@
+CONTRACT_TYPE
+{
+ name = FirstComSat-CA
+ title = First Communications Satellite
+ group = CommApp
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Commercial Applications
Type: Required
Communications around the globe are limited to line of sight because of the curvature of Earth. If we can launch a communications satellite into orbit, we can use it to transmit information to the opposite side of the world.
Historical example: Telstar 1 (78kg, Thor-Delta)
+
+ synopsis = Launch the first communication satellite
+
+ completedMessage = Congratulations! Satellite communications will forever change communications around the globe.
+
+ sortKey = 512
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 45
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ DATA
+ {
+ type = float
+ payload = 80
+ }
+
+ PARAMETER
+ {
+ name = FirstComSat
+ type = VesselParameterGroup
+ title = First Communications Satellite
+ define = FirstComSat
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasComSatPayload
+ type = HasResource
+ resource = ComSatPayload
+ minQuantity = @/payload-0.1
+ title = Have a ComSatPayload of at least @/payload units on the craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minInclination = 40
+ minPeA = 850000
+ minApA = 2500000
+ disableOnStateChange = true
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2m
+
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+
+ }
+ }
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = FirstComSat
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellite has been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/FirstMolniyaSat-CA.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/FirstMolniyaSat-CA.cfg
new file mode 100644
index 00000000000..2372836fd7c
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/FirstMolniyaSat-CA.cfg
@@ -0,0 +1,167 @@
+CONTRACT_TYPE
+{
+ name = FirstMolniyaSat-CA
+ title = First Molniya Orbit Satellite
+ group = CommApp
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Commercial Applications
Type: Required
A Molniya orbit is a type of highly elliptical orbit with an inclination of 63.4 degrees, an argument of perigee of -90 degrees, and an orbital period of one half of a sidereal day. Place a satellite into a Molniya orbit.
There will be an orbit showing in the map view and tracking station. You do not have to place the satellite into this orbit, but it is instead meant to show you where your perigee and apogee should approximately be located, but more importantly, it shows the proper shape of the orbit.
Historical example: Molniya 1-1 (1,600kg, Molniya)
+
+ synopsis = Launch a satellite into a Molniya orbit
+
+ completedMessage = Success! The Molniya orbit is highly eccentric and allows the satellite to spend most of its time over the high latitudes.
+
+ sortKey = 501
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 60
+ failureReputation = 0 // was @rewardReputation
+
+
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstComSat-CA
+ }
+
+ BEHAVIOUR
+ {
+ name = MolniyaOrbit
+ type = OrbitGenerator
+
+ FIXED_ORBIT
+ {
+ ORBIT
+ {
+ SMA = 26290000
+ ECC = 0.734842145
+ INC = 63.4
+ LPE = -90
+ LAN = 90
+ MNA = 0
+ EPH = 0
+ REF = 1
+ }
+ }
+ }
+
+ DATA
+ {
+ type = float
+ payload = 20
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ define = FirstMolniyaSat
+ title = Molniya Satellite
+
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasComSatPayload
+ type = HasResource
+ resource = ComSatPayload
+ minQuantity = @/payload-0.1
+ title = Have a ComSatPayload of at least @/payload units on the craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachOrbit
+ type = Orbit
+ title = Reach the correct orbit within the parameters. Note, the argument of periapsis values mean that the apogee needs to be high in the northern latitudes.
+ minInclination = 61.4
+ maxInclination = 65.4
+ minEccentricity = 0.7
+ minArgumentOfPeriapsis = 220
+ maxArgumentOfPeriapsis = 320
+ minPeA = 500000
+ minPeriod = 11h 56m 2s
+ maxPeriod = 12h 00m 2s
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2m
+
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+ }
+
+ }
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = FirstMolniyaSat
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellite has been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Commercial Applications 1/FirstNavSat-CA.cfg b/GameData/RP-1/Contracts/Commercial Applications 1/FirstNavSat-CA.cfg
new file mode 100644
index 00000000000..093d7bba68a
--- /dev/null
+++ b/GameData/RP-1/Contracts/Commercial Applications 1/FirstNavSat-CA.cfg
@@ -0,0 +1,124 @@
+CONTRACT_TYPE
+{
+ name = FirstNavSat-CA
+ title = First Navigational Satellite // Based on Transit 1 through 4
+ group = CommApp
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Commercial Applications
Type: Required
Through measuring the Doppler shift of radio signals transmitted from a satellite in a known orbit, it is possible for a receiver on the ground to establish their location, which would have many applications both civilian and military. To test the principle and develop receiver equipment, it is necessary to have a test navigational satellite in orbit.
Historical example: Transit 1B (119 kg, Thor-Ablestar).
+
+ synopsis = Launch the first navigation satellite
+
+ completedMessage = Congratulations! The satellite is in orbit and we have already begun to receive Doppler curves.
+
+ sortKey = 410
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
+
+ PARAMETER
+ {
+ name = FirstNavSat
+ type = VesselParameterGroup
+ title = First Navigational Satellite
+ define = FirstNavSat
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasNavSatPayload
+ type = HasResource
+ resource = NavSatPayload
+ minQuantity = 49.9
+ title = Have a NavSatPayload of at least 50 units on the craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minInclination = 50
+ minPeA = 350000
+ maxEccentricity = 0.26
+ disableOnStateChange = true
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2m
+
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+ }
+ }
+ BEHAVIOUR
+ {
+ name = TransferVessel
+ type = DestroyVessel
+ onState = CONTRACT_SUCCESS
+ vessel = FirstNavSat
+ }
+
+ BEHAVIOUR
+ {
+ name = VesselDestroyed
+ type = DialogBox
+ DIALOG_BOX
+ {
+ title = Vessel Ownership Transferred
+ condition = CONTRACT_SUCCESS
+ position = CENTER
+ width = 0.5
+ TEXT
+ {
+ text = The contract has been completed successfully and the satellite has been transferred to the customer.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Crewed/FirstOrbitRecovery.cfg b/GameData/RP-1/Contracts/Earth Crewed/FirstOrbitRecovery.cfg
index d1e5098f4e4..fcdc2fa08bb 100644
--- a/GameData/RP-1/Contracts/Earth Crewed/FirstOrbitRecovery.cfg
+++ b/GameData/RP-1/Contracts/Earth Crewed/FirstOrbitRecovery.cfg
@@ -56,6 +56,13 @@ CONTRACT_TYPE
type = ProgramActive
program = CrewedOrbit
}
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
}
REQUIREMENT
diff --git a/GameData/RP-1/Contracts/Earth Observation 1/EOSCherenkov.cfg b/GameData/RP-1/Contracts/Earth Observation 1/EOSCherenkov.cfg
new file mode 100644
index 00000000000..4a877020d53
--- /dev/null
+++ b/GameData/RP-1/Contracts/Earth Observation 1/EOSCherenkov.cfg
@@ -0,0 +1,125 @@
+CONTRACT_TYPE
+{
+ name = EOSCherenkov
+ title = Cherenkov Detection Beyond LEO
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Required
Launch a satellite into an elliptical orbit with a new cosmic ray detector called a Cherenkov counter. This device is a different type of cosmic ray detector specifically calibrated for high-energy particles like neutrinos.
Make sure your craft contains a Cherenkov Counter and return 50% of the available science from High Earth Orbit. Science does not have to be collected in only 1 flight.
Historical example: Explorer 11 (37kg, Juno II)
+
+ synopsis = Launch a scientific satellite into an elliptical orbit with Cherenkov Counter experiment.
+
+ completedMessage = Congratulations! The satellite you sent into orbit has returned interesting results about the high-energy particle environment around Earth.
+
+ sortKey = 402
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+ REQUIREMENT
+ { name = CompleteContract
+ type = CompleteContract
+ contractType = EOSCosmicRay1
+ title = Completed first cosmic ray satellite
+ }
+
+ PARAMETER
+ {
+ name = ScienceSatCherenkov
+ type = VesselParameterGroup
+ title = Cherenkov detector
+ define = ScienceSatCherenkov
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Survive in orbit for at least 45 days and transmit science
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for 45 days
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ title = Orbit requirements
+ minEccentricity = 0.75
+ minPeA = 200000
+ maxPeA = 500000
+ disableOnStateChange = true
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 45d
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceHigh
+ experiment = RP0Cherenkov
+ fractionComplete = 0.5
+ title = Transmit 50% of Cherenkov science from High Earth Orbit
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Observation 1/EOSCorona.cfg b/GameData/RP-1/Contracts/Earth Observation 1/EOSCorona.cfg
new file mode 100644
index 00000000000..6a3c2bd7fca
--- /dev/null
+++ b/GameData/RP-1/Contracts/Earth Observation 1/EOSCorona.cfg
@@ -0,0 +1,135 @@
+CONTRACT_TYPE
+{
+ name = EOSCorona
+ title = Dedicated Earth Imaging Satellite
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Required
Taking photographic images from space, with a powerful enough lens, can provide highly detailed information about many things. When used for intelligence purposes, an eye in the sky is an invaluable tool for gathering information about geopolitical rivals. These types of satellites also have numerous peaceful purposes, including crop monitoring, observing deforestation, and providing indicators for areas requiring humanitarian aid. Make sure your craft contains an Early Film Camera, and a system to return the film for processing. Collection of all available science will require multiple launches due to film storage limitations onboard the vehicle.
Real life examples: Discoverer/Keyhole-1 (780kg, Thor-Agena)
+
+ synopsis = Launch the first dedicated imagery satellite.
+
+ completedMessage = Well done! Never before has so much of the Earth been photographed at one time. This new capability will change the way the world is viewed forever.
+
+ sortKey = 402
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 80
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+ REQUIREMENT
+ { name = CompleteContract
+ type = CompleteContract
+ contractType = first_OrbitRecover
+ title = Completed First Orbit Recovery
+ }
+
+ PARAMETER
+ {
+ name = Corona1
+ type = VesselParameterGroup
+ title = First high resolution imagery satellite
+ define = EOSCorona
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Collect imagery from orbit
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for one hour
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxApA = 200000
+ minInclination = 70
+ maxInclination = 100
+ disableOnStateChange = true
+ title = Orbit requirements
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 1h
+
+ preWaitText = Achieve desired orbit
+ waitingText = Collect imagery
+ completionText = Imagery collection complete
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ experiment = RP0photos1a
+ title = Collect a full reel of imagery from orbit
+ }
+
+ PARAMETER
+ {
+ name = ReturnHome
+ type = RP1ReturnHome
+ title = Return the film to the surface
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Observation 1/EOSCoronaRep.cfg b/GameData/RP-1/Contracts/Earth Observation 1/EOSCoronaRep.cfg
new file mode 100644
index 00000000000..afe98a02cc8
--- /dev/null
+++ b/GameData/RP-1/Contracts/Earth Observation 1/EOSCoronaRep.cfg
@@ -0,0 +1,157 @@
+CONTRACT_TYPE
+{
+ name = EOSCoronaRep
+ title = Improved Earth Imaging Satellite
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Optional
With orbital imagery now a proven capability, send up a follow-on early-generation imagery satellite for a longer duration in orbit. This will allow the opportunity to collect far more data with repeat passes over the same points on the surface. Make sure your craft contains an Improved Film Camera, and a system to return the film canister for processing. Collection of all available science will require multiple launches due to film storage limitations onboard the vehicle.
Number of Contracts Completed: @index / @maxCompletions
Historical example: CORONA/Keyhole-4 (1,500kg, Thor-Agena)
+
+ synopsis = Launch dedicated imagery satellites for longer missions.
+
+ completedMessage = Longterm imagery satellites are now a proven technology.
+
+ sortKey = 403
+
+ cancellable = true
+ declinable = false
+ autoAccept = false
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 8
+ maxSimultaneous = 1
+ deadline = 0
+
+ targetBody = HomeWorld()
+
+ // ************ REWARDS ************
+ prestige = Trivial // 1.0x
+ advanceFunds = 0
+ rewardScience = 0
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 80
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+ REQUIREMENT
+ { name = CompleteContract
+ type = CompleteContract
+ contractType = EOSCorona
+ title = Completed Dedicated Earth Imaging Satellite
+ }
+
+ DATA
+ {
+ type = int
+ index = $RepeatCoronaSats_Count
+ }
+
+ BEHAVIOUR
+ {
+ name = IncrementTheCount
+ type = Expression
+
+ CONTRACT_COMPLETED_SUCCESS
+ {
+ RepeatCoronaSats_Count = $RepeatCoronaSats_Count + 1
+ }
+ }
+
+ //************* PARAMETERS ***************
+ PARAMETER
+ {
+ name = Corona2
+ type = VesselParameterGroup
+ title = Higher resolution imagery satellite
+ define = Corona2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Remain in orbit to gather imagery
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Carry Electric Charge for 2 days
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = PartValidation
+ type = PartValidation
+
+ VALIDATE
+ {
+ MODULE
+ {
+ name = Experiment
+ experimentID = RP0photos2
+ }
+ }
+ title = Carry an Improved Film Camera
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ title = Orbit requirements
+ maxApA = 445000
+ maxEccentricity = 0.035
+ minInclination = 70
+ maxInclination = 100
+ disableOnStateChange = true
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+
+ duration = 2d //reflects KH-4 mission length
+
+ preWaitText = Achieve desired orbit
+ waitingText = Commencing collection
+ completionText = Imagery collection complete
+ }
+
+ PARAMETER
+ {
+ name = ReturnHome
+ type = RP1ReturnHome
+ title = Return the film for processing
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Observation 1/EOSCosmicRay1.cfg b/GameData/RP-1/Contracts/Earth Observation 1/EOSCosmicRay1.cfg
new file mode 100644
index 00000000000..455cd7383e8
--- /dev/null
+++ b/GameData/RP-1/Contracts/Earth Observation 1/EOSCosmicRay1.cfg
@@ -0,0 +1,128 @@
+CONTRACT_TYPE
+{
+ name = EOSCosmicRay1
+ title = Cosmic Ray Satellite Beyond LEO
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Required
The satellite launched in the Early Satellites program returned valuable data about the space near Earth. Send a satellite to High Earth Orbit to detect cosmic rays so that we may better ascertain the shape and strength of the cosmic ray environment around Earth. Early scientific satellites also contained still-frame and video cameras to take photos of Earth from entirely new perspectives.&br;&br;Make sure your craft contains a Cosmic Ray Science experiment (Geiger-Muller Counter or Scintillation Counter) and an Early TV camera and return 6-week's worth of Cosmic Ray Science from High Earth Orbit.&br;&br;Historical example: Explorer 6 (64kg, Thor-Able)
+
+ synopsis = Launch a Scientific Satellite into an eccentric orbit of Earth with Cosmic Ray Science experiment and an Early TV camera.
+
+ completedMessage = Congratulations! The satellite you sent into orbit has returned extremely valuable data that has helped characterize the cosmic ray environment around Earth.
+
+ sortKey = 402
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+
+ PARAMETER
+ {
+ name = ScienceSatCosmicRay1
+ type = VesselParameterGroup
+ title = Cosmic ray detector
+ define = ScienceSatCosmicRay1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Survive in orbit for 45 days and transmit science
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for 45 days
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minApA = 36000000
+ minPeA = 200000
+ disableOnStateChange = true
+ title = Orbit requirements
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 45d
+ preWaitText = Check for stable orbit
+ waitingText = Collecting science...
+ completionText = Science collected.
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceHigh
+ experiment = RP0cosmicRay1
+ fractionComplete = 0.25
+ title = Transmit 25% of Cosmic Ray Science from High Earth Orbit.
+ }
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceHigh
+ experiment = RP0visibleImaging1
+ fractionComplete = 0.5
+ title = Transmit video images from High Earth Orbit.
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Observation 1/EOSGrav1.cfg b/GameData/RP-1/Contracts/Earth Observation 1/EOSGrav1.cfg
new file mode 100644
index 00000000000..0624d80d3b4
--- /dev/null
+++ b/GameData/RP-1/Contracts/Earth Observation 1/EOSGrav1.cfg
@@ -0,0 +1,120 @@
+CONTRACT_TYPE
+{
+ name = EOSGrav1
+ title = Gravimetric Satellite
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Optional
In this program satellites have been launched to measure numerous types of experimental data, observing Earth and the surrounding space environment. Launch a new satellite to measure the gravimetric field of earth and its effect on orbiting satellites.
Make sure your craft contains an Orbital Perturbation experiment. Launch it into an inclined orbit and return 2-months worth of science.
Historical example: ANNA 1B (161kg, Thor-Ablestar)
+
+ synopsis = Launch the first dedicated geodetic satellite.
+
+ completedMessage = Interesting, the gravity field of Earth is far less uniform than expected.
+
+ sortKey = 402
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+
+ PARAMETER
+ {
+ name = ScienceSatGrav1
+ type = VesselParameterGroup
+ title = Gravimetric satellite
+ define = ScienceSatGrav1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Survive in orbit for 2 months and transmit science
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for 60 days
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxApA = 1200000
+ minPeA = 1000000
+ minInclination = 50
+ maxEccentricity = 0.003
+ disableOnStateChange = true
+ title = Orbit requirements
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 60d
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ fractionComplete = 0.016
+ experiment = RP0orbitalPurturbation1
+ title = Transmit 2 month's worth (1.6%) of Orbital Perturbation science from Low Earth Orbit
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Observation 1/EOSIRRad1.cfg b/GameData/RP-1/Contracts/Earth Observation 1/EOSIRRad1.cfg
new file mode 100644
index 00000000000..291ebc055a7
--- /dev/null
+++ b/GameData/RP-1/Contracts/Earth Observation 1/EOSIRRad1.cfg
@@ -0,0 +1,418 @@
+CONTRACT_TYPE
+{
+ name = EOSIRRad1
+ title = Infrared Radiometry Satellite
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Required
Weather forecasting today would be impossible without the numerous weather satellites constantly observing our atmosphere from orbit. Launch the very first dedicated weather satellite to measure temperatures in the atmosphere and correlate those with real-time video.
Make sure your craft contains an Infrared Radiometer 1 experiment and an Early TV camera.
Historical example: TIROS-1 (120kg, Thor-Able)
+
+ synopsis = Launch the first weather satellite with the Infrared Radiometry experiment and an Early TV camera.
+
+ completedMessage = Success! The images provided from this satellite have proven that weather satellites can be extremely effective in helping meteorologists predict the weather.
+
+ sortKey = 401
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+
+ PARAMETER
+ {
+ name = ScienceSatIRRad
+ type = VesselParameterGroup
+ title = First weather satellite
+ define = ScienceSatIRRad
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Survive in orbit for 7 days and transmit science
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for 7 days
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxApA = 1000000
+ minPeA = 500000
+ maxEccentricity = 0.005
+ disableOnStateChange = true
+ title = Orbit requirements
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 7d
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ experiment = RP0infraredRad1
+ fractionComplete = 0.5
+ title = Transmit 50% of infrared weather data from low orbit
+ }
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ experiment = RP0visibleImaging1
+ fractionComplete = 0.5
+ title = Transmit corresponding video images from low orbit
+ }
+ }
+ }
+}
+
+CONTRACT_TYPE
+{
+ name = EOSIRRad2
+ title = Infrared Radiometry Satellite, Follow-On
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Optional
After the success of your first weather satellite, the US Weather Bureau wants additional satellites available for more timely weather observations with better coverage of Earth. Launch an additional weather satellite to fulfill the Weather Bureau's request.
Make sure your craft contains an Infrared Radiometry 1 experiment and an Early TV camera. Science requirements can be met over multiple launches.
Historical examples: TIROS-2 through TIROS-8.
+
+ synopsis = Launch the first weather satellite with the Infrared Radiometry experiment and an Early TV camera.
+
+ completedMessage = Success! The images provided from this satellite have proven that weather satellites can be extremely effective in helping meteorologists predict the weather.
+
+ sortKey = 402
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+ REQUIREMENT
+ { name = CompleteContract
+ type = CompleteContract
+ contractType = EOSIRRad1
+ title = Completed first weather satellite
+ }
+
+ PARAMETER
+ {
+ name = ScienceSatIRRad
+ type = VesselParameterGroup
+ title = Additional weather satellite
+ define = ScienceSatIRRad
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Survive in orbit for 14 days and transmit science
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for 14 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PartValidation
+ type = PartValidation
+
+ VALIDATE
+ {
+ MODULE
+ {
+ name = Experiment
+ experimentID = RP0visibleImaging1
+ }
+ }
+ title = Carry an Early TV camera
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxApA = 1000000
+ minPeA = 500000
+ maxEccentricity = 0.005
+ minInclination = 50
+ disableOnStateChange = true
+ title = Orbit requirements
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 14d
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ experiment = RP0infraredRad1
+ fractionComplete = 0.75
+ minSubjectsToComplete = 4
+ title = Transmit 75% of LEO infrared radiometry data from at least 4 biomes
+ }
+ }
+ }
+}
+
+CONTRACT_TYPE
+{
+ name = EOSIRRad3
+ title = Infrared Radiometry Satellite, Follow-On
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Optional
After the success of your first weather satellite, the US Weather Bureau wants additional satellites available for more timely weather observations with better coverage of Earth. Launch an additional weather satellite to fulfill the Weather Bureau's request.
<Make sure your craft contains an Infrared Radiometry 1 experiment and an Early TV camera. Science requirements can be met over multiple launches.
Historical example: TIROS-9.
+
+ synopsis = Launch the first weather satellite with the Infrared Radiometry experiment and an Early TV camera.
+
+ completedMessage = Success! The images provided from this satellite have proven that weather satellites can be extremely effective in helping meteorologists predict the weather.
+
+ sortKey = 403
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+ REQUIREMENT
+ { name = CompleteContract
+ type = CompleteContract
+ contractType = EOSIRRad2
+ title = Completed first additional weather satellite
+ }
+
+ PARAMETER
+ {
+ name = ScienceSatIRRad
+ type = VesselParameterGroup
+ title = Additional weather satellite
+ define = ScienceSatIRRad
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Survive in orbit for 30 days and transmit science
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for 30 days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PartValidation
+ type = PartValidation
+
+ VALIDATE
+ {
+ MODULE
+ {
+ name = Experiment
+ experimentID = RP0visibleImaging1
+ }
+ }
+ title = Carry an Early TV camera
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxApA = 1000000
+ minPeA = 500000
+ maxEccentricity = 0.005
+ minInclination = 85
+ maxInclination = 95
+ disableOnStateChange = true
+ title = Orbit requirements
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 30d
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ experiment = RP0infraredRad1
+ fractionComplete = 0.9
+ minSubjectsToComplete = 8
+ title = Transmit 90% of LEO infrared radiometry data from at least 8 biomes
+ }
+
+
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Observation 1/EOSMagScan1.cfg b/GameData/RP-1/Contracts/Earth Observation 1/EOSMagScan1.cfg
new file mode 100644
index 00000000000..f96b31be36e
--- /dev/null
+++ b/GameData/RP-1/Contracts/Earth Observation 1/EOSMagScan1.cfg
@@ -0,0 +1,135 @@
+CONTRACT_TYPE
+{
+ name = EOSMagScan1
+ title = Magnetometry Satellite
+ group = EOS
+ agent = Federation Aeronautique Internationale
+
+ description = Program: Early Earth Observation Satellites
Type: Required
Anyone that has ever used a compass is familiar with the magnetic fields that encapsulate Earth. Launch a satellite to better charaterize the strength and direction of the magnetic field, and determine how far into space its influence is felt.
Make sure your craft contains a Magnetic Scan experiment. Launch it into an elliptical orbit and return 2-weeks worth of science from both Low and High Earth Orbit.
Historical example: IMP-A (138kg, Thor-Delta)
+
+ synopsis = Launch the first dedicated magnetometry satellite.
+
+ completedMessage = Our scientists now better understand the magnetosphere surrounding Earth and, combined with previous data, have determined the existance of a standing shock wave in the solar wind around the magnetic field.
+
+ sortKey = 402
+
+ 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
+ rewardFunds = 0
+ failureFunds = 0
+ rewardReputation = 40
+ failureReputation = 0 // was @rewardReputation
+
+ // ************ REQUIREMENTS ************
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyEOS
+ }
+
+ REQUIREMENT
+ { name = CompleteContract
+ type = CompleteContract
+ contractType = EOSCosmicRay1
+ title = Completed first cosmic ray satellite
+ }
+
+ PARAMETER
+ {
+ name = ScienceSatMagScan1
+ type = VesselParameterGroup
+ title = First magnetrometry satellite
+ define = ScienceSatMagScan1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ title = Launch a new vessel
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Uncrewed
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = OrbitSequence
+ type = Sequence
+ title = Survive in orbit for 14 days and transmit science
+
+ PARAMETER
+ {
+ name = HasPower
+ type = HasResource
+ resource = ElectricCharge
+ minQuantity = 1.0
+ title = Craft must have Electric Charge for 14 days
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 3000000
+ maxApA = 250000000
+ minEccentricity = 0.75 //actual orbit was .89
+ disableOnStateChange = true
+ title = Orbit requirements
+ }
+
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 14d
+ preWaitText = Check for stable orbit
+ waitingText = Checking for stable orbit
+ completionText = Stable orbit: Confirmed
+ }
+
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ fractionComplete = 0.5
+ experiment = RP0magScan1
+ title = Transmit 50% of Magnetic Scan science from Low Earth Orbit
+ }
+ PARAMETER
+ {
+ name = RP1CollectScience
+ type = RP1CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceHigh
+ fractionComplete = 0.5
+ experiment = RP0magScan1
+ title = Transmit 25% of Magnetic Scan science from High Earth Orbit
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork3.cfg b/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork3.cfg
index 013764423df..6d025182cef 100644
--- a/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork3.cfg
+++ b/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork3.cfg
@@ -36,16 +36,48 @@ CONTRACT_TYPE
REQUIREMENT
{
- name = ProgramActive
- type = ProgramActive
- program = CommNetwork
+ name = Any
+ type = Any
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = CommNetwork
+ }
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
}
REQUIREMENT
{
- name = CompleteContract
- type = CompleteContract
- contractType = FirstComSat
+ name = Any
+ type = Any
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstComSat
+ }
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstComSat-CA
+ }
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyComSat-CA
+ invertRequirement = true
}
REQUIREMENT
diff --git a/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork4.cfg b/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork4.cfg
index 1b513dec43f..fa23b485083 100644
--- a/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork4.cfg
+++ b/GameData/RP-1/Contracts/Earth Satellites/EarlyComNetwork4.cfg
@@ -40,16 +40,48 @@ CONTRACT_TYPE
REQUIREMENT
{
- name = ProgramActive
- type = ProgramActive
- program = CommNetwork
+ name = Any
+ type = Any
+
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = CommNetwork
+ }
+ REQUIREMENT
+ {
+ name = ProgramActive
+ type = ProgramActive
+ program = EarlyCommApp
+ }
}
REQUIREMENT
{
- name = CompleteContract
- type = CompleteContract
- contractType = FirstComSat
+ name = Any
+ type = Any
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstComSat
+ }
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = FirstComSat-CA
+ }
+ }
+
+ REQUIREMENT
+ {
+ name = AcceptContract
+ type = AcceptContract
+ contractType = EarlyComSat-CA
+ invertRequirement = true
}
REQUIREMENT
diff --git a/GameData/RP-1/Contracts/Earth Satellites/FirstMolniyaSat.cfg b/GameData/RP-1/Contracts/Earth Satellites/FirstMolniyaSat.cfg
index 8cf5c5252d0..c81ecfb58ae 100644
--- a/GameData/RP-1/Contracts/Earth Satellites/FirstMolniyaSat.cfg
+++ b/GameData/RP-1/Contracts/Earth Satellites/FirstMolniyaSat.cfg
@@ -45,13 +45,17 @@ CONTRACT_TYPE
name = ProgramActive
type = ProgramActive
program = TargetedSats
+
}
REQUIREMENT
{
+
name = CompleteContract
type = CompleteContract
contractType = FirstComSat
+
+
}
BEHAVIOUR
@@ -117,7 +121,7 @@ CONTRACT_TYPE
{
name = ReachOrbit
type = Orbit
- title = Reach the correct orbit within the parameters. Note: The argument of periapsis values mean that the apogee needs to be high in the northern latitudes.
+ title = Reach the correct orbit within the parameters. Note: the argument of periapsis values mean that the apogee needs to be high in the northern latitudes.
minInclination = 61.4
maxInclination = 65.4
minEccentricity = 0.7
diff --git a/GameData/RP-1/Contracts/Earth Satellites/FirstTundraSat.cfg b/GameData/RP-1/Contracts/Earth Satellites/FirstTundraSat.cfg
index f836eb3ce40..ba66260cf05 100644
--- a/GameData/RP-1/Contracts/Earth Satellites/FirstTundraSat.cfg
+++ b/GameData/RP-1/Contracts/Earth Satellites/FirstTundraSat.cfg
@@ -7,7 +7,7 @@ CONTRACT_TYPE
tag = exclude_EarlySatellite
- description = Program: Targeted Satellites
Type: CAPSTONE
A Tundra orbit is a highly elliptical geosynchronous orbit (note: not geostationary orbit) with a high inclination (usually near 63.4) and an orbital period of one sidereal day. A satellite placed in this orbit spends most of its time over a chosen area of the Earth, a phenomenon known as apogee dwell. The ground track of a satellite in a tundra orbit is a closed figure eight. An extreme version of this orbit puts the perigee around 1000 km and the apogee around 70,000 km. The orbit in this contract is actually using data from the Sirius satellites, the only known satellites using a Tundra orbit.&br;&br;Place a satellite into a Tundra orbit.&br;&br;There will be an orbit showing in the map view and tracking station. You do not have to place the satellite into this orbit, but it is instead meant to show you where your perigee and apogee should approximately be located, but more importantly, it shows the proper shape of the orbit.
+ description = Program: Targeted Satellites
Type: CAPSTONE
A Tundra orbit is a highly elliptical geosynchronous orbit (note: not geostationary orbit) with a high inclination (usually near 63.4) and an orbital period of one sidereal day. A satellite placed in this orbit spends most of its time over a chosen area of the Earth, a phenomenon known as apogee dwell. The ground track of a satellite in a tundra orbit is a closed figure eight. An extreme version of this orbit puts the perigee around 1000 km and the apogee around 70,000 km. The orbit in this contract is actually using data from the Sirius satellites, the only known satellites that used a Tundra orbit.&br;&br;Place a satellite into a Tundra orbit.&br;&br;There will be an orbit showing in the map view and tracking station. You do not have to place the satellite into this orbit, but it is instead meant to show you where your perigee and apogee should approximately be located, but more importantly, it shows the proper shape of the orbit.
synopsis = Launch a satellite into a Tundra Orbit
@@ -45,6 +45,7 @@ CONTRACT_TYPE
name = ProgramActive
type = ProgramActive
program = TargetedSats
+
}
REQUIREMENT
@@ -52,8 +53,8 @@ CONTRACT_TYPE
name = CompleteContract
type = CompleteContract
contractType = FirstMolniyaSat
- }
+ }
BEHAVIOUR
{
diff --git a/GameData/RP-1/Contracts/Groups.cfg b/GameData/RP-1/Contracts/Groups.cfg
index 4a61ca9f6a7..ab9c6e90e53 100644
--- a/GameData/RP-1/Contracts/Groups.cfg
+++ b/GameData/RP-1/Contracts/Groups.cfg
@@ -63,12 +63,28 @@ CONTRACT_GROUP
sortKey = 16
agent = Satellites
}
+ CONTRACT_GROUP
+ {
+ name = EOS
+ displayName = Earth Observation Satellites
+ minVersion = 1.12.2
+ sortKey = 17
+ agent = Satellites
+ }
CONTRACT_GROUP
{
name = CommNetwork
displayName = Communications Network
minVersion = 1.12.2
- sortKey = 17
+ sortKey = 18
+ agent = Satellites
+ }
+ CONTRACT_GROUP
+ {
+ name = CommApp
+ displayName = Commercial Application Satellites
+ minVersion = 1.12.2
+ sortKey = 19
agent = Satellites
}
CONTRACT_GROUP
@@ -76,7 +92,7 @@ CONTRACT_GROUP
name = GEOCommNetwork
displayName = Geostationary Communications Network
minVersion = 1.12.2
- sortKey = 18
+ sortKey = 20
agent = Satellites
}
CONTRACT_GROUP
@@ -84,7 +100,7 @@ CONTRACT_GROUP
name = EarlyLunarProbes
displayName = Early Lunar Probes
minVersion = 1.12.2
- sortKey = 19
+ sortKey = 21
agent = Exploration
}
CONTRACT_GROUP
@@ -92,7 +108,7 @@ CONTRACT_GROUP
name = UncrewedLunarSurface
displayName = Uncrewed Lunar Surface Exploration
minVersion = 1.12.2
- sortKey = 20
+ sortKey = 22
agent = Exploration
}
CONTRACT_GROUP
@@ -100,7 +116,7 @@ CONTRACT_GROUP
name = EarlyInnerPlanetProbes
displayName = Early Inner Planet Probes
minVersion = 1.12.2
- sortKey = 21
+ sortKey = 23
agent = Exploration
}
CONTRACT_GROUP
@@ -108,7 +124,7 @@ CONTRACT_GROUP
name = CrewedOrbit
displayName = Crewed Orbit
minVersion = 1.12.2
- sortKey = 22
+ sortKey = 24
agent = Federation Aeronautique Internationale
}
CONTRACT_GROUP
@@ -116,7 +132,7 @@ CONTRACT_GROUP
name = CrewedOrbitAdv
displayName = Advanced Crewed Orbit
minVersion = 1.12.2
- sortKey = 23
+ sortKey = 25
agent = Federation Aeronautique Internationale
}
CONTRACT_GROUP
@@ -124,7 +140,7 @@ CONTRACT_GROUP
name = EarlySpacePlanes
displayName = Spaceplane Development
minVersion = 1.12.2
- sortKey = 24
+ sortKey = 26
agent = Exploration
}
CONTRACT_GROUP
@@ -132,7 +148,7 @@ CONTRACT_GROUP
name = CrewedLunar
displayName = Crewed Lunar Exploration
minVersion = 1.12.2
- sortKey = 25
+ sortKey = 27
agent = Federation Aeronautique Internationale
}
CONTRACT_GROUP
@@ -140,7 +156,7 @@ CONTRACT_GROUP
name = EarthSpaceStation
displayName = Earth Space Station
minVersion = 1.12.2
- sortKey = 26
+ sortKey = 28
agent = Stations
}
CONTRACT_GROUP
@@ -148,7 +164,7 @@ CONTRACT_GROUP
name = MartianSurfaceExploration
displayName = Mars Surface Exploration
minVersion = 1.12.2
- sortKey = 27
+ sortKey = 29
agent = Exploration
}
CONTRACT_GROUP
@@ -156,7 +172,7 @@ CONTRACT_GROUP
name = VenusSurfaceExp
displayName = Venus Surface Exploration
minVersion = 1.12.2
- sortKey = 28
+ sortKey = 30
agent = Exploration
}
CONTRACT_GROUP
@@ -165,14 +181,14 @@ CONTRACT_GROUP
displayName = Small Bodies Flyby
agent = Exploration
minVersion = 1.12.2
- sortKey = 29
+ sortKey = 31
}
CONTRACT_GROUP
{
name = MercuryExploration
displayName = Mercury Exploration
minVersion = 1.12.2
- sortKey = 30
+ sortKey = 32
agent = Exploration
}
CONTRACT_GROUP
@@ -180,7 +196,7 @@ CONTRACT_GROUP
name = AsteroidExploration
displayName = Asteroid Exploration
minVersion = 1.12.2
- sortKey = 31
+ sortKey = 33
agent = Exploration
}
CONTRACT_GROUP
@@ -188,7 +204,7 @@ CONTRACT_GROUP
name = JupiterObservation
displayName = Jupiter Observation
minVersion = 1.12.2
- sortKey = 32
+ sortKey = 34
agent = Exploration
}
CONTRACT_GROUP
@@ -196,7 +212,7 @@ CONTRACT_GROUP
name = JupiterMoonLandings
displayName = Jovian Moon Landings
minVersion = 1.12.2
- sortKey = 33
+ sortKey = 35
agent = Surveys
}
CONTRACT_GROUP
@@ -204,7 +220,7 @@ CONTRACT_GROUP
name = SaturnObservation
displayName = Saturn Observation
minVersion = 1.12.2
- sortKey = 34
+ sortKey = 36
agent = Exploration
}
CONTRACT_GROUP
@@ -212,7 +228,7 @@ CONTRACT_GROUP
name = SaturnMoonLandings
displayName = Saturine Moon Landings
minVersion = 1.12.2
- sortKey = 35
+ sortKey = 37
agent = Surveys
}
CONTRACT_GROUP
@@ -220,7 +236,7 @@ CONTRACT_GROUP
name = OuterPlanetFlyby
displayName = Outer Planet Flybys
minVersion = 1.12.2
- sortKey = 36
+ sortKey = 38
agent = Exploration
}
CONTRACT_GROUP
@@ -228,7 +244,7 @@ CONTRACT_GROUP
name = OuterGasGiantSurvey
displayName = Outer Gas Giant Survey
minVersion = 1.12.2
- sortKey = 37
+ sortKey = 39
agent = Surveys
}
CONTRACT_GROUP
@@ -236,7 +252,7 @@ CONTRACT_GROUP
name = PlutoLandings
displayName = Plutonian Landings
minVersion = 1.12.2
- sortKey = 38
+ sortKey = 40
agent = Surveys
}
CONTRACT_GROUP
@@ -244,7 +260,7 @@ CONTRACT_GROUP
name = LunarHabitation
displayName = Lunar Habitation
minVersion = 1.12.2
- sortKey = 39
+ sortKey = 41
agent = Base Construction
}
CONTRACT_GROUP
@@ -252,7 +268,7 @@ CONTRACT_GROUP
name = CrewedMarsExp
displayName = Crewed Mars Exploration
minVersion = 1.12.2
- sortKey = 40
+ sortKey = 42
agent = Exploration
}
CONTRACT_GROUP
@@ -260,7 +276,7 @@ CONTRACT_GROUP
name = CrewedVenusExp
displayName = Crewed Venus Exploration
minVersion = 1.12.2
- sortKey = 41
+ sortKey = 43
agent = Exploration
}
CONTRACT_GROUP
@@ -268,7 +284,7 @@ CONTRACT_GROUP
name = CrewedExploration
displayName = Crewed Solar System Exploration
minVersion = 1.12.2
- sortKey = 42
+ sortKey = 44
agent = Exploration
}
CONTRACT_GROUP
@@ -276,7 +292,7 @@ CONTRACT_GROUP
name = Records
displayName = Records
minVersion = 1.12.2
- sortKey = 43
+ sortKey = 45
agent = Federation Aeronautique Internationale
}
CONTRACT_GROUP
@@ -284,7 +300,7 @@ CONTRACT_GROUP
name = HumanRecords
displayName = Human Records
minVersion = 1.12.2
- sortKey = 44
+ sortKey = 46
agent = Federation Aeronautique Internationale
}
diff --git a/GameData/RP-1/Parts/Science/CD01-CherenkovCounter.cfg b/GameData/RP-1/Parts/Science/CD01-CherenkovCounter.cfg
new file mode 100644
index 00000000000..2924ac737cd
--- /dev/null
+++ b/GameData/RP-1/Parts/Science/CD01-CherenkovCounter.cfg
@@ -0,0 +1,52 @@
+//**********************************************************************************
+// Cherenkov Detector CRT
+//
+// Based on the Cherenkov Counter Cosmic Ray Telescopes used on many spacecraft
+// for more detailed study of the Cosmic Energy particles.
+//
+// Part originally created by CobaltWolf as the Pioneer 10 Cosmic Ray Telescope
+//
+//**********************************************************************************
+
+PART
+{
+ name = RP0Cherenkov
+ module = Part
+ author = SierraHotel
+
+ RSSROConfig = True
+
+ MODEL
+ {
+ model = RP-1/Parts/Science/Assets/bluedog_geiger
+ }
+ scale = 1.0
+ rescaleFactor = 1.2
+ node_attach = 0.0, 0.0, 0.0, 0.0, -1.0 , 0.0
+ TechRequired = basicScience
+ entryCost = 0
+ cost = 250
+ category = Science
+ subcategory = 0
+ title = CD01 - Cherenkov Cosmic Ray Detector
+ manufacturer = Realism Overhaul
+ description = The Cherenkov detector is another type of high energy particle detector, using a Cherenkov detector in combination with a scintillation detector to further observe and characterize high-energy gamma rays. It measures the arrival directions and energies of gamma rays and highly-energetic charged particles from cosmic radiation. This detailed measurement can allow for more detailed analysis of the radiation environments in interplanetary space.
+ attachRules = 0,1,0,0,1
+ mass = 0.0065 // Source from NASA SP-3028 Space Measurements Survey Instruments and Spacecraft
+ dragModelType = default
+ maximum_drag = 0.2
+ minimum_drag = 0.2
+ angularDrag = 1
+ crashTolerance = 8
+ maxTemp = 1073.15
+ PhysicsSignificance = 1
+ bulkheadProfiles = srf
+
+ tags = cosmic radiation scanner rad science detector muller
+
+}
+
+@PART[RP0Cherenkov]:NEEDS[!Kerbalism]:AFTER[RP-0]
+{
+ @description ^=:$: \n\nLevel 1 Cherenkov detector device. Can gather 100% of Cherenkov high-erergy particle science.
+}
diff --git a/GameData/RP-1/Programs/Programs.cfg b/GameData/RP-1/Programs/Programs.cfg
index c560489fee7..f08829c61a0 100644
--- a/GameData/RP-1/Programs/Programs.cfg
+++ b/GameData/RP-1/Programs/Programs.cfg
@@ -246,7 +246,8 @@ RP0_PROGRAM
RP0_PROGRAM
{
name = TargetedSats
- title = Targeted Satellites
+ isDisabled = True
+ title = Targeted Satellites (Deprecated)
description = Once you have proven that you can send satellites into orbit, the next step is to send them into more useful orbits. The goal of this program is to put satellites with different payload requirements into specific and more challenging orbits. A geostationary orbit will require approximately 13,650 m/s of delta-v if launching from Cape Canaveral.
requirementsPrettyText = Complete Targeted Satellites
objectivesPrettyText = Launch satellites to analyze weather and assist in navigation and reach a variety of specific orbits, including geostationary.
@@ -287,11 +288,104 @@ RP0_PROGRAM
Fast = 600
}
}
+RP0_PROGRAM
+{
+ name = EarlyEOS
+ title = Early Earth Observation Satellites
+ description = Now that you have proven the ability to send satellites into orbit, the next step is to send them into more useful orbits with beneficial payloads. This program will focus on satellites intended for observing the Earth and the local space environment around it, advancing scientific knowledge of not just physical processes within our atmosphere but also those in space that influence our lives here on Earth.
+ requirementsPrettyText = Complete Early Satellites program
+ objectivesPrettyText = Launch satellites to analyze weather, measure solar wind and cosmic rays, and determine the extent of the Magnetosphere.
+ nominalDurationYears = 3
+ baseFunding = 420000
+ repDeltaOnCompletePerYearEarly = 130
+ repPenaltyPerYearLate = 130
+ slots = 1
+
+ REQUIREMENTS
+ {
+ ANY
+ {
+ complete_program = EarlySatellites
+ complete_program = EarlySatellites-Heavy
+ }
+ }
+
+ OBJECTIVES
+ {
+ complete_contract = EOSCosmicRay1
+ complete_contract = EOSCherenkov
+ complete_contract = EOSMagScan1
+ complete_contract = EOSIRRad1
+ complete_contract = EOSCorona
+ complete_contract = first_OrbitRecover
+ }
+
+ OPTIONALS
+ {
+ EOSGrav1 = true
+ EOSCoronaRep = true
+ EOSIRRad2 = true
+ EOSIRRad3 = true
+ }
+
+ CONFIDENCECOSTS
+ {
+ Normal = 300
+ Fast = 600
+ }
+}
+
+RP0_PROGRAM
+{
+ name = EarlyCommApp
+ title = Early Commercial Satellites
+ description = Although it was through government programs that the earliest satellites were launched, commercial use of them was always envisioned as well. Through this program, the earliest iterations of commercial-use satelites will be launched. With wildly varying needs, each satellite is dedicated to a specific requirement, typically far more focused than the earlier broad scientific satellites.
+ requirementsPrettyText = Complete Early Satellites program
+ objectivesPrettyText = Launch the first commercial-use satellites and build a satellite communication network.
+ nominalDurationYears = 3
+ baseFunding = 420000
+ repDeltaOnCompletePerYearEarly = 110
+ repPenaltyPerYearLate = 110
+ slots = 1
+
+ REQUIREMENTS
+ {
+ ANY
+ {
+ complete_program = EarlySatellites
+ complete_program = EarlySatellites-Heavy
+ }
+ }
+ OBJECTIVES
+ {
+ complete_contract = FirstNavSat-CA
+ complete_contract = FirstComSat-CA
+ complete_contract = FirstMolniyaSat-CA
+ ANY
+ {
+ complete_contract = EarlyNavNetwork3
+ complete_contract = EarlyNavNetwork4
+ }
+ ANY
+ {
+ complete_contract = EarlyComNetwork3
+ complete_contract = EarlyComNetwork4
+ }
+ }
+
+ OPTIONALS
+ {
+ EarlyComSat-CA = true
+ EarlyNavSat-CA = true
+ EarlyMolniyaSat = true
+ }
+}
RP0_PROGRAM
{
name = CommNetwork
- title = Communication Network
+ isDisabled = True
+ title = Communication Network (Deprecated)
description = Communicating with our satellites, and eventually our crewed craft, can be difficult at times. Unless we have line of sight to a tracking station, communication isn't possible. This program tasks you with creating a communications network of 3 or 4 satellites that will provide much better communications coverage. Each satellite will require 125 units of ComSatPayload, and the orbits are fairly high.
requirementsPrettyText = Complete Communication Network
objectivesPrettyText = Create a network of either 3 or 4 communications satellites.
@@ -336,7 +430,7 @@ RP0_PROGRAM
RP0_PROGRAM
{
name = GEOCommNetwork
- title = Geostationary Communication Network
+ title = Geostationary Communication Network
description = With geostationary orbits, satellites can be placed at specific spots over the equator where they will stay. This allows communications satellites to be put exactly where they will have the greatest benefit. This program tasks you with creating a 4-satellite Geostationary Network for communication. Each satellite will require 315 units of ComSatPayload.
requirementsPrettyText = Complete the Targeted Satellites Program
objectivesPrettyText = Complete the Geostationary Communications Network.
@@ -349,7 +443,11 @@ RP0_PROGRAM
REQUIREMENTS
{
- complete_program = TargetedSats
+ ANY
+ {
+ complete_program = TargetedSats
+ complete_program = EarlyCommApp
+ }
}
OBJECTIVES
@@ -368,7 +466,6 @@ RP0_PROGRAM
Fast = 900
}
}
-
RP0_PROGRAM
{
name = EarlyLunarProbes
diff --git a/GameData/RP-1/Science/Configure.cfg b/GameData/RP-1/Science/Configure.cfg
index fcec46d5307..b0c55f4ada6 100644
--- a/GameData/RP-1/Science/Configure.cfg
+++ b/GameData/RP-1/Science/Configure.cfg
@@ -1,915 +1,941 @@
-// ============================================================================
-// Probe Experiment includer
-// ============================================================================
-@PART[RO_earlyControllableCore|RO_probeCoreCubeEarly|RP0probeVanguardXray|sputnik2|pioneer_0_1_2|bluedog_Pioneer1|pioneer_3_4|bluedog_Pioneer4|sputnik3|explorer_6|tiros-1|bluedog_explorer7probe|luna2|vanguard-2|vanguard-3|pioneer_5|rn_mariner1_2|bluedog_Explorer1|FASAExplorerProbe|luna_als|pioneer_6_7_8_9|quetzal|pioneer_10_11|rn_voyager|torekka|galileo_aprobe|galileo_mb|luna11_als|neo_dawn|rn_lro|rn_juno_spacecraft|SXTHECSRanger|probeCoreHex_v2|RO_surveyorCore|HECS2_ProbeCore|probeCoreCube|probeCoreCubeMedium|RO_boeing702|proceduralAvionics|ROT-ProbeCore]:AFTER[RP-0-Kerbalism]
-{
- MODULE
- {
- name = Experiment
- experiment_id = barometerScan
- experiment_desc = An ambient pressure sensor.
- }
- MODULE
- {
- name = Sensor
- type = pressure
- }
- MODULE
- {
- name = Experiment
- experiment_id = temperatureScan
- experiment_desc = An ambient temperature sensor.
- }
- MODULE
- {
- name = Sensor
- type = temperature
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0cosmicRay1
- experiment_desc = A geiger-muller counter. Used to study the radiation environment; requires an eccentric orbit to study radiation belts and altitude-based variation.
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0cosmicRay2
- experiment_desc = An improved cosmic ray detector. Used to study the radiation environment.
- }
- MODULE
- {
- name = Sensor
- type = radiation
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0magScan1
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0massSpec1
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0massSpec2
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0massSpec3
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0massSpec4
- }
- MODULE
- {
- name = Experiment
- experiment_id = micrometeoriteDetect
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0visibleImaging1
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0visibleImaging2
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0visibleImaging3
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0infraredRad1
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0infraredRad2
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0infraredRad3
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0orbitalPurturbation1
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0imageSpec1
- experiment_desc = Infrared Imaging Spectrometer (IRIS). Provides data about atmospheric composition, temperature and vertical structure; can't be used from too far away.
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0imageSpec2
- experiment_desc = Ultraviolet Spectrometer. Measures the extinction properties of atmospheres.
- }
- MODULE
- {
- name = Experiment
- experiment_id = RP0imageSpec3
- experiment_desc = Near Infrared Mapping Spectrometer (NIMS). Provides information about surface minerals and atmosphere dynamics.
- }
-
- MODULE
- {
- name = Configure
- title = Experiments
- slots = 4
- SETUP
- {
- name = None
- desc = Empty slot for mass and cost savings, should you not require any experiments installed.
- }
- // More None entries because kerbalism only makes slots
- // configurable if there are more "valid" entries than slots.
- // Thermometer and barometer are always unlocked in RP-1,
- // we have 4 slots, so need 3 None entries (total 5) to make
- // thermo and baro unselectable in the early game.
- // (presumably a kerbalism core bug)
- // Must have unique names, otherwise kerbalism gets confused.
- // Ugly workaround, means user will have 2 extra useless
- // entries to cycle through.
- SETUP
- {
- name = None 2
- desc = Empty slot 2
- }
- SETUP
- {
- name = None 3
- desc = Empty slot 3
- }
- SETUP
- {
- name = None 4
- desc = Empty slot 4
- }
- SETUP
- {
- name = Barometer
- mass = 0.0001
- cost = 1
- tech = unlockParts
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = barometerScan
- }
- MODULE
- {
- type = Sensor
- id_field = type
- id_value = pressure
- }
- }
- SETUP
- {
- name = Thermometer
- mass = 0.0001
- cost = 1
- tech = unlockParts
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = temperatureScan
- }
- MODULE
- {
- type = Sensor
- id_field = type
- id_value = temperature
- }
- }
- SETUP
- {
- name = Radiation Detector 1
- mass = 0.0005
- cost = 33
- tech = scienceSatellite
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0cosmicRay1
- }
- MODULE
- {
- type = Sensor
- id_field = type
- id_value = radiation
- }
- }
- SETUP
- {
- name = Radiation Detector 2
- mass = 0.0065
- cost = 83
- tech = scienceAdvCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0cosmicRay2
- }
- MODULE
- {
- type = Sensor
- id_field = type
- id_value = radiation
- }
- }
- SETUP
- {
- name = Magnetometer 1
- mass = 0.015
- cost = 83
- tech = scienceSatellite
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0magScan1
- }
- }
- SETUP
- {
- name = Mass Spectrometer 1
- mass = 0.0022
- cost = 33
- tech = earlyScience
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0massSpec1
- }
- }
- SETUP
- {
- name = Mass Spectrometer 2
- mass = 0.0075
- cost = 167
- tech = scienceAdvCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0massSpec2
- }
- }
- SETUP
- {
- name = Mass Spectrometer 3
- mass = 0.0098
- cost = 333
- tech = scienceLunar
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0massSpec3
- }
- }
- SETUP
- {
- name = Mass Spectrometer 4
- mass = 0.0098
- cost = 1750
- tech = deepSpaceScience
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0massSpec4
- }
- }
- SETUP
- {
- name = Micrometeorite Detector
- mass = 0.0022
- cost = 33
- tech = scienceSatellite
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = micrometeoriteDetect
- }
- }
- SETUP
- {
- name = Early TV Camera
- mass = 0.005
- cost = 33
- tech = scienceSatellite
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0visibleImaging1
- }
- }
- SETUP
- {
- name = Basic TV Camera
- mass = 0.0051
- cost = 83
- tech = scienceAdvCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0visibleImaging2
- }
- }
- SETUP
- {
- name = Improved TV Camera
- mass = 0.04
- cost = 167
- tech = deepSpaceScience
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0visibleImaging3
- }
- }
- SETUP
- {
- name = Infrared Radiometer
- mass = 0.0013
- cost = 83
- tech = scienceHuman
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0infraredRad1
- }
- }
- SETUP
- {
- name = Infrared Radiometer 2
- mass = 0.0051
- cost = 167
- tech = scienceAdvCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0infraredRad2
- }
- }
- SETUP
- {
- name = Infrared Radiometer 3
- mass = 0.0036
- cost = 333
- tech = deepSpaceScience
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0infraredRad3
- }
- }
- SETUP
- {
- name = Orbital Perturbation
- mass = 0.001
- cost = 83
- tech = scienceHuman
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0orbitalPurturbation1
- }
- }
- SETUP
- {
- name = Infrared Spectrometer
- mass = 0.018
- cost = 83
- tech = scienceAdvCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0imageSpec1
- }
- }
- SETUP
- {
- name = Infrared Spectrometer 2
- mass = 0.0055
- cost = 167
- tech = deepSpaceScience
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0imageSpec2
- }
- }
- SETUP
- {
- name = Infrared Spectrometer 3
- mass = 0.0195
- cost = 333
- tech = scienceExploration
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0imageSpec3
- }
- }
- }
-}
-
-
-// ============================================================================
-// Crew experiment Selection
-// ============================================================================
-
-// Cockpits
-@PART[*]:HAS[#capsuleTier[Cockpit]]:AFTER[RP-0-Kerbalism]
-{
- @MODULE[HardDrive]
- {
- @sampleCapacity += 1
- }
-
- MODULE
- {
- name = Configure
- title = Crew Science
- slots = 1
-
- SETUP
- {
- name = None
- desc = Empty slot for mass and cost savings, should you not require any experiments installed.
- }
-
- SETUP
- {
- name = Supersonic flight
- desc = //fixme
- mass = 0.004
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0SupersonicLow1
- }
- }
- SETUP
- {
- name = Mach 2 flight
- desc = //fixme
- mass = 0.004
- tech = supersonicDev
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0SupersonicLow2
- }
- }
- SETUP
- {
- name = High altitude flight
- desc = //fixme
- mass = 0.004
- tech = supersonicFlightRP0
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0SupersonicHigh1
- }
- }
- SETUP
- {
- name = Hypersonic flight
- desc = //fixme
- mass = 0.004
- tech = supersonicFlightRP0
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0SupersonicHigh2
- }
- }
- }
-}
-
-// Basic Capsules
-@PART[*]:HAS[#capsuleTier[Basic]]:AFTER[RP-0-Kerbalism]
-{
- @MODULE[HardDrive]
- {
- @sampleCapacity += 1
- }
-
- MODULE
- {
- name = Configure
- title = Crew Science
- slots = 2
-
- SETUP
- {
- name = None
- desc = Empty slot for mass and cost savings, should you not require any experiments installed.
- }
-
- SETUP
- {
- name = Liquids in Microgravity
- desc = Very little is known about how liquids behave in a microgravity environment. Various tests are needed to analyze the liquids to properly design fluid storage tanks in the future.
- mass = 0.004
- tech = basicCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0LiquidsMicrogravity
- }
- }
- SETUP
- {
- name = Visual Tracking
- desc = This experiment is designed to test how well humans can track objects in space. A multicolor, mylar balloon, about the size of a beach ball, will be extended on a tether for the crew member to track.
- mass = 0.003
- tech = basicCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0VisualTracking
- }
- }
- SETUP
- {
- name = Flight Control Experiments
- desc = Maneuvering in space will be very important if we want to continue our exploration. We need the crew member to see how the spacecraft reacts and maneuvers with yaw, pitch and roll controls.
- mass = 0.001
- tech = earlyFlightControl
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0FlightControl
- }
- }
- SETUP
- {
- name = Earth Photography
- desc = By using a hand-held camera, our crew can take images of locations on Earth that our scientists are intersted in. These images can be of much higher quality than our current satellite technology can accomplish.
- mass = 0.005
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0EarthPhotography
- }
- }
- }
-}
-
-// Second Gen Capsules
-@PART[*]:HAS[#capsuleTier[SecondGen]]:AFTER[RP-0-Kerbalism]
-{
-
- @MODULE[HardDrive]
- {
- @sampleCapacity += 2
- }
-
- MODULE
- {
- name = Configure
- title = Crew Science
- slots = 3
-
- SETUP
- {
- name = None
- desc = Empty slot for mass and cost savings, should you not require any experiments installed.
- }
-
- SETUP
- {
- name = Orbital Maneuvering
- desc = It will be necessary for our future spacecraft to be able to change their oribts in order to rendezvous and dock. This experiment will test the Orbital Maneuvering system to better understand what is required and possible.
- mass = 0
- tech = secondGenCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0OrbitalManeuvering
- }
- }
- SETUP
- {
- name = Visual Acuity
- desc = The visual ability of the astronauts in the detection and recognition of objects on the Earth's surface will be tested.
- mass = 0.002
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0VisualAcuity
- }
- }
- SETUP
- {
- name = Star Occultation Navigation
- desc = To study the feasibility and operational value of star occulting measurements in the development of a simple, accurate, and self-contained navigational capability by measuring the time stars dip behind an established horizon.
- mass = 0.008
- tech = earlyFlightControl
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0StarOccultationNav
- }
- }
- SETUP
- {
- name = Power Tool Evaluation
- desc = To determine man's ability to perform work tasks in pressurized suit under zero gravity.
- mass = 0
- tech = materialsScienceHuman
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0PowerToolEvaluation
- }
- }
- SETUP
- {
- name = Simple Organism Egg Growth
- desc = This experiment is designed to explore the possibility of the existence of a gravitational field effect on cells exposed to microgravity situations. These irregularities would be easier to explore in simple cell systems.
- mass = 0.001
- tech = materialsScienceHuman
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0EggGrowth
- }
- }
- SETUP
- {
- name = Synergistic Effect of Zero Gravity and Radiation on White Blood Cells
- desc = The objective is to examine the biological effects of radiation. The experiment will test the possibility that weightlessness interacts with radiation to produce unpredicted effects greater than the sum of their individual effects.
- mass = 0.001
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0BloodCells
- }
- }
- SETUP
- {
- name = In-Flight Sleep Analysis
- desc = The objectives of this experiment are to assess the crew's state of alertness, levels of consciousness, and depth of sleep during flight.
- mass = 0
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0SleepAnalysis
- }
- }
- SETUP
- {
- name = Food Evaluation
- desc = Our scientists have come up with a fancy way of packaging food for consumption in space. We need the crew to evaluate how the trip to space has affected this packaging and the quality of the food.
- mass = 0.001
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0FoodEvaluation
- }
- }
- SETUP
- {
- name = In-flight Work Tolerance
- desc = The astronauts will use a bungee cord to assess their capacity to do physical work under space flight conditions.
- mass = 0.003
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0WorkTolerance
- }
- }
- SETUP
- {
- name = Simple Navigation
- desc = Study the capability of crew to provide a reliable method of navigation without input from the ground utilizing a space stedimeter and a sextant.
- mass = 0.005
- tech = secondGenCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0SimpleNavigation
- }
- }
- SETUP
- {
- name = Zodiacal Light Photography
- desc = To obtain photographs of zodiacal light, airglow layer, and other dim light phenomena, including day sky brightness from orbital altitude.
- mass = 0.008
- tech = secondGenCapsules
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0ZodiacalLightPhoto
- }
- }
- SETUP
- {
- name = UHF/VHF Polarization
- desc = To obtain information on communication systems operating through the ionosphere.
- mass = 0.005
- tech = lunarRangeComms
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0VHFPolarization
- }
- }
- }
-}
-
-// Mature Capsules
-@PART[*]:HAS[#capsuleTier[Mature]]:AFTER[RP-0-Kerbalism]
-{
- @MODULE[HardDrive]
- {
- @sampleCapacity += 5
- }
-
- MODULE
- {
- name = Configure
- title = Crew Science
- slots = 3
-
- SETUP
- {
- name = None
- desc = Empty slot for mass and cost savings, should you not require any experiments installed.
- }
-
- SETUP
- {
- name = Space Television Broadcast
- desc = To broadcast live television while in route to the Moon.
- mass = 0.006
- tech = lunarRangeComms
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0TelevisionBroadcast
- }
- }
- SETUP
- {
- name = Ion Sensing Altitude Control
- desc = To investigate determination of spacecraft attitude in yaw and pitch from measurement of ion flow variations. The recording of ion sensor outputs during pitch and yaw maneuvers will be compared with data obtained from the inertial guidance system and the horizon scanner. Results of the comparison and the astronaut evaluation will form the basis for further development of simple, lightweight orbital attitude determination systems.
- mass = 0
- tech = electronicsHuman
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0IonSensingAltitudeControl
- }
- }
- SETUP
- {
- name = Night Image Intensification
- desc = To test the usefulness and performance of a low-light-level television system as a supplement to unaided vision in observing surface features primarily when such features are in darkness and spacecraft pilots are not dark-adapted.
- mass = 0.01
- tech = electronicsHuman
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0NightImageIntensification
- }
- }
- SETUP
- {
- name = Synoptic Terrain Photography
- desc = Crew photographs of land and ocean areas for geologic, geographic, and oceanographic study for evaluation of various film types. This experiment can be completed 3 times.
- mass = 0.008
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0TerrainPhotography
- }
- }
- SETUP
- {
- name = Synoptic Weather Photography
- desc = Crew photographs of global and local weather systems for use by scientists in improving techniques of interpretation of orbital altitude weather photographs. This experiment can be completed 3 times.
- mass = 0.008
- tech = start
-
- MODULE
- {
- type = Experiment
- id_field = experiment_id
- id_value = RP0WeatherPhotography
- }
- }
- }
-}
+// ============================================================================
+// Probe Experiment includer
+// ============================================================================
+@PART[RO_earlyControllableCore|RO_probeCoreCubeEarly|RP0probeVanguardXray|sputnik2|pioneer_0_1_2|bluedog_Pioneer1|pioneer_3_4|bluedog_Pioneer4|sputnik3|explorer_6|tiros-1|bluedog_explorer7probe|luna2|vanguard-2|vanguard-3|pioneer_5|rn_mariner1_2|bluedog_Explorer1|FASAExplorerProbe|luna_als|pioneer_6_7_8_9|quetzal|pioneer_10_11|rn_voyager|torekka|galileo_aprobe|galileo_mb|luna11_als|neo_dawn|rn_lro|rn_juno_spacecraft|SXTHECSRanger|probeCoreHex_v2|RO_surveyorCore|HECS2_ProbeCore|probeCoreCube|probeCoreCubeMedium|RO_boeing702|proceduralAvionics|ROT-ProbeCore]:AFTER[RP-0-Kerbalism]
+{
+ MODULE
+ {
+ name = Experiment
+ experiment_id = barometerScan
+ experiment_desc = An ambient pressure sensor.
+ }
+ MODULE
+ {
+ name = Sensor
+ type = pressure
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = temperatureScan
+ experiment_desc = An ambient temperature sensor.
+ }
+ MODULE
+ {
+ name = Sensor
+ type = temperature
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0cosmicRay1
+ experiment_desc = A geiger-muller counter. Used to study the radiation environment; requires an eccentric orbit to study radiation belts and altitude-based variation.
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0Cherenkov
+ experiment_desc = A Cherenkov detector used for the categorization of high-energy particles from solar wind and cosmic rays, particularly Gamma Ray bursts from beyond the solar system.
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0cosmicRay2
+ experiment_desc = An improved cosmic ray detector. Used to study the radiation environment.
+ }
+ MODULE
+ {
+ name = Sensor
+ type = radiation
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0magScan1
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0massSpec1
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0massSpec2
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0massSpec3
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0massSpec4
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = micrometeoriteDetect
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0visibleImaging1
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0visibleImaging2
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0visibleImaging3
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0infraredRad1
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0infraredRad2
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0infraredRad3
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0orbitalPurturbation1
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0imageSpec1
+ experiment_desc = Infrared Imaging Spectrometer (IRIS). Provides data about atmospheric composition, temperature and vertical structure; can't be used from too far away.
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0imageSpec2
+ experiment_desc = Ultraviolet Spectrometer. Measures the extinction properties of atmospheres.
+ }
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0imageSpec3
+ experiment_desc = Near Infrared Mapping Spectrometer (NIMS). Provides information about surface minerals and atmosphere dynamics.
+ }
+
+ MODULE
+ {
+ name = Configure
+ title = Experiments
+ slots = 4
+ SETUP
+ {
+ name = None
+ desc = Empty slot for mass and cost savings, should you not require any experiments installed.
+ }
+ // More None entries because kerbalism only makes slots
+ // configurable if there are more "valid" entries than slots.
+ // Thermometer and barometer are always unlocked in RP-1,
+ // we have 4 slots, so need 3 None entries (total 5) to make
+ // thermo and baro unselectable in the early game.
+ // (presumably a kerbalism core bug)
+ // Must have unique names, otherwise kerbalism gets confused.
+ // Ugly workaround, means user will have 2 extra useless
+ // entries to cycle through.
+ SETUP
+ {
+ name = None 2
+ desc = Empty slot 2
+ }
+ SETUP
+ {
+ name = None 3
+ desc = Empty slot 3
+ }
+ SETUP
+ {
+ name = None 4
+ desc = Empty slot 4
+ }
+ SETUP
+ {
+ name = Barometer
+ mass = 0.0001
+ cost = 1
+ tech = unlockParts
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = barometerScan
+ }
+ MODULE
+ {
+ type = Sensor
+ id_field = type
+ id_value = pressure
+ }
+ }
+ SETUP
+ {
+ name = Thermometer
+ mass = 0.0001
+ cost = 1
+ tech = unlockParts
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = temperatureScan
+ }
+ MODULE
+ {
+ type = Sensor
+ id_field = type
+ id_value = temperature
+ }
+ }
+ SETUP
+ {
+ name = Radiation Detector 1
+ mass = 0.0005
+ cost = 33
+ tech = scienceSatellite
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0cosmicRay1
+ }
+ MODULE
+ {
+ type = Sensor
+ id_field = type
+ id_value = radiation
+ }
+ }
+ SETUP
+ {
+ name = Cherenkov Detector 1
+ mass = 0.00055
+ cost = 58
+ tech = scienceHuman
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0Cherenkov
+ }
+ MODULE
+ {
+ type = Sensor
+ id_field = type
+ id_value = radiation
+ }
+ }
+ SETUP
+ {
+ name = Radiation Detector 2
+ mass = 0.0065
+ cost = 83
+ tech = scienceAdvCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0cosmicRay2
+ }
+ MODULE
+ {
+ type = Sensor
+ id_field = type
+ id_value = radiation
+ }
+ }
+ SETUP
+ {
+ name = Magnetometer 1
+ mass = 0.015
+ cost = 83
+ tech = scienceSatellite
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0magScan1
+ }
+ }
+ SETUP
+ {
+ name = Mass Spectrometer 1
+ mass = 0.0022
+ cost = 33
+ tech = earlyScience
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0massSpec1
+ }
+ }
+ SETUP
+ {
+ name = Mass Spectrometer 2
+ mass = 0.0075
+ cost = 167
+ tech = scienceAdvCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0massSpec2
+ }
+ }
+ SETUP
+ {
+ name = Mass Spectrometer 3
+ mass = 0.0098
+ cost = 333
+ tech = scienceLunar
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0massSpec3
+ }
+ }
+ SETUP
+ {
+ name = Mass Spectrometer 4
+ mass = 0.0098
+ cost = 1750
+ tech = deepSpaceScience
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0massSpec4
+ }
+ }
+ SETUP
+ {
+ name = Micrometeorite Detector
+ mass = 0.0022
+ cost = 33
+ tech = scienceSatellite
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = micrometeoriteDetect
+ }
+ }
+ SETUP
+ {
+ name = Early TV Camera
+ mass = 0.005
+ cost = 33
+ tech = scienceSatellite
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0visibleImaging1
+ }
+ }
+ SETUP
+ {
+ name = Basic TV Camera
+ mass = 0.0051
+ cost = 83
+ tech = scienceAdvCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0visibleImaging2
+ }
+ }
+ SETUP
+ {
+ name = Improved TV Camera
+ mass = 0.04
+ cost = 167
+ tech = deepSpaceScience
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0visibleImaging3
+ }
+ }
+ SETUP
+ {
+ name = Infrared Radiometer
+ mass = 0.0013
+ cost = 83
+ tech = scienceHuman
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0infraredRad1
+ }
+ }
+ SETUP
+ {
+ name = Infrared Radiometer 2
+ mass = 0.0051
+ cost = 167
+ tech = scienceAdvCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0infraredRad2
+ }
+ }
+ SETUP
+ {
+ name = Infrared Radiometer 3
+ mass = 0.0036
+ cost = 333
+ tech = deepSpaceScience
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0infraredRad3
+ }
+ }
+ SETUP
+ {
+ name = Orbital Perturbation
+ mass = 0.001
+ cost = 83
+ tech = scienceHuman
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0orbitalPurturbation1
+ }
+ }
+ SETUP
+ {
+ name = Infrared Spectrometer
+ mass = 0.018
+ cost = 83
+ tech = scienceAdvCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0imageSpec1
+ }
+ }
+ SETUP
+ {
+ name = Infrared Spectrometer 2
+ mass = 0.0055
+ cost = 167
+ tech = deepSpaceScience
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0imageSpec2
+ }
+ }
+ SETUP
+ {
+ name = Infrared Spectrometer 3
+ mass = 0.0195
+ cost = 333
+ tech = scienceExploration
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0imageSpec3
+ }
+ }
+ }
+}
+
+
+// ============================================================================
+// Crew experiment Selection
+// ============================================================================
+
+// Cockpits
+@PART[*]:HAS[#capsuleTier[Cockpit]]:AFTER[RP-0-Kerbalism]
+{
+ @MODULE[HardDrive]
+ {
+ @sampleCapacity += 1
+ }
+
+ MODULE
+ {
+ name = Configure
+ title = Crew Science
+ slots = 1
+
+ SETUP
+ {
+ name = None
+ desc = Empty slot for mass and cost savings, should you not require any experiments installed.
+ }
+
+ SETUP
+ {
+ name = Supersonic flight
+ desc = //fixme
+ mass = 0.004
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0SupersonicLow1
+ }
+ }
+ SETUP
+ {
+ name = Mach 2 flight
+ desc = //fixme
+ mass = 0.004
+ tech = supersonicDev
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0SupersonicLow2
+ }
+ }
+ SETUP
+ {
+ name = High altitude flight
+ desc = //fixme
+ mass = 0.004
+ tech = supersonicFlightRP0
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0SupersonicHigh1
+ }
+ }
+ SETUP
+ {
+ name = Hypersonic flight
+ desc = //fixme
+ mass = 0.004
+ tech = supersonicFlightRP0
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0SupersonicHigh2
+ }
+ }
+ }
+}
+
+// Basic Capsules
+@PART[*]:HAS[#capsuleTier[Basic]]:AFTER[RP-0-Kerbalism]
+{
+ @MODULE[HardDrive]
+ {
+ @sampleCapacity += 1
+ }
+
+ MODULE
+ {
+ name = Configure
+ title = Crew Science
+ slots = 2
+
+ SETUP
+ {
+ name = None
+ desc = Empty slot for mass and cost savings, should you not require any experiments installed.
+ }
+
+ SETUP
+ {
+ name = Liquids in Microgravity
+ desc = Very little is known about how liquids behave in a microgravity environment. Various tests are needed to analyze the liquids to properly design fluid storage tanks in the future.
+ mass = 0.004
+ tech = basicCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0LiquidsMicrogravity
+ }
+ }
+ SETUP
+ {
+ name = Visual Tracking
+ desc = This experiment is designed to test how well humans can track objects in space. A multicolor, mylar balloon, about the size of a beach ball, will be extended on a tether for the crew member to track.
+ mass = 0.003
+ tech = basicCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0VisualTracking
+ }
+ }
+ SETUP
+ {
+ name = Flight Control Experiments
+ desc = Maneuvering in space will be very important if we want to continue our exploration. We need the crew member to see how the spacecraft reacts and maneuvers with yaw, pitch and roll controls.
+ mass = 0.001
+ tech = earlyFlightControl
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0FlightControl
+ }
+ }
+ SETUP
+ {
+ name = Earth Photography
+ desc = By using a hand-held camera, our crew can take images of locations on Earth that our scientists are intersted in. These images can be of much higher quality than our current satellite technology can accomplish.
+ mass = 0.005
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0EarthPhotography
+ }
+ }
+ }
+}
+
+// Second Gen Capsules
+@PART[*]:HAS[#capsuleTier[SecondGen]]:AFTER[RP-0-Kerbalism]
+{
+
+ @MODULE[HardDrive]
+ {
+ @sampleCapacity += 2
+ }
+
+ MODULE
+ {
+ name = Configure
+ title = Crew Science
+ slots = 3
+
+ SETUP
+ {
+ name = None
+ desc = Empty slot for mass and cost savings, should you not require any experiments installed.
+ }
+
+ SETUP
+ {
+ name = Orbital Maneuvering
+ desc = It will be necessary for our future spacecraft to be able to change their oribts in order to rendezvous and dock. This experiment will test the Orbital Maneuvering system to better understand what is required and possible.
+ mass = 0
+ tech = secondGenCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0OrbitalManeuvering
+ }
+ }
+ SETUP
+ {
+ name = Visual Acuity
+ desc = The visual ability of the astronauts in the detection and recognition of objects on the Earth's surface will be tested.
+ mass = 0.002
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0VisualAcuity
+ }
+ }
+ SETUP
+ {
+ name = Star Occultation Navigation
+ desc = To study the feasibility and operational value of star occulting measurements in the development of a simple, accurate, and self-contained navigational capability by measuring the time stars dip behind an established horizon.
+ mass = 0.008
+ tech = earlyFlightControl
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0StarOccultationNav
+ }
+ }
+ SETUP
+ {
+ name = Power Tool Evaluation
+ desc = To determine man's ability to perform work tasks in pressurized suit under zero gravity.
+ mass = 0
+ tech = materialsScienceHuman
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0PowerToolEvaluation
+ }
+ }
+ SETUP
+ {
+ name = Simple Organism Egg Growth
+ desc = This experiment is designed to explore the possibility of the existence of a gravitational field effect on cells exposed to microgravity situations. These irregularities would be easier to explore in simple cell systems.
+ mass = 0.001
+ tech = materialsScienceHuman
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0EggGrowth
+ }
+ }
+ SETUP
+ {
+ name = Synergistic Effect of Zero Gravity and Radiation on White Blood Cells
+ desc = The objective is to examine the biological effects of radiation. The experiment will test the possibility that weightlessness interacts with radiation to produce unpredicted effects greater than the sum of their individual effects.
+ mass = 0.001
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0BloodCells
+ }
+ }
+ SETUP
+ {
+ name = In-Flight Sleep Analysis
+ desc = The objectives of this experiment are to assess the crew's state of alertness, levels of consciousness, and depth of sleep during flight.
+ mass = 0
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0SleepAnalysis
+ }
+ }
+ SETUP
+ {
+ name = Food Evaluation
+ desc = Our scientists have come up with a fancy way of packaging food for consumption in space. We need the crew to evaluate how the trip to space has affected this packaging and the quality of the food.
+ mass = 0.001
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0FoodEvaluation
+ }
+ }
+ SETUP
+ {
+ name = In-flight Work Tolerance
+ desc = The astronauts will use a bungee cord to assess their capacity to do physical work under space flight conditions.
+ mass = 0.003
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0WorkTolerance
+ }
+ }
+ SETUP
+ {
+ name = Simple Navigation
+ desc = Study the capability of crew to provide a reliable method of navigation without input from the ground utilizing a space stedimeter and a sextant.
+ mass = 0.005
+ tech = secondGenCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0SimpleNavigation
+ }
+ }
+ SETUP
+ {
+ name = Zodiacal Light Photography
+ desc = To obtain photographs of zodiacal light, airglow layer, and other dim light phenomena, including day sky brightness from orbital altitude.
+ mass = 0.008
+ tech = secondGenCapsules
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0ZodiacalLightPhoto
+ }
+ }
+ SETUP
+ {
+ name = UHF/VHF Polarization
+ desc = To obtain information on communication systems operating through the ionosphere.
+ mass = 0.005
+ tech = lunarRangeComms
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0VHFPolarization
+ }
+ }
+ }
+}
+
+// Mature Capsules
+@PART[*]:HAS[#capsuleTier[Mature]]:AFTER[RP-0-Kerbalism]
+{
+ @MODULE[HardDrive]
+ {
+ @sampleCapacity += 5
+ }
+
+ MODULE
+ {
+ name = Configure
+ title = Crew Science
+ slots = 3
+
+ SETUP
+ {
+ name = None
+ desc = Empty slot for mass and cost savings, should you not require any experiments installed.
+ }
+
+ SETUP
+ {
+ name = Space Television Broadcast
+ desc = To broadcast live television while in route to the Moon.
+ mass = 0.006
+ tech = lunarRangeComms
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0TelevisionBroadcast
+ }
+ }
+ SETUP
+ {
+ name = Ion Sensing Altitude Control
+ desc = To investigate determination of spacecraft attitude in yaw and pitch from measurement of ion flow variations. The recording of ion sensor outputs during pitch and yaw maneuvers will be compared with data obtained from the inertial guidance system and the horizon scanner. Results of the comparison and the astronaut evaluation will form the basis for further development of simple, lightweight orbital attitude determination systems.
+ mass = 0
+ tech = electronicsHuman
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0IonSensingAltitudeControl
+ }
+ }
+ SETUP
+ {
+ name = Night Image Intensification
+ desc = To test the usefulness and performance of a low-light-level television system as a supplement to unaided vision in observing surface features primarily when such features are in darkness and spacecraft pilots are not dark-adapted.
+ mass = 0.01
+ tech = electronicsHuman
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0NightImageIntensification
+ }
+ }
+ SETUP
+ {
+ name = Synoptic Terrain Photography
+ desc = Crew photographs of land and ocean areas for geologic, geographic, and oceanographic study for evaluation of various film types. This experiment can be completed 3 times.
+ mass = 0.008
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0TerrainPhotography
+ }
+ }
+ SETUP
+ {
+ name = Synoptic Weather Photography
+ desc = Crew photographs of global and local weather systems for use by scientists in improving techniques of interpretation of orbital altitude weather photographs. This experiment can be completed 3 times.
+ mass = 0.008
+ tech = start
+
+ MODULE
+ {
+ type = Experiment
+ id_field = experiment_id
+ id_value = RP0WeatherPhotography
+ }
+ }
+ }
+}
diff --git a/GameData/RP-1/Science/Experiments/Cherenkov.cfg b/GameData/RP-1/Science/Experiments/Cherenkov.cfg
new file mode 100644
index 00000000000..1c419023b6b
--- /dev/null
+++ b/GameData/RP-1/Science/Experiments/Cherenkov.cfg
@@ -0,0 +1,133 @@
+//==================================================================================//
+// Cherenkov Science 1 //
+//==================================================================================//
+
+EXPERIMENT_DEFINITION
+{
+ id = RP0Cherenkov
+ title = Cherenkov Detector
+ baseValue = 20
+ scienceCap = 20
+ dataScale = 5 //
+ requireAtmosphere = False
+ situationMask = 48
+ biomeMask = 0
+ celestialBodies = Earth
+
+ RESULTS
+ {
+ default = High energy particle data detected by the Cherenkov detector has been logged.
+ }
+
+ KERBALISM_EXPERIMENT
+ {
+ // sample mass in tons. if undefined or 0, the experiment produce a file
+ SampleMass = 0
+ BodyAllowed = HomeBody
+ }
+}
+
+//ROK
+// ============================================================================
+// Replacing stock experiments
+// ============================================================================
+@PART[*]:HAS[@MODULE[DMModuleScienceAnimateGeneric]:HAS[#experimentID[RP0Cherenkov]]]:FOR[RP-0-Kerbalism]
+{
+ !MODULE[DMModuleScienceAnimateGeneric]:HAS[#experimentID[RP0Cherenkov]] {}
+ MODULE
+ {
+ name = Experiment
+ experiment_id = RP0Cherenkov
+ }
+}
+
+// ============================================================================
+// Reconfigure experiments(avoiding a global nuke to keep people happy)
+// strongly recommendeded to not change anything in this section
+// Separate from above due to Configure Groups.
+// ============================================================================
+@PART[*]:HAS[@MODULE[Experiment]]:AFTER[RP-0-Kerbalism]
+{
+ @MODULE[Experiment]:HAS[#experiment_id[RP0Cherenkov]]
+ {
+ %ec_rate = 0.0005
+ %data_rate = 5 //2 b/s
+ @data_rate /= 7862400 //3 months
+ %requires = OrbitMinEccentricity:0.04
+ %resources =
+ %experiment_desc = A Cherenkov detector used for the categorization of high-energy particles from solar wind and cosmic rays, particularly gamma rays from beyond the solar system.
+ }
+}
+
+//==========================================//
+// General Science Module //
+//==========================================//
+
+@PART[RP0Cherenkov]:FOR[RP-0]
+{
+ MODULE
+ {
+ name = DMModuleScienceAnimateGeneric
+ experimentID = RP0Cherenkov
+
+ animationName = needle
+ experimentAnimation = true
+ experimentWaitForAnimation = true
+ keepDeployedMode = 0
+ showEndEvent = false
+ showStartEvent = false
+ showToggleEvent = false
+ startEventGUIName = Open Sensors
+ endEventGUIName = Close Sensors
+ toggleEventGUIName = Toggle Sensors
+ evaDistance = 1.85
+
+ collectActionName = Retrieve Radiation Data
+ resetActionName = Discard Radiation Data
+ reviewActionName = Review Radiation Data
+ dataIsCollectable = true
+ experimentActionName = Log Radiation
+ rerunnable = true
+ hideUIwhenUnavailable = true
+ useActionGroups = true
+ useStaging = false
+ xmitDataScalar = 1.0
+ usageReqMaskExternal = 4
+
+ deployingMessage = The radiation sensors are now exposed.
+ waitForAnimationTime = -1
+ resourceExperiment = ElectricCharge
+ resourceExpCost = 0
+ experimentsLimit = 1
+ totalScienceLevel = 1.0
+ asteroidReports = false
+ }
+}
+
+
+// Cherenkov Detector
+// Based on the Geiger-Muller Counters used on many spacecraft.
+// Part: Bluedog Geiger Counter, FASA Geiger Counter
+// ============================================================================
+// Add experiment to parts
+// ============================================================================
+@PART[RP0Cherenkov]:BEFORE[RP-0-Kerbalism]
+{
+ !MODULE[DMModuleScienceAnimateGeneric]:HAS[#experimentID[RP0Cherenkov]] {}
+ MODULE
+ {
+ name = ModuleScienceExperiment
+ experimentID = RP0Cherenkov
+ experimentActionName = Log Radiation
+ resetActionName = Discard Data
+ reviewActionName = Review Stored Data
+ useStaging = False
+ useActionGroups = True
+ hideUIwhenUnavailable = True
+ rerunnable = True
+ xmitDataScalar = 1
+ usageReqMaskInternal = 1
+ usageReqMaskExternal = 4
+ dataIsCollectable = true
+ }
+}
diff --git a/GameData/RP-1/Tree/TREE-Parts.cfg b/GameData/RP-1/Tree/TREE-Parts.cfg
index 37c9deb6e04..7d8f145fdc3 100644
--- a/GameData/RP-1/Tree/TREE-Parts.cfg
+++ b/GameData/RP-1/Tree/TREE-Parts.cfg
@@ -39693,4 +39693,15 @@
MODULE
{ name = ModuleUnpressurizedCockpit }
-}
\ No newline at end of file
+}
+@PART[RP0Cherenkov]:FOR[xxxRP0]
+{
+ %TechRequired = scienceHuman
+ %cost = 200
+ %entryCost = 2500
+ RP0conf = true
+ @description ^=:$: From RP-1 (Bluedog Model) mod
+
+ %MODULE[ModuleTagList] { tag = Instruments }
+
+}
diff --git a/GameData/RP-1/Tree/identicalParts.cfg b/GameData/RP-1/Tree/identicalParts.cfg
index b2a1d873ff3..bb2f0a471c7 100644
--- a/GameData/RP-1/Tree/identicalParts.cfg
+++ b/GameData/RP-1/Tree/identicalParts.cfg
@@ -270,6 +270,7 @@
@PART[XCXA_ACBMX]:FOR[xxxRP0] { %identicalParts = CXA_ACBM,CXA_MCBM,CXA_PCBM,KW3mDockingRing,RO-SSTU-DP-CBM,XCXA_ACBMX,dockingPortLarge,ht2_CBM }
@PART[FASAGeminiLFTCentarCSM_T]:FOR[xxxRP0] { %identicalParts = FASAGeminiLFTCentarCSM_T,SHIP_CENTAUR_T }
@PART[SHIP_CENTAUR_T]:FOR[xxxRP0] { %identicalParts = FASAGeminiLFTCentarCSM_T,SHIP_CENTAUR_T }
+@PART[RP0Cherenkov]:FOR[xxxRP0] { %identicalParts = RP0Cherenkov }
@PART[ROEE-COBRA]:FOR[xxxRP0] { %identicalParts = ROEE-COBRA }
@PART[FASAE1]:FOR[xxxRP0] { %identicalParts = FASAE1,RO-E1,ROE-E1,ROE-E1-BDB,SHIP_E1 }
@PART[RO-E1]:FOR[xxxRP0] { %identicalParts = FASAE1,RO-E1,ROE-E1,ROE-E1-BDB,SHIP_E1 }
diff --git a/Source/Tech Tree/Parts Browser/data/RP_1__Bluedog_Model.json b/Source/Tech Tree/Parts Browser/data/RP_1__Bluedog_Model.json
index 419f0ccd16b..f2218567dd2 100644
--- a/Source/Tech Tree/Parts Browser/data/RP_1__Bluedog_Model.json
+++ b/Source/Tech Tree/Parts Browser/data/RP_1__Bluedog_Model.json
@@ -512,5 +512,28 @@
"entry_cost_mods": "7500,RO-IRIS",
"identical_part_name": "",
"module_tags": []
+ },
+ {
+ "name": "RP0Cherenkov",
+ "title": "CD01 - Cherenkov Detector",
+ "description": "",
+ "mod": "RP-1 (Bluedog Model)",
+ "cost": "200",
+ "entry_cost": "2500",
+ "category": "SCIENCE",
+ "info": "Cosmic Ray",
+ "year": "1963",
+ "technology": "scienceHuman",
+ "ro": true,
+ "orphan": false,
+ "rp0_conf": true,
+ "spacecraft": "CD-1",
+ "engine_config": "",
+ "upgrade": false,
+ "entry_cost_mods": "",
+ "identical_part_name": "Cherenkov",
+ "module_tags": [
+ "Instruments"
+ ]
}
]
\ No newline at end of file