Skip to content

Commit

Permalink
Set up "tutorial" contracts
Browse files Browse the repository at this point in the history
  • Loading branch information
Capkirk123 committed Oct 23, 2024
1 parent 3c75c49 commit a8988a5
Show file tree
Hide file tree
Showing 6 changed files with 405 additions and 100 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
CONTRACT_TYPE
{
name = FirstComSat-SCA
title = First Communications Satellite
title = First Low Orbit Communications Satellite
group = CommApp
agent = Federation Aeronautique Internationale
description = <b>Program: Early Commercial Applications<br>Type: <color=green>Required</color></b><br><br>Communications around the globe are limited to line of sight because of the curvature of Earth. If we can launch a communications satellite into orbit, we can use it to transmit information to the opposite side of the world.<br><br>Historical example: Telstar 1 (78kg, Thor-Delta).
description = <b>Program: Early Commercial Applications<br>Type: <color=green>Optional</color></b><br><br>Communications around the globe are limited to line of sight because of the curvature of Earth. If we can launch a communications satellite into orbit, we can use it to transmit information to the opposite side of the world. Launching a satellite into an eccentric low earth orbit is a good place to start. It should be relatively easy with existing launch vehicles, and the high apogee will provide good lines of sight for a few minutes every orbit. However, providing global communications coverage with such a low orbit would require very many satellites.<br><br>Historical example: Telstar 1 (78kg, Thor-Delta).
synopsis = Launch the first communication satellite
synopsis = Launch the first low orbit communication satellite
completedMessage = Congratulations! Satellite communications will forever change communications around the globe.
Expand All @@ -33,28 +33,29 @@ CONTRACT_TYPE
rewardScience = 0
rewardFunds = 0
failureFunds = 0
rewardReputation = 30 //not much, this is just guidance for the real (skopos) contracts
rewardReputation = 5 //not much, this is just guidance for the real (skopos) contracts
failureReputation = 0 // was @rewardReputation
// ************ REQUIREMENTS ************
//Don't let people start this unless they can actually do the Skopos half
REQUIREMENT {
name = All
type = All
REQUIREMENT {
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications0
}
REQUIREMENT {
name = Facility
type = Facility
facility = TrackingStation
minLevel = 4
maxLevel = 10
}
}
//Don't bother showing this after level 0, I'm sure players can figure this out on their own.
REQUIREMENT {
name = All
type = All
REQUIREMENT {
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications0
}
REQUIREMENT {
name = Facility
type = Facility
facility = TrackingStation
minLevel = 4
maxLevel = 10
}
}

PARAMETER
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
CONTRACT_TYPE
{
name = FirstGEOSat-SCA
title = Geostationary Test Satellite
group = CommApp
agent = Federation Aeronautique Internationale

description = <b>Program: Early Commercial Applications<br>Type: <color=green>Optional</color></b><br><br>Having a communication satellite that remains stationary relative to a satellite earth station means that the antenna wouldn't need to track movements to stay connected, and a constant line of sight can be maintained 24 hours a day. This would greatly simplify communication relay and mass transmission systems.<br><br>See the RP-1 wiki for more information on how to get to a geostationary orbit.<br>Historical example: Syncom 3 (39 kg, Thor-Delta) launched in August of 1964.<b>
synopsis = Launch a test satellite into a Geostationary Orbit
completedMessage = Congratulations! The satellite is in orbit over a constant area.
sortKey = 503
cancellable = true
declinable = false
autoAccept = false
minExpiry = 0
maxExpiry = 0
maxCompletions = 1
maxSimultaneous = 1
deadline = 0
targetBody = HomeWorld()
// ************ REWARDS ************
prestige = Trivial // 1.0x
advanceFunds = 0
rewardScience = 0
rewardFunds = 0
failureFunds = 0
rewardReputation = 5 //not much, this is just guidance for the real (skopos) contracts
failureReputation = 0 // was @rewardReputation
// ************ REQUIREMENTS ************
//since these are "tutorial" contracts, keep them active until they are completed
//as long as there is a skopos program active and you have TL3, show these contracts
REQUIREMENT
{
name = Have TL3 comms unlocked and a Commercial Applications program active
type = All
REQUIREMENT
{
name = Commercial Applications program active
type = Any
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications0
}
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications1
}
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications2
}
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications3
}
}
//Don't let people start this unless they can actually do the Skopos half
REQUIREMENT
{
name = Facility
type = Facility
facility = TrackingStation
minLevel = 4
maxLevel = 10
}
}

PARAMETER
{
name = GeostationarySat
type = VesselParameterGroup
title = Geostationary satellite
define = Geostationary

PARAMETER
{
name = NewVessel
type = NewVessel
title = Launch a new vessel
hideChildren = true
}
PARAMETER
{
name = Crewmembers
type = HasCrew
minCrew = 0
maxCrew = 0
title = Uncrewed
hideChildren = true
}
PARAMETER
{
name = Reach Specifit Orbit
type = Orbit
maxInclination = 2
maxEccentricity = 0.01
minPeriod = 23h 54m
maxPeriod = 23h 58m
disableOnStateChange = false
title = Achieve a Geostationary orbit within the stated parameters

PARAMETER
{
name = Duration
type = Duration

duration = 2m

preWaitText = Check for stable orbit
waitingText = Checking for stable orbit
completionText = Stable orbit: Confirmed
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ CONTRACT_TYPE
group = CommApp
agent = Federation Aeronautique Internationale

description = <b>Program: Early Commercial Applications<br>Type: <color=blue>Optional</color></b><br><br>With an orbital period of an earth day, a satellite will remain above a constant longitude, appearing to drift north and south through the day. This will allow for constant connection to a ground station.<br>Historical example: Syncom 2 (36kg, Thor-Delta).
description = <b>Program: Early Commercial Applications<br>Type: <color=blue>Optional</color></b><br><br>With an orbital period of an earth day, a satellite will remain above a constant longitude, appearing to drift north and south through the day. This orbit will be able to provide a constant line of sight for satellite earth stations at low latitudes, but at high latitudes it may still drift too far north or south to be used for portions of the day. However, forgoing an inclination change burn makes this orbit easier to get to than a proper geostationary orbit.<br><br>See the RP-1 wiki for more information on how to get to a geostationary orbit.<br>Historical example: Syncom 2 (36kg, Thor-Delta).

synopsis = Launch a geosynchronous test satellite

completedMessage = Congratulations! The satellite is in orbit and connected to the groundstation.
completedMessage = Congratulations! The satellite is in orbit and connected to the satellite earth station.

sortKey = 409

Expand All @@ -31,58 +31,56 @@ CONTRACT_TYPE
rewardScience = 0
rewardFunds = 0
failureFunds = 0
rewardReputation = 45
rewardReputation = 5 //not much, this is just guidance for the real (skopos) contracts
failureReputation = 0 // was @rewardReputation

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

//since these are "tutorial" contracts, keep them active until they are completed
//as long as there is a skopos program active and you have TL3, show these contracts
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications0
}
REQUIREMENT
{
name = AcceptContract
type = AcceptContract
contractType = syncom_ship_to_shore
invertRequirement = true
}
REQUIREMENT
{
name = CompleteContract
type = CompleteContract
contractType = syncom_ship_to_shore
invertRequirement = true
}
REQUIREMENT
{
name = AcceptContract
type = AcceptContract
contractType = syncom_transatlantic_tv
invertRequirement = true
}
REQUIREMENT
{
name = CompleteContract
type = CompleteContract
contractType = syncom_transatlantic_tv
invertRequirement = true
}
REQUIREMENT
{
name = AcceptContract
type = AcceptContract
contractType = syncom_transpacific_tv
invertRequirement = true
}
REQUIREMENT
{
name = CompleteContract
type = CompleteContract
contractType = syncom_transpacific_tv
invertRequirement = true
name = Have TL3 comms unlocked and a Commercial Applications program active
type = All
REQUIREMENT
{
name = Commercial Applications program active
type = Any

REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications0
}
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications1
}
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications2
}
REQUIREMENT
{
name = ProgramActive
type = ProgramActive
program = SkoposCommercialApplications3
}
}
//Don't let people start this unless they can actually do the Skopos half
REQUIREMENT
{
name = Facility
type = Facility
facility = TrackingStation
minLevel = 4
maxLevel = 10
}
}
Expand All @@ -92,7 +90,6 @@ CONTRACT_TYPE
type = VesselParameterGroup
title = First Geosynchronous Satellite
define = FirstGeosync
dissassociateVesselsOnContractCompletion = true
PARAMETER
{
Expand All @@ -111,16 +108,6 @@ CONTRACT_TYPE
hideChildren = true
}
PARAMETER
{
name = GenerateEC
title = Have positive energy balance
type = ResourceConsumption
resource = ElectricCharge
minRate = -1000000
maxRate = 0.00001
hideChildren = true
}
PARAMETER
{
name = Orbit
type = Orbit
Expand Down
Loading

0 comments on commit a8988a5

Please sign in to comment.