diff --git a/GameData/ContractPacks/kOS-Contract-Pack/kos-agencies.cfg b/GameData/ContractPacks/kOS-Contract-Pack/kos-agencies.cfg new file mode 100644 index 0000000..843a012 --- /dev/null +++ b/GameData/ContractPacks/kOS-Contract-Pack/kos-agencies.cfg @@ -0,0 +1,50 @@ +//kOS-Contract-Pack +//Agencies + +AGENT +{ + name = Kerbal Micro Devices + + description = KMD started out making small electronic components for spaceflight-rated internal circuits. Now they just make really small spacecraft. + + logoURL = kOS-Contract-Pack/logos/KMD-large.png + + logoScaledURL = kOS-Contract-Pack/logos/KMD-small.png + +} + +AGENT +{ + name = Lovelace Labs + + description = Lovelace Labs, a software engineering company that is famous for their devotion to backwards-compatibility for hilariously outdated hardware, has been the largest player in Kerbin's silicon valley for longer than computers have been in spaceships. + + logoURL = kOS-Contract-Pack/logos/LL-large.png + + logoScaledURL = kOS-Contract-Pack/logos/LL-small.png + +} + +AGENT +{ + name = Turing Machinations + + description = Founded less than a year ago, Turing Machinations has already made a big name for themselves with their invention of a radially-symmetrical USB port. + + logoURL = kOS-Contract-Pack/logos/TM-large.png + + logoScaledURL = kOS-Contract-Pack/logos/TM-small.png + +} + +AGENT +{ + name = vonNeumann Architects + + description = A loose collaboration between programmers that haven't actually met each other in person. They're really more of a D&D group than anything else. + + logoURL = kOS-Contract-Pack/logos/VNA-large.png + + logoScaledURL = kOS-Contract-Pack/logos/VNA-small.png + +} \ No newline at end of file diff --git a/GameData/ContractPacks/kOS-Contract-Pack/kos_hover.cfg b/GameData/ContractPacks/kOS-Contract-Pack/kos_hover.cfg new file mode 100644 index 0000000..46ae5b1 --- /dev/null +++ b/GameData/ContractPacks/kOS-Contract-Pack/kos_hover.cfg @@ -0,0 +1,411 @@ +//kOS Contract Pack +//Hover Contract Group + +CONTRACT_GROUP +{ + name = kOS_hover_group + + //Number of hover contracts that can be completed before they stop showing up + maxCompletions = 12 + + //How many should be allowed to appear at once + maxSimultaneous = 1 +} + +CONTRACT_TYPE +{ + name = kOS_hover_easy + + //Contract text + title = Autonomous hover at a specific altitude + description = Design a vehicle that will autonomously hover at ((@/altitude_parameter/maxTerrainAltitude - @/altitude_parameter/minTerrainAltitude) / 2) meters for @/altitude_parameter/time_parameter/duration + synopsis = We'd like you to design a vehicle that can hover at ((@/altitude_parameter/maxTerrainAltitude - @/altitude_parameter/minTerrainAltitude) / 2) meters for @/altitude_parameter/time_parameter/duration under the autonomous control of a kOS script. + completedMessage = Congratulations! You've impressed us with your programming abilities. + + //Group + group = kOS_hover_group + + //Agency + agent = Lovelace Labs + + //Expiry + minExpiry = 500.0 + maxExpiry = 1000.0 + + //Deadline + deadline = 500.0 + + //Declinability/Cancellability + cancellable = true + declinable = true + + //Prestige -- Defaults to any + prestige = Trivial + + //Target celestial body -- defaults to null/none + //targetBody = Kerbin + + //Maximum times contract can be completed -- default is 0/unlimited + maxCompletions = 0 + + //Maximum simultaneous instances of this contract -- default is 0/unlimited + maxSimultaneous = 1 + + //Rewards + rewardScience = 20.0 + rewardReputation = 10.0 + rewardFunds = 25000.0 + failureReputation = 10.0 + failureFunds = 10000.0 + advanceFunds = 10000.0 + + //Completion parameters + PARAMETER + { + name = altitude_parameter + type = ReachState + targetBody = Kerbin + //Craft must hover at 500 meters AGL (+/- 10 meters) + minTerrainAltitude = RANDOM(450, 550) + maxTerrainAltitude = @minTerrainAltitude + 20 + //Craft must be flying at no more than 10 m/s surface velocity + maxSpeed = 10.0 + situation = FLYING + title = Altitude + + PARAMETER + { + name = time_parameter + type = Duration + //Craft must hover in the altitude range for 30s + duration = 30s + preWaitText = Waiting for altitude range + waitingText = Hover timer running + completionText = Time requirement reached + } + } + + //This fails for some reason + // PARAMETER + // { + // name = no_crew_parameter + // type = HasCrewCapacity + //Craft must not be able to hold crew + // maxCapacity = 0 + // } + + //Contract availibility requirements + REQUIREMENT + { + name = core_part_requirement + type = PartModuleUnlocked + //A part with the kOSProcessor module must be unlocked + partModule = kOSProcessor + } + + REQUIREMENT + { + name = liquid_engine_requirement + type = Any + //An LV-T45 or LV-T30 liquid engine must be unlocked + + REQUIREMENT + { + name = LVT45_requirement + type = PartUnlocked + part = liquidEngine2 + } + + REQUIREMENT + { + name = LVT30_requirement + type = PartUnlocked + part = liquidEngine + } + } + + REQUIREMENT + { + name = probe_core_requirement + type = PartUnlocked + //A probe core must be unlocked + part = probeCoreSphere + } + + REQUIREMENT + { + name = altitude_requirement + type = AltitudeRecord + //The player must have breached 30km + minAltitude = 30000 + } +} + +CONTRACT_TYPE +{ + name = kOS_hover_medium + + //Contract text + title = Autonomous hover at a specific altitude + description = Design a vehicle that will autonomously hover at ((@/altitude_parameter/maxTerrainAltitude - @/altitude_parameter/minTerrainAltitude) / 2) meters for @/altitude_parameter/time_parameter/duration + synopsis = We'd like you to design a vehicle that can hover at ((@/altitude_parameter/maxTerrainAltitude - @/altitude_parameter/minTerrainAltitude) / 2) meters for @/altitude_parameter/time_parameter/duration under the autonomous control of a kOS script. + completedMessage = Congratulations! You've impressed us with your programming abilities. + + //Group + group = kOS_hover_group + + //Agency + agent = Kerbal Micro Devices + + //Expiry + minExpiry = 500.0 + maxExpiry = 1000.0 + + //Deadline + deadline = 500.0 + + //Declinability/Cancellability + cancellable = true + declinable = true + + //Prestige -- Defaults to any + prestige = Significant + + //Target celestial body -- defaults to null/none + //targetBody = Kerbin + + //Maximum times contract can be completed -- default is 0/unlimited + maxCompletions = 0 + + //Maximum simultaneous instances of this contract -- default is 0/unlimited + maxSimultaneous = 1 + + //Rewards + rewardScience = 40.0 + rewardReputation = 20.0 + rewardFunds = 50000.0 + failureReputation = 20.0 + failureFunds = 20000.0 + advanceFunds = 20000.0 + + //Completion parameters + PARAMETER + { + name = altitude_parameter + type = ReachState + targetBody = Kerbin + //Craft must hover at 750 meters AGL (+/- 2.5 meters) + minTerrainAltitude = RANDOM(700, 800) + maxTerrainAltitude = @minTerrainAltitude + 5 + //Craft must be flying at no more than 10 m/s surface velocity + maxSpeed = 10.0 + situation = FLYING + title = Altitude + + PARAMETER + { + name = time_parameter + type = Duration + //Craft must hover in the altitude range for 45s + duration = 45s + preWaitText = Waiting for altitude range + waitingText = Hover timer running + completionText = Time requirement reached + } + } + + //PARAMETER + //{ + // name = recovery_parameter + // type = RecoverVessel + //} + + //This fails for some reason + // PARAMETER + // { + // name = no_crew_parameter + // type = HasCrewCapacity + //Craft must not be able to hold crew + // maxCapacity = 0 + // } + + //Contract availibility requirements + REQUIREMENT + { + name = core_part_requirement + type = PartModuleUnlocked + //A part with the kOSProcessor module must be unlocked + partModule = kOSProcessor + } + + REQUIREMENT + { + name = liquid_engine_requirement + type = Any + //An LV-T45 or LV-T30 liquid engine must be unlocked + + REQUIREMENT + { + name = LVT45_requirement + type = PartUnlocked + part = liquidEngine2 + } + + REQUIREMENT + { + name = LVT30_requirement + type = PartUnlocked + part = liquidEngine + } + } + + REQUIREMENT + { + name = probe_core_requirement + type = PartUnlocked + //A probe core must be unlocked + part = probeCoreSphere + } + + REQUIREMENT + { + name = altitude_requirement + type = ReachSpace + //The player must have breached the atmosphere + } +} + +CONTRACT_TYPE +{ + name = kOS_hover_hard + + //Contract text + title = Autonomous hover at a specific altitude + description = Design a vehicle that will autonomously hover at ((@/altitude_parameter/maxTerrainAltitude - @/altitude_parameter/minTerrainAltitude) / 2) meters for @/altitude_parameter/time_parameter/duration + synopsis = We'd like you to design a vehicle that can hover at ((@/altitude_parameter/maxTerrainAltitude - @/altitude_parameter/minTerrainAltitude) / 2) meters for @/altitude_parameter/time_parameter/duration under the autonomous control of a kOS script. + completedMessage = Congratulations! You've impressed us with your programming abilities. + + //Group + group = kOS_hover_group + + //Agency + agent = Turing Machinations + + //Expiry + minExpiry = 500.0 + maxExpiry = 1000.0 + + //Deadline + deadline = 500.0 + + //Declinability/Cancellability + cancellable = true + declinable = true + + //Prestige -- Defaults to any + prestige = Exceptional + + //Target celestial body -- defaults to null/none + //targetBody = Kerbin + + //Maximum times contract can be completed -- default is 0/unlimited + maxCompletions = 0 + + //Maximum simultaneous instances of this contract -- default is 0/unlimited + maxSimultaneous = 1 + + //Rewards + rewardScience = 60.0 + rewardReputation = 30.0 + rewardFunds = 75000.0 + failureReputation = 30.0 + failureFunds = 30000.0 + advanceFunds = 30000.0 + + //Completion parameters + PARAMETER + { + name = altitude_parameter + type = ReachState + targetBody = Kerbin + //Craft must hover at 1000 meters AGL (+/- 1 meter) + minTerrainAltitude = RANDOM(950, 1050) + maxTerrainAltitude = @minTerrainAltitude + 2 + //Craft must be flying at no more than 10 m/s surface velocity + maxSpeed = 10.0 + situation = FLYING + title = Altitude + + PARAMETER + { + name = time_parameter + type = Duration + //Craft must hover in the altitude range for 60s + duration = 60s + preWaitText = Waiting for altitude range + waitingText = Hover timer running + completionText = Time requirement reached + } + } + + //PARAMETER + //{ + // name = recovery_parameter + // type = RecoverVessel + //} + + //This fails for some reason + // PARAMETER + // { + // name = no_crew_parameter + // type = HasCrewCapacity + //Craft must not be able to hold crew + // maxCapacity = 0 + // } + + //Contract availibility requirements + REQUIREMENT + { + name = core_part_requirement + type = PartModuleUnlocked + //A part with the kOSProcessor module must be unlocked + partModule = kOSProcessor + } + + REQUIREMENT + { + name = liquid_engine_requirement + type = Any + //An LV-T45 or LV-T30 liquid engine must be unlocked + + REQUIREMENT + { + name = LVT45_requirement + type = PartUnlocked + part = liquidEngine2 + } + + REQUIREMENT + { + name = LVT30_requirement + type = PartUnlocked + part = liquidEngine + } + } + + REQUIREMENT + { + name = probe_core_requirement + type = PartUnlocked + //A probe core must be unlocked + part = probeCoreSphere + } + + REQUIREMENT + { + name = altitude_requirement + type = Orbit + //The player must have made orbit + targetBody = Kerbin + } +} diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/KMD-large.jpg b/GameData/ContractPacks/kOS-Contract-Pack/logos/KMD-large.jpg new file mode 100644 index 0000000..24a0542 Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/KMD-large.jpg differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/KMD-small.png b/GameData/ContractPacks/kOS-Contract-Pack/logos/KMD-small.png new file mode 100644 index 0000000..b697e1a Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/KMD-small.png differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/LL-large.png b/GameData/ContractPacks/kOS-Contract-Pack/logos/LL-large.png new file mode 100644 index 0000000..ba13e43 Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/LL-large.png differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/LL-small.png b/GameData/ContractPacks/kOS-Contract-Pack/logos/LL-small.png new file mode 100644 index 0000000..c14cf91 Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/LL-small.png differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/TM-large.png b/GameData/ContractPacks/kOS-Contract-Pack/logos/TM-large.png new file mode 100644 index 0000000..e37e4a4 Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/TM-large.png differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/TM-small.png b/GameData/ContractPacks/kOS-Contract-Pack/logos/TM-small.png new file mode 100644 index 0000000..1493eb7 Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/TM-small.png differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/Thumbs.db b/GameData/ContractPacks/kOS-Contract-Pack/logos/Thumbs.db new file mode 100644 index 0000000..8ad8177 Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/Thumbs.db differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/VNA-large.png b/GameData/ContractPacks/kOS-Contract-Pack/logos/VNA-large.png new file mode 100644 index 0000000..06bfa8f Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/VNA-large.png differ diff --git a/GameData/ContractPacks/kOS-Contract-Pack/logos/VNA-small.png b/GameData/ContractPacks/kOS-Contract-Pack/logos/VNA-small.png new file mode 100644 index 0000000..842b5ca Binary files /dev/null and b/GameData/ContractPacks/kOS-Contract-Pack/logos/VNA-small.png differ