diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ABMALogo.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ABMALogo.png
new file mode 100644
index 0000000..10030af
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ABMALogo.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ABMALogo_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ABMALogo_Scaled.png
new file mode 100644
index 0000000..b400b37
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ABMALogo_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ASTP.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ASTP.png
new file mode 100644
index 0000000..7f8f016
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ASTP.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ASTP_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ASTP_Scaled.png
new file mode 100644
index 0000000..41be7c7
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ASTP_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/Agents.cfg b/GameData/ContractPacks/HistoricalProgression/Agencies/Agents.cfg
new file mode 100644
index 0000000..741c071
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Agencies/Agents.cfg
@@ -0,0 +1,116 @@
+AGENT
+{
+ name = Peenemunde Army Research Center
+ description = The Peenemunde Army Research Center was founded in 1937 as one of five military proving grounds under the German Army Weapons Office. It is widely regarded as the birthplace of modern rocketry and spaceflight.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo_scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = USSR
+ description = The Soviet space program comprised the rocketry and space exploration programs conducted by the former Soviet Union (USSR) from the 1930s until its dissolution in 1991. Over its sixty-year history, this primarily classified military program was responsible for a number of pioneering accomplishments in space flight, including the first intercontinental ballistic missile (R-7), first satellite (Sputnik-1), first animal in Earth orbit (the dog Laika on Sputnik 2), first human in space and Earth orbit (cosmonaut Yuri Gagarin on Vostok 1), first woman in space and Earth orbit (cosmonaut Valentina Tereshkova on Vostok 6), first spacewalk (cosmonaut Alexey Leonov on Voskhod 2), first Moon impact (Luna 2), first image of the far side of the moon (Luna 3) and unmanned lunar soft landing (Luna 9), first space rover (Lunokhod 1), first sample of lunar soil automatically extracted and brought to Earth (Luna 16), and first space station (Salyut 1). Further notable records included the first interplanetary probes: Venera 1 and Mars 1 to fly by Venus and Mars, respectively, Venera 3 and Mars 2 to impact the respective planet surface, and Venera 7 and Mars 3 to make soft landings on these planets. /n/n Information from Wikipedia
+ logoURL = ContractPacks/HistoricalProgression/Agencies/USSRLogo
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/USSRLogo
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = Army Ballistic Missile Agency
+ description = The Army Ballistic Missile Agency (ABMA) was formed to develop the US Army's first large ballistic missile. The agency was established at Redstone Arsenal on 1 February 1956, and commanded by Major General John B. Medaris with Wernher von Braun as technical director.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/ABMALogo
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/ABMALogo_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = NASA
+ description = The National Aeronautics and Space Administration (NASA) is the United States government agency responsible for the civilian space program as well as aeronautics and aerospace research.\n\nPresident Dwight D. Eisenhower established the National Aeronautics and Space Administration (NASA) in 1958 with a distinctly civilian (rather than military) orientation encouraging peaceful applications in space science. The National Aeronautics and Space Act was passed on July 29, 1958, disestablishing NASA's predecessor, the National Advisory Committee for Aeronautics (NACA). The new agency became operational on October 1, 1958.\n\nSince that time, most US space exploration efforts have been led by NASA, including the Apollo moon-landing missions, the Skylab space station, and later the Space Shuttle. Currently, NASA is supporting the International Space Station and is overseeing the development of the Orion Multi-Purpose Crew Vehicle, the Space Launch System and Commercial Crew vehicles. The agency is also responsible for the Launch Services Program (LSP) which provides oversight of launch operations and countdown management for unmanned NASA launches.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/NASALogo
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/NASALogo_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = US Air Force
+ description = The United States Air Force (USAF) is the aerial warfare service branch of the United States Armed Forces and one of the seven American uniformed services. Initially part of the United States Army, the USAF was formed as a separate branch of the military on 18 September 1947 under the National Security Act of 1947.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/USAFLogo
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/USAFLogo_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = Naval Research Lab
+ description = The Naval Research Laboratory has been a crucial piece of the United States space program. Project Vanguard, the first American satellite program, tasked NRL with the design, construction and launch of an artificial satellite, which was accomplished in 1958. Vanguard I, designed and built at NRL, was the first solar-powered satellite. As of 2013, Vanguard I is still in orbit, making it the longest-lived man-made satellite. Vanguard II was the first satellite to observe the Earth's cloud cover and therefore the first meteorological satellite. NRL pioneered the study of the sun Ultraviolet and X-Ray spectrum.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = Apollo Soyuz Test Project
+ description = The Apollo–Soyuz Test Project (ASTP) conducted in July 1975, was the first joint U.S.–Soviet space flight, as a symbol of the policy of détente that the two superpowers were pursuing at the time. It involved the docking of an Apollo Command/Service Module with the Soviet Soyuz 19. The unnumbered Apollo vehicle was a surplus from the terminated Apollo program and the last one to fly. This mission ceremoniously marked the end of the Space Race that had begun in 1957 with the Sputnik launch.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/ASTP
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/ASTP_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = DFVLR
+ description = The German Aerospace Center, abbreviated DLR, is the national center for aerospace, energy and transportation research of the Federal Republic of Germany. Its headquarters are located in Cologne and it has other multiple locations throughout Germany. The DLR is engaged in a wide range of research and development projects in national and international partnerships. In addition to conducting its own research projects, DLR also acts as the German space agency. As such, it is responsible for planning and implementing the German space programme on behalf of the German federal government. As a project management agency, DLR also coordinates and answers the technical and organizational implementation of projects funded by a number of German federal ministries.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/DFVLR
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/DFVLR_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = NASA Space Transportation System
+ description = The Space Shuttle program, officially called the Space Transportation System (STS), was the United States government's manned launch vehicle program from 1981 to 2011, administered by NASA and officially beginning in 1972. The Space Shuttle system—composed of an orbiter launched with two reusable solid rocket boosters and a disposable external fuel tank— carried up to eight astronauts and up to 50,000 lb (23,000 kg) of payload into low Earth orbit (LEO). When its mission was complete, the orbiter would re-enter the Earth's atmosphere and land like a glider at either the Kennedy Space Center or Edwards Air Force Base.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/NASASTS
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/NASASTS_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = ESA
+ description = The European Space Agency (ESA) is an intergovernmental organisation dedicated to the exploration of space, with 22 member states. Established in 1975 and headquartered in Paris, France, ESA has a worldwide staff of about 2,000. ESA's space flight programme includes human spaceflight (mainly through participation in the International Space Station programme); the launch and operation of unmanned exploration missions to other planets and the Moon; Earth observation, science and telecommunication; designing launch vehicles; and maintaining a major spaceport, the Guiana Space Centre at Kourou, French Guiana.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/ESA
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/ESA_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = JAXA
+ description = The Japan Aerospace eXploration Agency, or JAXA, is Japan's national aerospace agency. Through the merger of three previously independent organizations, JAXA was formed on October 1, 2003. JAXA is responsible for research, technology development and the launch of satellites into orbit, and is involved in many more advanced missions, such as asteroid exploration and possible manned exploration of the Moon. Its motto is One JAXA and its corporate slogan is Explore to Realize (formerly Reaching for the skies, exploring space).
+ logoURL = ContractPacks/HistoricalProgression/Agencies/JAXA
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/JAXA_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = International Space Station
+ description = The International Space Station (ISS) is a space station, or a habitable artificial satellite, in low Earth orbit. Its first component launched into orbit in 1998, and the ISS is now the largest artificial body in orbit and can often be seen with the naked eye from Earth. The ISS consists of pressurised modules, external trusses, solar arrays, and other components. ISS components have been launched by Russian Proton and Soyuz rockets, and American Space Shuttles.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/ISS
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/ISS_Scaled
+ mentality = NoRandomContractMentality
+}
+
+AGENT
+{
+ name = Roscosmos
+ description = he Roscosmos State Corporation for Space Activities, commonly known as Roscosmos, is the governmental body responsible for the space science program of Russia and general aerospace research.
+ logoURL = ContractPacks/HistoricalProgression/Agencies/Roscosmos
+ logoScaledURL = ContractPacks/HistoricalProgression/Agencies/Roscosmos_Scaled
+ mentality = NoRandomContractMentality
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/DFVLR.png b/GameData/ContractPacks/HistoricalProgression/Agencies/DFVLR.png
new file mode 100644
index 0000000..f3813ba
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/DFVLR.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/DFVLR_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/DFVLR_Scaled.png
new file mode 100644
index 0000000..c7b6a46
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/DFVLR_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ESA.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ESA.png
new file mode 100644
index 0000000..69181ee
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ESA.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ESA_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ESA_Scaled.png
new file mode 100644
index 0000000..925dec6
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ESA_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ISS.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ISS.png
new file mode 100644
index 0000000..ae8793e
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ISS.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/ISS_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/ISS_Scaled.png
new file mode 100644
index 0000000..b1dba71
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/ISS_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/JAXA.png b/GameData/ContractPacks/HistoricalProgression/Agencies/JAXA.png
new file mode 100644
index 0000000..81bcb43
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/JAXA.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/JAXA_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/JAXA_Scaled.png
new file mode 100644
index 0000000..0d58127
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/JAXA_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/NASALogo.png b/GameData/ContractPacks/HistoricalProgression/Agencies/NASALogo.png
new file mode 100644
index 0000000..3f4ccef
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/NASALogo.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/NASALogo_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/NASALogo_Scaled.png
new file mode 100644
index 0000000..95ec5c9
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/NASALogo_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/NASASTS.png b/GameData/ContractPacks/HistoricalProgression/Agencies/NASASTS.png
new file mode 100644
index 0000000..09a331f
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/NASASTS.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/NASASTS_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/NASASTS_Scaled.png
new file mode 100644
index 0000000..bdb5358
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/NASASTS_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo.png b/GameData/ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo.png
new file mode 100644
index 0000000..60a13b1
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo_Scaled.png
new file mode 100644
index 0000000..47f43c3
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/NavalResearchLabLogo_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo.png b/GameData/ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo.png
new file mode 100644
index 0000000..07a3454
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo_Scaled.png
new file mode 100644
index 0000000..7acd54b
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/PeenemundeLogo_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/Roscosmos.png b/GameData/ContractPacks/HistoricalProgression/Agencies/Roscosmos.png
new file mode 100644
index 0000000..97aa985
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/Roscosmos.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/Roscosmos_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/Roscosmos_Scaled.png
new file mode 100644
index 0000000..865d38e
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/Roscosmos_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/USAFLogo.png b/GameData/ContractPacks/HistoricalProgression/Agencies/USAFLogo.png
new file mode 100644
index 0000000..72ae0a4
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/USAFLogo.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/USAFLogo_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/USAFLogo_Scaled.png
new file mode 100644
index 0000000..5b8eb85
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/USAFLogo_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/USSRLogo.png b/GameData/ContractPacks/HistoricalProgression/Agencies/USSRLogo.png
new file mode 100644
index 0000000..44d8231
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/USSRLogo.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/Agencies/USSRLogo_Scaled.png b/GameData/ContractPacks/HistoricalProgression/Agencies/USSRLogo_Scaled.png
new file mode 100644
index 0000000..d08b0d2
Binary files /dev/null and b/GameData/ContractPacks/HistoricalProgression/Agencies/USSRLogo_Scaled.png differ
diff --git a/GameData/ContractPacks/HistoricalProgression/ContractPack-HistoricalProgression.version b/GameData/ContractPacks/HistoricalProgression/ContractPack-HistoricalProgression.version
new file mode 100644
index 0000000..0a5a6a8
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/ContractPack-HistoricalProgression.version
@@ -0,0 +1,24 @@
+{
+ "NAME":"Contract Pack: Historical Progression",
+ "VERSION":{
+ "MAJOR":1,
+ "MINOR":0,
+ "PATCH":0,
+ "BUILD":0
+ },
+ "KSP_VERSION":{
+ "MAJOR":1,
+ "MINOR":1,
+ "PATCH":3
+ },
+ "KSP_VERSION_MIN":{
+ "MAJOR":1,
+ "MINOR":1,
+ "PATCH":0
+ },
+ "KSP_VERSION_MAX":{
+ "MAJOR":1,
+ "MINOR":1,
+ "PATCH":99
+ }
+ }
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions.cfg b/GameData/ContractPacks/HistoricalProgression/Missions.cfg
new file mode 100644
index 0000000..d56fa2d
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions.cfg
@@ -0,0 +1,128 @@
+CONTRACT_GROUP
+{
+ name = HistoricalProgression
+ displayName = Historical Progression
+ minVersion = 1.1.0
+ maxSimultaneous = 100
+ maxCompletions = 0
+
+ disabledContractType = ExploreBody
+ disabledContractType = WorldFirstContract
+
+ CONTRACT_GROUP
+ {
+ name = EarlyMissions
+ displayName = Early Missions
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = 1960Missions
+ displayName = 1960's Missions
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = 1970Missions
+ displayName = 1970's Missions
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = 1990Missions
+ displayName = 1990's Missions
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = 2000Missions
+ displayName = 2000's Missions
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = ApolloProgram
+ displayName = Apollo Program
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = MarsExploration
+ displayName = Mars Exploration
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = Observatories
+ displayName = Space Observatories
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = ProjectGemini
+ displayName = Project Gemini
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+
+ CONTRACT_GROUP
+ {
+ name = VenusExploration
+ displayName = Venus Exploration
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+ CONTRACT_GROUP
+ {
+ name = MoonExploration
+ displayName = Moon Exploration
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+ CONTRACT_GROUP
+ {
+ name = SpaceStations
+ displayName = Space Stations
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+ CONTRACT_GROUP
+ {
+ name = ShuttleMissions
+ displayName = Space Shuttle Missions
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+ CONTRACT_GROUP
+ {
+ name = JupiterExploration
+ displayName = Jupiter Exploration
+ maxSimultaneous = 10
+ maxCompletions = 0
+ }
+}
+
+CONTRACT_GROUP
+{
+ name = MirOptional
+ displayName = Historical Progression Optional: Mir Missions
+ minVersion = 1.1.0
+ maxSimultaneous = 100
+ maxCompletions = 0
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/1960Missions.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/1960Missions.cfg
new file mode 100644
index 0000000..323be79
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/1960Missions.cfg
@@ -0,0 +1,1313 @@
+// Discoverer 13
+
+CONTRACT_TYPE
+{
+ name = Discoverer-13
+ group = 1960Missions
+
+ title = Discoverer 13
+ agent = US Air Force
+
+ description = Discoverer 13 was an earth-orbiting satellite designed to test spacecraft engineering techniques and to attempt deceleration, reentry through the atmosphere, and recovery from the sea of an instrument package.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Discoverer 13\n3. Reach Orbit\n4. Collect Science Data from space around @targetBody\n5. Survive Reentry and land or splashdown\n\nSignificance: Discoverer 13 was the first man made object to survive reentry and return to Earth from space.\n\nHistorical Launch Date: August 10, 1960
+
+ synopsis = Launch Discoverer 13 and recover the craft from orbit
+ notes = Launch Discoverer 13 and recover the craft from orbit
+
+ completedMessage = Congratulations! Discoverer 13 represented the first-ever successful recovery of an object from orbit. The cylindrical Agena A stage that was placed in orbit carried a telemetry system, a tape recorder, receivers for command signals from the ground, a horizon scanner, and a 120-lb recovery capsule that contained an American flag. The flag was given to President Eisenhower.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 12
+ rewardFunds = 24000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Luna-3
+ }
+
+ PARAMETER
+ {
+ name = Discoverer-13
+ type = VesselParameterGroup
+ title = Recover a craft from orbit.
+ define = Discoverer-13
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minInclination = 0.0
+ title = Reach orbit
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Mercury-Redstone 2
+
+CONTRACT_TYPE
+{
+ name = Mercury-2
+ group = 1960Missions
+
+ title = Mercury-Redstone 2
+ agent = NASA
+
+ description = Mercury-Redstone 2 (MR-2) was the penultimate test flight of the Mercury-Redstone Launch Vehicle prior to the first manned American space mission in Project Mercury. It was launched at 16:55 UTC on January 31, 1961 from LC-5 at Cape Canaveral, Florida. Mercury spacecraft No. 5 carried Ham the Chimp, a chimpanzee, on a suborbital flight, landing in the Atlantic Ocean 16 minutes and 39 seconds after launch.\n\nObjectives:\n\n1. Design an unmanned rocket with Crew Space for 1 (you should include a probe core as this is technically an unmanned flight) with an antenna\n2. Load Ham the Chimp\n3. Launch Mercury-Redstone 2\n4. Reach Orbit\n5. Survive Reentry and land or splashdown\n\nSignificance: Mercury-Redstone 2 was the first time a primate was sent to space and safely returned to Earth.\n\nHistorical Launch Date: January 31, 1961
+
+ synopsis = Launch Mercury-Redstone 2 with Ham the Chimp on a Sub-Orbital trajectory and return safely to @targetBody
+ notes = Launch Mercury-Redstone 2 with Ham the Chimp on a Sub-Orbital trajectory and return safely to @targetBody
+
+ completedMessage = Congratulations! While the mission was ultimately a success, there were some issues with the flight that NASA wanted to fix before putting a manned mission into space. It would ultimately cost them the ability to be the first country to have a man reach space.
+
+ targetBody = HomeWorld()
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 10
+ rewardFunds = 10000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Discoverer-13
+ }
+
+ PARAMETER
+ {
+ name = Mercury-2
+ type = VesselParameterGroup
+ title = Launch the Mercury-Redstone 2
+ define = Mercury-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrewCapacity
+ type = HasCrewCapacity
+ minCapacity = 1
+ maxCapacity = 1
+ title = Have room for one crew
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasPassengers
+ type = HasPassengers
+ count = 1
+ title = Ham the Chimp on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachState
+ type = ReachState
+ situation = SUB_ORBITAL
+ disableOnStateChange = true
+ title = Achieve a Sub Orbital trajectory
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = RecoverKerbal
+ type = RecoverKerbal
+ completeInSequence = true
+ }
+ }
+ BEHAVIOUR
+ {
+ name = SpawnPassengers
+ type = SpawnPassengers
+ count = 1
+ kerbal = Ham the Chimp
+ }
+}
+
+// Korabl-Sputnik 5
+
+CONTRACT_TYPE
+{
+ name = Sputnik-5
+ group = 1960Missions
+
+ title = Korabl-Sputnik 5
+ agent = USSR
+
+ description = Korabl-Sputnik 5 was a Soviet spacecraft which was launched in 1961, as part of the Vostok programme. It was the last test flight of the Vostok spacecraft design prior the first manned flight, Vostok 1. It carried the mannequin Ivan Ivanovich, a dog named Zvezdochka, television cameras and scientific equipment.\n\nObjectives:\n\n1. Design an unmanned rocket with Crew Space for 1 (this should have a probe core as it is technically an uncrewed flight) with an antenna\n2. Load Zvezdochka the Dog\n3. Launch Korabl-Sputnik 5\n4. Reach Orbit\n5. Survive Reentry and land or splashdown\n\n Significance:\n Korabl-Sputnik 5 was the first time that a mammal reached orbit and returned safely to Earth.\n\nHistorical Launch Date: March 25, 1961
+
+ synopsis = Launch Korabl-Sputnik 5 with Zvezdochka the Dog into Orbit and return safely
+ notes = Launch Korabl-Sputnik 5 with Zvezdochka the Dog into Orbit and return safely
+
+ completedMessage = Success! Korabl-Sputnik 5 was the final step in the approval for the Soviet Union to send a man into orbit.
+
+ targetBody = HomeWorld()
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Discoverer-13
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Launch the Korabl-Sputnik 5
+ define = Sputnik-5
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrewCapacity
+ type = HasCrewCapacity
+ minCapacity = 1
+ maxCapacity = 1
+ title = Have room for one crew
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasPassengers
+ type = HasPassengers
+ count = 1
+ title = Zvezdochka the Dog is on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = RecoverKerbal
+ type = RecoverKerbal
+ completeInSequence = true
+ }
+ }
+ BEHAVIOUR
+ {
+ name = SpawnPassengers
+ type = SpawnPassengers
+ count = 1
+ kerbal = Zvezdochka the Dog
+ }
+}
+
+// Vostok 1
+
+CONTRACT_TYPE
+{
+ name = Vostok-1
+ group = 1960Missions
+
+ title = Vostok 1
+ agent = USSR
+
+ description = Vostok 1 was the first spaceflight of the Vostok programme and the first manned spaceflight in history. The Vostok 3KA space capsule was launched on April 12, 1961 from Baikonur Cosmodrome with Soviet cosmonaut Yuri Gagarin, making him the first human to cross into outer space. The orbital spaceflight consisted of a single orbit around Earth which skimmed the upper atmosphere at 169 kilometers (91 nautical miles) at its lowest point. The flight took 108 minutes from launch to landing. Gagarin parachuted to the ground separately from his capsule after ejecting at 7 km (23,000 ft) altitude.\n\nObjectives:\n\n1. Design the first Manned Orbiter\n2. Crew of 1\n3. Launch Vostok 1\n4. Reach Orbit\n5. Deorbit\n6. Survive Reentry and land or splashdown \n\n Significance:\n Vostok 1 was the first manned Spaceflight\n\nHistorical Launch Date: April 12, 1961
+
+ synopsis = Send a kerbal to orbit on Vostok 1 and return safely to @targetBody
+ notes = Send a kerbal to orbit on Vostok 1 and return safely to @targetBody
+
+ completedMessage = This is a most historic day, the first spacefarer has returned to @targetBody! Four decades after the flight, historian Asif Azam Siddiqi wrote that Vostok 1: "will undoubtedly remain one of the major milestones in not only the history of space exploration, but also the history of the human race itself. The fact that this accomplishment was successfully carried out by the Soviet Union, a country completely devastated by war just sixteen years prior, makes the achievement even more impressive. Unlike the United States, the USSR had to begin from a position of tremendous disadvantage. Its industrial infrastructure had been ruined, and its technological capabilities were outdated at best. A good portion of its land had been devastated by war, and it had lost about 25 million citizens ... but it was the totalitarian state that overwhelmingly took the lead [in the space race]."
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 12
+ rewardReputation = 40
+ rewardFunds = 60000
+
+ advanceFunds = 16000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Sputnik-5
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Vostok 1
+ define = Vostok-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 1
+ maxCrew = 1
+ title = Have 1 crewmember on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+}
+
+// Freedom 7
+
+CONTRACT_TYPE
+{
+ name = Freedom-7
+ group = 1960Missions
+
+ title = Mercury-Redstone Freedom 7
+ agent = NASA
+
+ description = Mercury-Redstone 3, or Freedom 7 was the first United States human spaceflight, on May 5, 1961, piloted by astronaut Alan Shepard. It was the first manned flight of Project Mercury, the objective of which was to put an astronaut into orbit around the Earth and return him safely. Shepard named his capsule Freedom 7, setting a precedent for the remaining six Mercury astronauts naming their spacecraft. The number 7 was included in the spacecraft name to honor NASA's first group of seven astronauts.\n\nObjectives:\n\n1. Design the first Manned Sub-Orbiter\n2. Crew of 1\n3. Launch Freedom 7\n4. Reach a Sub-Orbital trajectory\n5. Survive Reentry and land or splashdown\n\nSignificance: Mercury-Redstone 3: Freedom 7 was the first Manned Suborbital Flight\n\nHistorical Launch Date: May 5, 1961
+
+ synopsis = Send a kerbal on Freedom 7 on a suborbital flight and return safely to @targetBody
+ notes = Send a kerbal on Freedom 7 on a suborbital flight and return safely to @targetBody
+
+ completedMessage = Success! Alan Shepard's mission was a 15-minute suborbital flight which reached an altitude of 101.2 nautical miles (187.5 kilometers) and traveled a downrange distance of 263.1 nautical miles (487.3 kilometers). It was the third Mercury flight launched with the Mercury-Redstone Launch Vehicle, from Cape Canaveral, Florida, close to the Atlantic Ocean.\n\nDuring the flight, Shepard observed the Earth and tested the capsule's attitude control system, turning the capsule around to face its blunt heat shield forward for atmospheric entry. He also tested the retrorockets which would return later missions from orbit, though the capsule did not have enough energy to remain in orbit. After re-entry, the capsule landed by parachute on the Atlantic ocean off the Bahamas. Shepard and the capsule were picked up by helicopter and brought to an aircraft carrier.\n\nThe mission was a technical success, though American pride in the accomplishment was dampened by the fact that just 3 weeks before, the Soviet Union had launched the first man in space, Yuri Gagarin, who completed one orbit on Vostok 1.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Vostok-1
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Send a Kerbal on a Sub-Orbital Mission to Space
+ define = Freedom-7
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 1
+ maxCrew = 1
+ title = Have 1 crewmember on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachState
+ type = ReachState
+ situation = SUB_ORBITAL
+ disableOnStateChange = true
+ title = Achieve a Sub Orbital trajectory
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Vostok 2
+
+CONTRACT_TYPE
+{
+ name = Vostok-2
+ group = 1960Missions
+
+ title = Vostok 2
+ agent = USSR
+
+ description = Vostok 2 was a Soviet space mission which carried cosmonaut Gherman Titov into orbit for a full day on August 6, 1961 to study the effects of a more prolonged period of weightlessness on the human body. Titov orbited the Earth over 17 times, exceeding the single orbit of Yuri Gagarin on Vostok 1 − as well as the suborbital spaceflights of American astronauts Alan Shepard and Gus Grissom aboard their respective Mercury-Redstone 3 and 4 missions. Indeed, Titov's number of orbits and flight time would not be surpassed by an American astronaut until Gordon Cooper's Mercury-Atlas 9 spaceflight in May 1963.\n\nObjectives:\n\n1. Design an improved Manned Orbiter\n2. Crew of 1\n3. Launch Vostok 2\n4. Reach Orbit and sustain for 1 Day\n5. Deorbit\n6. Survive Reentry and land or splashdown\n\nSignificance: Vostok 2 was the first time that a human stayed in space for a full day\n\nHistorical Launch Date: August 6, 1961
+
+ synopsis = Send a kerbal on Vostok 2 to orbit for a full day and return safely to @targetBody
+ notes = Send a kerbal on Vostok 2 to orbit for a full day and return safely to @targetBody
+
+ completedMessage = Congratulations! The flight was an almost complete success, marred only by a heater that had inadvertently been turned off prior to liftoff and that allowed the inside temperature to drop to 50 °F (10 °C), a bout of space sickness, and a troublesome re-entry when the reentry module failed to separate cleanly from its service module. Unlike Yuri Gagarin on Vostok 1, Titov took manual control of the spacecraft for a short while.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Freedom-7
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Vostok 2
+ define = Vostok-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 1
+ maxCrew = 1
+ title = Have 1 crewmember on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Vostok2Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and stay in orbit for 1 day
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Vostok2Duration
+ type = Duration
+ duration = @targetBody.RotationalPeriod()
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting for one Day
+ completionText = Orbits Complete! You may fire retros when ready
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Telstar 1
+
+CONTRACT_TYPE
+{
+ name = Telstar-1
+ group = 1960Missions
+
+ title = Telstar 1
+ agent = NASA
+
+ description = Belonging to AT&T, the original Telstar was part of a multi-national agreement among AT&T, Bell Telephone Laboratories, NASA, GPO, and the National PTT to develop experimental satellite communications over the Atlantic Ocean. Bell Labs held a contract with NASA, paying the agency for each launch, independent of success.\n\nObjectives:\n\n1. Design an unmanned Communications Satellite\n2. Launch Telstar 1\n3. Reach Orbit with a minimum Periapsis of 900 km and a minimum Eccentricity of 0.20\n\nSignificance: Telstar 1 was the first true communications satellite.\n\nHistorical Launch Date: July 10, 1962
+
+ synopsis = Launch Telstar 1 for Global Communications into Orbit
+ notes = Launch Telstar 1 for Global Communications into Orbit
+
+ completedMessage = Congratulations! Launched by NASA aboard a Delta rocket from Cape Canaveral on July 10, 1962, Telstar 1 was the first privately sponsored space launch. A medium-altitude satellite, Telstar was placed in an elliptical orbit completed once every 2 hours and 37 minutes, inclined at an angle of approximately 45 degrees to the equator, with perigee about 952 km (592 mi) from Earth and apogee about 5,933 km (3,687 mi) from Earth. This limited communications across the Atlantic to a 20 minute period in the 2.5 hour orbit.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 40000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = OSO-1
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place Telstar 1 in orbit
+ define = Telstar-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ situation = ORBITING
+ minPeA = 900000
+ minEccentricity = 0.20
+ }
+ }
+}
+
+// Vostok 6
+
+CONTRACT_TYPE
+{
+ name = Vostok-6
+ group = 1960Missions
+
+ title = Vostok 6
+ agent = USSR
+
+ description = Vostok 6, the last spacecraft in the USSRs first manned flight series, carried Valentina V. Tereshkova, the first woman in space. The spacecraft consisted of a nearly spherical cabin covered with ablative material.\n\nObjectives:\n\n1. Design a Manned Orbiter\n2. Crew of 1\n3. Launch Vostok 6\n4. Reach Orbit and sustain for three days\n5. Deorbit\n6. Survive Reentry and land or splashdown\n\nSignificance: Vostok 6 was the first time that a woman flew in space\n\nHistorical Launch Date: June 16, 1963
+
+ synopsis = Send a kerbal to orbit for three days and return safely to @targetBody
+ notes = Send a kerbal to orbit for three days and return safely to @targetBody
+
+ completedMessage = Congratulations! This flight lasted for 3 days and, for most of this time, Vostok 6 flew with Vostok 5 maintaining two-way radio communications and establishing communications with earth at regular intervals. TV pictures of the cosmonauts in their cabins were relayed to earth, and a series of biomedical and scientific experiments were conducted. After completing 48 orbits in 70.7 hr, the spacecraft landed on June 19, 1963, northeast of Karaganda.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Telstar-1
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ threeDays = @dayLength * 3
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Vostok 6
+ define = Vostok-6
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 1
+ maxCrew = 1
+ title = Have 1 crewmember on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Vostok6Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and stay in orbit for 3 days
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Vostok6Duration
+ type = Duration
+ duration = @/threeDays
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting for 3 days
+ completionText = Orbits Complete! You may fire retros when ready
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Syncom 2
+
+CONTRACT_TYPE
+{
+ name = Syncom-2
+ group = 1960Missions
+
+ title = Syncom 2
+ agent = NASA
+
+ description = Syncom (for "synchronous communication satellite") started as a 1961 NASA program for active geosynchronous communication satellites, all of which were developed and manufactured by Hughes Space and Communications. Syncom 2, launched in 1963, was the world's first geosynchronous (same orbital period, not stationary) communications satellite.\n\nObjectives:\n\n1. Design an unmanned Communications Satellite\n2. Launch Syncom 2\n3. Reach Orbit with an Orbital Period equal to @targetBody within 2 minutes and an Eccentricity less than 0.05\n\nSignificance: Syncom 2 was the first satellite to achieve Geosynchronous Orbit\n\nHistorical Launch Date: July 26, 1963
+
+ synopsis = Launch Syncom 2 into a geosynchronous orbit of @targetBody
+ notes = Launch Syncom 2 into a geosynchronous orbit of @targetBody
+
+ completedMessage = Congratulations! Syncom 2 was the first geosynchronous satellite and relayed communications during its lifetime.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 10
+ rewardFunds = 15000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Telstar-1
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ highEnd = @dayLength + 120
+ lowEnd = @dayLength - 120
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place Syncom 2 in geosynchronous orbit.
+ define = Syncom-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ situation = ORBITING
+ maxEccentricity = 0.05
+ minPeriod = @/lowEnd
+ maxPeriod = @/highEnd
+ }
+ }
+}
+
+// Syncom 3
+
+CONTRACT_TYPE
+{
+ name = Syncom-3
+ group = 1960Missions
+
+ title = Syncom 3
+ agent = NASA
+
+ description = Syncom 3 was the first geostationary satellite. (The earlier geosynchronous Syncom 2 had an orbit inclined to the equator.) It was an experimental geosynchronous communications satellite placed over the equator at 180 degrees longitude in the Pacific Ocean. The satellite provided live television coverage of the 1964 Olympic games in Tokyo, Japan and conducted various communications tests. Operations were turned over to the Department of Defense on 1 January 1965, Syncom 3 was to prove useful in the DoD's Vietnam communications.\n\nObjectives:\n\n1. Design an unmanned Communications Satellite\n2. Launch Syncom 3\n3. Reach Orbit with an Orbital Period equal to @targetBody within 2 minutes\n4. Inclination less than 3\n5. Eccentricity less than 0.05\n\nSignificance: Syncom 3 was the first satellite to achieve Geostationary Orbit\n\nHistorical Launch Date: August 19, 1964
+
+ synopsis = Launch Syncom 3 into a geostationary orbit of @targetBody
+ notes = Launch Syncom 3 into a geostationary orbit of @targetBody
+
+ completedMessage = Congratulations! Syncom 3 was the first geostationary satellite and relayed communications from the 1964 Olympics and aided the DoD in Vietnam. Geostationary and Geosynchronous satellites are used extensively for communications satellites and the launches of Syncom 2 and Syncom 3 were the beginning of consistent global communications.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 10
+ rewardFunds = 25000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Syncom-2
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ highEnd = @dayLength + 120
+ lowEnd = @dayLength - 120
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place Syncom 3 in geostationary orbit.
+ define = Syncom-3
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ situation = ORBITING
+ maxInclination = 3
+ maxEccentricity = 0.05
+ minPeriod = @/lowEnd
+ maxPeriod = @/highEnd
+ }
+ }
+}
+
+// Voskhod 1
+
+CONTRACT_TYPE
+{
+ name = Voskhod-1
+ group = 1960Missions
+
+ title = Voskhod 1
+ agent = USSR
+
+ description = Voskhod 1, which carried three men into space, was the first multi-manned flight. The crew members were cosmonauts Vladimir M. Komarov, command pilot, Boris B. Yegorov, physician, and Konstatin P. Feoktisov, scientist. This mission was designed to test the new multi-seat spacecraft, to investigate the capacity of a group of cosmonauts who were specialists in different disciplines of science and engineering, to conduct physical and technical experiments, and to perform an extensive medical-biological investigation program.\n\nObjectives:\n\n1. Design a Manned Orbiter\n2. Crew of 3\n3. Launch Voskhod 1\n4. Reach Proper Orbit and sustain for one day\n5. Return Science from Space around @targetBody\n6. Deorbit\n7. Survive Reentry and land or splashdown\n\nSignificance: Voskhod 1 was the first multi-manned flight carrying 3 humans into space\n\nHistorical Launch Date: October 12, 1964
+
+ synopsis = Send three kerbals to orbit for a full day and return safely to @targetBody
+ notes = Send three kerbals to orbit for a full day and return safely to @targetBody
+
+ completedMessage = Congratulations! The mission was a success, and a large amount of scientific data was obtained. During the flight, live TV pictures were returned. The life-support systems of the space cabin were felt to be reliable enough to allow the crew to wear overalls instead of the cumbersome spacesuits and helmets.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 15000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Vostok-6
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ oneDay = Round(@dayLength / 60 / 60, 1)
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Voskhod 1
+ define = Voskhod-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Voskhod1Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and stay in orbit for @/oneDay hours
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Voskhod1Duration
+ type = Duration
+ duration = @targetBody.RotationalPeriod()
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting for One Day
+ completionText = Orbits Complete! You may fire retros when ready
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Voskhod 2
+
+CONTRACT_TYPE
+{
+ name = Voskhod-2
+ group = 1960Missions
+
+ title = Voskhod 2
+ agent = USSR
+
+ description = Voskhod 2 was launched with two men on board, cosmonauts Pavel I. Belyayev, pilot, and Aleksey A. Leonov, co-pilot. The spacecraft was equipped with an extendable air lock that permitted Leonov's exit into space without having to evacuate the main cabin air. Leonov was the first man to perform an EVA (ExtraVehicular Activity) in space.\n\nObjectives:\n\n1. Design a Manned Orbiter with an Antenna\n2. Crew of 2\n3. Launch Voskhod 2\n4. Reach Proper Orbit\n5. Conduct an EVA and Return the Data via Transmission\n6. Deorbit\n7. Survive Reentry and land or splashdown\n\nSignificance: Voskhod 2 was the first time a person left the capsule to perform an EVA\n\nHistorical Launch Date: March 18, 1965
+
+ synopsis = Send two kerbals to orbit and perform an EVA then return safely to @targetBody
+ notes = Send two kerbals to orbit and perform an EVA then return safely to @targetBody
+
+ completedMessage = Congratulations! For this EVA a space suit was donned, and a life-support system was worn in a back pack. The EVA was recorded by a mounted extended TV camera. Leonov also carried a handheld movie camera. The EVA lasted 20 min, during which Leonov experienced tension and euphoria. The flight of Voskhod 2 lasted for 26 hr, and 16 orbits were completed. A manually controlled reentry was performed because of a malfunction of the automatic orientation devices for the retrofire, and the spacecraft landed in a pine forest far north of the target area. After locating the spacecraft, one day was required to cut through the forest and bring the crew out on skis.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 20
+ rewardFunds = 20000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Voskhod-1
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Voskhod 2 with EVA
+ define = Voskhod-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = EVAReportInOrbit
+ type = All
+ title = Reach Orbit, Perform an EVA and TRANSMIT the data back to KSC
+ hideChildren = true
+ PARAMETER
+ {
+ name = OrbitEarth
+ type = Orbit
+ minPeA = @targetBody.AtmosphereAltitude()
+ targetBody = HomeWorld()
+ }
+ PARAMETER
+ {
+ name = EVAReport
+ type = CollectScience
+ targetBody = HomeWorld()
+ situation = InSpaceLow
+ experiment = evaReport
+ recoveryMethod = Transmit
+ }
+ disableOnStateChange = true // when you go inside
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Kosmos
+
+CONTRACT_TYPE
+{
+ name = Kosmos
+ group = 1960Missions
+
+ title = Kosmos 186 & Kosmos 188
+ agent = USSR
+
+ description = Kosmos 186 and Kosmos 188 were two unmanned Soviet Union spacecraft that incorporated a Soyuz programme descent module for landing scientific instruments and test objects.\n\nObjectives:\n\n1. Design and launch identical twin unmanned spacecraft with antennas and docking ports\n2. Launch Kosmos 186 and achieve Orbit\n3. Launch Kosmos 188 and Rendezvous with Kosmos 186\n4. Dock the ships together\n\n Significance:\n Kosmos 186 and Kosmos 188 were the first two ships to achieve automated docking\n\nHistorical Launch Date: October 27, 1967
+
+ synopsis = Launch 2 Unmanned ships to orbit and dock them while in orbit
+ notes = Launch 2 Unmanned ships to orbit and dock them while in orbit
+
+ completedMessage = Congratulations! Kosmos 186 (Russian: Космос-186 meaning Cosmos 186) and Kosmos 188 (respectively, Cosmos 188) were two unmanned Soviet Union spacecraft that incorporated a Soyuz programme descent module for landing scientific instruments and test objects. This mission proved it possible to launch smaller parts and assemble them in space, thus eliminating the need for exceedingly large rockets for larger undertakings like a space station.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Gemini-8
+ }
+
+ PARAMETER
+ {
+ name = Kosmos-186
+ type = VesselParameterGroup
+ define = Kosmos-186
+ title = Kosmos 186
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = Kosmos-188
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Kosmos186Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = Kosmos-188
+ type = VesselParameterGroup
+ define = Kosmos-188
+ title = Kosmos 188
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+ vessel = Kosmos-186
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = DockWith186
+ type = Docking
+ vessel = Kosmos-188
+ vessel = Kosmos-186
+ title = Dock the craft together
+ hideChildren = true
+ disableOnStateChange = true
+ completeInSequence = true
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/1970Missions.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/1970Missions.cfg
new file mode 100644
index 0000000..7b563cf
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/1970Missions.cfg
@@ -0,0 +1,411 @@
+// Soyuz 9
+
+CONTRACT_TYPE
+{
+ name = Soyuz-9
+ group = 1970Missions
+
+ title = Soyuz 9
+ agent = USSR
+
+ description = Soyuz 9 was a 1970 Soviet manned space flight. The two-man crew of Andrian Nikolayev and Vitali Sevastyanov broke the five-year-old space endurance record held by Gemini 7, with their nearly 18-day flight. It was also the last flight of the first-generation Soyuz 7K-OK spacecraft, as well as the first manned space launch to be conducted at night. To date, Soyuz 9 marks the longest manned flight by a solo spacecraft.\n\nObjectives:\n\n1. Design a Manned Orbiter\n2. Crew of 2\n3. Launch Soyuz 9\n4. Reach Orbit and sustain for 17 days\n5. Deorbit\n6. Survive Reentry and land or splashdown\n\nSignificance: Soyuz 9 set a new record for duration in space and still holds the record for the longest manned flight by a solo spacecraft.\n\nHistorical Launch Date: June 1, 1970
+
+ synopsis = Send two kerbals to orbit for 17 days and return safely to @targetBody
+ notes = Send two kerbals to orbit for 17 days and return safely to @targetBody
+
+ completedMessage = Congratulations! This flight lasted for 17 days and set the record for duration in space. The mission paved the way for the Salyut space station missions, investigating the effects of long-term weightlessness on crew, and evaluating the work that the cosmonauts could do in orbit, individually and as a team.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 18000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-12
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ seventeenDays = @dayLength * 17
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Soyuz 9
+ define = Soyuz-9
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Soyuz9Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and stay in orbit for 17 days
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Soyuz9Duration
+ type = Duration
+ duration = @/seventeenDays
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting for 17 days
+ completionText = Orbits Complete! You may fire retros when ready
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Apollo Soyuz Test Project
+
+CONTRACT_TYPE
+{
+ name = Apollo-Soyuz
+ group = 1970Missions
+
+ title = Apollo Soyuz Test Project
+ agent = Apollo Soyuz Test Project
+
+ description = The Apollo–Soyuz Test Project (ASTP), conducted in July 1975, was the first joint U.S.–Soviet space flight, as a symbol of the policy of détente that the two superpowers were pursuing at the time. It involved the docking of an Apollo Command/Service Module with the Soviet Soyuz 19. The unnumbered Apollo vehicle was a surplus from the terminated Apollo program and the last one to fly. This mission ceremoniously marked the end of the Space Race that had begun in 1957 with the Sputnik launch.\n\nObjectives:\n\n1. Launch the last remaining Apollo CSM with 3 Crew and a docking port\n2. Reach Orbit\n3. Launch the Soyuz spacecraft\n4. Reach Orbit\n5. Launch Soyuz 11 with 3 Crew\n6. Rendezvous Soyuz 11 with Salyut 1 and Dock\n7. 3 Kerbals must survive on Salyut 1 for 22 days\n8. Return Kerbals safely to @targetBody\n\n Significance:\n Salyut 1 was the first designed Space Station and the Soyuz 11 crew set new duration records staying on the station for 22 days.\n\nHistorical Launch Date: April 19, 1971
+
+ synopsis = Launch Soyuz and Apollo and dock them together to improve international cooperation
+ notes = Launch Soyuz and Apollo and dock them together to improve international cooperation
+
+ completedMessage = Congratulations, this is a historic step towards future joint space missions and cooperation! While the two ships were docked, the three Americans and two Soviets conducted joint scientific experiments, exchanged flags and gifts (including tree seeds which were later planted in the two countries), signed certificates, visited each other's ships, ate together, and conversed in each other's languages. There were also docking and redocking maneuvers, during which the two spacecraft reversed roles and the Soyuz became the "active" ship.\n\nAfter 44 hours together, the two ships separated, and maneuvered to use the Apollo to create an artificial solar eclipse to allow the crew of the Soyuz to take photographs of the solar corona. Another brief docking was made before the ships went their separate ways. The Soviets remained in space for five days, and the Americans for nine, during which the Apollo crew also conducted Earth observation experiments.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 20
+ rewardFunds = 50000
+
+ advanceFunds = 25000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Skylab-4
+ }
+
+ PARAMETER
+ {
+ name = Soyuz
+ type = VesselParameterGroup
+ title = Launch Soyuz into Orbit
+ define = Soyuz
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board Soyuz
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 200000
+ title = Reach an Orbit with a Periapsis of at least 200 km
+ hideChildren = true
+ }
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ApolloLaunch
+ type = VesselParameterGroup
+ title = Launch Apollo into Orbit
+ define = Apollo
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board Apollo
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 200000
+ title = Reach an Orbit with a Periapsis of at least 200 km
+ hideChildren = true
+ }
+ disableOnStateChange = true
+ PARAMETER
+ {
+ name = Rendezvous
+ type = Rendezvous
+ vessel = Soyuz
+ distance = 1000
+ title = Rendezvous Apollo and Soyuz within 1,000 meters
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Docking
+ type = Docking
+ vessel = Soyuz
+ title = Dock Apollo and Soyuz together
+ hideChildren = true
+ }
+ }
+
+ PARAMETER
+ {
+ name = vesselSoyuzCrewReturn
+ type = VesselParameterGroup
+ title = Return the Soyuz crew home
+ vessel = Soyuz
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board Soyuz
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = vesselApolloCrewReturn
+ type = VesselParameterGroup
+ title = Return the Apollo crew home
+ vessel = Apollo
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board Apollo
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Helios
+
+CONTRACT_TYPE
+{
+ name = Helios
+ group = 1970Missions
+
+ title = Helios
+ agent = DFVLR
+
+ description = Helios-A and Helios-B, were a pair of probes launched into heliocentric orbit for the purpose of studying solar processes. A joint venture of West Germany's space agency DFVLR and NASA, the probes were launched from Cape Canaveral, Florida, on Dec. 10, 1974, and Jan. 15, 1976, respectively. Built by Messerschmitt-Bölkow-Blohm as the main contractor they were the first spaceprobes built outside the United States or Soviet Union. The probes are notable for having set a maximum speed record among spacecraft at 252,792 km/h. Helios 2 flew three million kilometers closer to the Sun than Helios 1, achieving perihelion on 17 April 1976 at a record distance of 0.29 AU (or 43.432 million kilometers), slightly inside the orbit of Mercury. Helios 2 was sent into orbit 13 months after the launch of Helios 1. The Helios space probes completed their primary missions by the early 1980s, but they continued to send data up to 1985. The probes are no longer functional but still remain in their elliptical orbit around the Sun.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Helios Probe\n3. Reach Orbit around the Sun\n4. Collect Science Data from space around @targetBody\n\nSignificance: The Helios probes traveled closer to the Sun than any other spacecraft.\n\nHistorical Launch Date: December 10, 1974
+
+ synopsis = Launch Helios and Orbit the Sun and Transmit Science Data
+ notes = Launch Helios and Orbit the Sun and Transmit Science Data
+
+ completedMessage = Congratulations! Both probes were collected important data about the processes that cause the solar wind and the acceleration of the particles that make up the interplanetary medium and cosmic rays. These observations were made, both the minimum solar cycle (1976) and at its peak in the early 1970s. The observation of the zodiacal light has established some of the dust properties interplanetary present between 0.1 AU and 1 AU from the Sun, as their spatial distribution, color and polarization. It has been established that the powder was more sensitive to gravitational forces and electromagnetic forces. The amount of dust was observed up to 10 times around the Earth. heterogeneous distribution was generally expected due to the passage of comets, but observations have not confirmed this. The probe instruments detected dust near the sun showing that, despite the sunshine is still present in distance 0.09 AU.
+
+ targetBody = HomeWorld().Parent()
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 10
+ rewardFunds = 12000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-Soyuz
+ }
+ DATA
+ {
+ type = CelestialBody
+ mercury = HomeWorld().Parent().Children().ElementAt(0)
+ }
+ DATA
+ {
+ type = double
+
+ sma = @mercury.SemiMajorAxis()
+ targetSMA = @sma * 0.75
+ }
+ PARAMETER
+ {
+ name = Helios
+ type = VesselParameterGroup
+ title = Recover a craft from orbit.
+ define = Helios
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxPeA = $/targetSMA
+ title = Reach orbit around the Sun with a Periapsis of less than $/targetSMA meters
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectSolarScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science Data from Space near @targetBody
+ hideChildren = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/1990Missions.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/1990Missions.cfg
new file mode 100644
index 0000000..03bb476
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/1990Missions.cfg
@@ -0,0 +1,325 @@
+// NEAR Shoemaker
+
+CONTRACT_TYPE
+{
+ name = NEAR-Shoemaker
+ group = 1990Missions
+
+ title = NEAR Shoemaker
+ agent = NASA
+
+ description = The Near Earth Asteroid Rendezvous – Shoemaker (NEAR Shoemaker), renamed after its 1996 launch in honor of planetary scientist Eugene Shoemaker, was a robotic space probe designed by the Johns Hopkins University Applied Physics Laboratory for NASA to study the near-Earth asteroid Eros from close orbit over a period of a year. The mission succeeded in closing in with the asteroid and orbited it several times, finally terminating by touching down on the asteroid on February 12, 2001.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna and a grabbing device\n2. Launch NEAR Shoemaker\n3. Rendezvous with an Asteroid\n4. Use Grabbing Hook to attach to the Asteroid\n\nSignificance: NEAR Shoemaker was the first spacecraft to orbit an asteroid (not possible in KSP) and the first to land on an asteroid.\n\nHistorical Launch Date: February 17, 1996
+
+ synopsis = Launch NEAR-Shoemaker and Land on (Grapple to) and Asteroid
+ notes = Launch NEAR-Shoemaker and Land on (Grapple to) and Asteroid
+
+ completedMessage = Congratulations! The primary goal of the mission was to study the near-Earth asteroid 433 Eros from orbit for approximately one year. Eros is an S-type asteroid approximately 13 × 13 × 33 km in size, the second largest near-Earth asteroid. Initially the orbit was circular with a radius of 200 km. The radius of the orbit was brought down in stages to a 50 × 50 km orbit on 30 April 2000 and decreased to 35 × 35 km on July 14, 2000. The orbit was raised over succeeding months to a 200 × 200 km orbit and then slowly decreased and altered to a 35 × 35 km retrograde orbit on December 13, 2000. The mission ended with a touchdown in the "saddle" region of Eros on February 12, 2001.
+
+ targetBody = HomeWorld().Parent()
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ // REWARDS
+ rewardScience = 8
+ rewardReputation = 10
+ rewardFunds = 25000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-61
+ }
+ PARAMETER
+ {
+ name = NEAR-Shoemaker
+ type = VesselParameterGroup
+ title = Launch NEAR Shoemaker
+ define = NEAR-Shoemaker
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PartValidation
+ type = PartValidation
+ partModule = ModuleAsteroid
+ minCount = 1
+ title = Attach to the Asteroid with the Grabbing Device
+ hideChildren = true
+ }
+ }
+}
+
+// Cassini-Huygens
+
+CONTRACT_TYPE
+{
+ name = Cassini-Huygens
+ group = 1990Missions
+
+ title = Cassini-Huygens
+ agent = NASA
+
+ description = Cassini–Huygens is an unmanned spacecraft sent to the planet Saturn. Cassini is the fourth space probe to visit Saturn and the first to enter orbit, and its mission is ongoing as of 2016. It has studied the planet and its many natural satellites since arriving there in 2004. Huygens is a probe that was designed to land on Saturn's moon Titan.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna that can reach @saturn\n2. Launch Cassini-Huygens\n3. OPTIONAL BONUS: Flyby @venus for a gravity assist\n4. OPTIONAL BONUS: Flyby @venus for another gravity assist\n5. OPTIONAL BONUS: Flyby @earth for a gravity assist\n6. Flyby @jupiter for a gravity assist\n7. Enter orbit around @targetBody\n8. Finish remaining mission parameters\n\nSignificance: Cassini-Huygens was the first spacecraft to enter orbit around Saturn and to land on the moon Titan.\n\nHistorical Launch Date: October 15, 1997
+
+ synopsis = Design the Cassini-Huygens spacecraft to reach @targetBody
+ notes = Design the Cassini-Huygens spacecraft to reach @targetBody
+
+ completedMessage = Congratulations on the successful mission! The spacecraft launched on October 15, 1997 aboard a Titan IVB/Centaur and entered orbit around Saturn on July 1, 2004, after an interplanetary voyage that included flybys of Earth, Venus, and Jupiter. On December 25, 2004, Huygens separated from the orbiter and reached Saturn's moon Titan on January 14, 2005. It entered Titan's atmosphere and descended to the surface. It successfully returned data to Earth, using the orbiter as a relay. This was the first landing ever accomplished in the outer Solar System.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = @saturn
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 20
+ rewardFunds = 100000
+
+ advanceFunds = 100000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = HALCA
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ jupiter = AllBodies().Where(cb => cb.IsPlanet() && !cb.HasSurface()).First()
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ venus = HomeWorld().Parent().Children().ElementAt(1)
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ earth = HomeWorld()
+ }
+
+ DATA
+ {
+ type = double
+
+ sma = @jupiter.SemiMajorAxis()
+ targetSMA = @sma * 1.1
+ }
+
+ DATA
+ {
+ type = List
+
+ targetBodies = AllBodies().Where(cb => cb.SemiMajorAxis() >= @targetSMA && cb.IsPlanet() && cb != HomeWorld())
+ }
+ DATA
+ {
+ type = CelestialBody
+
+ saturn = @/targetBodies.ElementAt(0)
+ }
+
+ DATA
+ {
+ type = List
+
+ moonList = @/targetBodies.ElementAt(0).Children().Where(cb => cb.HasAtmosphere())
+ }
+
+ DATA
+ {
+ type = CelestialBody
+
+ titan = @moonList.Random()
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Launch the Cassini-Huygens mission
+ define = Cassini-Huygens
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyVenus1
+ type = ReachState
+ targetBody = @/venus
+ disableOnStateChange = true
+ title = OPTIONAL BONUS: Flyby @/venus
+ rewardFunds = 20000
+ hideChildren = true
+ optional = true
+ }
+ PARAMETER
+ {
+ name = FlybyVenus2
+ type = ReachState
+ targetBody = @/venus
+ disableOnStateChange = true
+ title = OPTIONAL BONUS: Flyby @/venus
+ rewardFunds = 30000
+ hideChildren = true
+ optional = true
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ name = FlybyEarth
+ type = ReachState
+ targetBody = HomeWorld()
+ disableOnStateChange = true
+ title = OPTIONAL BONUS: Flyby @/earth
+ rewardFunds = 50000
+ hideChildren = true
+ optional = true
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ name = FlybyJupiter
+ type = ReachState
+ targetBody = @/jupiter
+ disableOnStateChange = true
+ title = Flyby @/jupiter
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitSaturn
+ type = ReachState
+ targetBody = @/targetBody
+ situation = ORBITING
+ disableOnStateChange = true
+ title = Enter Orbit around @targetBody
+ hideChildren = true
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ name = SaturnScience
+ type = CollectScience
+ targetBody = @/targetBody
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SaturnMoonFlybys
+ type = ReachState
+ disableOnStateChange = true
+ targetBody = @targetMoon
+ ITERATOR
+ {
+ type = CelestialBody
+ targetMoon = @/targetBody.Children()
+ }
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/targetBody.Children().Count() > 0
+ }
+ }
+ PARAMETER
+ {
+ name = LandOnTitan
+ type = ReachState
+ targetBody = @/titan
+ situation = LANDED
+ sitaution = SPLASHED
+ disableOnStateChange = true
+ title = Land on @/titan
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/saturn.Children().Where(cb => cb.HasAtmosphere()).Count() > 0
+ }
+ }
+ PARAMETER
+ {
+ name = TitanScience
+ type = CollectScience
+ targetBody = @/titan
+ recoveryMethod = Transmit
+ location = Surface
+ title = Transmit Science from the surface of @/titan
+ hideChildren = true
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/saturn.Children().Where(cb => cb.HasAtmosphere()).Count() > 0
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/2000Mission.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/2000Mission.cfg
new file mode 100644
index 0000000..e670231
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/2000Mission.cfg
@@ -0,0 +1,782 @@
+// Dennis Tito
+
+CONTRACT_TYPE
+{
+ name = Space-Tourism
+ group = 2000Missions
+
+ title = Soyuz TM-32: Dennis Tito
+ agent = Roscosmos
+
+ description = Soyuz TM-32 was a manned Russian spacecraft which was launched on April 28, 2001, and docked with the International Space Station two days later. It launched the crew of the visiting mission ISS EP-1, which included the first paying space tourist Dennis Tito, as well as two Russian cosmonauts.\n\nObjectives:\n\n1. Launch a spacecraft with 2 Kerbal Crew and Dennis Kerman to live on the ISS\n2. Dock with the ISS\n3. Kerbals must survive on the ISS for 7 days 1\n4. Return Kerbals safely to @targetBody\n\n Significance:\n Soyuz TM-32 was the first time that a tourist purchased a ticket to space and Dennis Tito became the first space tourist.\n\nHistorical Launch Date: April 28, 2001
+
+ synopsis = Launch 2 Crew and Dennis Kerman to live on the ISS for 7 days
+ notes = Launch 2 Crew and Dennis Kerman to live on the ISS for 7 days
+
+ completedMessage = Congratulations! We have been paid very handsomely for this mission. We can now look to spend this money in exciting new ways.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 1
+ rewardFunds = 1500000
+
+ advanceFunds = 500000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = ISS-1
+ }
+
+ PARAMETER
+ {
+ name = Soyuz TM-32
+ type = VesselParameterGroup
+ title = Launch Soyuz TM-32
+ define = Soyuz-TM-32
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasPassengers
+ type = HasPassengers
+ count = 1
+ title = Dennis Kerman on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithISS
+ type = Docking
+ vessel = ISS
+ title = Dock with ISS
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnISS
+ type = VesselParameterGroup
+ title = Keep your crew on the ISS for 7 Days
+ vessel = ISS
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 3
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minInclination = 0
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 7d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting for 7 days...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Soyuz-TM-32CrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = Soyuz-TM-32
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasPassengers
+ type = HasPassengers
+ count = 1
+ title = Dennis Kerman on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+ BEHAVIOUR
+ {
+ name = SpawnPassengers
+ type = SpawnPassengers
+ count = 1
+ kerbal = Dennis Kerman
+ }
+}
+
+// Genesis
+
+CONTRACT_TYPE
+{
+ name = Genesis
+ group = 2000Missions
+
+ title = Genesis
+ agent = NASA
+
+ description = Genesis was a NASA sample return probe that collected a sample of solar wind and returned it to Earth for analysis. It was the first NASA sample return mission to return material since the Apollo Program, and the first to return material from beyond the orbit of the Moon.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna (If you have DMagic Orbital Science, include Solar Particle Collector)\n2. Launch Genesis\n3. Reach Orbit just inside the SOI of @targetBody \n4. Collect Science Data (If you have DMagic Orbital Science, run Solar Particle experiment)\n5. Survive Reentry and land or splashdown\n\nSignificance: Genesis was the first spacecraft to return to Earth from beyond the orbit of the Moon.\n\nHistorical Launch Date: August 8, 2001
+
+ synopsis = Launch Genesis, perform the requested science and recover the craft from orbit
+ notes = Launch Genesis, perform the requested science and recover the craft from orbit
+
+ completedMessage = Congratulations! Genesis was launched on August 8, 2001, and crash-landed in Utah on September 8, 2004, after a design flaw prevented the deployment of its drogue parachute. The crash contaminated many of the sample collectors, and although most were damaged, many of the collectors were successfully recovered.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 20
+ rewardReputation = 5
+ rewardFunds = 20000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = ISS-1
+ }
+
+ DATA
+ {
+ type = double
+ EarthSOI = HomeWorld().SphereOfInfluence()
+ }
+
+ DATA
+ {
+ type = double
+ MoonSMA = @targetBody.Children().Last().SemiMajorAxis()
+ targetPeri = @MoonSMA + 100000
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ FarthestMoon = @targetBody.Children().Last()
+ }
+
+ PARAMETER
+ {
+ name = Genesis
+ type = VesselParameterGroup
+ title = Recover a craft from orbit near the edge of the SOI
+ define = Genesis
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[DMagic]
+ {
+ name = SolarParticleCollector
+ type = PartValidation
+ part = dmSolarCollector
+ minCount = 1
+ maxCount = 1
+ title = Have a Solar Particle Collector on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minPeA = @/targetPeri
+ maxApA = @/EarthSOI
+ title = Reach orbit outside of @/FarthestMoon but inside the SOI of @targetBody
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[!DMagic]
+ {
+ name = ReturnScience
+ type = CollectScience
+ recoveryMethod = Recover
+ situation = InSpaceHigh
+ title = RETURN Science from High Space around @targetBody
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[DMagic]
+ {
+ name = ReturnScience
+ type = CollectScience
+ recoveryMethod = Recover
+ experiment = dmSolarParticles
+ situation = InSpaceHigh
+ title = RETURN Solar Particle Science from High Space around @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
+
+// Hayabusa
+
+CONTRACT_TYPE
+{
+ name = Hayabusa
+ group = 2000Missions
+
+ title = Hayabusa
+ agent = JAXA
+
+ description = Hayabusa (literally "Peregrine Falcon") was an unmanned spacecraft developed by the Japan Aerospace Exploration Agency (JAXA) to return a sample of material from a small near-Earth asteroid named 25143 Itokawa to Earth for further analysis.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna and a grabbing device (If you have DMagic Orbital Science, include an XRD Surface Analyzer)\n2. Launch Hayabusa\n3. Rendezvous with an Asteroid\n4. Use Grabbing Hook to attach to the Asteroid\n5. If you have DMagic Orbital Science, Run X-Ray Scan\nSignificance: Hayabusa was the first spacecraft to land on an asteroid and take off to return to Earth.\n\nHistorical Launch Date: May 9, 2003
+
+ synopsis = Launch Hayabusa, land on (grapple to) and asteroid, lift-off and return science home
+ notes = Launch Hayabusa, land on (grapple to) and asteroid, lift-off and return science home
+
+ completedMessage = Congratulations! Hayabusa, formerly known as MUSES-C for Mu Space Engineering Spacecraft C, was launched on May 9, 2003 and rendezvoused with Itokawa in mid-September 2005. After arriving at Itokawa, Hayabusa studied the asteroid's shape, spin, topography, colour, composition, density, and history. In November 2005, it landed on the asteroid and collected samples in the form of tiny grains of asteroidal material, which were returned to Earth aboard the spacecraft on 13 June 2010.
+
+ targetBody = HomeWorld().Parent()
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ // REWARDS
+ rewardScience = 15
+ rewardReputation = 10
+ rewardFunds = 30000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Genesis
+ }
+ PARAMETER
+ {
+ name = Hayabusa
+ type = VesselParameterGroup
+ title = Launch Hayabusa and Return Asteroid Science
+ define = Hayabusa
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[DMagic]
+ {
+ name = XRDSurfaceAnalyzer
+ type = PartValidation
+ part = dmXRay
+ minCount = 1
+ maxCount = 1
+ title = Have an XRD Surface Analyzer on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PartValidation
+ type = PartValidation
+ partModule = ModuleAsteroid
+ minCount = 1
+ title = Attach to the Asteroid with the Grabbing Device
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[DMagic]
+ {
+ name = ReturnScience
+ type = CollectScience
+ recoveryMethod = Recover
+ experiment = dmXRayDiffract
+ title = RETURN Laser Diffraction Science from the Asteroid
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Science Data Home
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// MESSENGER
+
+CONTRACT_TYPE
+{
+ name = MESSENGER
+ group = 2000Missions
+
+ title = MESSENGER
+ agent = NASA
+
+ description = MESSENGER (a backronym of MErcury Surface, Space ENvironment, GEochemistry, and Ranging, and a reference to the Roman mythological messenger, Mercury) was a NASA robotic spacecraft that orbited the planet Mercury between 2011 and 2015. The spacecraft was launched aboard a Delta II rocket in August 2004 to study Mercury's chemical composition, geology, and magnetic field.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna (see below for other part requirements)\n2. Launch MESSENGER\n3. OPTIONAL BONUS: Flyby @earth\n4. OPTIONAL BONUS: Flyby @venus\n5. OPTIONAL BONUS: Flyby @venus a 2nd time\n6. OPTIONAL BONUS: Flyby @targetBody\n7. OPTIONAL BONUS: Flyby @targetBody a 2nd time\n8. OPTIONAL BONUS: Flyby @targetBody a 3rd time\n9. Enter Orbit of @targetBody\n10. Complete Remaining Science Experiments and Transmit Science Data home\n\nSignificance: MESSENGER was the first spacecraft to orbit Mercury and only the second craft to ever visit there.\n\nHistorical Launch Date: August 3, 2004
+
+ synopsis = Orbit @targetBody and Transmit Science Data
+ notes = Orbit @targetBody and Transmit Science Data
+
+ completedMessage = Congratulations on achieving orbit on the closest planet to the Sun! The instruments carried by MESSENGER were used on a complex series of flybys – the spacecraft flew by Earth once, Venus twice, and Mercury itself three times, allowing it to decelerate relative to Mercury using minimal fuel. MESSENGER became the second mission after Mariner 10's 1975 flyby to reach Mercury during its first flyby of the planet in January 2008.\n\nMESSENGER entered orbit around Mercury on March 18, 2011, becoming the first spacecraft to do so. It successfully completed its primary mission in 2012. Following two mission extensions, the MESSENGER spacecraft used the last of its maneuvering propellant and deorbited as planned, impacting the surface of Mercury on April 30, 2015.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(0)
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 10
+ rewardFunds = 12000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Hayabusa
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ earth = HomeWorld()
+ }
+ DATA
+ {
+ type = CelestialBody
+ venus = HomeWorld().Parent().Children().ElementAt(1)
+ }
+
+ PARAMETER
+ {
+ name = MESSENGER
+ type = VesselParameterGroup
+ title = Send MESSENGER to @targetBody
+ define = MESSENGER
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = LowResScanner
+ type = PartValidation
+ title = Must have a Low Resolution scanner on board
+ part = SCANsat_Scanner
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = BiomeScanner
+ type = PartValidation
+ title = Must have a Biome scanner on board
+ part = SCANsat_Scanner24
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = HiResScanner
+ type = PartValidation
+ title = Must have a High Resolution SAR scanner on board
+ part = SCANsat_Scanner2
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ optional = true
+ name = FlybyEarth
+ type = ReachState
+ targetBody = @/earth
+ disableOnStateChange = true
+ title = OPTIONAL: Flyby @/earth (you want to fly in front of the orbit to use gravity to slow down)
+ hideChildren = true
+ rewardFunds = 10000
+ }
+ PARAMETER
+ {
+ optional = true
+ name = FlybyVenus1
+ type = ReachState
+ targetBody = @/venus
+ disableOnStateChange = true
+ title = OPTIONAL: Flyby @/venus (you want to fly in front of the orbit to use gravity to slow down)
+ hideChildren = true
+ rewardFunds = 10000
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ optional = true
+ name = FlybyVenus2
+ type = ReachState
+ targetBody = @/venus
+ disableOnStateChange = true
+ title = OPTIONAL: Flyby @/venus for a 2nd time (you want to fly in front of the orbit to use gravity to slow down)
+ hideChildren = true
+ rewardFunds = 10000
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ optional = true
+ name = FlybyMercury1
+ type = ReachState
+ disableOnStateChange = true
+ title = OPTIONAL: Flyby @targetBody (you want to fly in front of the orbit to use gravity to slow down)
+ hideChildren = true
+ rewardFunds = 10000
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ optional = true
+ name = FlybyMercury2
+ type = ReachState
+ disableOnStateChange = true
+ title = OPTIONAL: Flyby @targetBody for a 2nd time (you want to fly in front of the orbit to use gravity to slow down)
+ hideChildren = true
+ rewardFunds = 10000
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ optional = true
+ name = FlybyMercury3
+ type = ReachState
+ disableOnStateChange = true
+ title = OPTIONAL: Flyby @targetBody for a 3rd time (you want to fly in front of the orbit to use gravity to slow down)
+ hideChildren = true
+ rewardFunds = 10000
+ completeInSequence = true
+ }
+ PARAMETER
+ {
+ name = MercuryOrbit
+ type = Orbit
+ minInclination = 70.0
+ title = Reach Orbit of @targetBody with a minimum Inclination of 70 degrees
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MercuryScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = SCANsatMercury
+ type = SCANsatCoverage
+ coverage = 80
+ scanType = AltimetryLoRes
+ rewardFunds = 10000
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = SCANsatBiomeMercury
+ type = SCANsatCoverage
+ coverage = 80
+ scanType = Biome
+ rewardFunds = 10000
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = SCANsatHiResMercury
+ type = SCANsatCoverage
+ coverage = 80
+ scanType = AltimetryHiRes
+ rewardFunds = 10000
+ }
+}
+
+// New Horizons
+
+CONTRACT_TYPE
+{
+ name = New-Horizons
+ group = 2000Missions
+
+ title = New Horizons
+ agent = NASA
+
+ description = New Horizons is an interplanetary space probe that was launched as a part of NASA's New Frontiers program. Engineered by the Johns Hopkins University Applied Physics Laboratory (APL) and the Southwest Research Institute (SwRI), with a team led by S. Alan Stern, the spacecraft was launched with the primary mission to perform a flyby study of the Pluto system, and a secondary mission to fly by and study one or more other Kuiper belt objects (KBOs).\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna that can reach @targetBody\n2. Launch New Horizons\n3. Flyby @jupiter\n4. Transmit Science Data from Space around @jupiter\n5. Flyby @targetBody within 15,000 km\n6. Transmit Science Data from Space around @targetBody\n\nSignificance: New Horizons was the first spacecraft to flyby Pluto.\n\nHistorical Launch Date: January 19, 2006
+
+ synopsis = Fly by @jupiter and fly by $targetBody
+ notes = Fly by @jupiter and fly by $targetBody
+
+ completedMessage = Congratulations on the successful flyby of @pluto! On January 19, 2006, New Horizons was launched from Cape Canaveral Air Force Station directly into an Earth-and-solar escape trajectory with a speed of about 16.26 kilometers per second (58,536 km/h; 36,373 mph). After a brief encounter with asteroid 132524 APL, New Horizons proceeded to Jupiter, making its closest approach on February 28, 2007, at a distance of 2.3 million kilometers (1.4 million miles). The Jupiter flyby provided a gravity assist that increased New Horizons' speed; the flyby also enabled a general test of New Horizons' scientific capabilities, returning data about the planet's atmosphere, moons, and magnetosphere.\n\nMost of the post-Jupiter voyage was spent in hibernation mode to preserve on-board systems, except for brief annual checkouts. On December 6, 2014, New Horizons was brought back online for the Pluto encounter, and instrument check-out began. On January 15, 2015, the New Horizons spacecraft began its approach phase to Pluto.\n\nOn July 14, 2015, at 11:49 UTC, it flew 12,500 km (7,800 mi) above the surface of Pluto, making it the first spacecraft to explore the dwarf planet.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = @pluto
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 10
+ rewardFunds = 35000
+
+ advanceFunds = 12000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Hayabusa
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ jupiter = AllBodies().Where(cb => cb.IsPlanet() && !cb.HasSurface()).First()
+ }
+
+ DATA
+ {
+ type = double
+ sma = @jupiter.SemiMajorAxis()
+ targetSMA = @sma * 1.1
+ }
+
+ DATA
+ {
+ type = List
+ targetBodies = AllBodies().Where(cb => cb.SemiMajorAxis() >= @targetSMA && cb.IsPlanet() && cb != HomeWorld() && cb.HasSurface())
+ }
+ DATA
+ {
+ type = CelestialBody
+ pluto = @/targetBodies.ElementAt(0)
+ }
+
+ PARAMETER
+ {
+ name = New-Horizons
+ type = VesselParameterGroup
+ title = Launch the New Horizons mission
+ define = New-Horizons
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyJupiter
+ type = ReachState
+ targetBody = @/jupiter
+ disableOnStateChange = true
+ title = Flyby @/jupiter
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = JupiterScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ targetBody = @/jupiter
+ title = TRANSMIT Science from Space around @/jupiter
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyPluto
+ type = ReachState
+ targetBody = @/targetBodies.ElementAt(0)
+ maxAltitude = 15000000
+ disableOnStateChange = true
+ title = Flyby @/pluto within 15,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PlutoScience
+ type = CollectScience
+ targetBody = @/targetBodies.ElementAt(0)
+ recoveryMethod = Transmit
+ title = TRANSMIT Science from Space around @/pluto
+ hideChildren = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/ApolloProgram.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/ApolloProgram.cfg
new file mode 100644
index 0000000..0a4526b
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/ApolloProgram.cfg
@@ -0,0 +1,1408 @@
+// Apollo 4
+
+CONTRACT_TYPE
+{
+ name = Apollo-4
+ group = ApolloProgram
+
+ title = Apollo 4
+ agent = NASA
+
+ description = Apollo 4 was the first, unmanned test flight of the Saturn V launch vehicle, which was used by the U.S. Apollo program to send the first astronauts to the Moon. The space vehicle was assembled in the Vertical Assembly Building, and was the first to be launched from Launch Complex 39 at the John F. Kennedy Space Center on Merritt Island, Florida, facilities built specially for the Saturn V.\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with Crew Space for 3 Kerbals\n2. Unmanned Test Version must have an antenna\n3. Launch Apollo 4\n4. Reach Low @targetBody Orbit\n5. Simulate Trans Lunar Injection and Raise Apoapsis to at least 18,000 km\n6. Deorbit\n7. Survive Reentry and land or splashdown\n\nSignificance: Apollo 4 was the first test flight of the Saturn V rocket, the most powerful rocket ever launched\n\nHistorical Launch Date: November 9, 1967
+
+ synopsis = Test your version of the Saturn V rocket unmanned
+ notes = Test your version of the Saturn V rocket unmanned
+
+ completedMessage = Congratulations, we are one step closer to putting Kerbals on the @targetBody.Children().First()! The unmanned Saturn/Apollo 4 (AS-501) mission was the first all-up test of the three stage Saturn V rocket. It carried a payload of an Apollo Command and Service Module (CSM) into Earth orbit. The mission was designed to test all aspects of the Saturn V launch vehicle and also returned pictures of Earth taken by the automatic Command Module apogee camera from about one hour before to one hour after apogee. Mission objectives included testing of structural integrity, compatibility of launch vehicle and spacecraft, heat shield and thermal seal integrity, overall reentry operations, launch loads and dynamic characteristics, stage separation, launch vehicle subsystems, the emergency detection system, and mission support facilities and operations. The mission was deemed a successful test.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 5
+ rewardFunds = 50000
+
+ advanceFunds = 100000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Luna-10
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 4
+ define = Apollo-4
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasCrewCapacity
+ type = HasCrewCapacity
+ minCapacity = 3
+ maxCapacity = 3
+ title = Crew Capacity: 3
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Apollo4Duration
+ type = Duration
+ duration = 30m
+ preWaitText = Waiting to reach orbit
+ waitingText = Systems test are running before next phase of mission
+ completionText = Systems check complete! Proceeed to next Orbital Parameters
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Apollo4Orbit2
+ type = Orbit
+ minApA = 18000000
+ disableOnStateChange = true
+ title = Change Orbit to have a minimum Apoapsis of 18,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Apollo 8
+
+CONTRACT_TYPE
+{
+ name = Apollo-8
+ group = ApolloProgram
+
+ title = Apollo 8
+ agent = NASA
+
+ description = Apollo 8, the second human spaceflight mission in the United States Apollo space program, was launched on December 21, 1968, and became the first manned spacecraft to leave Earth orbit, reach the Earth's Moon, orbit it and return safely to Earth. The three-astronaut crew — Commander Frank Borman, Command Module Pilot James Lovell, and Lunar Module Pilot William Anders — became the first humans to travel beyond low Earth orbit, the first to see Earth as a whole planet, the first to directly see the far side of the Moon, and then the first to witness Earthrise. The 1968 mission, the third flight of the Saturn V rocket and that rocket's first manned launch, was also the first human spaceflight launch from the Kennedy Space Center, Florida, located adjacent to Cape Canaveral Air Force Station.\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with 3 Kerbals\n2. Launch Apollo 8\n3. Reach Parking Orbit\n4. Perform Trans Lunar Injection and Achieve Orbit around @targetBody Retrograde\n5. Stay in Orbit around @targetBody for 1 day\n6. Return home and and Survive Reentry\n\nSignificance: Apollo 8 was the first manned spacecraft to leave Earth orbit, reach the Moon, orbit it and return safely to Earth.\n\nHistorical Launch Date: December 21, 1968
+
+ synopsis = Test your version of the manned Saturn V rocket with a trip to @targetBody
+ notes = Test your version of the manned Saturn V rocket with a trip to @targetBody
+
+ completedMessage = Successful Mission! Apollo 8 came at the end of 1968, a year that had seen much upheaval in the United States and most of the world. Even though the year saw political assassinations, political unrest in the streets of Europe and America, and the Prague Spring, Time magazine chose the crew of Apollo 8 as their Men of the Year for 1968, recognizing them as the people who most influenced events in the preceding year. They had been the first people ever to leave the gravitational influence of the Earth and orbit another celestial body. They had survived a mission that even the crew themselves had rated as only having a fifty-fifty chance of fully succeeding./n/nOne of the most famous aspects of the flight was the Earthrise picture that was taken as they came around for their fourth orbit of the Moon. This was the first time that humans had taken such a picture whilst actually behind the camera, and it has been credited with a role in inspiring the first Earth Day in 1970.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+
+ // REWARDS
+ rewardScience = 6
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 18000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-4
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ oneDay = Round(@dayLength / 60 / 60, 1)
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 8
+ define = Apollo-8
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ maxPeA = 150000
+ minInclination = 91
+ targetBody = HomeWorld().Children().First()
+ disableOnStateChange = true
+ title = Reach a Retrograde Orbit of @targetBody with a maximum Periapsis of 150 km, a minimum inclination of 91 degrees and maintain for 1 day
+ }
+ PARAMETER
+ {
+ name = Apollo8Duration
+ type = Duration
+ duration = HomeWorld().RotationalPeriod()
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting @targetBody, please perform your science experiments and equipment tests
+ completionText = We hope you enjoyed your stay around @targetBody! Time to come home.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Apollo 11
+
+CONTRACT_TYPE
+{
+ name = Apollo-11
+ group = ApolloProgram
+
+ title = Apollo 11
+ agent = NASA
+
+ description = Apollo 11 was the first spaceflight that landed humans on the Moon. Americans Neil Armstrong and Buzz Aldrin landed on July 20, 1969, at 20:18 UTC (46 years ago). Armstrong became the first to step onto the lunar surface six hours later on July 21 at 02:56 UTC; Aldrin joined him about 20 minutes later. They spent about two and a quarter hours together outside the spacecraft, and collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. The third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit, until Armstrong and Aldrin returned to it just under a day later for the trip back to Earth.\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with 3 Kerbals\n2. Launch Apollo 11\n3. Reach Parking Orbit\n4. Perform Trans Lunar Injection and Achieve Orbit around @targetBody Retrograde\n5. Land on @targetBody\n6. Gather Scientific Data from the surface of @targetBody\n7. Plant Flag on @targetBody\n8. Return Home and Survive Reentry\n\nSignificance: Apollo 11 was the first spaceflight that landed humans on the Moon.\n\nHistorical Launch Date: July 16, 1969
+
+ synopsis = Land your Kerbals on the @targetBody and return them home safely
+ notes = Land your Kerbals on the @targetBody and return them home safely
+
+ completedMessage = Successful Mission! We have done it! We have landed kerbals on @targetBody! Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida, on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts: a Command Module (CM) with a cabin for the three astronauts, and the only part that landed back on Earth; a Service Module (SM), which supported the Command Module with propulsion, electrical power, oxygen, and water; and a Lunar Module (LM) for landing on the Moon (which itself was composed of two parts). After being sent toward the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and traveled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21.5 hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ deadline = 2920 // 2 years
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 100
+ rewardFunds = 60000
+
+ advanceFunds = 24000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-8
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 11
+ define = Apollo-11
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ maxPeA = 100000
+ minInclination = 91
+ targetBody = HomeWorld().Children().First()
+ disableOnStateChange = true
+ title = Reach a RETROGRADE Orbit of @targetBody with a maximum Periapsis of 100 km, a minimum inclination of 91 degrees
+ }
+ PARAMETER
+ {
+ name = LandOnMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = LANDED
+ disableOnStateChange = true
+ title = Land on @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PlantFlagOnMoon
+ type = PlantFlag
+ targetBody = HomeWorld().Children().First()
+ title = Plant a flag on @targetBody! Don't forget the picture
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ recoveryMethod = RecoverOrTransmit
+ title = Collect Science from the Surface of @targetBody
+ hideChildren = true
+ }
+}
+
+// Apollo 12
+
+CONTRACT_TYPE
+{
+ name = Apollo-12
+ group = ApolloProgram
+
+ title = Apollo 12
+ agent = NASA
+
+ description = Apollo 12 was the sixth manned flight in the United States Apollo program and the second to land on the Moon. It was launched on November 14, 1969 from the Kennedy Space Center, Florida, four months after Apollo 11. Mission commander Charles "Pete" Conrad and Lunar Module Pilot Alan L. Bean performed just over one day and seven hours of lunar surface activity while Command Module Pilot Richard F. Gordon remained in lunar orbit. The landing site for the mission was located in the southeastern portion of the Ocean of Storms.\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with 3 Kerbals\n2. Launch Apollo 12\n3. Reach Parking Orbit\n4. Perform Trans Lunar Injection and Achieve Orbit around @targetBody Retrograde\n5. Land on @targetBody\n6. Gather Scientific Data from the surface of @targetBody\n7. Plant Flag on @targetBody\n8. Return Home and Survive Reentry\n\nSignificance: Apollo 12 was the second spaceflight that landed humans on the Moon.\n\nHistorical Launch Date: November 14, 1969
+
+ synopsis = Land your Kerbals on the @targetBody and return them home safely
+ notes = Land your Kerbals on the @targetBody and return them home safely
+
+ completedMessage = Successful Mission! We have once again landed our Kerbals safely on the @targetBody! Unlike the first landing on Apollo 11, Conrad and Bean achieved a precise landing at their expected location, the site of the Surveyor 3 unmanned probe, which had landed on April 20, 1967. They carried the first color television camera to the lunar surface on an Apollo flight, but transmission was lost after Bean accidentally destroyed the camera by pointing it at the Sun. On one of two moonwalks, they visited the Surveyor and removed some parts for return to Earth. The mission ended on November 24 with a successful splashdown.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-11
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 12
+ define = Apollo-12
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ maxPeA = 100000
+ minInclination = 91
+ targetBody = HomeWorld().Children().First()
+ disableOnStateChange = true
+ title = Reach a RETROGRADE Orbit of @targetBody with a maximum Periapsis of 100 km, a minimum inclination of 91 degrees
+ }
+ PARAMETER
+ {
+ name = LandOnMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = LANDED
+ disableOnStateChange = true
+ title = Land on @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PlantFlagOnMoon
+ type = PlantFlag
+ targetBody = HomeWorld().Children().First()
+ title = Plant a flag on @targetBody! Don't forget the picture
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ recoveryMethod = RecoverOrTransmit
+ title = Collect Science from the Surface of @targetBody
+ hideChildren = true
+ }
+}
+
+// Apollo 14
+
+CONTRACT_TYPE
+{
+ name = Apollo-14
+ group = ApolloProgram
+
+ title = Apollo 14
+ agent = NASA
+
+ description = The Apollo 14 mission, with a crew including Alan Shepard Jr., Stuart A. Roosa, and Edgar D. Mitchell, was launched from Kennedy Space Center, Florida, on January 31, 1971. It was the third mission to achieve lunar landing. The spacecraft landed in the Fra Mauro highlands, the same area that was to have been explored on Apollo 13.\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with 3 Kerbals\n2. Launch Apollo 14\n3. Reach Parking Orbit\n4. Perform Trans Lunar Injection and Achieve Orbit around @targetBody Retrograde\n5. Land on @targetBody\n6. Gather Scientific Data from the surface of @targetBody\n7. Plant Flag on @targetBody\n8. Return Home and Survive Reentry\n\nSignificance: Apollo 14 was the third spaceflight that landed humans on the Moon.\n\nHistorical Launch Date: January 31, 1971
+
+ synopsis = Land your Kerbals on the @targetBody and return them home safely
+ notes = Land your Kerbals on the @targetBody and return them home safely
+
+ completedMessage = Successful Mission! We have once again landed our Kerbals safely on the @targetBody! During the two lunar EVAs, 42.80 kilograms (94.35 lb) of Moon rocks were collected, and several scientific experiments were performed. Shepard hit two golf balls on the lunar surface with a makeshift club he had brought from Earth. Shepard and Mitchell spent 33½ hours on the Moon, with almost 9½ hours of EVA.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Lunokhod-1
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 14
+ define = Apollo-14
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ maxPeA = 100000
+ minInclination = 91
+ targetBody = HomeWorld().Children().First()
+ disableOnStateChange = true
+ title = Reach a RETROGRADE Orbit of @targetBody with a maximum Periapsis of 100 km, a minimum inclination of 91 degrees
+ }
+ PARAMETER
+ {
+ name = LandOnMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = LANDED
+ disableOnStateChange = true
+ title = Land on @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = PlantFlagOnMoon
+ type = PlantFlag
+ targetBody = HomeWorld().Children().First()
+ title = Plant a flag on @targetBody! Don't forget the picture
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ recoveryMethod = RecoverOrTransmit
+ title = Collect Science from the Surface of @targetBody
+ hideChildren = true
+ }
+}
+
+// Apollo 15
+
+CONTRACT_TYPE
+{
+ name = Apollo-15
+ group = ApolloProgram
+
+ title = Apollo 15
+ agent = NASA
+
+ description = Apollo 15 was the ninth manned mission in the United States' Apollo program, the fourth to land on the Moon, and the eighth successful manned mission. It was the first of what were termed "J missions", long stays on the Moon, with a greater focus on science than had been possible on previous missions. It was also the first mission on which the Lunar Roving Vehicle was used.\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with 3 Kerbals and include a Rover\n2. Launch Apollo 15\n3. Reach Parking Orbit\n4. Perform Trans Lunar Injection and Achieve Orbit around @targetBody Retrograde\n5. Land on @targetBody near the Waypoint\n6. Plant Flag on @targetBody\n7. Visit the additional waypoints using the rover\n8. Return Home and Survive Reentry\n\nSignificance: Apollo 15 was the fourth spaceflight that landed humans on the Moon and was the first longer term mission that included a rover.\n\nHistorical Launch Date: July 26, 1971
+
+ synopsis = Land your Kerbals on the @targetBody and return them home safely
+ notes = Land your Kerbals on the @targetBody and return them home safely
+
+ completedMessage = Successful Mission! We have once again landed our Kerbals safely on the @targetBody! This was the longest mission so far on the Moon with astronauts Richard Gordon and Harrison Schmitt staying on the Moon for 3 days. During one of the EVA's, the astronauts recovered what came to be one of the more famous lunar samples collected on the Moon during Apollo, sample #15415, more commonly known as the "Genesis Rock."
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Salyut-1
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ DATA
+ {
+ type = double
+
+ threeDays = @targetBody.RotationalPeriod() * 3
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 15
+ define = Apollo-15
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ maxPeA = 100000
+ minInclination = 91
+ targetBody = HomeWorld().Children().First()
+ disableOnStateChange = true
+ title = Reach a RETROGRADE Orbit of @targetBody with a maximum Periapsis of 100 km, a minimum inclination of 91 degrees
+ }
+ PARAMETER
+ {
+ name = LandOnMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = LANDED
+ disableOnStateChange = true
+ title = Land on @targetBody and stay there for 3 Days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = 3DaysOnTheMoon
+ type = Duration
+ duration = @/threeDays
+ preWaitText = Waiting to land
+ waitingText = Landed! Stay on @targetBody for 3 days
+ completionText = Time to go home!
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = PlantFlagOnMoon
+ type = PlantFlag
+ targetBody = HomeWorld().Children().First()
+ title = Plant a flag on @targetBody! Don't forget the picture
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Apollo15Alpha
+ type = VisitWaypoint
+ index = 0
+ distance = 100.0
+ title = Land near Apollo 15 Designated Landing Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Apollo15Beta
+ type = VisitWaypoint
+ index = 1
+ distance = 100.0
+ title = Visit Apollo 15 Beta Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Apollo15Charlie
+ type = VisitWaypoint
+ index = 2
+ distance = 100.0
+ title = Visit Apollo 15 Charlie Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ recoveryMethod = RecoverOrTransmit
+ title = Collect Science from the Surface of @targetBody
+ hideChildren = true
+ }
+ BEHAVIOUR
+ {
+ name = WaypointGenerator
+ type = WaypointGenerator
+
+ RANDOM_WAYPOINT
+ {
+ name = Apollo 15 Landing Site
+ hidden = False
+ targetBody = HomeWorld().Children().First()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ forceEquatorial = false
+ }
+
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Apollo 15 Beta
+ parameter = Apollo15Alpha
+ hidden = false
+ targetBody = HomeWorld().Children().First()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 1000.0
+ }
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Apollo 15 Charlie
+ parameter = Apollo15Beta
+ hidden = false
+ targetBody = HomeWorld().Children().First()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 2000.0
+ }
+ }
+}
+
+// Apollo 16
+
+CONTRACT_TYPE
+{
+ BEHAVIOUR
+ {
+ type = Expression
+ CONTRACT_OFFERED
+ {
+ type = CelestialBody
+ otherMoon = HomeWorld().Children().Last()
+ }
+ }
+ name = Apollo-16
+ group = ApolloProgram
+
+ title = Apollo 16
+ agent = NASA
+
+ description = Apollo 16 was the tenth manned mission in the United States Apollo space program, the fifth and penultimate to land on the Moon and the first to land in the lunar highlands. The second of the so-called "J missions," it was crewed by Commander John Young, Lunar Module Pilot Charles Duke and Command Module Pilot Ken Mattingly. Launched from the Kennedy Space Center in Florida at 12:54 PM EST on April 16, 1972, the mission lasted 11 days, 1 hour, and 51 minutes, and concluded at 2:45 PM EST on April 27\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with 3 Kerbals and include a Rover\n2. Launch Apollo 16\n3. Reach Parking Orbit\n4. Perform Trans Lunar Injection and Achieve Orbit around @targetBody Retrograde\n5. Land on @targetBody near the Waypoint\n6. Plant Flag on @targetBody\n7. Visit the additional waypoints using the rover\n8. Return Home and Survive Reentry\n\nSignificance: Apollo 16 was the fifth spaceflight that landed humans on the Moon and was the second longer term mission that included a rover.\n\nHistorical Launch Date: March 16, 1972
+
+ synopsis = Land your Kerbals on the @targetBody and return them home safely
+ notes = Land your Kerbals on the @targetBody and return them home safely
+
+ completedMessage = Successful Mission! We have landed our Kerbals safely on the @targetBody! Apollo 16's landing spot in the highlands was chosen to allow the astronauts to gather geologically older lunar material than the samples obtained in the first four landings, which were in or near lunar maria. Samples from the Descartes Formation and the Cayley Formation disproved a hypothesis that the formations were volcanic in origin.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().Last()
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-15
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ DATA
+ {
+ type = double
+
+ threeDays = @targetBody.RotationalPeriod() * 3
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 16
+ define = Apollo-16
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ maxPeA = 100000
+ minInclination = 91
+ targetBody = HomeWorld().Children().Last()
+ disableOnStateChange = true
+ title = Reach a RETROGRADE Orbit of @targetBody with a maximum Periapsis of 100 km, a minimum inclination of 91 degrees
+ }
+ PARAMETER
+ {
+ name = LandOnMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().Last()
+ situation = LANDED
+ disableOnStateChange = true
+ title = Land on @targetBody and stay there for 3 Days
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = 3DaysOnTheMoon
+ type = Duration
+ duration = @/threeDays
+ preWaitText = Waiting to land
+ waitingText = Landed! Stay on @targetBody for 3 days
+ completionText = Time to go home!
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = PlantFlagOnMoon
+ type = PlantFlag
+ targetBody = HomeWorld().Children().Last()
+ title = Plant a flag on @targetBody! Don't forget the picture
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Apollo16Alpha
+ type = VisitWaypoint
+ index = 0
+ distance = 100.0
+ title = Land near Apollo 16 Designated Landing Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Apollo16Beta
+ type = VisitWaypoint
+ index = 1
+ distance = 100.0
+ title = Visit Apollo 16 Beta Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Apollo16Charlie
+ type = VisitWaypoint
+ index = 2
+ distance = 100.0
+ title = Visit Apollo 16 Charlie Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().Last()
+ recoveryMethod = RecoverOrTransmit
+ title = Collect Science from the Surface of @targetBody
+ hideChildren = true
+ }
+ BEHAVIOUR
+ {
+ name = WaypointGenerator
+ type = WaypointGenerator
+
+ RANDOM_WAYPOINT
+ {
+ name = Apollo 16 Landing Site
+ hidden = False
+ targetBody = HomeWorld().Children().Last()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ forceEquatorial = false
+ }
+
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Apollo 16 Beta
+ parameter = Apollo16Alpha
+ hidden = false
+ targetBody = HomeWorld().Children().Last()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 1000.0
+ }
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Apollo 16 Charlie
+ parameter = Apollo16Beta
+ hidden = false
+ targetBody = HomeWorld().Children().Last()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 2000.0
+ }
+ }
+}
+
+// Apollo 17
+
+CONTRACT_TYPE
+{
+ name = Apollo-17
+ group = ApolloProgram
+
+ title = Apollo 17
+ agent = NASA
+
+ description = Apollo 17 was the final mission of NASA's Apollo program, the enterprise that landed the first humans on the Moon. Launched at 12:33 am Eastern Standard Time (EST) on December 7, 1972, with a crew made up of Commander Eugene Cernan, Command Module Pilot Ronald Evans, and Lunar Module Pilot Harrison Schmitt, it was the last use of Apollo hardware for its original purpose; after Apollo 17, extra Apollo spacecraft were used in the Skylab and Apollo–Soyuz programs.\n\nObjectives:\n\n1. Design your version of a Saturn V Rocket with 3 Kerbals and include a Rover\n2. Launch Apollo 17\n3. Reach Parking Orbit\n4. Perform Trans Lunar Injection and Achieve Orbit around @targetBody Retrograde\n5. Land on @targetBody near the Waypoint\n6. Plant Flag on @targetBody\n7. Visit the additional waypoints using the rover\n8. Return Home and Survive Reentry\n\nSignificance: Apollo 17 was the sixth spaceflight that landed humans on the Moon and was the last time that humans left Low Earth Orbit.\n\nHistorical Launch Date: December 7, 1972
+
+ synopsis = Land your Kerbals on the @targetBody and return them home safely
+ notes = Land your Kerbals on the @targetBody and return them home safely
+
+ completedMessage = Successful Mission! We have landed our Kerbals safely on the @targetBody! The end of the Apollo Program is here. Apollo achieved all of it's objectives and landing humans on the Moon six times. Funding was cut and the Apollo hardware was repurposed for other missions like Skylab and the Apollo-Soyuz joint misison. Human beings have not left Low Earth Orbit since the end of the program in 1972.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().Last()
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-16
+ }
+
+ DATA
+ {
+ type = double
+ parkingOrbit = HomeWorld().AtmosphereAltitude() * 1.5
+ parkingOrbitkm = @parkingOrbit / 1000
+ }
+
+ DATA
+ {
+ type = double
+
+ threeDays = @targetBody.RotationalPeriod() * 3
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Apollo 17
+ define = Apollo-17
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModule = ModuleDockingNode
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ParkingOrbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minAltitude = @/parkingOrbit
+ title = Reach Low @targetBody Orbit of @/parkingOrbitkm km
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ targetBody = HomeWorld().Children().Last()
+ maxPeA = 100000
+ disableOnStateChange = true
+ title = Reach Orbit around @targetBody with a Periapsis below 100 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ maxPeA = 100000
+ minInclination = 91
+ targetBody = HomeWorld().Children().Last()
+ disableOnStateChange = true
+ title = Reach a RETROGRADE Orbit of @targetBody with a maximum Periapsis of 100 km, a minimum inclination of 91 degrees
+ }
+ PARAMETER
+ {
+ name = 3DaysOnTheMoon
+ type = Duration
+ duration = @/threeDays
+ preWaitText = Waiting to land
+ waitingText = Landed! Stay on @targetBody for 3 days
+ completionText = Time to go home!
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = PlantFlagOnMoon
+ type = PlantFlag
+ targetBody = HomeWorld().Children().Last()
+ title = Plant a flag on @targetBody! Don't forget the picture
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Apollo17Alpha
+ type = VisitWaypoint
+ index = 0
+ distance = 100.0
+ title = Land near Apollo 17 Designated Landing Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Apollo17Beta
+ type = VisitWaypoint
+ index = 1
+ distance = 100.0
+ title = Visit Apollo 17 Beta Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = Apollo17Charlie
+ type = VisitWaypoint
+ index = 2
+ distance = 100.0
+ title = Visit Apollo 17 Charlie Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().Last()
+ recoveryMethod = RecoverOrTransmit
+ title = Collect Science from the Surface of @targetBody
+ hideChildren = true
+ }
+ BEHAVIOUR
+ {
+ name = WaypointGenerator
+ type = WaypointGenerator
+
+ RANDOM_WAYPOINT
+ {
+ name = Apollo 17 Landing Site
+ hidden = False
+ targetBody = HomeWorld().Children().Last()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ forceEquatorial = false
+ }
+
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Apollo 17 Beta
+ parameter = Apollo17Alpha
+ hidden = false
+ targetBody = HomeWorld().Children().Last()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 1000.0
+ }
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Apollo 17 Charlie
+ parameter = Apollo17Beta
+ hidden = false
+ targetBody = HomeWorld().Children().Last()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 2000.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/EarlyMissions.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/EarlyMissions.cfg
new file mode 100644
index 0000000..acc44be
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/EarlyMissions.cfg
@@ -0,0 +1,602 @@
+// Sounding Rockets
+
+CONTRACT_TYPE
+{
+ BEHAVIOUR
+ {
+ type = Expression
+ CONTRACT_ACCEPTED
+ {
+ type = CelestialBody
+ ourHome = HomeWorld()
+ }
+ }
+
+ name = SoundingRocket
+ group = EarlyMissions
+
+ title = Sounding Rockets
+ agent = Peenemunde Army Research Center
+
+ synopsis = Launch your first sounding rocket to the upper atmosphere
+ notes = Launch your first sounding rocket to the upper atmosphere
+
+ description = A sounding rocket, sometimes called a research rocket, is an instrument-carrying rocket designed to take measurements and perform scientific experiments during its flight. This early in our space program, we are still trying to see how far and how high we can launch rockets.\n\nObjectives:\n\n1. Design an unmanned rocket\n2. Launch the Rocket\n3. Reach the Upper Atmosphere at least @upperAtmo meters high\n\nSignificance: These are the first launches of rockets that would help us to refine our rocketry techniques to go higher, faster and farther.
+
+ completedMessage = Congratulations! You have launched your first rocket and have returned important scientific data.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 8
+ rewardFunds = 9000
+
+ advanceFunds = 4000
+
+ weight = 999
+
+ DATA
+ {
+ type = double
+ upperAtmo = HomeWorld().AtmosphereAltitude()-20000
+ }
+
+ PARAMETER
+ {
+ name = SoundingRocket
+ type = VesselParameterGroup
+ title = Launch your first rocket.
+ define = Sounding Rocket
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ hideChildren = true
+ title = Unmanned
+ minCrew = 0
+ maxCrew = 0
+ }
+ PARAMETER
+ {
+ name = ReachState
+ type = ReachState
+ minAltitude = @/upperAtmo
+ disableOnStateChange = True
+ situation = FLYING
+ title = Reach the upper atmosphere above @/upperAtmo meters
+ hideChildren = true
+ }
+ }
+}
+
+// V-2
+
+CONTRACT_TYPE
+{
+ name = V-2
+ group = EarlyMissions
+
+ title = V-2 Rocket
+ agent = Peenemunde Army Research Center
+
+ synopsis = Launch the first rocket to reach space.
+ notes = The rocket needs to escape the atmosphere and reach space
+
+ description = The V-2, technical name Aggregat-4 (A-4), was the world's first long-range guided ballistic missile. The missile with a liquid-propellant rocket engine was developed during the Second World War in Germany as a "vengeance weapon," designed to attack Allied cities as retaliation for the Allied bombings against German cities. The V-2 rocket also became the first artificial object to cross the boundary of space with the vertical launch of V-177 on 20 June 1944.\n\nObjectives:\n\n1. Design an unmanned rocket\n2. Launch the Rocket\n3. Reach Space\n4. Destroy the Rocket\n\nSignificance: The V-2, or A-4 was the first man made object to cross the Karman line and reach space. This early rocket was the basis of the rockets developed in both the USSR and USA that would. After WWII, the German scientists that worked on the project helped to develop the technology in both countries.\n\nHistorical Launch Date: June 20, 1944
+
+ completedMessage = Success! The V-2 Rocket, and the German scientists working on it, became the foundation of the rocketry programs in both the USSR and USA.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 6
+ rewardReputation = 20
+ rewardFunds = 15000
+
+ advanceFunds = 6000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = SoundingRocket
+ }
+
+ PARAMETER
+ {
+ name = V-2
+ type = VesselParameterGroup
+ title = Launch the V-2 rocket.
+ define = V-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachSpace
+ type = ReachState
+ minAltitude = HomeWorld().AtmosphereAltitude()
+ disableOnStateChange = True
+ situation = SUB_ORBITAL
+ title = Reach Space
+ }
+
+ PARAMETER
+ {
+ name = VesselDestroyed
+ type = VesselDestroyed
+ mustImpactTerrain = false
+ title = Destroy the V-2 Rocket upon completion of the mission.
+ hideChildren = true
+ }
+
+ }
+}
+
+// Sputnik 1
+
+CONTRACT_TYPE
+{
+ name = Sputnik-1
+ group = EarlyMissions
+
+ title = Sputnik 1
+ agent = USSR
+
+ notes = Launch Sputnik 1 into orbit of $ourHome
+ synopsis = Launch Sputnik 1 into orbit of $ourHome
+
+ description = The Sputnik 1 spacecraft was the first artificial satellite successfully placed in orbit around the Earth and was launched from Baikonur Cosmodrome at Tyuratam in Kazakhstan, then part of the former Soviet Union. The Russian word "Sputnik" means "companion" ("satellite" in the astronomical sense).\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch the Rocket\n3. Reach Orbit\n\nSignificance: Sputnik 1 was the first artificial satellite orbiting Earth.\n\nHistorical Launch Date: October 4, 1957
+
+ completedMessage = Success! Sputnik 1 is one of the most significant events of the Space Race between the USA and USSR. This monumental achievement was proof of how far ahead the USSR were at this point in history. The fact that the satellite was orbiting above the Earth terrified people in the United States as many thought the Soviets could drop a bomb from something similar.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+
+ // REWARDS
+ rewardScience = 9
+ rewardReputation = 40
+ rewardFunds = 40000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = V-2
+ }
+
+ PARAMETER
+ {
+ name = Sputnik-1
+ type = VesselParameterGroup
+ title = Launch the Sputnik 1 probe into orbit.
+ define = Sputnik 1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ disableOnStateChange = true
+ title = Achieve Orbit around @targetBody
+ hideChildren = true
+ }
+
+ }
+}
+
+// Sputnik 2
+
+CONTRACT_TYPE
+{
+ name = Sputnik-2
+ group = EarlyMissions
+
+ title = Sputnik 2
+ agent = USSR
+
+ synopsis = Launch Sputnik 2 into orbit of @targetBody
+ notes = Launch the Sputnik 2 into orbit of @targetBody
+
+ description = Sputnik 2 was the second spacecraft launched into Earth orbit, and the first to carry a living animal, a dog named Laika. Sputnik 2 was a 4-meter (13 foot) high cone-shaped capsule with a base diameter of 2 meters (6.6 feet) that weighed around 500 kg, though it was not designed to separate from the rocket core that brought it to orbit, bringing the total mass in orbit to 7.79 tons.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Sputnik 2\n3. Reach Orbit\n\nSignificance: Sputnik 2 was the second artificial satellite of Earth as well as the first launched with a living creature, the dog Laika.\n\nHistorical Launch Date: November 3, 1957
+
+ completedMessage = Success! Sputnik 2 was a follow up onto Sputnik 1 and the first to orbit Earth with a living creature aboard, however the dog Laika is believed to have died only a few hours after orbit.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 20
+ rewardFunds = 20000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ PARAMETER
+ {
+ name = Sputnik-2
+ type = VesselParameterGroup
+ title = Launch the Sputnik 2 probe into orbit.
+ define = Sputnik 2
+
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ disableOnStateChange = true
+ title = Achieve Orbit around @targetBody
+ hideChildren = true
+ }
+ }
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Sputnik-1
+ }
+}
+
+// Explorer 1
+
+CONTRACT_TYPE
+{
+ name = Explorer-1
+ group = EarlyMissions
+
+ title = Explorer 1
+ agent = Army Ballistic Missile Agency
+
+ notes = Launch Explorer 1 into orbit of @targetBody
+ synopsis = Launch Explorer 1 into orbit of @targetBody
+
+ description = Explorer 1 was the first satellite of the United States, launched as part of its participation in the International Geophysical Year. The mission followed the first two satellites the previous year; the Soviet Union's Sputnik 1 and 2, beginning the Cold War Space Race between the two nations.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Explorer 1\n3. Reach Orbit\n4. Return Science Data from Space\n\nSignificance: Explorer 1 was the first satellite launched by the Americans. It contained more science instruments than the previous Sputnik launches.\n\nHistorical Launch Date: January 31, 1958
+
+ completedMessage = Mission Success! Explorer 1 was launched on January 31, 1958 at 22:48 Eastern Time atop the first Juno booster from LC-26 at the Cape Canaveral Missile Annex, Florida. It was the first spacecraft to detect the Van Allen radiation belt, returning data until its batteries were exhausted after nearly four months. It remained in orbit until 1970, and has been followed by more than 90 scientific spacecraft in the Explorer series.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 6
+ rewardReputation = 10
+ rewardFunds = 20000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Sputnik-2
+ }
+ PARAMETER
+ {
+ name = Explorer-1
+ type = VesselParameterGroup
+ title = Launch the Explorer 1 probe into orbit.
+ define = Explorer1
+
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld()
+ recoveryMethod = Transmit
+ title = Transmit science data from Low @targetBody Orbit
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ disableOnStateChange = true
+ title = Achieve Orbit around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Vanguard 1
+
+CONTRACT_TYPE
+{
+ name = Vanguard-1
+ group = EarlyMissions
+
+ title = Vanguard 1
+ agent = Naval Research Lab
+
+ notes = Launch Vanguard 1 with solar panels into orbit of @targetBody
+ synopsis = Launch Vanguard 1 with solar panels into orbit of @targetBody
+
+ description = Vanguard 1 was the fourth artificial Earth orbital satellite launched (after Sputnik 1, Sputnik 2, and Explorer 1). It was the first satellite to be solar powered.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna and solar panels\n2. Launch Vanguard 1\n3. Reach Orbit with a Periapsis of more than 600 km\n\nSignificance: Vanguard 1 was the first satellite that had solar panels on it. It is also currently still in orbit and is the oldest satellite still in Earth's orbit.\n\nHistorical Launch Date: March 17, 1958
+
+ completedMessage = Although communication with it was lost in 1964, it remains the oldest manmade satellite still in orbit. Vanguard 1 was described by then-Soviet Premier Nikita Khrushchev as, "The grapefruit satellite."
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 5
+ rewardFunds = 20000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Explorer-1
+ }
+
+ PARAMETER
+ {
+ name = Vanguard-1
+ type = VesselParameterGroup
+ title = Launch the Vanguard 1 probe into orbit.
+ define = Vanguard 1
+
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasSolarPower
+ title = Can Generate Solar Power
+ type = PartValidation
+ hideChildren = true
+ partModule = ModuleDeployableSolarPanel
+ minCount = 1
+ }
+
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minPeA = 600000
+ disableOnStateChange = true
+ title = Reach orbit with a minimum Periapsis of 600 km
+ hideChildren = true
+ }
+ }
+}
+
+// Explorer 6
+
+CONTRACT_TYPE
+{
+ name = Explorer-6
+ group = EarlyMissions
+
+ title = Explorer 6
+ agent = NASA
+
+ notes = Launch Explorer 6 into orbit of @targetBody and transmit Science Data
+ synopsis = Launch Explorer 6 into orbit of @targetBody and transmit Science Data
+
+ description = Explorer 6, or S-2, was an American satellite. It was a small, spheroidal satellite designed to study trapped radiation of various energies, galactic cosmic rays, geomagnetism, radio propagation in the upper atmosphere, and the flux of micrometeorites. It also tested a scanning device designed for photographing the Earth's cloud cover, and transmitted the first pictures of Earth from orbit.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Explorer 6\n3. Reach Orbit\n4. Return Science Data from space around @targetBody\n\nSignificance: Explorer 6 transmitted the first images of Earth while in orbit.\n\nHistorical Launch Date: August 7, 1959
+
+ completedMessage = Mission Success! Explorer 6 was launched into a highly elliptical orbit and returned the first images of Earth from space.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 5
+ rewardFunds = 12000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Vanguard-1
+ }
+
+ PARAMETER
+ {
+ name = Explorer-6
+ type = VesselParameterGroup
+ title = Launch the Explorer 6 probe into orbit.
+ define = Explorer-6
+
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ targetBody = HomeWorld()
+ minApA = 250000
+ disableOnStateChange = true
+ title = Reach orbit with a minimum Periapsis of 250 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld()
+ recoveryMethod = Transmit
+ title = Transmit science data from Low @targetBody Orbit
+ hideChildren = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/JupiterExploration.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/JupiterExploration.cfg
new file mode 100644
index 0000000..a3a7fc7
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/JupiterExploration.cfg
@@ -0,0 +1,786 @@
+// Pioneer 10
+
+CONTRACT_TYPE
+{
+ name = Pioneer-10
+ group = JupiterExploration
+
+ title = Pioneer 10
+ agent = NASA
+
+ description = Pioneer 10 is an American space probe, weighing 258 kilograms (569 pounds), that completed the first mission to the planet Jupiter. Thereafter, Pioneer 10 became the first spacecraft to achieve escape velocity from the Solar System. This space exploration project was conducted by the NASA Ames Research Center in California, and the space probe was manufactured by TRW Inc.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna that can reach @targetBody\n2. Launch Pioneer 10\n3. Flyby @targetBody within 150,000 km\n4. Transmit Science Data from Space around @targetBody\n\nSignificance: Pioneer 10 was the first spacecraft to travel beyond the asteroid belt, flyby Jupiter and eventually escape the Solar System and enter interplanetary space.\n\nHistorical Launch Date: March 3, 1972
+
+ synopsis = Fly by @targetBody
+ notes = Fly by @targetBody
+
+ completedMessage = Congratulations on the successful flyby of @targetBody! Pioneer 10 was launched on March 2, 1972, by an Atlas-Centaur expendable vehicle from Cape Canaveral, Florida. Between July 15, 1972, and February 15, 1973, it became the first spacecraft to traverse the asteroid belt. Photography of Jupiter began November 6, 1973, at a range of 25,000,000 kilometers (16,000,000 mi), and a total of about 500 images were transmitted. The closest approach to the planet was on December 4, 1973, at a range of 132,252 kilometers (82,178 mi). During the mission, the on-board instruments were used to study the asteroid belt, the environment around Jupiter, the solar wind, cosmic rays, and eventually the far reaches of the Solar System and heliosphere.\n\nRadio communications were lost with Pioneer 10 on January 23, 2003, because of the loss of electric power for its radio transmitter, with the probe at a distance of 12 billion kilometers (80 AU) from Earth.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = @jupiter
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 5
+ rewardFunds = 12000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-15
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ jupiter = AllBodies().Where(cb => cb.IsPlanet() && !cb.HasSurface()).First()
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody
+ define = Pioneer-10
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachState
+ type = ReachState
+ maxAltitude = 150000000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 150,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Pioneer 11
+
+CONTRACT_TYPE
+{
+ name = Pioneer-11
+ group = JupiterExploration
+
+ title = Pioneer 11
+ agent = NASA
+
+ description = Pioneer 11 is a 259-kilogram (571 lb) robotic space probe launched by NASA on April 6, 1973 to study the asteroid belt, the environment around Jupiter and Saturn, solar wind, cosmic rays, and eventually the far reaches of the Solar System and heliosphere. It was the first probe to encounter Saturn and the second to fly through the asteroid belt and by Jupiter. Due to power constraints and the vast distance to the probe, last contact with the spacecraft was on September 30, 1995.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna that can reach @saturn\n2. Launch Pioneer 11\n3. Flyby @targetBody within 50,000 km\n4. Transmit Science Data from Space around @targetBody\n5. Flyby @saturn within 50,000 km\n6. Transmit Science Data from Space around @saturn\n\nSignificance: Pioneer 11 was the first spacecraft to flyby Saturn\n\nHistorical Launch Date: March 6, 1973
+
+ synopsis = Fly by @targetBody and fly by $saturn
+ notes = Fly by @targetBody and fly by $saturn
+
+ completedMessage = Congratulations on the successful flyby of @targetBody and @saturn! Pioneer 11 was successful and became the second man made object to enter into Interplanetary space. Pioneer 10 and 11 both carry a gold-anodized aluminum plaque in the event that either spacecraft is ever found by intelligent lifeforms from other planetary systems. The plaques feature the nude figures of a human male and female along with several symbols that are designed to provide information about the origin of the spacecraft.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = @jupiter
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 5
+ rewardFunds = 12000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-17
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ jupiter = AllBodies().Where(cb => cb.IsPlanet() && !cb.HasSurface()).First()
+ }
+
+ DATA
+ {
+ type = double
+
+ sma = @targetBody.SemiMajorAxis()
+ targetSMA = @sma * 1.1
+ }
+
+ DATA
+ {
+ type = List
+
+ targetBodies = AllBodies().Where(cb => cb.SemiMajorAxis() >= @targetSMA && cb.IsPlanet() && cb != HomeWorld())
+ }
+ DATA
+ {
+ type = CelestialBody
+
+ saturn = @/targetBodies.ElementAt(0)
+ }
+
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody and @/saturn
+ define = Pioneer-11
+
+
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachState
+ type = ReachState
+ maxAltitude = 50000000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 50,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReachState
+ type = ReachState
+ targetBody = @/targetBodies.ElementAt(0)
+ maxAltitude = 50000000
+ disableOnStateChange = true
+ title = Flyby @/saturn within 50,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = @/targetBodies.ElementAt(0)
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @/saturn
+ hideChildren = true
+ }
+ }
+}
+
+// Voyager 2
+
+CONTRACT_TYPE
+{
+ name = Voyager-2
+ group = JupiterExploration
+
+ title = Voyager 2
+ agent = NASA
+
+ description = Voyager 2 is a space probe launched by NASA on August 20, 1977 to study the outer planets. Part of the Voyager program, it was launched 16 days before its twin, Voyager 1, on a trajectory that took longer to reach Jupiter and Saturn but enabled further encounters with Uranus and Neptune. It is the only spacecraft to have ever visited either of the ice giants. In the early 1960's, it was realized that a coincidental alignment of the outer planets would occur in the late 1970s and enable a single probe to visit Jupiter, Saturn, Uranus, and Neptune by taking advantage of the then-new technique of gravity assists. NASA began work on a Grand Tour, which evolved into a massive project involving two groups of two probes each, with one group visiting Jupiter, Saturn, and Pluto and the other Jupiter, Uranus, and Neptune. The spacecraft would be designed with redundant systems to ensure survival through the entire tour.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna that can reach the outer planets\n2. Launch Voyager 2\n3. Flyby the outer planets (see list below) and transmit Science data back to the KSC\n\nSignificance: Voyager 2 is the only spacecraft to have visited Uranus and Neptune.\n\nHistorical Launch Date: August 20, 1977
+
+ synopsis = Fly by the Outer Planets
+ notes = Fly by the Outer Planets
+
+ completedMessage = Congratulations on the successful flyby of the outer planets! Voyager 2's primary mission ended with the exploration of the Neptunian system on October 2, 1989, after having visited the Uranian system in 1986, the Saturnian system in 1981, and the Jovian system in 1979. Voyager 2 is now in its extended mission to study the outer reaches of the Solar System and has been operating for 38 years, 10 months and 10 days. It remains in contact through the Deep Space Network.\n\nAt a distance of 111 AU (1.66×1010 km) from the Sun as of June 2016, Voyager 2 is one of the most distant human-made objects, along with Voyager 1, Pioneer 10 and Pioneer 11. The probe was moving at a velocity of 15.4 km/s (55,000 km/h) relative to the Sun as of December 2014 and is traveling through the heliosheath. Upon reaching interstellar space, Voyager 2 is expected to provide the first direct measurements of the density and temperature of the interstellar plasma.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = @jupiter
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 50000
+
+ advanceFunds = 50000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Helios
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ jupiter = AllBodies().Where(cb => cb.IsPlanet() && !cb.HasSurface()).First()
+ }
+
+ DATA
+ {
+ type = double
+
+ sma = @targetBody.SemiMajorAxis()
+ targetSMA = @sma * 1.1
+ }
+
+ DATA
+ {
+ type = List
+
+ targetBodies = AllBodies().Where(cb => cb.SemiMajorAxis() >= @targetSMA && cb.IsPlanet() && cb != HomeWorld())
+ }
+ DATA
+ {
+ type = CelestialBody
+
+ saturn = @/targetBodies.ElementAt(0)
+ uranus = @/targetBodies.ElementAt(1)
+ neptune = @/targetBodies.ElementAt(2)
+ }
+
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody and the outer planets
+ define = Voyager 2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyJupiter
+ type = ReachState
+ maxAltitude = 600000000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 600,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = JupiterScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybySaturn
+ type = ReachState
+ targetBody = @/targetBodies.ElementAt(0)
+ maxAltitude = 200000000
+ disableOnStateChange = true
+ title = Flyby @/saturn within 200,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SaturnScience
+ type = CollectScience
+ targetBody = @/targetBodies.ElementAt(0)
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @/saturn
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyUranus
+ type = ReachState
+ targetBody = @/targetBodies.ElementAt(1)
+ maxAltitude = 100000000
+ disableOnStateChange = true
+ title = Flyby @/uranus within 100,000 km
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/targetBodies.Count() > 1
+ }
+ }
+ PARAMETER
+ {
+ name = UranusScience
+ type = CollectScience
+ targetBody = @/targetBodies.ElementAt(1)
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @/uranus
+ hideChildren = true
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/targetBodies.Count() > 1
+ }
+ }
+ PARAMETER
+ {
+ name = FlybyNeptune
+ type = ReachState
+ targetBody = @/targetBodies.ElementAt(2)
+ maxAltitude = 5000000
+ disableOnStateChange = true
+ title = Flyby @/neptune within 5,000 km
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/targetBodies.Count() > 2
+ }
+ }
+ PARAMETER
+ {
+ name = NeptuneScience
+ type = CollectScience
+ targetBody = @/targetBodies.ElementAt(2)
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @/neptune
+ hideChildren = true
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/targetBodies.Count() > 2
+ }
+ }
+ }
+}
+
+// Voyager 1
+
+CONTRACT_TYPE
+{
+ name = Voyager-1
+ group = JupiterExploration
+
+ title = Voyager 1
+ agent = NASA
+
+ description = Voyager 1 is a space probe launched by NASA on September 5, 1977. Part of the Voyager program to study the outer Solar System, Voyager 1 launched 16 days after its twin, Voyager 2. Having operated for 38 years, 9 months and 25 days, the spacecraft still communicates with the Deep Space Network to receive routine commands and return data. At a distance of 135 AU (2.02×1010 km) from the Sun as of June 2016, it is the furthest spacecraft from Earth and the only one in interstellar space.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna that can reach the outer planets\n2. Launch Voyager 1\n3. Flyby the outer planets (see list below) and transmit Science data back to the KSC\n\nSignificance: Voyager 1 visited Saturn and it's moon Titan and is the furthest man-made object away from Earth.\n\nHistorical Launch Date: September 5, 1977
+
+ synopsis = Fly by the Outer Planets
+ notes = Fly by the Outer Planets
+
+ completedMessage = Congratulations on the successful flyby of the outer planets! After completing its primary mission with the flyby of Saturn on November 20, 1980, Voyager 1 began an extended mission to explore the regions and boundaries of the outer heliosphere. On August 25, 2012, Voyager 1 crossed the heliopause to become the first spacecraft to enter interstellar space and study the interstellar medium. Voyager 1's extended mission is expected to continue until around 2025, when its radioisotope thermoelectric generators will no longer supply enough electric power to operate any of its scientific instruments.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = @jupiter
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 50000
+
+ advanceFunds = 50000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Helios
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ jupiter = AllBodies().Where(cb => cb.IsPlanet() && !cb.HasSurface()).First()
+ }
+
+ DATA
+ {
+ type = double
+
+ sma = @targetBody.SemiMajorAxis()
+ targetSMA = @sma * 1.1
+ }
+
+ DATA
+ {
+ type = List
+
+ targetBodies = AllBodies().Where(cb => cb.SemiMajorAxis() >= @targetSMA && cb.IsPlanet() && cb != HomeWorld())
+ }
+ DATA
+ {
+ type = CelestialBody
+
+ saturn = @/targetBodies.ElementAt(0)
+ }
+ DATA
+ {
+ type = List
+
+ moonList = @/targetBodies.ElementAt(0).Children().Where(cb => cb.HasAtmosphere())
+ }
+ DATA
+ {
+ type = CelestialBody
+
+ titan = @moonList.Random()
+ }
+
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody and the outer planets
+ define = Voyager 1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyJupiter
+ type = ReachState
+ maxAltitude = 400000000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 400,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = JupiterScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybySaturn
+ type = ReachState
+ targetBody = @/targetBodies.ElementAt(0)
+ maxAltitude = 150000000
+ disableOnStateChange = true
+ title = Flyby @/saturn within 150,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SaturnScience
+ type = CollectScience
+ targetBody = @/targetBodies.ElementAt(0)
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @/saturn
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyTitan
+ type = ReachState
+ targetBody = @/titan
+ maxAltitude = 10000000
+ disableOnStateChange = true
+ title = Flyby @/titan within 10,000 km
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/targetBodies.ElementAt(0).Children().Where(cb => cb.HasAtmosphere()).Count() > 0
+ }
+ }
+ PARAMETER
+ {
+ name = TitanScience
+ type = CollectScience
+ targetBody = @/titan
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @/titan
+ hideChildren = true
+
+ REQUIREMENT
+ {
+ type = Expression
+ expression = @/targetBodies.ElementAt(0).Children().Where(cb => cb.HasAtmosphere()).Count() > 0
+ }
+ }
+ }
+}
+
+// Galileo STS-34
+
+CONTRACT_TYPE
+{
+ name = Galileo
+ group = JupiterExploration
+
+ title = Galileo
+ agent = NASA
+
+ description = Galileo was an American unmanned spacecraft that studied the planet Jupiter and its moons, as well as several other Solar System bodies. Named after the astronomer Galileo Galilei, it consisted of an orbiter and entry probe. It was launched on October 18, 1989, carried by Space Shuttle Atlantis, on the STS-34 mission. Galileo arrived at Jupiter on December 7, 1995, after gravitational assist flybys of Venus and Earth, and became the first spacecraft to orbit Jupiter.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Design your Galileo Probe to go to @targetBody\n3. Crew of 5\n4. Galileo Spacecraft on Board\n5. Launch STS-34\n6. Reach Orbit and Deploy Galileo\n7. Deorbit Space Shuttle\n8. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n9. Switch back to Galileo and finish mission\n10. Send Galileo to @targetBody\n11. BOUNS: Flyby @venus and use the gravity assist to shorten your trip\n12. Enter Orbit around @targetBody\n14. Send a probe into the atmosphere of @targetBody and Transmit Science Data\n13. Flyby the moons of @targetBody and Transmit Science Data\n\nSignificance: Galileo was the first spacecraft to orbit Jupiter and return data about the moons.\n\nHistorical Launch Date: October 13, 1989
+
+ synopsis = Use your Space Shuttle to bring 5 crew and the Galileo probe into Orbit. Complete Galileo mission parameters.
+ notes = Use your Space Shuttle to bring 5 crew and the Galileo probe into Orbit. Complete Galileo mission parameters.
+
+ completedMessage = Congratulations, this was a difficult mission! Galileo's prime mission was a two-year study of the Jovian system. The spacecraft traveled around Jupiter in elongated ellipses, each orbit lasting about two months. The differing distances from Jupiter afforded by these orbits allowed Galileo to sample different parts of the planet's extensive magnetosphere. The orbits were designed for close-up flybys of Jupiter's largest moons. Once the prime mission concluded, an extended mission started on December 7, 1997; the spacecraft made a number of flybys of Europa and Io. The closest approach was 180 km (110 mi) on October 15, 2001. The radiation environment near Io was very unhealthy for Galileo's systems, and so these flybys were saved for the extended mission when loss of the spacecraft would be more acceptable.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = @jupiter
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 20
+ rewardFunds = 100000
+
+ advanceFunds = 75000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-41B
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ jupiter = AllBodies().Where(cb => cb.IsPlanet() && !cb.HasSurface()).First()
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ venus = HomeWorld().Parent().Children().ElementAt(1)
+ }
+
+ PARAMETER
+ {
+ name = STS-34
+ type = VesselParameterGroup
+ title = STS-34
+ define = STS-34
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 5
+ maxCrew = 5
+ title = Have 5 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS34Orbit
+ type = Orbit
+ minInclination = 0
+ targetBody = HomeWorld()
+ title = Reach Orbit and Deploy Galileo
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = Galileo
+ type = VesselParameterGroup
+ define = Galileo
+
+ PARAMETER
+ {
+ optional = true
+ name = FlybyVenus
+ type = ReachState
+ targetBody = @/venus
+ title = OPTIONAL: Flyby @/venus and receive gravity assist
+ rewardScience = 100
+ rewardFunds = 500000
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = JupiterOrbit
+ type = Orbit
+ minPeA = 550000
+ rewardScience = 10.0
+ title = Put Galileo into orbit around @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = JupiterAtmoScience
+ type = CollectScience
+ situation = FlyingHigh
+ recoveryMethod = Transmit
+ title = Send a probe into the upper atmosphere of @targetBody and Transmit Science
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonFlybys
+ type = ReachState
+ disableOnStateChange = true
+ targetBody = @targetMoon
+ maxAltitude = @targetMoon.Radius() * 2
+ ITERATOR
+ {
+ type = CelestialBody
+ targetMoon = @/targetBody.Children()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/MarsExploration.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/MarsExploration.cfg
new file mode 100644
index 0000000..a06f541
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/MarsExploration.cfg
@@ -0,0 +1,809 @@
+// Duna or Mars Missions
+// Duna is x 5
+// Mars in RSS is x 3.5
+// Mars in Half RSS is x 4
+
+// Mariner 4
+
+CONTRACT_TYPE
+{
+ BEHAVIOUR
+ {
+ type = Expression
+ CONTRACT_ACCEPTED
+ {
+ type = CelestialBody
+ mars = HomeWorld().Parent().Children().ElementAt(3)
+ }
+ }
+ name = Mariner-4
+ group = MarsExploration
+
+ title = Mariner 4
+ agent = NASA
+
+ description = Mariner 4 was the fourth in a series of spacecraft used for planetary exploration in a flyby mode and represented the first successful flyby of the planet Mars, returning the first pictures of the martian surface. These represented the first images of another planet ever returned from deep space.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna\n2. Launch Mariner 4\n3. Flyby @targetBody within 20,000 km\n4. Transmit Science Data from Space around @targetBody\n\nSignificance: Mariner 4 was the first successful mission to flyby Mars as well as to take images of another planet\n\nHistorical Launch Date: November 28, 1964
+
+ synopsis = Fly by @targetBody
+ notes = Fly by @targetBody
+
+ completedMessage = Congratulations on the successful flyby! Mariner 4 was designed to conduct closeup scientific observations of Mars and to transmit these observations to Earth. Other mission objectives were to perform field and particle measurements in interplanetary space in the vicinity of Mars and to provide experience in and knowledge of the engineering capabilities for interplanetary flights of long duration.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = $mars
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 10
+ rewardFunds = 8000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Mariner-2
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody
+ define = Mariner-4
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyMars
+ type = ReachState
+ maxAltitude = 10000000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 10,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectMartianScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science Data from Space near @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Mars 2
+
+CONTRACT_TYPE
+{
+ name = Mars-2
+ group = MarsExploration
+
+ title = Mars 2
+ agent = USSR
+
+ description = The Mars 2 was an unmanned space probe of the Mars program, a series of unmanned Mars landers and orbiters launched by the Soviet Union in the early 1970's. The Mars 2 and Mars 3 missions consisted of identical spacecraft, each with an orbiter and an attached lander. They were launched by a Proton-K heavy launch vehicle with a Blok D upper stage.\n\nObjectives:\n\n1. Design an unmanned rocket with an orbiter and a lander to reach $mars\n2. Launch Mars 2\n3. Achieve orbit around $mars\n4. Impact the Surface of $mars\n\nSignificance: Mars 2 was the first man-made object to reach the surface of Mars.\n\nHistorical Launch Date: May 19, 1971
+
+ synopsis = Impact the surface of @targetBody with Mars 2
+ notes = Impact the surface of @targetBody with Mars 2
+
+ completedMessage = Congratulations on hitting $mars! Mars 2 was designed to soft land on Mars, but experienced malfunctions. The descent module separated from the orbiter on November 27, 1971 about 4.5 hours before reaching Mars. After entering the atmosphere at approximately 6 km/s, the descent system on the module malfunctioned, possibly because the angle of entry was too steep. The descent sequence did not operate as planned and the parachute did not deploy. The descent module became the first man-made object to impact the surface of Mars. The exact crash site is unknown, but it is estimated to be at 45°S 313°W. Attempts to contact the probe after the crash were unsuccessful.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = $mars
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-14
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Impact the surface of @targetBody
+ define = Mars-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitMars
+ type = ReachState
+ situation = ORBITING
+ title = Orbit @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Impact
+ type = Any
+ title = Impact @targetBody
+ hideChildren = true
+
+ PARAMETER
+ {
+ name = DieLow
+ type = All
+ PARAMETER
+ {
+ name = GetLow
+ type = Any
+ hidden = true
+
+ PARAMETER
+ {
+ name = MarsLow
+ type = ReachState
+ targetBody = $mars
+ maxAltitude = 10000 // get close
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = ReachMarsSurface
+ type = ReachState
+ targetBody = $mars
+ maxTerrainAltitude = 50
+ hidden = true
+ }
+ }
+ PARAMETER
+ {
+ name = VesselDieLow
+ type = VesselDestroyed
+ mustImpactTerrain = false // Maaaaybe set to true? But bugs. FIXME.'
+ hidden = true
+ }
+ }
+ PARAMETER
+ {
+ name = ReachMarsSurface
+ type = ReachState
+ maxTerrainAltitude = 10
+ // in case probe survives
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = MarsImpact
+ type = All
+ hidden = true
+
+ PARAMETER
+ {
+ name = MarsSOI
+ type = ReachState
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HitTerrain
+ type = VesselDestroyed
+ mustImpactTerrain = true
+ hidden = true
+ }
+ }
+ }
+ }
+}
+
+// Mars 3
+
+CONTRACT_TYPE
+{
+ name = Mars-3
+ group = MarsExploration
+
+ title = Mars 3
+ agent = USSR
+
+ description = Mars 3 was an unmanned space probe of the Soviet Mars program which spanned the years between 1960 and 1973. Mars 3 was launched May 28, 1971, nine days after its twin spacecraft Mars 2. The probes were identical robotic spacecraft, each consisting of an orbiter and an attached lander. After Mars 2 crash-landed on the martian surface, Mars 3 lander became the first spacecraft to attain soft landing on Mars. Both probes were launched by Proton-K rockets with Blok D upper stages.\n\nObjectives:\n\n1. Design an unmanned rocket with an orbiter and a lander to reach $mars\n2. Launch Mars 3\n3. Achieve orbit around $mars\n4. Land on the Surface of $mars\n\nSignificance: Mars 3 was the first spacecraft to achieve a soft landing on another planet.\n\nHistorical Launch Date: May 28, 1971
+
+ synopsis = Orbit $mars and safely put a lander on the surface
+ notes = Orbit $mars and safely put a lander on the surface
+
+ completedMessage = Congratulations on landing on $mars! The Mars 3 mission consisted of a bus/orbiter module and an attached descent/lander module. The primary scientific objectives of the Mars 3 orbiter were to image the martian surface and clouds, determine the temperature on Mars, study the topography, composition and physical properties of the surface, measure properties of the atmosphere, monitor solar radiation, the solar wind and the interplanetary and martian magnetic fields, and act as a communications relay to send signals from the lander to Earth.\n\nThe lander successfully landed, but contact was lost 14 seconds later and no science data was returned from the mission.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = $mars
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 10000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-14
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Land on the surface of @targetBody
+ define = Mars-3
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitMars
+ type = ReachState
+ situation = ORBITING
+ title = Orbit @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnMars
+ type = ReachState
+ targetBody = $mars
+ situation = LANDED
+ title = Land on @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Mariner 9
+
+CONTRACT_TYPE
+{
+ name = Mariner-9
+ group = MarsExploration
+
+ title = Mariner 9
+ agent = NASA
+
+ description = Mariner 9 was an unmanned NASA space probe that contributed greatly to the exploration of Mars and was part of the Mariner program. Mariner 9 was launched toward Mars on May 30, 1971 from Cape Canaveral Air Force Station and reached the planet on November 14 of the same year, becoming the first spacecraft to orbit another planet – only narrowly beating the Soviets' Mars 2 and Mars 3, which both arrived within a month. After months of dust storms it managed to send back clear pictures of the surface.\n\nObjectives:\n\n1. Design an unmanned spacecraft with an antenna\n2. Launch Mariner 9\n3. Orbit around @targetBody\n4. Transmit Science from the Space around @targetBody\n\nSignificance: Mariner 9 was the first spacecraft to orbit Mars narrowly beating Mars 2 and Mars 3 that were launched by the Soviets weeks before.\n\nHistorical Launch Date: May 30, 1971
+
+ synopsis = Orbit Mariner 9 around @targetBody and transmit science data
+ notes = Orbit Mariner 9 around @targetBody and transmit science data
+
+ completedMessage = Congratulations! When Mariner 9 arrived at Mars on November 14, 1971, planetary scientists were surprised to find the atmosphere was thick with "a planet-wide robe of dust, the largest storm ever observed." The surface was totally obscured. Mariner 9's computer was thus reprogrammed from Earth to delay imaging of the surface for a couple of months until the dust settled. The main surface imaging did not get underway until mid-January 1972. However, surface-obscured images did contribute to the collection of Mars science, including understanding of the existence of several huge high-altitude volcanoes of the Tharsis Bulge that gradually became visible as the dust storm abated.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = $mars
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-14
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Orbit around @targetBody
+ define = Mariner-9
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitMars
+ type = Orbit
+ targetBody = $mars
+ situation = ORBITING
+ maxPeA = 1500000
+ title = Orbit @targetBody with a Periapsis lower than 1,500 km
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = $mars
+ recoveryMethod = Transmit
+ title = Transmit Science from space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Viking 1
+
+CONTRACT_TYPE
+{
+ name = Viking-1
+ group = MarsExploration
+
+ title = Viking 1
+ agent = NASA
+
+ description = The Viking project consisted of launches of two separate spacecraft to Mars, Viking 1, launched on 20 August 1975, and Viking 2, launched on 9 September 1975. Each spacecraft consisted of an orbiter and a lander. After orbiting Mars and returning images used for landing site selection, the orbiter and lander detached and the lander entered the martian atmosphere and soft-landed at the selected site. The orbiters continued imaging and other scientific operations from orbit while the landers deployed instruments on the surface.\n\nObjectives:\n\n1. Design an unmanned rocket with an orbiter and a lander to reach $mars\n2. Launch Mars 3\n3. Achieve orbit around $mars\n4. Land on the Surface of $mars\n5. Transmit Science Data from the Surface of $mars\n\nSignificance: Viking 1 returned the first images from the surface of Mars and was also the first to analyze the soil on Mars.\n\nHistorical Launch Date: August 20, 1975
+
+ synopsis = Orbit $mars and safely put a lander on it's surface
+ notes = Orbit $mars and safely put a lander on it's surface
+
+ completedMessage = Congratulations on landing on $mars! Following launch and a 10 month cruise to Mars, the orbiter began returning global images of Mars about 5 days before orbit insertion. The Viking 1 Orbiter was inserted into Mars orbit on 19 June 1976 and trimmed to a 1513 x 33,000 km, 24.66 hr site certification orbit on 21 June. Imaging of candidate sites was begun and the landing site was selected based on these pictures. The lander separated from the orbiter on 20 July 08:51 UT and landed at Chryse Planitia at 11:56:06 UT. The orbiter primary mission ended at the beginning of solar conjunction on 5 November 1976. The extended mission commenced on 14 December 1976 after solar conjunction. Operations included close approaches to Phobos in February 1977. The periapsis was reduced to 300 km on 11 March 1977. Minor orbit adjustments were done occasionally over the course of the mission, primarily to change the walk rate - the rate at which the planetocentric longitude changed with each orbit, and the periapsis was raised to 357 km on 20 July 1979. On 7 August 1980 Viking 1 Orbiter was running low on attitude control gas and its orbit was raised from 357 x 33943 km to 320 x 56000 km to prevent impact with Mars and possible contamination until the year 2019. Operations were terminated on 17 August 1980 after 1485 orbits.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = $mars
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 15000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-Soyuz
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Land on the surface of @targetBody
+ define = Viking-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitMars
+ type = ReachState
+ situation = ORBITING
+ title = Orbit @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnMars
+ type = ReachState
+ targetBody = $mars
+ situation = LANDED
+ title = Land on @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = $mars
+ situation = SrfLanded
+ recoveryMethod = Transmit
+ title = Transmit Science from the surface of @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Phobos 2
+
+CONTRACT_TYPE
+{
+ name = Phobos-2
+ group = MarsExploration
+
+ title = Phobos 2
+ agent = USSR
+
+ description = Phobos 2 was a Russian space probe designed to explore Mars's moons Phobos and Deimos. It was launched on July 12, 1988, and entered orbit on January 29, 1989.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna\n2. Launch Phobos 2\n3. Orbit $mars\n4. Flyby @targetBody\n5. Transmit Science Data from Space around @targetBody\n\nSignificance: Phobos 2 was the first spacecraft to send back detailed images of Mars' moon Phobos.\n\nHistorical Launch Date: July 12, 1988
+
+ synopsis = Fly by @targetBody
+ notes = Fly by @targetBody
+
+ completedMessage = Congratulations on the successful flyby! Phobos 2 operated nominally throughout its cruise and Mars orbital insertion phases on January 29, 1989, gathering data on the Sun, interplanetary medium, Mars, and Phobos. Phobos 2 investigated Mars surface and atmosphere and returned 37 images of Phobos with a resolution of up to 40 meters.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(3).Children().First()
+
+ // REWARDS
+ rewardScience = 1.5
+ rewardReputation = 5
+ rewardFunds = 12000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Phobos-2
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody
+ define = Phobos-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyPhobos
+ type = ReachState
+ disableOnStateChange = true
+ title = Flyby @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectPhobosScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science Data from Space near @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Pathfinder
+
+CONTRACT_TYPE
+{
+ name = Pathfinder
+ group = MarsExploration
+
+ title = Pathfinder
+ agent = NASA
+
+ description = Mars Pathfinder is an American robotic spacecraft that landed a base station with a roving probe on Mars in 1997. It consisted of a lander, renamed the Carl Sagan Memorial Station, and a lightweight wheeled robotic Mars rover named Sojourner, which became the first rover to operate outside the Earth-Moon system.\n\nObjectives:\n\n1. Design a rover to use on $mars\n2. Launch Pathfinder\n3. Land on the Surface of @targetBody near the waypoint\n4. Travel to both additional waypoints\n5. Transmit Science Data from the Surface of $mars\n\nSignificance: Pathfinder was the first rover on Mars and the first rover to operate somewhere other than the Moon.\n\nHistorical Launch Date: December 4, 1996
+
+ synopsis = Land your rover @targetBody travel to three waypoints and transmit science data
+ notes = Land your rover @targetBody travel to three waypoints and transmit science data
+
+ completedMessage = Congratulations on landing on $mars! The mission carried a series of scientific instruments to analyze the Martian atmosphere, climate, geology and the composition of its rocks and soil. It was the second project from NASA's Discovery Program, which promotes the use of low-cost spacecraft and frequent launches under the motto "cheaper, faster and better" promoted by the then administrator, Daniel Goldin.\n\nThis mission was the first of a series of missions to Mars that included rovers, and was the first successful lander since the two Vikings landed on the red planet in 1976. Although the Soviet Union successfully sent rovers to the Moon as part of the Lunokhod program in the 1970s, its attempts to use rovers in its Mars program failed.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = $mars
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 16
+ rewardFunds = 80000
+
+ advanceFunds = 40000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-61
+ }
+
+ PARAMETER
+ {
+ name = Pathfinder
+ type = VesselParameterGroup
+ title = Pathfinder
+ define = Pathfinder
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = WaypointAlpha
+ type = VisitWaypoint
+ index = 0
+ distance = 100.0
+ title = Land at Pathfinder Landing Site
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = WaypointBeta
+ type = VisitWaypoint
+ index = 1
+ distance = 100.0
+ title = Visit Sojourner Site Beta
+ showMessages = true
+ disableOnStateChange = true
+ rewardScience = 3
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = WaypointCharlie
+ type = VisitWaypoint
+ index = 2
+ distance = 100.0
+ title = Visit Sojourner Site Charlie
+ showMessages = true
+ disableOnStateChange = true
+ rewardScience = 3
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ situation = SrfLanded
+ recoveryMethod = Transmit
+ title = Transmit Science from the Surface of @targetBody
+ hideChildren = true
+ }
+ BEHAVIOUR
+ {
+ name = WaypointGenerator
+ type = WaypointGenerator
+
+ RANDOM_WAYPOINT
+ {
+ name = Pathfinder Landing Site
+ hidden = False
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ forceEquatorial = false
+ }
+
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Sojourner Beta
+ parameter = WaypointAlpha
+ hidden = false
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 1000.0
+ }
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Sojourner Charlie
+ parameter = WaypointBeta
+ hidden = false
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 1
+ minDistance = 500.0
+ maxDistance = 2000.0
+ }
+ }
+}
+
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/MoonExploration.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/MoonExploration.cfg
new file mode 100644
index 0000000..5f70c6e
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/MoonExploration.cfg
@@ -0,0 +1,932 @@
+// Moon, Mun or Minmus Missions
+// Mun is x 2
+// Minmus is x 2.5
+// Moon in RSS is x 3
+// Moon in Half RSS is x 2.5
+
+// Luna 1
+
+CONTRACT_TYPE
+{
+ BEHAVIOUR
+ {
+ type = Expression
+ CONTRACT_OFFERED
+ {
+ type = CelestialBody
+ theMoon = HomeWorld().Children().First()
+ }
+ }
+
+ name = Luna-1
+ group = MoonExploration
+
+ title = Luna 1
+ agent = USSR
+
+ notes = Launch Luna 1 into a flyby of @targetBody
+ synopsis = Launch Luna 1 into a flyby of @targetBody
+
+ description = Luna 1, also known as Mechta was the first spacecraft to reach the vicinity of the Earth's Moon, and the first spacecraft to be placed in heliocentric orbit. Intended as an impactor, Luna 1 was launched as part of the Luna programme in 1959, however due to an incorrectly timed upper stage burn during its launch, it missed the Moon; in the process becoming the first spacecraft to leave geocentric orbit.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Luna 1\n3. Flyby $theMoon\n4. Escape the SOI of $ourHome and Reach Orbit around the Sun\n\nSignificance: While only a partial success, Luna 1 was the first probe launched to achieve a flyby of the Moon and to reach heliocentric orbit around the Sun.\n\nHistorical Launch Date: January 2, 1959
+
+ completedMessage = Mission Success, well sort of! Luna 1 was the first space probe to flyby the Moon and to escape Earth's gravity to orbit the Sun. Due to an incorrectly timed upper stage burn during its launch, it missed the Moon; in the process becoming the first spacecraft to leave geocentric orbit.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = $theMoon
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 8
+ rewardFunds = 24000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Vanguard-1
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of $theMoon and receive data.
+ define = Luna-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = ESCAPING
+ disableOnStateChange = true
+ title = Flyby $theMoon
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = EscapeEarth
+ type = ReachState
+ targetBody = HomeWorld()
+ situation = ESCAPING
+ completeInSequence = true
+ title = Escape to a Solar Orbit
+ hideChildren = true
+ }
+ }
+}
+
+// Luna 2
+
+CONTRACT_TYPE
+{
+ name = Luna-2
+ group = MoonExploration
+
+ title = Luna 2
+ agent = USSR
+
+ synopsis = Impact the surface of @targetBody with Luna 2
+ notes = Impact the surface of @targetBody with Luna 2
+
+ description = Luna 2 or Lunik 2 was the second of the Soviet Union's Luna programme spacecraft launched to the Moon. It was the first spacecraft to reach the surface of the Moon, and the first man-made object to land on another celestial body. On September 14, 1959, it successfully impacted east of Mare Imbrium near the craters Aristides, Archimedes, and Autolycus.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Luna 2\n3. Impact the Surface of @targetBody\n\nSignificance: Luna 2 was the first man-made object to reach the surface of the Moon.\n\nHistorical Launch Date: September 12, 1959
+
+ completedMessage = Congratulations on hitting $theMoon! After launch and attainment of escape velocity on 12 September 1959, Luna 2 separated from its third stage, which travelled along with it towards the Moon. On 13 September the spacecraft released a bright orange cloud of sodium gas which aided in spacecraft tracking and acted as an experiment on the behavior of gas in space. On 14 September, after 33.5 hours of flight, radio signals from Luna 2 abruptly ceased, indicating it had impacted on the Moon. The impact point, in the Palus Putredinus region, is roughly estimated to have occurred at 0 degrees longitude, 29.1 degrees N latitude. Some 30 minutes after Luna 2, the third stage of its rocket also impacted the Moon at an unknown location. The mission confirmed that the Moon had no appreciable magnetic field, and found no evidence of radiation belts at the Moon.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 8
+ rewardFunds = 15000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Luna-1
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Impact the surface of @targetBody
+ define = Luna-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Impact
+ type = Any
+ title = Impact @targetBody
+ hideChildren = true
+
+ PARAMETER
+ {
+ name = DieLow
+ type = All
+ PARAMETER
+ {
+ name = GetLow
+ type = Any
+
+ PARAMETER
+ {
+ name = MoonLow
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ maxAltitude = 10000 // get close
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = ReachMoonSurface
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ maxTerrainAltitude = 50
+ hidden = true
+ }
+ }
+ PARAMETER
+ {
+ name = VesselDieLow
+ type = VesselDestroyed
+ mustImpactTerrain = false // Maaaaybe set to true? But bugs. FIXME.
+ hidden = true
+ }
+ }
+ PARAMETER
+ {
+ name = ReachMoonSurface
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ maxTerrainAltitude = 10 // in case probe survives
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = MoonImpact
+ type = All
+ hidden = true
+
+ PARAMETER
+ {
+ name = MoonSOI
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HitTerrain
+ type = VesselDestroyed
+ mustImpactTerrain = true
+ hidden = true
+ }
+ }
+ }
+ }
+}
+
+// Luna 3
+CONTRACT_TYPE
+{
+ name = Luna-3
+ group = MoonExploration
+
+ title = Luna 3
+ agent = USSR
+
+ synopsis = Launch Luna 3 into a free-return trajectory of @targetBody and return Science
+ notes = Launch Luna 3 into a free-return trajectory of @targetBody and return Science
+
+ description = Luna 3 was a Soviet spacecraft launched in 1959 as part of the Luna programme. It was the first-ever mission to photograph the far side of the Moon. It was also the third space probe to be sent to the neighborhood of the Moon. Though it returned rather poor pictures by later standards, the historic, never-before-seen views of the far side of the Moon caused excitement and interest when they were published around the world, and a tentative Atlas of the Far Side of the Moon was created after image processing improved the pictures.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Luna 3\n3. Flyby @targetBody\n4. BONUS: Do not orbit @targetBody, but create a Free-Return Trajectory (Due to the limits of the KSP contact system, this must be a player enforced objective. A free-return trajectory aims for an encounter with the moon that passes in front of the moon's orbit. The resulting gravity will slow the probe down to circle fully around the moon and return it to an orbit with the Earth with very minimal burn corrections.)\n\nSignificance: Luna 3 provided the first images of the far side of the Moon and was also the first ship to use a free-return trajectory with the Moon.\n\nHistorical Launch Date: October 4, 1959
+
+ completedMessage = Congratulations! Hopefully you were able to use a proper free-return trajectory and now we can see some wonderful pictures of the far side of @targetBody.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 6
+ rewardReputation = 5
+ rewardFunds = 15000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Luna-2
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Return from HomeWorld().Children().First().
+ define = Luna-3
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = EncounterMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = ESCAPING
+ maxAltitude = 600000
+ disableOnStateChange = true
+ title = Encounter @targetBody within 600 km but do not Orbit
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ location = Space
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = ReachOrbit
+ type = ReachState
+ targetBody = HomeWorld()
+ situation = ORBITING
+ completeInSequence = true
+ title = Return to Orbit around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Luna 9
+
+CONTRACT_TYPE
+{
+ name = Luna-9
+ group = MoonExploration
+
+ title = Luna 9
+ agent = USSR
+
+ synopsis = Land Luna 9 on @targetBody and transmit science data
+ notes = Land Luna 9 on @targetBody and transmit science data
+
+ description = Luna 9 was an unmanned space mission of the Soviet Union's Luna programme. On 3 February 1966 the Luna 9 spacecraft became the first spacecraft to achieve a soft landing on the Moon, or any planetary body other than Earth, and to transmit photographic data to Earth from the surface of another planetary body.\n\nObjectives:\n\n1. Design an unmanned spacecraft with an antenna\n2. Launch Luna 9\n3. Land on the @targetBody\n4. Transmit Science from the Surface of @targetBody\n\nSignificance: Luna 9 was the first spacecraft to land on the Moon and return images from its surface\n\nHistorical Launch Date: January 31, 1966
+
+ completedMessage = Congratulations! Luna 9 was the first spacecraft to achieve a lunar soft landing and to transmit photographic data from the Moon's surface to Earth, preceding the U.S. Surveyor 1 soft lander by about 4 months. The probe also proved that the lunar surface could support the weight of a lander and that an object would not sink into a loose layer of dust as some models predicted.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 8
+ rewardReputation = 15
+ rewardFunds = 50000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Gemini-6
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Soft Landing on @targetBody
+ define = Luna-9
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = LANDED
+ disableOnStateChange = true
+ title = Land on @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ situation = SrfLanded
+ recoveryMethod = Transmit
+ title = Transmit Science from the surface of @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Luna 10
+
+CONTRACT_TYPE
+{
+ name = Luna-10
+ group = MoonExploration
+
+ title = Luna 10
+ agent = USSR
+
+ synopsis = Orbit Luna 10 around @targetBody and transmit science data
+ notes = Orbit Luna 10 around @targetBody and transmit science data
+
+ description = Luna 10 was the first spacecraft to go into orbit around the Moon, and the first human-made object to orbit any body beyond the Earth.\n\nObjectives:\n\n1. Design an unmanned spacecraft with an antenna\n2. Launch Luna 10\n3. Orbit around @targetBody\n4. Transmit Science from the Space around @targetBody\n\nSignificance: Luna 10 was the first spacecraft to go into orbit around the Moon, and the first human-made object to orbit any body beyond the Earth.\n\nHistorical Launch Date: March 31, 1966
+
+ completedMessage = Congratulations! Luna 10 was the first spacecraft to go into orbit around the Moon, and the first human-made object to orbit any body beyond the Earth. The primary objectives were to achieve the first lunar orbit, gain experience in orbital operations, presumably as a precursor to astronaut orbital missions, and study the lunar environment. The launch was timed so that the spacecraft would come around on its first orbit just as the Twenty-third Congress of the Communist Party of the Soviet Union was convening for its morning session.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 0
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Gemini-8
+ }
+
+ PARAMETER
+ {
+ name = Luna-10
+ type = VesselParameterGroup
+ title = Orbit around @targetBody
+ define = Luna-10
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitMoon
+ type = Orbit
+ targetBody = HomeWorld().Children().First()
+ situation = ORBITING
+ maxPeA = 5000000
+ title = Enter Orbit around @targetBody with a Periapsis below 5,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ recoveryMethod = Transmit
+ title = Transmit Science from space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Zond 5
+
+CONTRACT_TYPE
+{
+ name = Zond-5
+ group = MoonExploration
+
+ title = Zond 5
+ agent = USSR
+
+ synopsis = Orbit Zond 5 around @targetBody and return home with science data
+ notes = Orbit Zond 5 around @targetBody and return home with science data
+
+ description = Zond 5, a formal member of the Soviet Zond program and unmanned version of Soyuz 7K-L1 manned Moon-flyby spacecraft, was launched by a Proton-K carrier rocket with a Blok D upper stage to conduct scientific studies during a lunar flyby and to return to Earth.\n\nObjectives:\n\n1. Design an unmanned spacecraft with an antenna\n2. Launch Zond 5\n3. Orbit around @targetBody\n4. Gather Science from the Space around @targetBody and DO NOT TRANSMIT\n5. Return home and Land Safely with Science data\n\nSignificance: Zond 5 was the first spacecraft to orbit around the Moon and to return safely to Earth.\n\nHistorical Launch Date: September 15, 1968
+
+ completedMessage = Congratulations! On September 18, 1968, the spacecraft flew around the Moon. The closest distance was 1,950 km. High quality photographs of the Earth were taken at a distance of 90,000 km. A biological payload of turtles, wine flies, meal worms, plants, seeds, bacteria, and other living matter was included in the flight. Additionally, according to the Russian Academy of Sciences, in the pilot's seat was a 175 cm tall, 70 kg mannequin containing radiation detectors.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 0
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Kosmos
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Orbit around @targetBody
+ define = Zond-5
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MoonOrbit
+ type = Orbit
+ targetBody = HomeWorld().Children().First()
+ situation = ORBITING
+ maxPeA = 1750000
+ title = Orbit @targetBody with a Periapsis lower than 1,750 km
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ recoveryMethod = Recover
+ title = Gather Science from space around @targetBody and Return it home, DO NOT TRANSMIT
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely with the Science
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Luna 16
+
+CONTRACT_TYPE
+{
+ name = Luna-16
+ group = MoonExploration
+
+ title = Luna 16
+ agent = USSR
+
+ synopsis = Land your unmanned ship on @targetBody and return the science
+ notes = Land your unmanned ship on @targetBody and return the science
+
+ description = Luna 16 was the first robotic probe to land on the Moon and return a sample to Earth and represented the first lunar sample return mission by the Soviet Union and the third overall, following the Apollo 11 and 12 missions.\n\nObjectives:\n\n1. Design an unmanned spacecraft with an antenna\n2. Launch Luna 16\n3. Land on @targetBody\n4. Gather Scientific Data from the surface of @targetBody DO NOT TRANSMIT\n5. Return Home and Survive Reentry\n\nSignificance: Luna 16 was the first unmanned and automated lander that returned to Earth with samples from the lunar surface.\n\nHistorical Launch Date: September 12, 1970
+
+ completedMessage = Successful Mission! While we have already landed kerbals on @targetBody, the engineering and design of an unmanned ship that can return samples home is impressive! The spacecraft consisted of two attached stages, an ascent stage mounted on top of a descent stage. The descent stage was a cylindrical body with four protruding landing legs, fuel tanks, a landing radar, and a dual descent engine complex. A main descent engine was used to slow the craft until it reached a cutoff point which was determined by the onboard computer based on altitude and velocity. After cutoff a bank of lower thrust jets was used for the final landing. The descent stage also acted as a launch pad for the ascent stage. The ascent stage was a smaller cylinder with a rounded top. It carried a cylindrical hermetically sealed soil sample container inside a re-entry capsule. The spacecraft descent stage was equipped with a television camera, radiation and temperature monitors, telecommunications equipment, and an extendable arm with a drilling rig for the collection of a lunar soil sample.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 10
+ rewardFunds = 15000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Soyuz-9
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Luna 16
+ define = Luna-16
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnMoon
+ type = ReachState
+ targetBody = HomeWorld().Children().First()
+ situation = LANDED
+ title = Land on @targetBody
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely with the Science
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ situation = SrfLanded
+ recoveryMethod = Recover
+ title = Gather Science from space around @targetBody and Return it home, DO NOT TRANSMIT
+ }
+}
+
+// Lunokhod 1
+
+CONTRACT_TYPE
+{
+ name = Lunokhod-1
+ group = MoonExploration
+
+ title = Lunokhod 1
+ agent = USSR
+
+ synopsis = Land your rover @targetBody travel to three waypoints and transmit the science data
+ notes = Land your rover @targetBody travel to three waypoints and transmit the science data
+
+ description = Lunokhod 1 was the first of two unmanned lunar rovers landed on the Moon by the Soviet Union as part of its Lunokhod program. The Luna 17 spacecraft carried Lunokhod 1 to the Moon in 1970. Lunokhod 1 was the first remote-controlled robot "rover" to freely move across the surface of an astronomical object beyond the Earth. \n\nObjectives:\n\n1. Design a rover for @targetBody\n2. Launch Luna 17 with Lunokhod 1\n3. Land on @targetBody near the waypoint\n4. Visit the three waypoints\n5. Transmit the science data back home\n\nSignificance: Lunokhod 1 was the first remote controlled rover on another planetary body in our Solar System.\n\nHistorical Launch Date: November 10, 1970
+
+ completedMessage = Successful Mission! Controllers finished the last communications session with Lunokhod 1 at 13:05 UT on September 14, 1971. Attempts to re-establish contact were finally discontinued and the operations of Lunokhod 1 officially ceased on October 4, 1971, the anniversary of Sputnik 1. During its 322 Earth days of operations, Lunokhod travelled 10,540 meters and returned more than 20,000 TV images and 206 high-resolution panoramas. In addition, it performed 25 lunar soil analyses with its RIFMA x-ray fluorescence spectrometer and used its penetrometer at 500 different locations.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Children().First()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 10
+ rewardFunds = 20000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Luna-16
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Lunokhod 1
+ define = Lunokhod-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = WaypointAlpha
+ type = VisitWaypoint
+ index = 0
+ distance = 100.0
+ title = Land at Site Alpha
+ showMessages = true
+ disableOnStateChange = true
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = WaypointBeta
+ type = VisitWaypoint
+ index = 1
+ distance = 100.0
+ title = Visit Site Beta
+ showMessages = true
+ disableOnStateChange = true
+ rewardScience = 20
+ hideChildren = true
+ }
+
+ PARAMETER
+ {
+ name = WaypointCharlie
+ type = VisitWaypoint
+ index = 2
+ distance = 100.0
+ title = Visit Site Charlie
+ showMessages = true
+ disableOnStateChange = true
+ rewardScience = 20
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Children().First()
+ situation = SrfLanded
+ recoveryMethod = Transmit
+ title = Transmit Science from the Surface of @targetBody
+ hideChildren = true
+ }
+ BEHAVIOUR
+ {
+ name = WaypointGenerator
+ type = WaypointGenerator
+
+ RANDOM_WAYPOINT
+ {
+ name = Lunokhod-1 Alpha
+ hidden = False
+ targetBody = HomeWorld().Children().First()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ forceEquatorial = false
+ }
+
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Lunokhod-1 Beta
+ parameter = WaypointAlpha
+ hidden = false
+ targetBody = HomeWorld().Children().First()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 0
+ minDistance = 500.0
+ maxDistance = 2000.0
+ }
+ RANDOM_WAYPOINT_NEAR
+ {
+ name = Lunokhod-1 Charlie
+ parameter = WaypointBeta
+ hidden = false
+ targetBody = HomeWorld().Children().First()
+ count = 1
+ icon = marker
+ altitude = 0.0
+ waterAllowed = false
+ nearIndex = 1
+ minDistance = 500.0
+ maxDistance = 2000.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/Observatories.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/Observatories.cfg
new file mode 100644
index 0000000..6b91d0b
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/Observatories.cfg
@@ -0,0 +1,663 @@
+// OSO-1
+
+CONTRACT_TYPE
+{
+ name = OSO-1
+ group = Observatories
+
+ title = OSO-1
+ agent = NASA
+
+ description = The Orbiting Solar Observatory (abbreviated OSO) Program was the name of a series of eight American science satellites primarily intended to study the Sun, though they also included important non-solar experiments. Eight were launched successfully by NASA between 1962 and 1975 using Delta rockets. Their primary mission was to observe an 11-year sun spot cycle in UV and X-ray spectra.\n\nObjectives:\n\n1. Design an unmanned Solar Observatory Satellite\n2. Launch OSO-1\n3. Reach Orbit with a minimum Periapsis of 500 km and a maximum Apoapsis of 600 km\n4. Return Science Data from Space around @targetBody\n\nSignificance: OSO-1 was the first Solar Observation Satellite\n\nHistorical Launch Date: March 7, 1962
+
+ synopsis = Place a solar observatory satellite in @targetBody orbit and record data
+ notes = Place a solar observatory satellite in @targetBody orbit and record data
+
+ completedMessage = Successful Mission! Our sensors are receiving data from the craft. Scientists are now poring over the data. The Orbiting Solar Observatory set of missions observed solar flares and measured x-ray radiation and gamma rays.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 30
+ rewardReputation = 5
+ rewardFunds = 5000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Vostok-2
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place a spacecraft in orbit to study the Sun and receive data.
+ define = OSO-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 500000
+ disableOnStateChange = true
+ title = Orbit Around @targetBody with a minimum Periapsis of 500 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// OAO-2
+
+CONTRACT_TYPE
+{
+ name = OAO-2
+ group = Observatories
+
+ title = OAO-2
+ agent = NASA
+
+ description = The Orbiting Astronomical Observatory 2 (OAO-2, nicknamed Stargazer) was a space observatory launched on December 7, 1968. An Atlas-Centaur rocket launched it into a nearly circular 750 kilometres (470 mi) altitude Earth orbit. Data was collected in ultraviolet on many sources including comets, planets, and galaxies.\n\nObjectives:\n\n1. Design an unmanned Observatory Satellite\n2. Launch OAO-2\n3. Reach Orbit with a minimum Periapsis of @targetBody.AtmosphereAltitude()*5 and Eccentricity less than 0.01\n4. Return Science Data from Space around @targetBody\n\nSignificance: OAO-2 was the first Ultraviolet Telescope in space\n\nHistorical Launch Date: December 7, 1968
+
+ synopsis = Place an ultraviolet telescope satellite in @targetBody orbit and record data
+ notes = Place an ultraviolet telescope satellite in @targetBody orbit and record data
+
+ completedMessage = Successful Mission! This spacecraft was one of a series of automated astronomical observatories that was ground controllable in orientation and was placed in a low-earth orbit. This spacecraft carried two experiment packages, which were located centrally within the spacecraft, each viewing space from opposite ends. One experiment, the Wisconsin experiment package (WEP), consisted of four stellar photometers (1000 to 4250 A), two scanning spectrometers (1000 to 4000 A), and one nebular photometer. The other package, Celescope, consisted of four independent telescopic Schwarzchild cameras.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 40
+ rewardReputation = 5
+ rewardFunds = 5000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Zond-5
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place an unltraviolet telescope into orbit around @targetBody
+ define = OAO-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 700000
+ disableOnStateChange = true
+ title = Orbit Around @targetBody with a minimum Periapsis of 700 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// IRAS
+
+CONTRACT_TYPE
+{
+ name = IRAS
+ group = Observatories
+
+ title = IRAS
+ agent = NASA
+
+ description = The Infrared Astronomical Satellite (IRAS) was the first-ever space-based observatory to perform a survey of the entire sky at infrared wavelengths. Launched on January 25, 1983, its mission lasted ten months. The telescope was a joint project of the United States (NASA), the Netherlands (NIVR), and the United Kingdom (SERC). Over 250,000 infrared sources were observed at 12, 25, 60, and 100 micrometer wavelengths.\n\nObjectives:\n\n1. Design an unmanned Telescope\n2. Launch IRAS\n3. Reach Orbit with a minimum Periapsis of 800 km and and an Inclination of more than 80 degrees\n4. Return Science Data from Space around @targetBody\n\nSignificance: IRAS was the first space telescope to use infrared.\n\nHistorical Launch Date: January 25, 1983
+
+ synopsis = Place an infrared telescope satellite in @targetBody orbit and record data
+ notes = Place an infrared telescope satellite in @targetBody orbit and record data
+
+ completedMessage = Successful Mission! IRAS was the first observatory to perform an all-sky survey at infrared wavelengths. It mapped 96% of the sky four times, at 12, 25, 60 and 100 micrometres wavelengths, with resolutions ranging from 30 arcseconds at wavelength 12 micrometers to 2 arcminutes at wavelength 100 micrometers. It discovered about 350,000 sources, many of which are still awaiting identification. About 75,000 of those are believed to be starburst galaxies, still enduring their star-formation stage. Many other sources are normal stars with disks of dust around them, possibly the early stage of a planetary system formation. New discoveries included a dust disk around Vega and the first images of the Milky Way Galaxy's core.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 50
+ rewardReputation = 5
+ rewardFunds = 5000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-5
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place an infrared telescope into orbit around @targetBody
+ define = IRAS
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 800000
+ minInclination = 80
+ disableOnStateChange = true
+ title = Orbit Around @targetBody with a minimum Periapsis of 800 km and an Inclination of more than 80 degrees
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Hipparcos
+
+CONTRACT_TYPE
+{
+ name = Hipparcos
+ group = Observatories
+
+ title = Hipparcos
+ agent = ESA
+
+ description = Hipparcos was a scientific satellite of the European Space Agency, launched in 1989 and operated until 1993. It was the first space experiment devoted to precision astrometry, the accurate measurement of the positions of celestial objects on the sky. This permitted the accurate determination of proper motions and parallaxes of stars, allowing a determination of their distance and tangential velocity.\n\nObjectives:\n\n1. Design an unmanned astrometric observatory\n2. Launch Hipparcos\n3. Reach the highly elliptical Orbit\n4. Return Science Data from Space around @targetBody\n\nSignificance: Hipparcos was the first space telescope designed for astrometric observation.\n\nHistorical Launch Date: August 15, 1993
+
+ synopsis = Place an astrometric observatory satellite in @targetBody orbit and record data
+ notes = Place an astrometric observatory satellite in @targetBody orbit and record data
+
+ completedMessage = Successful Mission! The Hipparcos satellite was launched on an Ariane 4 launch vehicle, flight V33, from Kourou, French Guiana, on 8 August 1989. Launched into a geostationary transfer orbit, the Mage-2 apogee boost motor failed to fire, and the intended geostationary orbit was never achieved. However, with the addition of further ground stations, in addition to the primary ground station at Odenwald in Germany, the satellite was successfully operated in its geostationary transfer orbit for almost 3.5 years. All of the original mission goals were, eventually, exceeded.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 50
+ rewardReputation = 5
+ rewardFunds = 5000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Phobos-2
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place Hipparcos into orbit around @targetBody
+ define = Hipparcos
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HipparcosOrbit
+ type = Orbit
+ minPeA = 250000
+ minEccentricity = 0.6
+ maxEccentricity = 0.75
+ title = Enter a highly elliptical orbit with a Periapsis above 250 km and an Eccentricity between 0.6 and 0.75 degrees
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// COBE
+
+CONTRACT_TYPE
+{
+ name = COBE
+ group = Observatories
+
+ title = Cosmic Background Explorer (COBE)
+ agent = NASA
+
+ description = The Cosmic Background Explorer (COBE), also referred to as Explorer 66, was a satellite dedicated to cosmology. Its goals were to investigate the cosmic microwave background radiation (CMB) of the universe and provide measurements that would help shape our understanding of the cosmos.\n\nObjectives:\n\n1. Design an unmanned spacecraft\n2. Launch COBE\n3. Reach Orbit with a minimum Periapsis of 800 km and and an Inclination of more than 80 degrees\n4. Return Science Data from Space around @targetBody\n\nSignificance: COBE was the first orbital Cosmic Microwave Observatory.\n\nHistorical Launch Date: November 18, 1989
+
+ synopsis = Place Cosmic Microwave Observatory satellite in @targetBody orbit and record data
+ notes = Place Cosmic Microwave Observatory satellite in @targetBody orbit and record data
+
+ completedMessage = Successful Mission! This work provided evidence that supported the Big Bang theory of the universe: that the CMB was a near-perfect black-body spectrum and that it had very faint anisotropies. Two of COBE's principal investigators, George Smoot and John Mather, received the Nobel Prize in Physics in 2006 for their work on the project. According to the Nobel Prize committee, "the COBE-project can also be regarded as the starting point for cosmology as a precision science".
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 50
+ rewardReputation = 5
+ rewardFunds = 5000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Hipparcos
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Place an infrared telescope into orbit around @targetBody
+ define = Hipparcos
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 800000
+ minInclination = 80
+ disableOnStateChange = true
+ title = Orbit Around @targetBody with a minimum Periapsis of 800 km and an Inclination of more than 80 degrees
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Hubble & STS-31
+
+CONTRACT_TYPE
+{
+ name = Hubble
+ group = Observatories
+
+ title = Hubble Space Telescope
+ agent = NASA
+
+ description = The Hubble Space Telescope (HST) is a space telescope that was launched into low Earth orbit in 1990, and remains in operation. Although not the first space telescope, Hubble is one of the largest and most versatile, and is well known as both a vital research tool and a public relations boon for astronomy. The HST is named after the astronomer Edwin Hubble. Hubble was launched on Space Shuttle Discovery, STS-31 with a crew of 5 astronauts.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Design the Hubble Space Telescope\n3. Crew of 5\n4. Hubble on Board\n5. Launch STS-31\n6. Reach Orbit and Deploy Hubble\n7. Deorbit Space Shuttle\n8. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: The Hubble Space Telescope was the first Optical Orbital Telescope.\n\nHistorical Launch Date: April 24, 1990
+
+ synopsis = Place the Hubble Telescope in Orbit around @targetBody
+ notes = Place the Hubble Telescope in Orbit around @targetBody
+
+ completedMessage = Successful Mission! The Hubble Space Telescope was successfully deployed, however once pictures started to come back from it, there was severe issues found. Within weeks of the launch of the telescope, the returned images indicated a serious problem with the optical system. Although the first images appeared to be sharper than those of ground-based telescopes, Hubble failed to achieve a final sharp focus and the best image quality obtained was drastically lower than expected. The mirrors would need to be corrected or the telescope would be relatively useless. Time to launch a repair mission.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 1
+ rewardFunds = 5000
+
+ advanceFunds = 50000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = COBE
+ }
+
+ PARAMETER
+ {
+ name = STS-31
+ type = VesselParameterGroup
+ title = STS-31
+ define = STS-31
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 5
+ maxCrew = 5
+ title = Have 5 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS31Orbit
+ type = Orbit
+ minPeA = 590000
+ maxApA = 610000
+ maxEccentricity = 0.01
+ title = Reach Orbit and Deploy Hubble
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// HALCA
+
+CONTRACT_TYPE
+{
+ name = HALCA
+ group = Observatories
+
+ title = HALCA
+ agent = JAXA
+
+ description = HALCA (Highly Advanced Laboratory for Communications and Astronomy), also known for its project name VSOP (VLBI Space Observatory Programme), is a Japanese radio telescope satellite which was used for Very Long Baseline Interferometry (VLBI). It was the first such space-borne dedicated VLBI mission.\n\nObjectives:\n\n1. Design an unmanned spacecraft\n2. Launch HALCA\n3. Reach Orbit with a minimum Periapsis of 500 km and and an Eccentricity of more than 0.57\n4. Return Science Data from Space around @targetBody\n\nSignificance: HALCA was the first orbital radio telescope used for Very Long Baseline Interferometry.\n\nHistorical Launch Date: February 12, 1997
+
+ synopsis = Place HALCA satellite in @targetBody orbit and record data
+ notes = Place HALCA satellite in @targetBody orbit and record data
+
+ completedMessage = Successful Mission! HALCA was launched in February 1997 from Kagoshima Space Center, and made its final VSOP observations in October 2003, far exceeding its 3-year predicted lifespan, before the loss of attitude control. All operations were officially ended in November 2005.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 50
+ rewardReputation = 5
+ rewardFunds = 5000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = NEAR-Shoemaker
+ }
+
+ PARAMETER
+ {
+ name = HALCA
+ type = VesselParameterGroup
+ title = Place an radio telescope into orbit around @targetBody
+ define = HALCA
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 500000
+ minEccentricity = 0.57
+ disableOnStateChange = true
+ title = Orbit Around @targetBody with a minimum Periapsis of 500 km and an Eccentricity of more than 0.57
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/OptionalMissions/MirOptional.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/OptionalMissions/MirOptional.cfg
new file mode 100644
index 0000000..278c719
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/OptionalMissions/MirOptional.cfg
@@ -0,0 +1,105 @@
+// Mir Kvant 2
+
+CONTRACT_TYPE
+{
+ name = Mir-Kvant-2
+ group = MirOptional
+
+ title = OPTIONAL - Mir: Kvant 2
+ agent = USSR
+
+ description = Kvant-2 was the third module and second major addition to the Mir space station. Its primary purpose was to deliver new science experiments, better life support systems, and an airlock to Mir. It was launched on November 26, 1989 on a Proton rocket.\n\nObjectives:\n\n1. Design the Kvant Module for Mir\n2. Include a Materials Bay and at least 2 Solar Panels\n3. Launch Kvant 2\n4. Rendezvous Kvant 2 with Mir and Dock\n\n Significance:\n Kvant 2 was the second module to be attached to the Mir Space Station\n\nHistorical Launch Date: November 26, 1989
+
+ synopsis = Launch the Kvant 2 module and dock with Mir
+ notes = Launch the Kvant 2 module and dock with Mir
+
+ completedMessage = Congratulations! Scientific equipment on Kvant-2 included a high-resolution camera, spectrometers, X-ray sensors, the Volna 2 fluid flow experiment, and the Inkubator-2 unit which was used for hatching and raising quail.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = true
+ declinable = true
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 15
+ rewardFunds = 30000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Mir-Kvant-1
+ }
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Kvant-2
+ type = VesselParameterGroup
+ title = Launch Kvant 2
+ define = Kvant-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MaterialsBay
+ type = PartValidation
+ part = science_module
+ minCount = 1
+ title = Have at least 1 Materials Bay on Board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SolarPanels
+ type = PartValidation
+ partModule = ModuleDeployableSolarPanel
+ title = Have at least 2 Solar Panels
+ minCount = 2
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithMir
+ type = Docking
+ vessel = Mir
+ title = Dock with Mir
+ hideChildren = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/ProjectGemini.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/ProjectGemini.cfg
new file mode 100644
index 0000000..0646bb6
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/ProjectGemini.cfg
@@ -0,0 +1,387 @@
+// Gemini 5
+
+CONTRACT_TYPE
+{
+ name = Gemini-5
+ group = ProjectGemini
+
+ title = Gemini 5
+ agent = NASA
+
+ description = Gemini 5, carrying astronauts Gordon Cooper and Charles "Pete" Conrad was the third crewed Earth-orbiting spacecraft of the Gemini series. The flight was designed to last eight days and test rendezvous procedures.\n\nObjectives:\n\n1. Design a Manned Orbiter\n2. Crew of 2\n3. Launch Gemini 5\n4. Reach Proper Orbit and maintain for 8 Days\n5. Deorbit\n6. Survive Reentry and land or splashdown\n\nSignificance: Gemini 5 was the first mission to keep humans in space for eight days\n\nHistorical Launch Date: August 21, 1965
+
+ synopsis = Send two kerbals to orbit for 8 days and return home safely
+ notes = Send two kerbals to orbit for 8 days and return home safely
+
+ completedMessage = Congratulations! Eight days was an important landmark as that is the time that it would take to launch a mission to the Moon, land and return to Earth. The major objectives of this mission were to demonstrate a long-duration crewed flight, evaluate the effects of long periods of weightlessness on the crew, and test rendezvous capabilities and maneuvers using a rendezvous evaluation pod. Secondary objectives included demonstration of all phases of guidance and control systems to support rendezvous and controlled reentry guidance, to evaluate the fuel cell power system and rendezvous radar, to test the capability of either pilot to maneuver the spacecraft in orbit to close proximity with another object, and to conduct 17 experiments.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 12
+ rewardFunds = 50000
+
+ advanceFunds = 30000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Voskhod-2
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ eightDays = @dayLength * 8
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Gemini 5
+ define = Gemini-5
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Gemini5Orbit
+ type = Orbit
+ minPeA = @targetBody.AtmosphereAltitude()
+ title = Orbit @targetBody for 8 days
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Gemini5Duration
+ type = Duration
+ duration = @/eightDays
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting for 8 days
+ completionText = Orbits Complete! You may fire retros when ready
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// Gemini 7 & Gemini 6A
+
+CONTRACT_TYPE
+{
+ name = Gemini-6
+ group = ProjectGemini
+
+ title = Gemini 7 & Gemini 6A
+ agent = NASA
+
+ notes = Launch the Gemini 7 Spacecraft and Orbit for 14 days while also being the passive target for Gemini 6A Rendezvous
+ synopsis = Launch the Gemini 7 Spacecraft and Orbit for 14 days while also being the passive target for Gemini 6A Rendezvous
+
+ description = Gemini 7 was the fourth crewed Earth-orbiting spacecraft of the Gemini series, having been launched before Gemini 6A. It carried astronauts Frank Borman and Jim Lovell on the 14 day mission.\m\nGemini 6A was the fifth crewed Earth-orbiting spacecraft of the Gemini series, having been launched after Gemini 7, with the intent of making rendezvous with Gemini 7 in Earth orbit. The astronauts on the 26 hour mission were Walter Schirra and Thomas Stafford.\n\nObjectives:\n\n1. Design a Manned Orbiter\n2. Crew of 2\n3. Launch Gemini 7\n4. Reach Proper Orbit\n5. Act as Target Vehicle for Gemini 6A\n6. Launch Gemini 6A\n7. Rendezvous with Gemini 7\n8. Deorbit Gemini 6, Survive Reentry and land or splashdown\n9. Finish 14 day mission of Gemini 7\n10. Deorbit Gemini 7, Survive Reentry and land or splashdown\n\nSignificance: Gemini 7 was the first mission to keep humans in space for 14 days and Gemini 6A was the first time two spacecraft rendezvoused in space.\n\nHistorical Launch Date: December 4, 1965 and December 15, 1965
+
+ completedMessage = Mission Success! The crew of Frank F. Borman, II and James A. Lovell, Jr spent nearly 14 days in space, making a total of 206 orbits. Their spacecraft was the passive target for the first manned space rendezvous performed by the crew of Gemini 6A. Its mission priorities were (1) to demonstrate a 2-week flight, (2) to perform stationkeeping with the Gemini launch vehicle stage 2, (3) to evaluate the 'shirt sleeve' environment and the lightweight pressure suit, (4) to act as a rendezvous target for Gemini 6, and (5) to demonstrate controlled reentry close to the target landing point. The crew members had three scientific, four technological, four spacecraft, and eight medical experiments to perform.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 50000
+
+ advanceFunds = 100000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Gemini-5
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ fourteenDays = @dayLength * 14
+ }
+
+ PARAMETER
+ {
+ name = Gemini-7
+ type = VesselParameterGroup
+ define = Gemini-7
+ title = Gemini 7
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Gemini7Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and stay in orbit for 14 days
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Gemini7Duration
+ type = Duration
+ duration = @/fourteenDays
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting for 14 days
+ completionText = Orbits Complete! You may fire retros when ready
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = Gemini-6
+ type = VesselParameterGroup
+ define = Gemini-6
+ title = Gemini 6
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = Rendezvous
+ type = Rendezvous
+ vessel = Gemini-6
+ vessel = Gemini-7
+ distance = 100
+ title = Rendezvous Gemini 6A with Gemini 7
+ hideChildren = true
+ }
+}
+
+// Gemini 8
+
+CONTRACT_TYPE
+{
+ name = Gemini-8
+ group = ProjectGemini
+
+ title = Gemini 8
+ agent = NASA
+
+ description = Gemini 8 was the sixth crewed Earth-orbiting spacecraft of the Gemini series, carrying astronauts Neil Armstrong and David Scott. The primary mission objectives were to perform rendezvous and four docking tests with the Agena target vehicle and to execute an ExtraVehicular Activity (EVA) experiment.\n\nObjectives:\n\n1. Design an Agena Target Vehicle with a Docking Port\n2. Launch the Agena Target Vehicle and place into Orbit\n3. Design a Manned Orbiter for 2 Crew with a Docking Port\n4. Launch Gemini 8\n5. Dock with the Agena Targeting Vehicle\n6. Undock and Deorbit\n7. Survive Reentry and land or splashdown\n\nSignificance: Gemini 8 was the first time humans achieved a hard dock with another spacecraft.\n\nHistorical Launch Date: March 16, 1966
+
+ synopsis = Send the unmanned Agena Targeting Vehicle to orbit and dock Gemini 8 to it
+ notes = Send the unmanned Agena Targeting Vehicle to orbit and dock Gemini 8 to it
+
+ completedMessage = Mission Success! Gemini 8 achieved the primary goal of docking with the Agena Target Vehicle Other objectives included parking the Agena in a 410 km circular orbit, performing a rerendezvous with the Agena, conduct systems evaluation, evaluating the auxiliary tape memory unit, and demonstration of controlled reentry. Ten technological, medical, and scientific experiments were carried on board.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+
+ // REWARDS
+ rewardScience = 8
+ rewardReputation = 20
+ rewardFunds = 56000
+
+ advanceFunds = 32000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Gemini-6
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Agena Target Vehicle
+ define = Agena
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = @targetBody.AtmosphereAltitude() + 50000
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = Gemini 8
+ define = Gemini-8
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithAgena
+ type = Docking
+ vessel = Agena
+ title = Dock to the Agena Target Vehicle
+ }
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/ShuttleMissions.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/ShuttleMissions.cfg
new file mode 100644
index 0000000..5d663d8
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/ShuttleMissions.cfg
@@ -0,0 +1,959 @@
+// STS-1
+
+CONTRACT_TYPE
+{
+ name = STS-1
+ group = ShuttleMissions
+
+ title = STS-1
+ agent = NASA Space Transportation System
+
+ description = STS-1 (Space Transportation System-1) was the first orbital spaceflight of NASA's Space Shuttle program. The first orbiter, Columbia, launched on 12 April 1981 and returned on 14 April, 54.5 hours later, having orbited the Earth 37 times. Columbia carried a crew of two – mission commander John W. Young and pilot Robert L. Crippen. It was the first American manned space flight since the Apollo-Soyuz Test Project in 1975. STS-1 was also the only maiden test flight of a new US spacecraft to carry a crew, though it was preceded by atmospheric testing of the orbiter and ground testing of the space shuttle system.\n\nObjectives:\n\n1. Design a Reuseable Manned Orbiter\n2. Crew of 2\n3. Launch STS-1\n4. Reach Orbit and sustain for 2 days\n5. Deorbit\n6. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: STS-1 was the first time that the Space Shuttle was used as a reusable crewed spacecraft.\n\nHistorical Launch Date: April 12, 1981
+
+ synopsis = Design your Space Shuttle and send 2 Kerbals to orbit for 2 Days
+ notes = Design your Space Shuttle and send 2 Kerbals to orbit for 2 Days
+
+ completedMessage = Congratulations, it is not easy to create a resueable spacecraft! The first launch of the Space Shuttle occurred on April 12, 1981, exactly 20 years after the first manned space flight, when the orbiter Columbia, with two crew members, astronauts John W. Young, commander, and Robert L. Crippen, pilot, lifted off from Pad A, Launch Complex 39, at the Kennedy Space Center. The launch took place at 7 a.m. EST.\n\nNot only was this the first launch of the Space Shuttle, but it marked the first time that solid-fuel rockets were used for a NASA manned launch. STS-1 was also the first U.S. manned space vehicle launched without an unmanned powered test flight.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 30
+ rewardFunds = 20000
+
+ advanceFunds = 100000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Helios
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ twoDays = @dayLength * 2
+ }
+
+ PARAMETER
+ {
+ name = VesselGroup
+ type = VesselParameterGroup
+ title = STS-1
+ define = STS-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS1Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and stay in orbit for 2 days
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS1OrbitDuration
+ type = Duration
+ duration = @/twoDays
+ preWaitText = Waiting to reach orbit
+ waitingText = Orbiting for 2 days
+ completionText = Orbits Complete! You may return home when ready
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 5
+ rewardFunds = 25000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// STS-5
+
+CONTRACT_TYPE
+{
+ name = STS-5
+ group = ShuttleMissions
+
+ title = STS-5
+ agent = NASA Space Transportation System
+
+ description = STS-5 was the fifth NASA Space Shuttle mission and the fifth flight of the Space Shuttle Columbia. Columbia launched on schedule from Kennedy Space Center (KSC) at 7:19 am EST, November 11, 1982. The shuttle carried a crew of four – the largest spacecraft crew up to that time – and the first two commercial communications satellites to be flown aboard a shuttle.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Crew of 4\n3. 2 Satellites on Board\n4. Launch STS-5\n5. Reach Orbit and Deploy both Communications Satellites to their proper orbits\n6. Deorbit\n7. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: STS-5 was the first time that the Space Shuttle was used to launch satellites and the crew of 4 was the largest for any spacecraft at the time.\n\nHistorical Launch Date: November 11, 1982
+
+ synopsis = Use your Space Shuttle to bring 4 crew and 2 satellites into orbit
+ notes = Use your Space Shuttle to bring 4 crew and 2 satellites into orbit
+
+ completedMessage = Congratulations, this was the first operational mission using your Space Shuttle! The commercial satellites were deployed successfully and subsequently propelled into their operational geosynchronous orbits by McDonnell Douglas PAM-D kickmotors. The two satellites were SBS 3, owned by Satellite Business Systems, and Anik C3, owned by Telesat Canada; both were Hughes-built HS-376-series satellites. In addition, STS-5 carried a West German-sponsored microgravity GAS experiment canister in the payload bay. The crew also conducted three student-designed experiments during the flight.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 5
+ rewardFunds = 20000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-1
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ highEnd = @dayLength + 120
+ lowEnd = @dayLength - 120
+ }
+
+ PARAMETER
+ {
+ name = STS-5
+ type = VesselParameterGroup
+ title = STS-5
+ define = STS-5
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 4
+ maxCrew = 4
+ title = Have 4 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS5Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and Deploy your Satellites
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = SBS-3
+ type = VesselParameterGroup
+
+ define = SBS-3
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = Anik C3
+ }
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = STS-5
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxEccentricity = 0.1
+ minPeriod = @/lowEnd
+ maxPeriod = @/highEnd
+ rewardScience = 2.0
+ rewardFunds = 50000
+ }
+ }
+ PARAMETER
+ {
+ name = Anik-C3
+ type = VesselParameterGroup
+
+ define = Anik C3
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = SBS-3
+ }
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = STS-5
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxEccentricity = 0.1
+ minPeriod = @/lowEnd
+ maxPeriod = @/highEnd
+ rewardScience = 2.0
+ rewardFunds = 50000
+ }
+ }
+}
+
+// STS-7
+
+CONTRACT_TYPE
+{
+ name = STS-7
+ group = ShuttleMissions
+
+ title = STS-7
+ agent = NASA Space Transportation System
+
+ description = STS-7 was NASA's seventh Space Shuttle mission, and the second mission for the Space Shuttle Challenger. During the mission, Challenger deployed several satellites into orbit. The shuttle launched from Kennedy Space Center on June 18, 1983, and landed at Edwards Air Force Base on June 24. STS-7 was notable for carrying Sally Ride, America's first female astronaut.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Crew of 5\n3. 2 Satellites on Board\n4. Launch STS-7\n5. Reach Orbit and Deploy both Communications Satellites to their proper orbits\n6. Deorbit\n7. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: STS-7 was the first time that an American woman, Sally Ride, went into space as well as having the largest crew to fly in a single spacecraft with 5 crewmembers on board.\n\nHistorical Launch Date: June 18, 1983
+
+ synopsis = Use your Space Shuttle to bring 5 crew and 2 satellites into orbit
+ notes = Use your Space Shuttle to bring 5 crew and 2 satellites into orbit
+
+ completedMessage = Congratulations, another successful mission using your Space Shuttle! STS-7 began on June 18, 1983, with an on-time liftoff at 7:33 am EDT. It was the first spaceflight of an American woman (Sally K. Ride), the largest crew to fly in a single spacecraft up to that time (five people), and the first flight that included members of NASA's Group 8 astronaut class, which had been selected in 1978 to fly the Space Shuttle.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 5
+ rewardFunds = 20000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = IRAS
+ }
+
+ DATA
+ {
+ type = double
+
+ dayLength = @targetBody.RotationalPeriod()
+ highEnd = @dayLength + 120
+ lowEnd = @dayLength - 120
+ }
+
+ PARAMETER
+ {
+ name = STS-7
+ type = VesselParameterGroup
+ title = STS-7
+ define = STS-7
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 5
+ maxCrew = 5
+ title = Have 5 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS7Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and Deploy your Satellites
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = Palapa-B1
+ type = VesselParameterGroup
+
+ define = Palapa B1
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = Anik C2
+ }
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = STS-7
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxEccentricity = 0.1
+ minPeriod = @/lowEnd
+ maxPeriod = @/highEnd
+ rewardScience = 2.0
+ rewardFunds = 50000
+ }
+ }
+ PARAMETER
+ {
+ name = Anik-C2
+ type = VesselParameterGroup
+
+ define = Anik C2
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = Palapa B1
+ }
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = STS-7
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ maxEccentricity = 0.1
+ minPeriod = @/lowEnd
+ maxPeriod = @/highEnd
+ rewardScience = 2.0
+ rewardFunds = 50000
+ }
+ }
+}
+
+// STS-9
+
+CONTRACT_TYPE
+{
+ name = STS-9
+ group = ShuttleMissions
+
+ title = STS-9
+ agent = NASA Space Transportation System
+
+ description = STS-9 (also referred to as Spacelab 1) was the ninth NASA Space Shuttle mission and the sixth mission of the Space Shuttle Columbia. Launched on November 28, 1983, the ten-day mission carried the first Spacelab laboratory module into orbit, and was Columbia's last flight until STS-61-C in January 1986.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Crew of 6 with at least 1 Scientist\n3. Materials Bay on Board\n4. Launch STS-9\n5. Reach Orbit and Perform Materials Bay Science\n6. Deorbit\n7. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: STS-9 launched with the largest crew to fly in a single spacecraft with 6 people on board. It was also the first time the Spacelab was used in the Shuttle.\n\nHistorical Launch Date: November 28, 1983
+
+ synopsis = Use your Space Shuttle to bring 6 crew into Orbit
+ notes = Use your Space Shuttle to bring 6 crew into Orbit
+
+ completedMessage = Congratulations, another successful mission using your Space Shuttle! The Spacelab 1 mission was highly successful, proving the feasibility of the concept of carrying out complex experiments in space using non-NASA persons trained as payload specialists in collaboration with a POCC.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 10
+ rewardReputation = 5
+ rewardFunds = 20000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-7
+ }
+
+ PARAMETER
+ {
+ name = STS-9
+ type = VesselParameterGroup
+ title = STS-9
+ define = STS-9
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 6
+ maxCrew = 6
+ title = Have 6 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasScientist
+ type = HasAstronaut
+ trait = Scientist
+ minCount = 1
+ title = Have at least 1 Scientist on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MaterialsBay
+ type = PartValidation
+ part = science_module
+ minCount = 1
+ title = Have at least 1 Materials Bay on Board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS9Orbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ experiment = mobileMaterialsLab
+ recoveryMethod = Recover
+ title = Collect Materials Bay Science and Return it Home
+ hideChildren = true
+ }
+}
+
+// STS-41B
+
+CONTRACT_TYPE
+{
+ name = STS-41B
+ group = ShuttleMissions
+
+ title = STS-41B
+ agent = NASA Space Transportation System
+
+ description = STS-41B was the tenth NASA Space Shuttle mission and the fourth flight of the Space Shuttle Challenger. It launched on February 3, 1984, and landed on February 11 after deploying two communications satellites. It was also notable for including the first untethered spacewalk. Following STS-9, the flight numbering system for the Space Shuttle program was changed. Thus, the next flight, instead of being designated STS-11, became STS-41B; the original successor to STS-9, STS-10, was cancelled due to payload delays.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Crew of 5\n3. 2 Satellites on Board\n4. Launch STS-41B\n5. Reach Orbit and Deploy both Communications Satellites\n6. Perform an EVA\n7. Deorbit\n8. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: STS-41B was the first time that an astronaut performed an EVA without a tether attached to the ship.\n\nHistorical Launch Date: February 3, 1984
+
+ synopsis = Use your Space Shuttle to bring 5 crew and 2 satellites into orbit. Perform an untethered EVA.
+ notes = Use your Space Shuttle to bring 5 crew and 2 satellites into orbit. Perform an untethered EVA.
+
+ completedMessage = Congratulations, another successful mission using your Space Shuttle! Challenger lifted off from Kennedy Space Center at 8 am EST on February 3, 1984. Two communications satellites were deployed about 8 hours after launch; one, Westar 6, was for America's Western Union, and the other, Palapa B2, for Indonesia. However, the Payload Assist Modules (PAM) for both satellites malfunctioned, placing them into a lower-than-planned orbit. Both satellites were retrieved successfully in November 1984 during STS-51-A, which was conducted by the orbiter Discovery.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 5
+ rewardFunds = 20000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-9
+ }
+
+ PARAMETER
+ {
+ name = STS-41B
+ type = VesselParameterGroup
+ title = STS-41B
+ define = STS-41B
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 5
+ maxCrew = 5
+ title = Have 5 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS41BOrbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and Deploy your Satellites
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = UntetheredEVA
+ type = VesselIsType
+ vesselType = EVA
+ title = Perform an EVA, use your Jetpack to move around in space before coming back inside
+ hideChildren = true
+ PARAMETER
+ {
+ name = NotClose
+ type = Not
+ title = Travel at least 100 meters away from the ship
+ completeInSequence = true
+ PARAMETER
+ {
+ name = AntiRendezvous
+ type = Rendezvous
+ distance = 100
+ }
+ }
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
+
+// STS-41G
+
+CONTRACT_TYPE
+{
+ name = STS-41G
+ group = ShuttleMissions
+
+ title = STS-41G
+ agent = NASA Space Transportation System
+
+ description = STS-41-G was the 13th flight of NASA's Space Shuttle program and the sixth flight of Space Shuttle Challenger. Challenger launched on October 5, 1984, and conducted the second shuttle landing at Kennedy Space Center on October 13th. It was the first shuttle mission to carry a crew of seven, including the first crew with two women (Sally Ride and Kathryn Sullivan), the first American EVA involving a woman (Sullivan), the first Australian-born person to journey into space and the first astronaut with a beard (Paul Scully-Power) and the first Canadian astronaut (Marc Garneau).\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Crew of 7\n3. 1 Satellite on Board\n4. Launch STS-41G\n5. Reach Orbit and Deploy the Communications Satellites to the proper orbit\n6. Deorbit\n7. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: STS-41G had a number of firsts including the most crew, 7, on board a single spacecraft at one time.\n\nHistorical Launch Date: October 5, 1984
+
+ synopsis = Use your Space Shuttle to bring 7 crew and 1 satellite into orbit
+ notes = Use your Space Shuttle to bring 7 crew and 1 satellite into orbit
+
+ completedMessage = Congratulations, another successful mission using your Space Shuttle! Nine hours after liftoff, the 5,087 pounds (2,307 kg) Earth Radiation Budget Satellite (ERBS) was deployed from the payload bay by the RMS robot arm, and its on-board thrusters boosted it into orbit 350 miles (560 km) above the Earth. ERBS was the first of three planned satellites designed to measure the amount of energy received from the Sun and reradiated into space. It also studied the seasonal movement of energy from the tropics to the polar regions.\n\nAnother major mission activity was the operation of the Shuttle Imaging Radar-B (SIR-B). The SIR-B was part of the OSTA-3 experiment package in the payload bay, which also included the Large Format Camera (LFC) to photograph the Earth, another camera called MAPS which measured air pollution, and a feature identification and location experiment called FILE, which consisted of two TV cameras and two 70 mm still cameras.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 1
+ rewardReputation = 5
+ rewardFunds = 20000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-41B
+ }
+
+ PARAMETER
+ {
+ name = STS-41G
+ type = VesselParameterGroup
+ title = STS-41G
+ define = STS-41G
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 7
+ maxCrew = 7
+ title = Have 7 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS41GOrbit
+ type = Orbit
+ minAltitude = @targetBody.AtmosphereAltitude()
+ title = Reach Orbit and Deploy your Satellite
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = ERBS
+ type = VesselParameterGroup
+
+ define = ERBS
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = IsNotVessel
+ type = IsNotVessel
+
+ vessel = STS-41G
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 550000
+ rewardScience = 10.0
+ title = Put ERBS into an orbit with a Minimum Periapsis of 500 km
+ hideChildren = true
+ }
+ }
+}
+
+// STS-61
+
+CONTRACT_TYPE
+{
+ name = STS-61
+ group = ShuttleMissions
+
+ title = STS-61
+ agent = NASA Space Transportation System
+
+ description = STS-61 was the first Hubble Space Telescope servicing mission, and the fifth flight of the Space Shuttle Endeavour. The mission launched on 2 December 1993 from Kennedy Space Center in Florida. The mission restored the spaceborne observatory's vision, marred by spherical aberration, with the installation of a new main camera and a corrective optics package. This correction occurred more than three and a half years after the Hubble was launched aboard STS-31 in April 1990.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Crew of 7\n3. Launch STS-61\n5. Reach Orbit and Rendezvous with Hubble\n6. Repair Hubble for 7 Days\n7. Deorbit\n8. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n\nSignificance: STS-61 was the mission that repaired the faulty mirrors on Hubble and was the highest the Space Shuttle ever travelled.\n\nHistorical Launch Date: December 2, 1993
+
+ synopsis = Use your Space Shuttle to bring 7 crew to service Hubble
+ notes = Use your Space Shuttle to bring 7 crew to service Hubble
+
+ completedMessage = Congratulations, you have fixed the Hubble Telescope! Hubble has helped resolve some long-standing problems in astronomy, as well as raising new questions. Some results have required new theories to explain them. Among its primary mission targets was to measure distances to Cepheid variable stars more accurately than ever before, and thus constrain the value of the Hubble constant, the measure of the rate at which the universe is expanding, which is also related to its age. Before the launch of HST, estimates of the Hubble constant typically had errors of up to 50%, but Hubble measurements of Cepheid variables in the Virgo Cluster and other distant galaxy clusters provided a measured value with an accuracy of ±10%, which is consistent with other more accurate measurements made since Hubble's launch using other techniques. The estimated age is now about 13.7 billion years, but before the Hubble Telescope scientists predicted an age ranging from 10 to 20 billion years.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 100
+ rewardReputation = 30
+ rewardFunds = 100000
+
+ advanceFunds = 10000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Hubble
+ }
+
+ PARAMETER
+ {
+ name = STS-61
+ type = VesselParameterGroup
+ title = STS-61
+ define = STS-61
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 7
+ maxCrew = 7
+ title = Have 7 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = RendezvousHubble
+ type = Rendezvous
+ vessel = Hubble
+ distance = 10
+ disableOnStateChange = true
+ hideChildren = true
+ title = Rendezvous with Hubble and Repair for 7 Days
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 7d
+ preWaitText = Rendezvous with Hubble
+ waitingText = Repairing Hubble...
+ completionText = Repairs Completed! Return Home Safely
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/SpaceStations.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/SpaceStations.cfg
new file mode 100644
index 0000000..09ed99e
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/SpaceStations.cfg
@@ -0,0 +1,1659 @@
+// Salyut 1
+
+CONTRACT_TYPE
+{
+ name = Salyut-1
+ group = SpaceStations
+
+ title = Salyut 1
+ agent = USSR
+
+ description = Salyut 1 (DOS-1) was the first space station of any kind, launched by the Soviet Union on April 19, 1971. More stations followed in the Salyut program, and heritage of that space station program is still in use on the ISS.\n\nSalyut 1 originated as a modification of the military Almaz space station program then in development. After the landing of Apollo 11 on the Moon in July 1969, the Soviets began shifting the primary emphasis of their manned space program to orbiting space stations. One other motivation for the space station program was a desire to one-up the US Skylab program then in development. \n\nObjectives:\n\n1. Design the first Space Station\n2. Include the following components:\n *Crew Space for 3\n *Docking Port\n *4 Solar Panels\n *Science Lab\n3. Launch Salyut 1\n4. Reach Orbit\n5. Launch Soyuz 11 with 3 Crew\n6. Rendezvous Soyuz 11 with Salyut 1 and Dock\n7. 3 Kerbals must survive on Salyut 1 for 22 days\n8. Return Kerbals safely to @targetBody\n\n Significance:\n Salyut 1 was the first designed Space Station and the Soyuz 11 crew set new duration records staying on the station for 22 days.\n\nHistorical Launch Date: April 19, 1971
+
+ synopsis = Launch the Salyut Space Station into Orbit and launch first crew
+ notes = Launch the Salyut Space Station into Orbit and launch first crew
+
+ completedMessage = Congratulations! You have placed the first Space Station into orbit. Salyut 1 was moved to a higher orbit in July–August 1971 to ensure that it would not be destroyed prematurely through orbital decay. The end of the mission ended tragically when after departing Salyut 1, Soyuz 11 appeared to reenter normally, but it was found that all three of the crew had died. In honor of Alexi Leonov, Valeri Kubasov, and Pyotr Kolodin, we ask you to return this crew safely to @targetBody.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 8
+ rewardReputation = 20
+ rewardFunds = 54000
+
+ advanceFunds = 30000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-14
+ }
+
+ PARAMETER
+ {
+ name = Salyut-1Launch
+ type = VesselParameterGroup
+ title = Launch Salyut 1 and place it in Orbit
+ define = Salyut-1
+ defineList = spaceStationsHome
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasCapacity
+ type = HasCrewCapacity
+ minCapacity = 3
+ title = Space for 3 crew
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SolarPanels
+ type = PartValidation
+ partModule = ModuleDeployableSolarPanel
+ title = Have at least 4 Solar Panels
+ minCount = 4
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ScienceLab
+ type = PartValidation
+ title = Have a Science Lab on board
+ hideChildren = true
+ partModule = ModuleScienceLab
+ }
+ PARAMETER
+ {
+ name = Salyut1Orbit
+ type = Orbit
+ minPeA = 200000
+ title = Orbit with a minimum Periapsis of 200 km
+ hideChildren = true
+ }
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Soyuz-11
+ type = VesselParameterGroup
+ title = Launch Soyuz 11 and bring 3 crew to the station.
+ define = Soyuz-11
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithStation
+ type = Docking
+ vessel = Salyut-1
+ title = Dock withSalyut 1
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnSalyut
+ type = VesselParameterGroup
+ title = Keep your crew on Salyut 1 for 22 Days
+ vessel = Salyut-1
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 200000
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 22d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Soyuz11CrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = Soyuz-11
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
+
+// Skylab
+
+CONTRACT_TYPE
+{
+ name = Skylab
+ group = SpaceStations
+
+ title = Skylab
+ agent = NASA
+
+ description = Skylab was a space station launched and operated by NASA and was the United States' first space station. Skylab orbited Earth from 1973 to 1979, and included a workshop, a solar observatory, and other systems. It was launched unmanned by a modified Saturn V rocket, with a weight of 170,000 pounds (77,111 kg), the last launch of a Saturn V rocket.\n\nObjectives:\n\n1. Design the first American Space Station\n2. Include the following components:\n *Crew Space for 3\n *At least 2 Docking Ports\n *At least 4 Solar Panels\n *Science Lab\n3. Launch Skylab 1\n4. Reach Orbit\n5. Launch Skylab 2 with 3 Crew\n6. Rendezvous Skylab 2 with Skylab and Dock\n7. 3 Kerbals must survive on Skylab for 28 days\n8. Return Kerbals safely to @targetBody\n\n Significance:\n Skylab was the first American Space Station and the first manned mission set records with a 28 day spaceflight.\n\nHistorical Launch Date: May 14, 1972
+
+ synopsis = Launch the Skylab Space Station into Orbit and then send 3 Kerbals to live in the station for 28 days.
+ notes = Launch the Skylab Space Station into Orbit and then send 3 Kerbals to live in the station for 28 days.
+
+ completedMessage = Congratulations! You have placed the first American Space Station into orbit, and have set a new record with Skylab 2 of having a crew in space for 28 days. The crew of Skylab 2 needed to repair the damage caused to Skylab on the original launch and it was the first time that an in space repair was completed.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 8
+ rewardReputation = 20
+ rewardFunds = 54000
+
+ advanceFunds = 30000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-17
+ }
+
+ PARAMETER
+ {
+ name = Skylab
+ type = VesselParameterGroup
+ title = Launch Skylab and place it in orbit
+ define = Skylab
+ defineList = spaceStationsHome
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasCapacity
+ type = HasCrewCapacity
+ minCapacity = 3
+ title = Space for 3 crew
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 2
+ title = Have at least 2 Docking Ports
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SolarPanels
+ type = PartValidation
+ partModule = ModuleDeployableSolarPanel
+ title = Have at least 4 Solar Panels
+ minCount = 4
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ScienceLab
+ type = PartValidation
+ title = Have a Science Lab on board
+ hideChildren = true
+ partModule = ModuleScienceLab
+ }
+ PARAMETER
+ {
+ name = SkylabOrbit
+ type = Orbit
+ minPeA = 400000
+ title = Orbit with a minimum Periapsis of 400 km
+ hideChildren = true
+ }
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Skylab-2
+ type = VesselParameterGroup
+ title = Launch Skylab 2 and bring 3 crew to the station.
+ define = Skylab-2
+
+ completeInSequence = true
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithSkylab
+ type = Docking
+ vessel = Skylab
+ title = Dock with Skylab
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnSkylab
+ type = VesselParameterGroup
+ title = Keep your crew on Skylab for 28 Days
+ vessel = Skylab
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 400000
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 28d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Skylab2CrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = Skylab-2
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
+
+// Skylab 3
+
+CONTRACT_TYPE
+{
+ name = Skylab-3
+ group = SpaceStations
+
+ title = Skylab 3
+ agent = NASA
+
+ description = Skylab 3 was the second manned mission to the first American space station, Skylab. The mission began July 28, 1973, with the launch of three astronauts on the Saturn IB rocket, and lasted 59 days, 11 hours and 9 minutes. A total of 1,084.7 astronaut-utilization hours were tallied by the Skylab 3 crew performing scientific experiments in the areas of medical activities, solar observations, Earth resources, and other experiments.\n\nObjectives:\n\n1. Launch a spacecraft with 3 Kerbals to live on Skylab\n2. Dock with Skylab\n3. Kerbals must survive on Skylab for 56 days 1\n4. Return Kerbals safely to @targetBody\n\n Significance:\n Skylab 3 set new records with the crew living in space for more than 59 days.\n\nHistorical Launch Date: July 28, 1973
+
+ synopsis = Launch 3 Kerbals to live on Skylab for 56 days
+ notes = Launch 3 Kerbals to live on Skylab for 56 days
+
+ completedMessage = Congratulations! Skylab 3 continued a comprehensive medical research program that extended the data on human physiological adaptation and readaptation to space flight collected on the previous Skylab 2 mission. In addition, Skylab 3 extended the astronauts' stay in space from approximately one month to two months. Therefore, the effects of flight duration on physiological adaptation and readaptation could be examined.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 15
+ rewardFunds = 30000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Skylab
+ }
+
+ PARAMETER
+ {
+ name = Skylab-3
+ type = VesselParameterGroup
+ title = Launch Skylab 3 and bring 3 crew to the station.
+ define = Skylab-3
+
+ completeInSequence = true
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithSkylab
+ type = Docking
+ vessel = Skylab
+ title = Dock with Skylab
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnSkylab
+ type = VesselParameterGroup
+ title = Keep your crew on Skylab for 56 Days
+ vessel = Skylab
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 400000
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 56d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Skylab3CrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = Skylab-3
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
+
+// Skylab 4
+
+CONTRACT_TYPE
+{
+ name = Skylab-4
+ group = SpaceStations
+
+ title = Skylab 4
+ agent = NASA
+
+ description = Skylab 4 was the third and final manned Skylab mission. The mission started on November 16, 1973 with the launch of three astronauts on a Saturn IB rocket from the Kennedy Space Center, Florida and lasted 84 days, one hour and 16 minutes. A total of 6,051 astronaut-utilization hours were tallied by Skylab 4 astronauts performing scientific experiments in the areas of medical activities, solar observations, Earth resources, observation of the Comet Kohoutek and other experiments.\n\nObjectives:\n\n1. Launch a spacecraft with 3 Kerbals to live on Skylab\n2. Dock with Skylab\n3. Kerbals must survive on Skylab for 84 days 1\n4. Return Kerbals safely to @targetBody\n\n Significance:\n Skylab 4 set new records with the crew living in space for more than 84 days.\n\nHistorical Launch Date: November 16, 1973
+
+ synopsis = Launch 3 Kerbals to live on Skylab for 84 days
+ notes = Launch 3 Kerbals to live on Skylab for 84 days
+
+ completedMessage = Congratulations! Despite the early setbacks with the damage suffered during the inital launch, Skylab went on to help provide scientific advances through experiments conducted in the long duration flights./n/nSkylab's demise was an international media event, with merchandising of T-shirts and hats with bullseyes, wagering on the time and place of re-entry, and nightly news reports. In the hours before re-entry, ground controllers adjusted Skylab's orientation to try to minimize the risk of re-entry on a populated area. They aimed the station at a spot 810 miles (1,300 km) south southeast of Cape Town, South Africa, and re-entry began at approximately 16:37 UTC, July 11, 1979. The station did not burn up as fast as NASA expected. Due to a 4% calculation error, debris landed southeast of Perth, Western Australia, and was found between Esperance and Rawlinna, from 31° to 34°S and 122° to 126°E, about 130–150 km radius around Balladonia. Residents and an airline pilot saw dozens of colorful fireworks-like flares as large pieces broke up in the atmosphere.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 15
+ rewardFunds = 30000
+
+ advanceFunds = 20000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Skylab
+ }
+
+ PARAMETER
+ {
+ name = Skylab-4
+ type = VesselParameterGroup
+ title = Launch Skylab 4 and bring 3 crew to the station.
+ define = Skylab-4
+
+ completeInSequence = true
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithSkylab
+ type = Docking
+ vessel = Skylab
+ title = Dock with Skylab
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnSkylab
+ type = VesselParameterGroup
+ title = Keep your crew on Skylab for 84 Days
+ vessel = Skylab
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 400000
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 84d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Skylab4CrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = Skylab-4
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
+
+// Mir Core and Mir EO-1
+
+CONTRACT_TYPE
+{
+ name = Mir
+ group = SpaceStations
+
+ title = Mir
+ agent = USSR
+
+ description = Mir was a space station that operated in low Earth orbit from 1986 to 2001, run by the Soviet Union and later by Russia. Mir was the first modular space station and was assembled in orbit from 1986 to 1996. It had a greater mass than any previous spacecraft. At the time it was the largest artificial satellite in orbit, succeeded by the International Space Station after Mir's orbit decayed. The station served as a microgravity research laboratory in which crews conducted experiments in biology, human biology, physics, astronomy, meteorology and spacecraft systems with a goal of developing technologies required for permanent occupation of space.\n\nObjectives:\n\n1. Design the first modular Space Station\n2. Include the following components:\n *Crew Space for 2\n *At Least 7 Docking Ports\n *At least 2 Solar Panels\n *At least 5 Antennas\n *At least 1 Cupola\n3. Launch Mir\n4. Reach Orbit with a Periapsis of at least 300 km\n5. Launch Soyuz T-15 with 2 Crew\n6. Rendezvous with Mir and Dock\n7. 2 Kerbals must survive on Mir for 75 days\n8. Return Kerbals safely to @targetBody\n\n Significance:\n Mir was the first modular space station and the first intended for long-term habitation.\n\nHistorical Launch Date: February 20, 1986
+
+ synopsis = Launch the Mir Space Station into Orbit and Send Up the first Crew
+ notes = Launch the Mir Space Station into Orbit and Send Up the first Crew
+
+ completedMessage = Congratulations! Mir was the first continuously inhabited long-term research station in orbit and held the record for the longest continuous human presence in space at 3,644 days until 23 October 2010 when it was surpassed by the ISS. It holds the record for the longest single human spaceflight, with Valeri Polyakov spending 437 days and 18 hours on the station between 1994 and 1995. Mir was occupied for a total of twelve and a half years out of its fifteen-year lifespan, having the capacity to support a resident crew of three, or larger crews for short visits.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 12
+ rewardReputation = 40
+ rewardFunds = 160000
+
+ advanceFunds = 80000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = STS-41G
+ }
+
+ PARAMETER
+ {
+ name = Mir
+ type = VesselParameterGroup
+ title = Launch Mir and place it in orbit
+ define = Mir
+ defineList = spaceStationsHome
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasCapacity
+ type = HasCrewCapacity
+ minCapacity = 2
+ title = Space for 2 crew
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 7
+ title = Have at least 7 Docking Ports
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SolarPanels
+ type = PartValidation
+ partModule = ModuleDeployableSolarPanel
+ title = Have at least 2 Solar Panels
+ minCount = 2
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 5
+ title = Have at least 5 Antennas
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasCupola
+ type = PartValidation
+ part = cupola
+ minCount = 1
+ title = Have at least 1 Cupola
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MirOrbit
+ type = Orbit
+ minPeA = 300000
+ title = Orbit with a minimum Periapsis of 300 km
+ hideChildren = true
+ }
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Soyuz-T-15
+ type = VesselParameterGroup
+ title = Launch Soyuz T-15 and bring 2 crew to the station.
+ define = Soyuz-T-15
+
+ completeInSequence = true
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithMir
+ type = Docking
+ vessel = Mir
+ title = Dock with Mir
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnMir
+ type = VesselParameterGroup
+ title = Keep your crew on Mir for 75 Days
+ vessel = Mir
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 300000
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 75d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = SoyuzCrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = Soyuz-T-15
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
+
+// Mir Kvant 1
+
+CONTRACT_TYPE
+{
+ name = Mir-Kvant-1
+ group = SpaceStations
+
+ title = Mir: Kvant 1
+ agent = USSR
+
+ description = Kvant-1 was the first module to be attached in 1987 to the Mir Core Module, which formed the core of the Soviet space station Mir. It remained attached to Mir until the entire space station was deorbited in 2001.\n\nObjectives:\n\n1. Design the Kvant Module for Mir\n2. Include a Science Lab\n3. Launch Kvant 1\n4. Rendezvous Kvant 1 with Mir and Dock\n\n Significance:\n Kvant 1 was the first module to be attached to the Mir Space Station\n\nHistorical Launch Date: March 31, 1987
+
+ synopsis = Launch the Kvant 1 module and dock with Mir
+ notes = Launch the Kvant 1 module and dock with Mir
+
+ completedMessage = Congratulations! The Kvant-1 module contained scientific instruments for astrophysical observations and materials science experiments. It was used to conduct research into the physics of active galaxies, quasars and neutron stars and it was uniquely positioned for studies of the Supernova SN 1987A. Furthermore, it supported biotechnology experiments in anti-viral preparations and fractions. Some additions to Kvant-1 during its lifetime were solar arrays and the Sofora and Rapana girders.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 15
+ rewardFunds = 30000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Apollo-17
+ }
+
+ PARAMETER
+ {
+ name = Kvant-1
+ type = VesselParameterGroup
+ title = Launch Kvant 1
+ define = Kvant-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ScienceLab
+ type = PartValidation
+ title = Have a Science Lab on board
+ hideChildren = true
+ partModule = ModuleScienceLab
+ }
+ PARAMETER
+ {
+ name = DockWithMir
+ type = Docking
+ vessel = Mir
+ title = Dock with Mir
+ hideChildren = true
+ }
+ }
+}
+
+// Soyuz TM-4
+
+CONTRACT_TYPE
+{
+ name = Soyuz-TM-4
+ group = SpaceStations
+
+ title = Soyuz TM-4
+ agent = USSR
+
+ description = Soyuz TM-4 was the fourth manned spacecraft to dock with the space station Mir. It was launched in December 1987, and carried the first two crew members of the third long duration expedition, Mir EO-3. These crew members, Vladimir Titov and Musa Manarov, would stay in space for just under 366 days, setting a new spaceflight record.\n\nObjectives:\n\n1. Launch a spacecraft with 2 Kerbals to live on Mir\n2. Dock with Mir\n3. Kerbals must survive on Mir for 365 days 1\n4. Return Kerbals safely to @targetBody\n\n Significance:\n Soyuz TM-4 was the longest duration spaceflight when the Cosmonauts lived in Mir for more than a year.\n\nHistorical Launch Date: December 21, 1987
+
+ synopsis = Launch 2 Kerbals to live on Mir for 365 days
+ notes = Launch 2 Kerbals to live on Mir for 365 days
+
+ completedMessage = Congratulations! There will be a lot of information learned from the long term habitation in space! Titov and Manarov conducted part of an ongoing survey of galaxies and star groups in the ultraviolet part of the spectrum using the Glazar telescope on Kvant. The survey required photography with exposure times up to 8 min. Even small cosmonaut movements could shake the complex. This produced blurring of astronomical images, so all cosmonaut movements had to be stopped during the exposures.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 15
+ rewardFunds = 30000
+
+ advanceFunds = 15000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Mir-Kvant-1
+ }
+
+ PARAMETER
+ {
+ name = Soyuz-TM-4
+ type = VesselParameterGroup
+ title = Launch Soyuz TM-4 and bring 2 crew to the station.
+ define = Soyuz-TM-4
+
+ completeInSequence = true
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithMir
+ type = Docking
+ vessel = Mir
+ title = Dock with Mir
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnMir
+ type = VesselParameterGroup
+ title = Keep your crew on Mir for 365 Days
+ vessel = Mir
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minPeA = 400000
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 365d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting for one year...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = SoyuzCrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = Soyuz-TM-4
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 2
+ maxCrew = 2
+ title = Have 2 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
+
+// ISS Zarya
+
+CONTRACT_TYPE
+{
+ name = ISS
+ group = SpaceStations
+
+ title = ISS: Zarya Module
+ agent = International Space Station
+
+ description = Zarya, also known as the Functional Cargo Block or FGB, was the first module of the International Space Station to be launched. The FGB provided electrical power, storage, propulsion, and guidance to the ISS during the initial stage of assembly. With the launch and assembly in orbit of other modules with more specialized functionality, Zarya is now primarily used for storage, both inside the pressurized section and in the externally mounted fuel tanks. The name Zarya, which means sunrise, was given to the FGB because it signified the dawn of a new era of international cooperation in space. Although it was built by a Russian company, it is owned by the United States.\n\nObjectives:\n\n1. Design the first module of the International Space Station\n2. Include the following components:\n *At Least 3 Docking Ports\n *At least 2 Solar Panels\n *At least 1 Antenna\n *At least 4 RCS Thrusters to maneuver the station\n *Electric Storage of at least 20,000\n *Mono Propellant of at least 10,000\n3. Launch the Zarya Module\n4. Reach Orbit with a Periapsis of at least @/targetPeri meters and an Eccentricity less than 0.01\n\n Significance:\n Zarya was the first module in the International Space Station which now holds many records including the largest object in space as well as the longest continually occupied spacecraft.\n\nHistorical Launch Date: November 20, 1998
+
+ synopsis = Launch the first module of the Interational Space Station
+ notes = Launch the first module of the Interational Space Station
+
+ completedMessage = Congratulations! Zarya is the first module of the new International Space Station. It will provide the power and logistical support we need while we construct the rest of the station.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 12
+ rewardReputation = 40
+ rewardFunds = 50000
+
+ advanceFunds = 200000
+
+ weight = 999
+
+ DATA
+ {
+ type = double
+
+ space = @targetBody.AtmosphereAltitude()
+ targetPeri = @space * 4
+ }
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = HALCA
+ }
+
+ PARAMETER
+ {
+ name = ISS
+ type = VesselParameterGroup
+ title = Launch first module of ISS and place it in orbit
+ define = ISS
+ defineList = spaceStationsHome
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 3
+ title = Have at least 3 Docking Ports
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = SolarPanels
+ type = PartValidation
+ partModule = ModuleDeployableSolarPanel
+ title = Have at least 2 Solar Panels
+ minCount = 2
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 Antenna
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasRCS
+ type = PartValidation
+ partModule = ModuleRCS
+ minCount = 4
+ title = Have at least 4 RCS Thrusters
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasResources
+ type = HasResourceCapacity
+
+ RESOURCE
+ {
+ resource = ElectricCharge
+ minQuantity = 20000
+ }
+ RESOURCE
+ {
+ resource = MonoPropellant
+ minQuantity = 10000
+ }
+ }
+ PARAMETER
+ {
+ name = ISSOrbit
+ type = Orbit
+ minPeA = @/targetPeri
+ maxEccentricity = 0.01
+ title = Orbit with a minimum Periapsis of @/targetPeri and an Eccentricity below 0.01
+ hideChildren = true
+ }
+ disableOnStateChange = true
+ }
+}
+
+// ISS Unity
+
+CONTRACT_TYPE
+{
+ name = ISS-Unity
+ group = SpaceStations
+
+ title = ISS: Unity Module
+ agent = International Space Station
+
+ description = The Unity connecting module was the first U.S.-built component of the International Space Station. It is cylindrical in shape, with six berthing locations facilitating connections to other modules. Unity measures 4.57 metres (15.0 ft) in diameter, is 5.47 metres (17.9 ft) long, and was built for NASA by Boeing in a manufacturing facility at the Marshall Space Flight Center in Huntsville, Alabama. Sometimes referred to as Node 1, Unity was the first of the three connecting modules; the other two are Harmony and Tranquility.\n\nObjectives:\n\n1. Design the Unity Module for the ISS\n2. Include at least 6 Docking Ports\n3. Launch Unity Module (HISTORICAL OPTION: Use your Space Shuttle)\n4. Rendezvous Unity with ISS and Dock\n\n Significance:\n Unity was the second module added to the ISS and became the central connecting hub.\n\nHistorical Launch Date: December 4, 1998
+
+ synopsis = Launch the Unity module and dock with the ISS
+ notes = Launch the Unity module and dock with the ISS
+
+ completedMessage = Congratulations! The Unity module is now docked to the ISS and we are ready to continue our expansion.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 100000
+
+ advanceFunds = 30000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = ISS
+ }
+
+ PARAMETER
+ {
+ name = ISS-Unity
+ type = VesselParameterGroup
+ title = Launch the Unity Module
+ define = ISS-Unity
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 6
+ title = Have at least 6 Docking Ports
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithISS
+ type = Docking
+ vessel = ISS
+ title = Dock with the ISS
+ hideChildren = true
+ }
+ }
+}
+
+// ISS Zvezda
+
+CONTRACT_TYPE
+{
+ name = ISS-Zvezda
+ group = SpaceStations
+
+ title = ISS: Zvezda Module
+ agent = International Space Station
+
+ description = Zvezda, also known as the Zvezda Service Module, is a component of the International Space Station (ISS). It was the third module launched to the station, and provides all of the station's life support systems, some of which are supplemented in the USOS, as well as living quarters for two crew members. It is the structural and functional center of the Russian portion of the station - the Russian Orbital Segment.\n\nObjectives:\n\n1. Design the Zvezda Module for the ISS\n2. Include at least 4 Docking Ports and Crew Space for 2\n3. Launch Zvezda Module\n4. Rendezvous Zvezda with ISS and Dock\n\n Significance:\n Zvezda was the third module added to the ISS and it added sleeping quarters, a kitchen, toilet and more.\n\nHistorical Launch Date: July 12, 2000
+
+ synopsis = Launch the Zvezda module and dock with the ISS
+ notes = Launch the Zvezda module and dock with the ISS
+
+ completedMessage = Congratulations! The Zvezda module is now docked to the ISS and we are ready to send up our first crew!
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 100000
+
+ advanceFunds = 50000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = ISS-Unity
+ }
+
+ PARAMETER
+ {
+ name = ISS-Zvezda
+ type = VesselParameterGroup
+ title = Launch the Zvezda Module
+ define = ISS-Zvezda
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = Crewmembers
+ type = HasCrew
+ minCrew = 0
+ maxCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasCapacity
+ type = HasCrewCapacity
+ minCapacity = 2
+ title = Space for 2 crew
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 4
+ title = Have at least 4 Docking Ports
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithISS
+ type = Docking
+ vessel = ISS
+ title = Dock with the ISS
+ hideChildren = true
+ }
+ }
+}
+
+// ISS Expedition 1
+
+CONTRACT_TYPE
+{
+ name = ISS-1
+ group = SpaceStations
+
+ title = ISS: Expedition 1
+ agent = International Space Station
+
+ description = Expedition 1 was the first long-duration stay on the International Space Station (ISS). The three-person crew stayed aboard the station for 136 days, from November 2000 to March 2001. It was the beginning of an uninterrupted human presence on the station which continues as of July 2016. Expedition 2, which also had three crew members, immediately followed Expedition 1.\n\nObjectives:\n\n1. Launch a spacecraft with 3 Kerbals to live on the ISS\n2. Dock with the ISS\n3. Kerbals must survive on the ISS for 136 days 1\n4. Return Kerbals safely to @targetBody\n\n Significance:\n Expedition 1 was the first crew to live on the ISS and was the first of a continued human presence on the ISS to this day.\n\nHistorical Launch Date: November 2, 2000
+
+ synopsis = Launch 3 Kerbals to live on the ISS for 136 days
+ notes = Launch 3 Kerbals to live on the ISS for 136 days
+
+ completedMessage = Congratulations! There will be a lot of information learned from the long term habitation in space! This is the start of understanding more about long term space exposure on Kerbals. We will use the ISS as a starting point for the continued exploration of our Solar System.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld()
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 500000
+
+ advanceFunds = 100000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = ISS-Zvezda
+ }
+
+ PARAMETER
+ {
+ name = ISS-1
+ type = VesselParameterGroup
+ title = Launch Expedition 1 and bring 3 crew to the ISS
+ define = ISS-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockingPort
+ type = PartValidation
+ partModuleType = Dock
+ minCount = 1
+ title = Have at least 1 Docking Port
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = DockWithISS
+ type = Docking
+ vessel = ISS
+ title = Dock with ISS
+ hideChildren = true
+ }
+ }
+ PARAMETER
+ {
+ name = LiveOnISS
+ type = VesselParameterGroup
+ title = Keep your crew on the ISS for 136 Days
+ vessel = ISS
+ hideChildren = true
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Orbit
+ type = Orbit
+ minInclination = 0
+ disableOnStateChange = true
+ }
+ }
+ PARAMETER
+ {
+ name = Duration
+ type = Duration
+ duration = 136d
+ preWaitText = Transfer to the station in the specified orbit.
+ waitingText = Orbiting for 136 days...
+ completionText = Stay completed, you may return home now.
+ disableOnStateChange = true
+ }
+ PARAMETER
+ {
+ name = Expedition1CrewReturn
+ type = VesselParameterGroup
+ title = Return the crew home
+ vessel = ISS-1
+
+ completeInSequence = true
+
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 3
+ maxCrew = 3
+ title = Have 3 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/ContractPacks/HistoricalProgression/Missions/VenusExploration.cfg b/GameData/ContractPacks/HistoricalProgression/Missions/VenusExploration.cfg
new file mode 100644
index 0000000..6367594
--- /dev/null
+++ b/GameData/ContractPacks/HistoricalProgression/Missions/VenusExploration.cfg
@@ -0,0 +1,1152 @@
+// Eve or Venus Missions
+// Eve is x 5
+// Venus in RSS is x 4.5
+// Venus in Half RSS is x 4
+
+// Venera 1
+
+CONTRACT_TYPE
+{
+ name = Venera-1
+ group = VenusExploration
+
+ title = Venera 1
+ agent = USSR
+
+ description = Venera 1 was the first spacecraft to fly past Venus, as part of the Soviet Union's Venera programme. Launched in February 1961, it flew past Venus on 19 May of the same year; however, radio contact with the probe was lost before the flyby, resulting in it returning no data.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna\n2. Launch Venera 1\n3. Flyby @targetBody within 20,000 km\n\nSignificance: Venera 1 was the first man made object to fly past another planet in our Solar System\n\nHistorical Launch Date: February 12, 1961
+
+ synopsis = Fly by @targetBody
+ notes = Fly by @targetBody
+
+ completedMessage = Congratulations on the flyby! Even though Venera 1 was not a total success, it paved the way for the rest of the missions that would continue to explore Venus.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 10
+ rewardFunds = 25000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Mercury-2
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody
+ define = Venera-1
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyVenus
+ type = ReachState
+ maxAltitude = 20000000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 20,000 km
+ hideChildren = true
+ }
+ }
+}
+
+// Mariner 2
+
+CONTRACT_TYPE
+{
+ name = Mariner-2
+ group = VenusExploration
+
+ title = Mariner 2
+ agent = NASA
+
+ description = Mariner 2, an American space probe to Venus, was the first robotic space probe to conduct a successful planetary encounter.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna\n2. Launch Mariner 2\n3. Flyby @targetBody within 20,000 km\n4. Transmit Science Data from Space around @targetBody\n\nSignificance: Mariner 2 was the first successful mission to flyby another planet in our Solar System\n\nHistorical Launch Date: August 27, 1962
+
+ synopsis = Fly by @targetBody and transmit science data
+ notes = Fly by @targetBody and transmit science data
+
+ completedMessage = Congratulations on the successful flyby! Scientific discoveries made by Mariner 2 included a slow retrograde rotation rate for Venus, hot surface temperatures and high surface pressures, a predominantly carbon dioxide atmosphere, continuous cloud cover with a top altitude of about 60 km, and no detectable magnetic field.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 3
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = OSO-1
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform a flyby of @targetBody
+ define = Mariner-2
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyVenus
+ type = ReachState
+ maxAltitude = 20000000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 20,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = VenusScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Venera 3
+
+CONTRACT_TYPE
+{
+ name = Venera-3
+ group = VenusExploration
+
+ title = Venera 3
+ agent = USSR
+
+ description = Venera 3 was launched from a Tyazheliy Sputnik (65-092B) towards the planet Venus. The mission of this spacecraft was to land on the Venusian surface.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna that will survive entry into the harsh atmosphere of @targetBody\n2. Launch Venera 3\n3. Impact the Surface of @targetBody\n\nSignificance: Venera 3 was the first man-made object to impact another planet\n\nHistorical Launch Date: November 16, 1965
+
+ synopsis = Impact the surface of @targetBody with Venera 3
+ notes = Impact the surface of @targetBody with Venera 3
+
+ completedMessage = Congratulations on hitting @targetBody! The entry body contained a radio communication system, scientific instruments, electrical power sources, and medallions bearing the coat of arms of the U.S.S.R. The station impacted Venus on March 1, 1966, making Venera 3 the first spacecraft to impact on the surface of another planet. However, the communications systems had failed before planetary data could be returned.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Mariner-2
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Impact the surface of @targetBody
+ define = Venera-3
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Impact
+ type = Any
+ title = Impact @targetBody
+ hideChildren = true
+
+ PARAMETER
+ {
+ name = DieLow
+ type = All
+ PARAMETER
+ {
+ name = GetLow
+ type = Any
+
+ PARAMETER
+ {
+ name = VenusLow
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ maxAltitude = 10000 // get close
+ }
+ PARAMETER
+ {
+ name = ReachVenusSurface
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ maxTerrainAltitude = 50
+ }
+ }
+ PARAMETER
+ {
+ name = VesselDieLow
+ type = VesselDestroyed
+ mustImpactTerrain = false // Maaaaybe set to true? But bugs. FIXME.
+ }
+ }
+ PARAMETER
+ {
+ name = ReachVenusSurface
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ maxTerrainAltitude = 10
+ // in case probe survives
+ }
+ PARAMETER
+ {
+ name = VenusImpact
+ type = All
+
+ PARAMETER
+ {
+ name = VenusSOI
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ }
+ PARAMETER
+ {
+ name = HitTerrain
+ type = VesselDestroyed
+ mustImpactTerrain = true
+ }
+ }
+ }
+ }
+}
+
+// Venera 4
+
+CONTRACT_TYPE
+{
+ name = Venera-4
+ group = VenusExploration
+
+ title = Venera 4
+ agent = USSR
+
+ description = Venera 4 was a probe in the Soviet Venera program for the exploration of Venus. It was the first successful probe to perform in-place analysis of the environment of another planet.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna that will survive entry into the harsh atmosphere of @targetBody\n2. Launch Venera 4\n3. Return Science from the atmosphere of @targetBody\n4. Impact the Surface of @targetBody\n\nSignificance: Venera 4 was the first spacecraft to send data back about the atmosphere of another planet\n\nHistorical Launch Date: June 12, 1967
+
+ synopsis = Return Science Data from the atmospehre of @targetBody with Venera 4
+ notes = Return Science Data from the atmospehre of @targetBody with Venera 4
+
+ completedMessage = Congratulations on the successful mission! Venera 4 provided the first chemical analysis of the Venusian atmosphere, showing it to be primarily carbon dioxide with a few percent of nitrogen and below one percent of oxygen and water vapors. The station detected a weak magnetic field and no radiation field. The outer atmospheric layer contained very little hydrogen and no atomic oxygen. The probe sent the first direct measurements proving that Venus was extremely hot, that its atmosphere was far denser than expected, and that it had lost most of its water long ago.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Luna-10
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Impact the surface of @targetBody
+ define = Venera-4
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = VenusAtmoScience
+ type = CollectScience
+ situation = FlyingHigh
+ recoveryMethod = Transmit
+ title = Transmit Science from the upper atmosphere of @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = Impact
+ type = Any
+ title = Impact @targetBody
+ hideChildren = true
+
+ PARAMETER
+ {
+ name = DieLow
+ type = All
+ PARAMETER
+ {
+ name = GetLow
+ type = Any
+
+ PARAMETER
+ {
+ name = VenusLow
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ maxAltitude = 10000 // get close
+ }
+ PARAMETER
+ {
+ name = ReachVenusSurface
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ maxTerrainAltitude = 50
+ }
+ }
+ PARAMETER
+ {
+ name = VesselDieLow
+ type = VesselDestroyed
+ mustImpactTerrain = false // Maaaaybe set to true? But bugs. FIXME.
+ }
+ }
+ PARAMETER
+ {
+ name = ReachVenusSurface
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ maxTerrainAltitude = 10
+ // in case probe survives
+ }
+ PARAMETER
+ {
+ name = VenusImpact
+ type = All
+
+ PARAMETER
+ {
+ name = VenusSOI
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ }
+ PARAMETER
+ {
+ name = HitTerrain
+ type = VesselDestroyed
+ mustImpactTerrain = true
+ }
+ }
+ }
+ }
+}
+
+// Venera 7
+
+CONTRACT_TYPE
+{
+ name = Venera-7
+ group = VenusExploration
+
+ title = Venera 7
+ agent = USSR
+
+ description = Venera 7 was one of two identical spacecraft launched to Venus during the August 1970 opportunity. The other mission (Cosmos 359) failed to leave Earth orbit. The objectives of the missions were to return data from the Venus atmosphere, make a landing on the surface, and continue to return data after landing.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna that will survive entry into the harsh atmosphere of @targetBody\n2. Launch Venera 7\n3. Land on @targetBody\n4. Return Science from the surface of @targetBody\n\nSignificance: Venera 7 was the first spacecraft to land on another planet and returned data from the surface of Venus\n\nHistorical Launch Date: August 17, 1970
+
+ synopsis = Return Science Data from the surface of @targetBody with Venera 7
+ notes = Return Science Data from the surface of @targetBody with Venera 7
+
+ completedMessage = Congratulations on the successful mission! Venera 7 entered the atmosphere of Venus on December 15, 1970. The probe appeared to go silent on impact but recording tapes kept rolling. A few weeks later, upon a review of the tapes, another 23 minutes of very weak signals were found on them. The spacecraft had landed on Venus and probably bounced onto its side, leaving the medium gain antenna not aimed correctly for strong signal transmission to Earth. \n\nThe probe transmitted information to Earth for 53 minutes, which included 20 minutes from the surface. It was found that the temperature at the surface of Venus was 475 °C (887 °F) ° ± 20 ° C and the pressure was 90 ± 15 atmospheres. The pressure corresponded to approximately 900 m below sea level. The probe provided information about the surface of Venus, which could not be seen through a thick veil of atmosphere. The spacecraft definitively confirmed that on the surface of Venus man is not able to survive and excluded the possibility that there is any liquid water on Venus.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 4
+ rewardReputation = 10
+ rewardFunds = 10000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Soyuz-9
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Land on the surface of @targetBody
+ define = Soyuz-9
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnVenus
+ type = ReachState
+ situation = LANDED
+ title = Land on @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = VenusSurfaceScience
+ type = CollectScience
+ situation = SrfLanded
+ recoveryMethod = Transmit
+ title = Transmit Science from the Surface of @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Mariner 10
+
+CONTRACT_TYPE
+{
+ name = Mariner-10
+ group = VenusExploration
+
+ title = Mariner 10
+ agent = NASA
+
+ description = Mariner 10 was the seventh successful launch in the Mariner series and the first spacecraft to visit Mercury. It was also the first spacecraft to use the gravitational pull of one planet (Venus) to reach another (Mercury), and the first spacecraft mission to visit two planets. The spacecraft flew by Mercury three times in a retrograde heliocentric orbit and returned images and data on the planet. Mariner 10 returned the first-ever close-up images of Venus and Mercury.\n\nObjectives:\n\n1. Design an unmanned rocket with an Antenna\n2. Launch Mariner 10\n3. Flyby @venus within 20,000 km\n4. Transmit Science Data from Space around @venus\n5. Flyby @targetBody within 20,000 km\n6. Transmit Science Data from Space around @targetBody\n\nSignificance: Mariner 10 was also the first spacecraft to use the gravitational pull of one planet (Venus) to reach another (Mercury), the first spacecraft mission to visit two planets, and the first spacecraft to visit Mercury.\n\nHistorical Launch Date: November 3, 1973
+
+ synopsis = Fly by @venus and @targetBody
+ notes = Fly by @venus and @targetBody
+
+ completedMessage = Congratulations on the successful flybys! The primary scientific objectives of the mission were to measure Mercury's environment, atmosphere, surface, and body characteristics and to make similar investigations of Venus. Secondary objectives were to perform experiments in the interplanetary medium and to obtain experience with a dual-planet gravity-assist mission.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(0)
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Skylab
+ }
+
+ DATA
+ {
+ type = CelestialBody
+ venus = HomeWorld().Parent().Children().ElementAt(1)
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Perform flybys
+ define = Mariner-10
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyVenus
+ type = ReachState
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ maxAltitude = 20000000
+ disableOnStateChange = true
+ title = Flyby @/venus within 20,000 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = CollectScience
+ type = CollectScience
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @/venus
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = FlybyMercury
+ type = ReachState
+ maxAltitude = 500000
+ disableOnStateChange = true
+ title = Flyby @targetBody within 500 km
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = MercuryScience
+ type = CollectScience
+ recoveryMethod = Transmit
+ title = Transmit Science from Space around @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Venera 9
+
+CONTRACT_TYPE
+{
+ name = Venera-9
+ group = VenusExploration
+
+ title = Venera 9
+ agent = USSR
+
+ description = Venera 9 was a USSR unmanned space mission to Venus. It consisted of an orbiter and a lander. It was launched on June 8, 1975 02:38:00 UTC and had a mass of 4,936 kg (10,884 lb). The orbiter was the first spacecraft to orbit Venus, while the lander was the first to return images from the surface of another planet.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Venera 9\n3. Orbit @targetBody\n4. Land on @targetBody\n5. Return Science from the surface of @targetBody\n\nSignificance: Venera 9 was the first spacecraft to orbit around Venus and to return images from the surface of another planet.\n\nHistorical Launch Date: June 8, 1975
+
+ synopsis = Orbit @targetBody and land a probe on the surface to return science data
+ notes = Orbit @targetBody and land a probe on the surface to return science data
+
+ completedMessage = Congratulations on the successful mission! A system of circulating fluid was used to distribute the heat load. This system, plus pre-cooling prior to entry, permitted operation of the lander for 53 minutes after landing, at which time radio contact with the orbiter was lost as the orbiter moved out of radio range. Venera 9 measured clouds that were 30–40 km thick with bases at 30–35 km altitude. It also measured atmospheric chemicals including hydrochloric acid, hydrofluoric acid, bromine, and iodine. Other measurements included surface pressure of about 90 atmospheres (9 MPa), temperature of 485 °C (905 °F), and surface light levels comparable to those at Earth mid-latitudes on a cloudy summer day.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 5
+ rewardFunds = 10000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Mariner-10
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Land on the surface of @targetBody
+ define = Venera-9
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitVenus
+ type = ReachState
+ situation = ORBITING
+ title = Enter Orbit around @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnVenus
+ type = ReachState
+ situation = LANDED
+ title = Land on the Surface of @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = VenusSurfaceScience
+ type = CollectScience
+ situation = SrfLanded
+ recoveryMethod = Transmit
+ title = Transmit Science Data from the Surface of @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Pioneer Venus Orbiter
+
+CONTRACT_TYPE
+{
+ name = Pioneer-12
+ group = VenusExploration
+
+ title = Pioneer Venus Orbiter
+ agent = NASA
+
+ description = The Pioneer Venus Orbiter was the first of a two-spacecraft orbiter-probe combination designed to conduct a comprehensive investigation of the atmosphere of Venus. It was a multi-year mission and was used to map parts of the surface of the planet.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch the Pioneer Venus Orbiter\n3. Orbit @targetBody\n4. Transmit Science from space near @targetBody\n\nSignificance: Pioneer Venus Orbiter was the first long-term mission at Venus and the first to map parts of the planet.\n\nHistorical Launch Date: May 20, 1978
+
+ synopsis = Orbit @targetBody and transmit science from space
+ notes = Orbit @targetBody and transmit science from space
+
+ completedMessage = Congratulations on the successful mission! Pioneer Venus Orbiter measured the detailed structure of the upper atmosphere and ionosphere of Venus, investigated the interaction of the solar wind with the ionosphere and the magnetic field in the vicinity of Venus, determined the characteristics of the atmosphere and surface of Venus on a planetary scale, determined the planet's gravitational field harmonics from perturbations of the spacecraft orbit, and detected gamma-ray bursts.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 12000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Helios
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Land on the surface of @targetBody
+ define = Venera-9
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = LowResScanner
+ type = PartValidation
+ title = Must have a Low Resolution scanner on board
+ part = SCANsat_Scanner
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitVenus
+ type = Orbit
+ situation = ORBITING
+ minInclination = 75
+ title = Enter Orbit around @targetBody with a Minimum Inclination of 75 degrees
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = SCANsatVenus
+ type = SCANsatCoverage
+ coverage = 50.0
+ scanType = AltimetryLoRes
+ rewardScience = 1.5
+ rewardReputation = 2
+ rewardFunds = 3000
+ }
+ }
+}
+
+// Venera 13
+
+CONTRACT_TYPE
+{
+ name = Venera-13
+ group = VenusExploration
+
+ title = Venera 13
+ agent = USSR
+
+ description = Venera 13 was a USSR unmanned space mission to Venus. After launch and a four-month cruise to Venus the descent vehicle separated from the cruise stage and plunged into the Venusian atmosphere on March 1, 1982. After entering the atmosphere a parachute was deployed. At an altitude of about 50 km the parachute was released and simple airbraking was used the rest of the way to the surface.\n\nObjectives:\n\n1. Design an unmanned rocket with an antenna\n2. Launch Venera 13\n4. Land on @targetBody\n5. Return Science from the surface of @targetBody\n\nSignificance: Venera 13 was the first spacecraft to send back recorded sounds from the surface of a planet and the first to study the soil of Venus.\n\nHistorical Launch Date: October 30, 1981
+
+ synopsis = Land a probe on the surface of @targetBody to return science data
+ notes = Land a probe on the surface of @targetBody to return science data
+
+ completedMessage = Congratulations on the successful mission! The lander functioned for 127 minutes (the planned design life was 32 minutes) in an environment with a temperature of 457 °C (855 °F) and a pressure of 89 Earth atmospheres (9.0 MPa).
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 5
+ rewardReputation = 10
+ rewardFunds = 15000
+
+ advanceFunds = 5000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Pioneer-12
+ }
+
+ PARAMETER
+ {
+ name = vesselGroup
+ type = VesselParameterGroup
+ title = Land on the surface of @targetBody
+ define = Venera-13
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnVenus
+ type = ReachState
+ situation = LANDED
+ title = Land on the Surface of @targetBody
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = VenusSurfaceScience
+ type = CollectScience
+ situation = SrfLanded
+ recoveryMethod = Transmit
+ title = Transmit Science Data from the Surface of @targetBody
+ hideChildren = true
+ }
+ }
+}
+
+// Magellan
+
+CONTRACT_TYPE
+{
+ name = Magellan
+ group = VenusExploration
+
+ title = Magellan (STS-30)
+ agent = NASA
+
+ description = The Magellan spacecraft, also referred to as the Venus Radar Mapper, was a 1,035-kilogram (2,282 lb) robotic space probe launched by NASA on May 4, 1989, to map the surface of Venus by using synthetic aperture radar and to measure the planetary gravitational field. The Magellan probe was the first interplanetary mission to be launched from the Space Shuttle, the first one to use the Inertial Upper Stage booster for launching, and the first spacecraft to test aerobraking as a method for circularizing its orbit. Magellan was the fourth successful NASA mission to Venus, and it ended an eleven-year gap in U.S. interplanetary probe launches.\n\nObjectives:\n\n1. Use your Space Shuttle\n2. Design your Magellan Probe to go to @targetBody\n3. Crew of 5\n4. Magellan Spacecraft on Board\n5. Launch STS-30\n6. Reach Orbit and Deploy Magellan to @targetBody\n7. Deorbit Space Shuttle\n8. Survive Reentry and land your spacecraft. BONUS rewards if you land on the runway.\n9. Switch back to Magellan and finish mission @targetBody\n\nSignificance: Magellan was the first mission to map the surface of Venus in high resolution.\n\nHistorical Launch Date: May 4, 1989
+
+ synopsis = Launch your Space Shuttle with Magellan on board and finish the mission at @targetBody
+ notes = Launch your Space Shuttle with Magellan on board and finish the mission at @targetBody
+
+ completedMessage = Congratulations on the successful mission! Magellan reached Venus and went into orbit on 10 August 1990. The initial phase of the mission (Cycle 1) began shortly after orbital insertion about Venus and lasted for eight months (15 Sept. 1990--15 May 1991). During this cycle, Magellan collected radar images of about 84% of the planet's surface. Additional phases of the mission created map information for more than 95% of the planet.
+
+ minExpiry = 0
+ maxExpiry = 0
+ maxCompletions = 1
+
+ cancellable = false
+ declinable = false
+
+ targetBody = HomeWorld().Parent().Children().ElementAt(1)
+
+ // REWARDS
+ rewardScience = 2
+ rewardReputation = 10
+ rewardFunds = 12000
+
+ advanceFunds = 8000
+
+ weight = 999
+
+ REQUIREMENT
+ {
+ name = CompleteContract
+ type = CompleteContract
+ contractType = Soyuz-TM-4
+ }
+
+ PARAMETER
+ {
+ name = STS-30
+ type = VesselParameterGroup
+ title = Space Shuttle STS-30
+ define = STS-30
+ disableOnStateChange = false
+
+ PARAMETER
+ {
+ name = NewVessel
+ type = NewVessel
+ hidden = true
+ }
+ PARAMETER
+ {
+ name = HasCrew
+ type = HasCrew
+ minCrew = 5
+ maxCrew = 5
+ title = Have 5 crewmembers on board
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = STS30Orbit
+ type = Orbit
+ minInclination = 0
+ targetBody = HomeWorld()
+ title = Reach Orbit and Deploy Magellan
+ disableOnStateChange = true
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = LandOnRunway
+ type = ReachState
+ maxSpeed = 1
+ targetBody = HomeWorld()
+ biome = Runway
+ situation = LANDED
+ disableOnStateChange = true
+ hideChildren = true
+ optional = true
+ rewardReputation = 20
+ rewardScience = 1
+ rewardFunds = 20000
+ }
+ PARAMETER
+ {
+ name = ReturnHome
+ type = ReturnHome
+ targetBody = HomeWorld()
+ title = Return Home Safely
+ hideChildren = true
+ completeInSequence = true
+ }
+ }
+ PARAMETER
+ {
+ name = Magellan
+ type = VesselParameterGroup
+ define = Magellan
+
+ PARAMETER
+ {
+ name = HasNoCrew
+ type = HasCrew
+ maxCrew = 0
+ minCrew = 0
+ title = Unmanned
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = HasAntenna
+ type = PartValidation
+ partModuleType = Antenna
+ minCount = 1
+ title = Have at least 1 antenna on your craft
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = BiomeScanner
+ type = PartValidation
+ title = Must have a Biome scanner on board
+ part = SCANsat_Scanner24
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = HiResScanner
+ type = PartValidation
+ title = Must have a High Resolution SAR scanner on board
+ part = SCANsat_Scanner2
+ hideChildren = true
+ }
+ PARAMETER
+ {
+ name = OrbitVenus
+ type = Orbit
+ minInclination = 80
+ title = Enter Orbit around @targetBody with a Minimum Inclination of 80 degrees
+ hideChildren = true
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = SCANsatBiomeVenus
+ type = SCANsatCoverage
+ coverage = 90
+ scanType = Biome
+ rewardScience = 20
+ rewardReputation = 2
+ rewardFunds = 3000
+ }
+ PARAMETER:NEEDS[SCANsat]
+ {
+ name = SCANsatHiResVenus
+ type = SCANsatCoverage
+ coverage = 90
+ scanType = AltimetryHiRes
+ rewardScience = 30
+ rewardReputation = 2
+ rewardFunds = 3000
+ }
+ }
+}
\ No newline at end of file
diff --git a/HistoricalProgression-v10.zip b/HistoricalProgression-v10.zip
new file mode 100644
index 0000000..e0c6081
Binary files /dev/null and b/HistoricalProgression-v10.zip differ
diff --git a/README.md b/README.md
index cb57afb..db55afc 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,8 @@ This contract pack takes you from the first sounding rockets to New Horizons and
Some of these contracts are very involved and require you to use gravity assists to accomplish the contract parameters. Others give you the option to complete certain goals in order to gain bonuses. For example, in your Space Shuttle contracts, you get bonus funds if you land your shuttle on the Runway back at KSC. One of the best examples of this is the MESSENGER contract. It requires you to enter a polar orbit of the first planet in the solar system. We will use the stock system with the Real Solar System planets as an example.
-**MESSENGER Contract Parameters
+### MESSENGER Contract Parameters
+
General Goal: Design an unmanned craft to Orbit Moho (Mercury) with a minimum Inclination of 70 degrees
1. Design an unmanned craft with an antenna (also with 3 SCANsat scanners if you have the mod installed)
@@ -128,7 +129,7 @@ Most of the missions are not that difficult or that involved, but MESSENGER was
**HIGHLY, HIGHLY, HIGHLY RECOMMENDED MODS**
These are not nessecary to use the contract pack, but it makes the pack much better
-* **Unmanned Before Manned - (http://forum.kerbalspaceprogram.com/threads/106130) **
+* Unmanned Before Manned - (http://forum.kerbalspaceprogram.com/threads/106130)
* This lets you start with the proper probe cores instead of manned missions, the contract pack might not be possible to complete without this or something similar
* Outer Planets Mod - (http://forum.kerbalspaceprogram.com/index.php?/topic/93999-112-outer-planets-mod-20-complete-overhaul-better-terrain-nicer-terrain-textures-improved-scatter-etc-21-may/)
* If you are playing with stock KSP, this will give you the extra planets that simulate the outer solar system and will allow you to explore these places with contracts like New Horizons and Voyager 1 and 2