From 6df7a9955284df4d83c65be6cc0b46cccccc398b Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sat, 7 Apr 2018 23:46:53 -0400 Subject: [PATCH 01/22] Add files via upload --- source/Strategia/Util/CelestialBodyProgram.cs | 68 +++++ source/Strategia/Util/CelestialBodyUtil.cs | 6 +- source/Strategia/Util/KerbinProbes.cfg | 278 ++++++++++++++++++ .../Util/UncrewedMissions-1-KerbinProbes.cfg | 114 +++++++ 4 files changed, 465 insertions(+), 1 deletion(-) create mode 100644 source/Strategia/Util/CelestialBodyProgram.cs create mode 100644 source/Strategia/Util/KerbinProbes.cfg create mode 100644 source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg diff --git a/source/Strategia/Util/CelestialBodyProgram.cs b/source/Strategia/Util/CelestialBodyProgram.cs new file mode 100644 index 0000000..e98f4f2 --- /dev/null +++ b/source/Strategia/Util/CelestialBodyProgram.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; +using KSP; +using Strategies; + +namespace Strategia +{ + public abstract class KerbinProgram : StrategiaStrategy { } + public class KerbinProgram0 : KerbinProgram { } + public class KerbinProgram1 : KerbinProgram { } + + public abstract class MoonProgram : StrategiaStrategy { } + public class MoonProgram0 : MoonProgram { } + public class MoonProgram1 : MoonProgram { } + public class MoonProgram2 : MoonProgram { } + public class MoonProgram3 : MoonProgram { } + public class MoonProgram4 : MoonProgram { } + public class MoonProgram5 : MoonProgram { } + public class MoonProgram6 : MoonProgram { } + public class MoonProgram7 : MoonProgram { } + public class MoonProgram8 : MoonProgram { } + public class MoonProgram9 : MoonProgram { } + public class MoonProgram10 : MoonProgram { } + public class MoonProgram11 : MoonProgram { } + public class MoonProgram12 : MoonProgram { } + public class MoonProgram13 : MoonProgram { } + public class MoonProgram14 : MoonProgram { } + + public class PlanetaryProgram0 : StrategiaStrategy { } + public class PlanetaryProgram1 : StrategiaStrategy { } + public class PlanetaryProgram2 : StrategiaStrategy { } + public class PlanetaryProgram3 : StrategiaStrategy { } + public class PlanetaryProgram4 : StrategiaStrategy { } + public class PlanetaryProgram5 : StrategiaStrategy { } + public class PlanetaryProgram6 : StrategiaStrategy { } + public class PlanetaryProgram7 : StrategiaStrategy { } + public class PlanetaryProgram8 : StrategiaStrategy { } + public class PlanetaryProgram9 : StrategiaStrategy { } + public class PlanetaryProgram10 : StrategiaStrategy { } + public class PlanetaryProgram11 : StrategiaStrategy { } + public class PlanetaryProgram12 : StrategiaStrategy { } + public class PlanetaryProgram13 : StrategiaStrategy { } + public class PlanetaryProgram14 : StrategiaStrategy { } + public class PlanetaryProgram15 : StrategiaStrategy { } + public class PlanetaryProgram16 : StrategiaStrategy { } + public class PlanetaryProgram17 : StrategiaStrategy { } + public class PlanetaryProgram18 : StrategiaStrategy { } + public class PlanetaryProgram19 : StrategiaStrategy { } + public class PlanetaryProgram20 : StrategiaStrategy { } + public class PlanetaryProgram21 : StrategiaStrategy { } + public class PlanetaryProgram22 : StrategiaStrategy { } + public class PlanetaryProgram23 : StrategiaStrategy { } + public class PlanetaryProgram24 : StrategiaStrategy { } + + public class GasGiantProgram0 : StrategiaStrategy { } + public class GasGiantProgram1 : StrategiaStrategy { } + public class GasGiantProgram2 : StrategiaStrategy { } + public class GasGiantProgram3 : StrategiaStrategy { } + public class GasGiantProgram4 : StrategiaStrategy { } + public class GasGiantProgram5 : StrategiaStrategy { } + public class GasGiantProgram6 : StrategiaStrategy { } + public class GasGiantProgram7 : StrategiaStrategy { } + public class GasGiantProgram8 : StrategiaStrategy { } + public class GasGiantProgram9 : StrategiaStrategy { } +} diff --git a/source/Strategia/Util/CelestialBodyUtil.cs b/source/Strategia/Util/CelestialBodyUtil.cs index 358ea8e..0df3c4a 100644 --- a/source/Strategia/Util/CelestialBodyUtil.cs +++ b/source/Strategia/Util/CelestialBodyUtil.cs @@ -16,7 +16,11 @@ public static IEnumerable GetBodiesForStrategy(string id) { CelestialBody home = FlightGlobals.Bodies.Where(cb => cb.isHomeWorld).Single(); - if (id == "MoonProgram") + if (id == "KerbinProgram") + { + yield return home; + } + else if (id == "MoonProgram") { foreach (CelestialBody child in home.orbitingBodies) { diff --git a/source/Strategia/Util/KerbinProbes.cfg b/source/Strategia/Util/KerbinProbes.cfg new file mode 100644 index 0000000..3aa70ee --- /dev/null +++ b/source/Strategia/Util/KerbinProbes.cfg @@ -0,0 +1,278 @@ +// Contract for home world probes. +// Author: fwdixon +// Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale +// Strategia License: MIT +// Contract License: CC-BY-NC-SA + + +CONTRACT_TYPE +{ + name = STG_KerbinProbes + group = Strategia + + genericTitle = Home World Probes + genericDescription = This is a Strategia contract that is automatically accepted when the pre-requisite strategy is taken. + + title = @strategy + description = @strategy.description() + synopsis = @strategy.synopsis() + completedMessage = @strategy.completedMessage() + + agent = Strategia + + targetBody = @strategy.targetBody() + + autoAccept = true + cancellable = false + + maxSimultaneous = 1 + + prestige = Exceptional + + // Contract rewards + advanceFunds = @strategy.advanceFunds() / ContractMultiplier() + rewardFunds = @strategy.rewardFunds() / ContractMultiplier() + rewardReputation = @strategy.rewardReputation() / ContractMultiplier() + failureReputation = @strategy.failureReputation() / ContractMultiplier() + failureFunds = @strategy.failureFunds() / ContractMultiplier() + + DATA + { + type = StrategiaStrategy + requiredValue = true + title = The pre-requisite strategy must be taken + + strategy = ActiveStrategies().Where(s => s.contractType() == @name).First() + } + + DATA + { + type = string + uniquenessCheck = CONTRACT_ALL + hidden = true + + strategyName = @/strategy.Name() + } + + DATA + { + type = double + upperAtmo = HomeWorld().FlyingAltitudeThreshold() / 1000 + title = Upper Atmosphere + } + + DATA + { + type = double + space = HomeWorld().AtmosphereAltitude() / 1000 + title = Upper Atmosphere + } + +// Launch First Rocket + PARAMETER + { + name = FirstRocket + type = VesselParameterGroup + title = Launch your first rocket + define = FirstRocket + + rewardFunds = 2500 / ContractMultiplier() + rewardScience = 2 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = Crewmembers + type = HasCrew + hideChildren = true + title = Uncrewed + minCrew = 0 + maxCrew = 0 + } + PARAMETER + { + name = ReachState + type = ReachState + minAltitude = 200 + disableOnStateChange = true + situation = FLYING + title = Launch your first rocket and get to at least 200 meters off the ground! + hideChildren = true + } + } +// Reach the Upper Atmosphere + PARAMETER + { + name = UpperAtmoRocket + type = VesselParameterGroup + title = Launch a rocket to the Upper Atmosphere + define = UpperAtmoRocket + + rewardFunds = 3500 / ContractMultiplier() + rewardScience = 3 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = Crewmembers + type = HasCrew + hideChildren = true + title = Uncrewed + minCrew = 0 + maxCrew = 0 + } + PARAMETER + { + name = ReachUpperAtmo + type = ReachState + minAltitude = HomeWorld().FlyingAltitudeThreshold() + disableOnStateChange = true + situation = FLYING + title = Reach the upper atmosphere above @/upperAtmo km + hideChildren = true + } + } + +// Escape the Atmosphere + PARAMETER + { + name = OrbitReturn + type = VesselParameterGroup + title = Suborbital Return + + rewardFunds = 4500 / ContractMultiplier() + rewardScience = 4 / ContractMultiplier() + rewardReputation = 2 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = HasNoCrew + type = HasCrew + maxCrew = 0 + minCrew = 0 + title = Uncrewed + hideChildren = true + } + PARAMETER + { + name = ReachSpace + type = ReachState + disableOnStateChange = True + situation = SUB_ORBITAL + title = Reach Space + } + PARAMETER + { + name = ReturnHome + type = ReturnHome + targetBody = HomeWorld() + title = Return Home Safely + hideChildren = true + completeInSequence = true + } + } + +// Orbit & Transmit Science + PARAMETER + { + name = OrbitReturn + type = VesselParameterGroup + title = Orbit and Return + define = OrbitReturn + + rewardFunds = 5500 / ContractMultiplier() + rewardScience = 7 / ContractMultiplier() + rewardReputation = 4 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = HasNoCrew + type = HasCrew + maxCrew = 0 + minCrew = 0 + title = Uncrewed + hideChildren = true + } + PARAMETER + { + name = PartValidation1 + type = PartValidation + + category = Communication + + minCount = 1 + } + PARAMETER + { + name = PartValidation2 + type = PartValidation + + category = Electrical + + minCount = 2 + } + PARAMETER + { + name = PartValidation3 + type = PartValidation + + category = Science + + minCount = 1 + } + PARAMETER + { + name = Orbit + type = Orbit + targetBody = HomeWorld() + minInclination = 0 + title = Reach Orbit + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = CollectScience + type = CollectScience + location = Space + recoveryMethod = Transmit + title = Transmit science home + disableOnStateChange + completeInSequence = true + hideChildren + } +} diff --git a/source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg b/source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg new file mode 100644 index 0000000..59b0016 --- /dev/null +++ b/source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg @@ -0,0 +1,114 @@ +// Strategy for uncrewed missions around Kerbin. +// Author: fwdixon +// Strategia License: MIT + + +STRATEGY_BODY_EXPAND:NEEDS[CustomBarnKit] +{ + author = fwdixon + name = KerbinProgram + id = KerbinProgram + + title = $body Probes + title + { + Earth = The Sputnik Program + } + desc = Why send Kerbal to space when we can be more effective in gathering science by sending out uncrewed probes? Shall we send a probe to perform experiments around $body? + department = Uncrewed Missions + icon = Strategia/icons/LocalScience1 + + groupTag = CelestialBodyProgramCelestialBodyProgram,A + + minLeastDuration = 600 + maxLeastDuration = 600 + minLongestDuration = 1200 + maxLongestDuration = 1600 + + requiredReputationMin = -1000 + requiredReputationMax = -1000 + + initialCostFunds = 0.0 + initialCostReputation = 0.0 + initialCostScience = 0.0 + + hasFactorSlider = False + factorSliderDefault = 0.10 + factorSliderSteps = 1 + + EFFECT + { + name = IncompatibleGroupRequirement + + group = CelestialBodyProgramCelestialBodyProgram + text = Cannot have more than one uncrewed strategy active at one time + } + + EFFECT + { + name = CurrencyOperationByBody + currency = Funds + operation = Multiply + + effectDescription = to milestone gains for $body + + minValue = 1.50 + maxValue = 1.50 + + AffectReasons = Progression + + includeBody = $body + } + + EFFECT + { + name = CurrencyOperationByBody + currency = Funds + operation = Multiply + + effectDescription = to milestone gains for other bodies + + minValue = 0.80 + maxValue = 0.80 + + AffectReasons = Progression + + excludeBody = $body + } + + EFFECT + { + name = ContractEffect + + contractType = STG_KerbinProbes + + targetBody = $body + synopsis = Launch a probe into orbit around $body and transmit home science. + completedMessage = You've successfully performed an automated exploration of $body! + failureMessage = Your space program has failed to put enough probes onto $body! + + advanceFunds = 5000 + rewardReputation = 10 + + rewardFunds = 25000 + + failureReputation = 5 + failureFunds = 500 + } + + EFFECT + { + name = ContractWeightBooster + + bodies = $body + weight = 25 + } + + EFFECT + { + name = OrbitBodyRequirement + + invert = true + body = $body + } +} From 45b7b814b1f13513d4847f5a49e97f2023f1c7e5 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:11:52 -0400 Subject: [PATCH 02/22] Delete UncrewedMissions-1-KerbinProbes.cfg --- .../Util/UncrewedMissions-1-KerbinProbes.cfg | 114 ------------------ 1 file changed, 114 deletions(-) delete mode 100644 source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg diff --git a/source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg b/source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg deleted file mode 100644 index 59b0016..0000000 --- a/source/Strategia/Util/UncrewedMissions-1-KerbinProbes.cfg +++ /dev/null @@ -1,114 +0,0 @@ -// Strategy for uncrewed missions around Kerbin. -// Author: fwdixon -// Strategia License: MIT - - -STRATEGY_BODY_EXPAND:NEEDS[CustomBarnKit] -{ - author = fwdixon - name = KerbinProgram - id = KerbinProgram - - title = $body Probes - title - { - Earth = The Sputnik Program - } - desc = Why send Kerbal to space when we can be more effective in gathering science by sending out uncrewed probes? Shall we send a probe to perform experiments around $body? - department = Uncrewed Missions - icon = Strategia/icons/LocalScience1 - - groupTag = CelestialBodyProgramCelestialBodyProgram,A - - minLeastDuration = 600 - maxLeastDuration = 600 - minLongestDuration = 1200 - maxLongestDuration = 1600 - - requiredReputationMin = -1000 - requiredReputationMax = -1000 - - initialCostFunds = 0.0 - initialCostReputation = 0.0 - initialCostScience = 0.0 - - hasFactorSlider = False - factorSliderDefault = 0.10 - factorSliderSteps = 1 - - EFFECT - { - name = IncompatibleGroupRequirement - - group = CelestialBodyProgramCelestialBodyProgram - text = Cannot have more than one uncrewed strategy active at one time - } - - EFFECT - { - name = CurrencyOperationByBody - currency = Funds - operation = Multiply - - effectDescription = to milestone gains for $body - - minValue = 1.50 - maxValue = 1.50 - - AffectReasons = Progression - - includeBody = $body - } - - EFFECT - { - name = CurrencyOperationByBody - currency = Funds - operation = Multiply - - effectDescription = to milestone gains for other bodies - - minValue = 0.80 - maxValue = 0.80 - - AffectReasons = Progression - - excludeBody = $body - } - - EFFECT - { - name = ContractEffect - - contractType = STG_KerbinProbes - - targetBody = $body - synopsis = Launch a probe into orbit around $body and transmit home science. - completedMessage = You've successfully performed an automated exploration of $body! - failureMessage = Your space program has failed to put enough probes onto $body! - - advanceFunds = 5000 - rewardReputation = 10 - - rewardFunds = 25000 - - failureReputation = 5 - failureFunds = 500 - } - - EFFECT - { - name = ContractWeightBooster - - bodies = $body - weight = 25 - } - - EFFECT - { - name = OrbitBodyRequirement - - invert = true - body = $body - } -} From f3568aa548033eee2b9227cd6b7aed071cec5941 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:12:01 -0400 Subject: [PATCH 03/22] Delete KerbinProbes.cfg --- source/Strategia/Util/KerbinProbes.cfg | 278 ------------------------- 1 file changed, 278 deletions(-) delete mode 100644 source/Strategia/Util/KerbinProbes.cfg diff --git a/source/Strategia/Util/KerbinProbes.cfg b/source/Strategia/Util/KerbinProbes.cfg deleted file mode 100644 index 3aa70ee..0000000 --- a/source/Strategia/Util/KerbinProbes.cfg +++ /dev/null @@ -1,278 +0,0 @@ -// Contract for home world probes. -// Author: fwdixon -// Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale -// Strategia License: MIT -// Contract License: CC-BY-NC-SA - - -CONTRACT_TYPE -{ - name = STG_KerbinProbes - group = Strategia - - genericTitle = Home World Probes - genericDescription = This is a Strategia contract that is automatically accepted when the pre-requisite strategy is taken. - - title = @strategy - description = @strategy.description() - synopsis = @strategy.synopsis() - completedMessage = @strategy.completedMessage() - - agent = Strategia - - targetBody = @strategy.targetBody() - - autoAccept = true - cancellable = false - - maxSimultaneous = 1 - - prestige = Exceptional - - // Contract rewards - advanceFunds = @strategy.advanceFunds() / ContractMultiplier() - rewardFunds = @strategy.rewardFunds() / ContractMultiplier() - rewardReputation = @strategy.rewardReputation() / ContractMultiplier() - failureReputation = @strategy.failureReputation() / ContractMultiplier() - failureFunds = @strategy.failureFunds() / ContractMultiplier() - - DATA - { - type = StrategiaStrategy - requiredValue = true - title = The pre-requisite strategy must be taken - - strategy = ActiveStrategies().Where(s => s.contractType() == @name).First() - } - - DATA - { - type = string - uniquenessCheck = CONTRACT_ALL - hidden = true - - strategyName = @/strategy.Name() - } - - DATA - { - type = double - upperAtmo = HomeWorld().FlyingAltitudeThreshold() / 1000 - title = Upper Atmosphere - } - - DATA - { - type = double - space = HomeWorld().AtmosphereAltitude() / 1000 - title = Upper Atmosphere - } - -// Launch First Rocket - PARAMETER - { - name = FirstRocket - type = VesselParameterGroup - title = Launch your first rocket - define = FirstRocket - - rewardFunds = 2500 / ContractMultiplier() - rewardScience = 2 / ContractMultiplier() - rewardReputation = 1 / ContractMultiplier() - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = Crewmembers - type = HasCrew - hideChildren = true - title = Uncrewed - minCrew = 0 - maxCrew = 0 - } - PARAMETER - { - name = ReachState - type = ReachState - minAltitude = 200 - disableOnStateChange = true - situation = FLYING - title = Launch your first rocket and get to at least 200 meters off the ground! - hideChildren = true - } - } -// Reach the Upper Atmosphere - PARAMETER - { - name = UpperAtmoRocket - type = VesselParameterGroup - title = Launch a rocket to the Upper Atmosphere - define = UpperAtmoRocket - - rewardFunds = 3500 / ContractMultiplier() - rewardScience = 3 / ContractMultiplier() - rewardReputation = 1 / ContractMultiplier() - - completeInSequence = true - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = Crewmembers - type = HasCrew - hideChildren = true - title = Uncrewed - minCrew = 0 - maxCrew = 0 - } - PARAMETER - { - name = ReachUpperAtmo - type = ReachState - minAltitude = HomeWorld().FlyingAltitudeThreshold() - disableOnStateChange = true - situation = FLYING - title = Reach the upper atmosphere above @/upperAtmo km - hideChildren = true - } - } - -// Escape the Atmosphere - PARAMETER - { - name = OrbitReturn - type = VesselParameterGroup - title = Suborbital Return - - rewardFunds = 4500 / ContractMultiplier() - rewardScience = 4 / ContractMultiplier() - rewardReputation = 2 / ContractMultiplier() - - completeInSequence = true - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = HasNoCrew - type = HasCrew - maxCrew = 0 - minCrew = 0 - title = Uncrewed - hideChildren = true - } - PARAMETER - { - name = ReachSpace - type = ReachState - disableOnStateChange = True - situation = SUB_ORBITAL - title = Reach Space - } - PARAMETER - { - name = ReturnHome - type = ReturnHome - targetBody = HomeWorld() - title = Return Home Safely - hideChildren = true - completeInSequence = true - } - } - -// Orbit & Transmit Science - PARAMETER - { - name = OrbitReturn - type = VesselParameterGroup - title = Orbit and Return - define = OrbitReturn - - rewardFunds = 5500 / ContractMultiplier() - rewardScience = 7 / ContractMultiplier() - rewardReputation = 4 / ContractMultiplier() - - completeInSequence = true - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = HasNoCrew - type = HasCrew - maxCrew = 0 - minCrew = 0 - title = Uncrewed - hideChildren = true - } - PARAMETER - { - name = PartValidation1 - type = PartValidation - - category = Communication - - minCount = 1 - } - PARAMETER - { - name = PartValidation2 - type = PartValidation - - category = Electrical - - minCount = 2 - } - PARAMETER - { - name = PartValidation3 - type = PartValidation - - category = Science - - minCount = 1 - } - PARAMETER - { - name = Orbit - type = Orbit - targetBody = HomeWorld() - minInclination = 0 - title = Reach Orbit - disableOnStateChange = true - hideChildren = true - } - PARAMETER - { - name = CollectScience - type = CollectScience - location = Space - recoveryMethod = Transmit - title = Transmit science home - disableOnStateChange - completeInSequence = true - hideChildren - } -} From 7272221df1a03336ee5a9bae8f54a094bee3d6ca Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:12:28 -0400 Subject: [PATCH 04/22] Rename CrewedMissions-1-MoonProgram.cfg to CrewedMissions-2-MoonProgram.cfg --- ...issions-1-MoonProgram.cfg => CrewedMissions-2-MoonProgram.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Strategia/Strategies/{CrewedMissions-1-MoonProgram.cfg => CrewedMissions-2-MoonProgram.cfg} (100%) diff --git a/GameData/Strategia/Strategies/CrewedMissions-1-MoonProgram.cfg b/GameData/Strategia/Strategies/CrewedMissions-2-MoonProgram.cfg similarity index 100% rename from GameData/Strategia/Strategies/CrewedMissions-1-MoonProgram.cfg rename to GameData/Strategia/Strategies/CrewedMissions-2-MoonProgram.cfg From 23165b24e443f9887c4dae962c37cc07a652aaa5 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:12:47 -0400 Subject: [PATCH 05/22] Rename CrewedMissions-2-PlanetaryProgram.cfg to CrewedMissions-3-PlanetaryProgram.cfg --- ...PlanetaryProgram.cfg => CrewedMissions-3-PlanetaryProgram.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Strategia/Strategies/{CrewedMissions-2-PlanetaryProgram.cfg => CrewedMissions-3-PlanetaryProgram.cfg} (100%) diff --git a/GameData/Strategia/Strategies/CrewedMissions-2-PlanetaryProgram.cfg b/GameData/Strategia/Strategies/CrewedMissions-3-PlanetaryProgram.cfg similarity index 100% rename from GameData/Strategia/Strategies/CrewedMissions-2-PlanetaryProgram.cfg rename to GameData/Strategia/Strategies/CrewedMissions-3-PlanetaryProgram.cfg From bbf66c9ee27bd5876704b3473167def85cbf7d6c Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:13:01 -0400 Subject: [PATCH 06/22] Rename CrewedMissions-3-GasGiantProgram.cfg to CrewedMissions-4-GasGiantProgram.cfg --- ...3-GasGiantProgram.cfg => CrewedMissions-4-GasGiantProgram.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Strategia/Strategies/{CrewedMissions-3-GasGiantProgram.cfg => CrewedMissions-4-GasGiantProgram.cfg} (100%) diff --git a/GameData/Strategia/Strategies/CrewedMissions-3-GasGiantProgram.cfg b/GameData/Strategia/Strategies/CrewedMissions-4-GasGiantProgram.cfg similarity index 100% rename from GameData/Strategia/Strategies/CrewedMissions-3-GasGiantProgram.cfg rename to GameData/Strategia/Strategies/CrewedMissions-4-GasGiantProgram.cfg From 7dc26aa9bd5b3ac21a10653628989925037e5f05 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:13:14 -0400 Subject: [PATCH 07/22] Rename UncrewedMissions-4-FlyBys.cfg to UncrewedMissions-5-FlyBys.cfg --- ...ncrewedMissions-4-FlyBys.cfg => UncrewedMissions-5-FlyBys.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Strategia/Strategies/{UncrewedMissions-4-FlyBys.cfg => UncrewedMissions-5-FlyBys.cfg} (100%) diff --git a/GameData/Strategia/Strategies/UncrewedMissions-4-FlyBys.cfg b/GameData/Strategia/Strategies/UncrewedMissions-5-FlyBys.cfg similarity index 100% rename from GameData/Strategia/Strategies/UncrewedMissions-4-FlyBys.cfg rename to GameData/Strategia/Strategies/UncrewedMissions-5-FlyBys.cfg From b095c8a510bf09537c05de9dacb994b021e0283e Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:13:50 -0400 Subject: [PATCH 08/22] Add files via upload --- .../Strategia/Strategies/KerbinProbes.cfg | 302 ++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 GameData/Strategia/Strategies/KerbinProbes.cfg diff --git a/GameData/Strategia/Strategies/KerbinProbes.cfg b/GameData/Strategia/Strategies/KerbinProbes.cfg new file mode 100644 index 0000000..79a9ae3 --- /dev/null +++ b/GameData/Strategia/Strategies/KerbinProbes.cfg @@ -0,0 +1,302 @@ +// Contract for home world probes. +// Author: fwdixon +// Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale +// Strategia License: MIT +// Contract License: CC-BY-NC-SA + + +CONTRACT_TYPE +{ + name = STG_KerbinProbes + group = Strategia + + genericTitle = Home World Probes + genericDescription = This is a Strategia contract that is automatically accepted when the pre-requisite strategy is taken. + + title = @strategy + description = @strategy.description() + synopsis = @strategy.synopsis() + completedMessage = @strategy.completedMessage() + + agent = Strategia + + targetBody = @strategy.targetBody() + + autoAccept = true + cancellable = false + + maxSimultaneous = 1 + + prestige = Exceptional + + // Contract rewards + advanceFunds = @strategy.advanceFunds() / ContractMultiplier() + rewardFunds = @strategy.rewardFunds() / ContractMultiplier() + rewardReputation = @strategy.rewardReputation() / ContractMultiplier() + failureReputation = @strategy.failureReputation() / ContractMultiplier() + failureFunds = @strategy.failureFunds() / ContractMultiplier() + + DATA + { + type = StrategiaStrategy + requiredValue = true + title = The pre-requisite strategy must be taken + + strategy = ActiveStrategies().Where(s => s.contractType() == @name).First() + } + + DATA + { + type = string + uniquenessCheck = CONTRACT_ALL + hidden = true + + strategyName = @/strategy.Name() + } + + DATA + { + type = double + upperAtmo = HomeWorld().FlyingAltitudeThreshold() / 1000 + title = Upper Atmosphere + } + + DATA + { + type = double + space = HomeWorld().AtmosphereAltitude() / 1000 + title = Upper Atmosphere + } + +// Launch First Rocket + PARAMETER + { + name = FirstRocket + type = VesselParameterGroup + title = Launch your first rocket + define = FirstRocket + + rewardFunds = 2500 / ContractMultiplier() + rewardScience = 2 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = Crewmembers + type = HasCrew + hideChildren = true + title = Uncrewed + minCrew = 0 + maxCrew = 0 + } + PARAMETER + { + name = ReachState + type = ReachState + minAltitude = 200 + disableOnStateChange = true + situation = FLYING + title = Launch your first rocket and get to at least 200 meters off the ground! + hideChildren = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } +// Reach the Upper Atmosphere + PARAMETER + { + name = UpperAtmoRocket + type = VesselParameterGroup + title = Launch a rocket to the Upper Atmosphere + define = UpperAtmoRocket + + rewardFunds = 3500 / ContractMultiplier() + rewardScience = 3 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = Crewmembers + type = HasCrew + hideChildren = true + title = Uncrewed + minCrew = 0 + maxCrew = 0 + } + PARAMETER + { + name = ReachUpperAtmo + type = ReachState + minAltitude = HomeWorld().FlyingAltitudeThreshold() + disableOnStateChange = true + situation = FLYING + title = Reach the upper atmosphere above @/upperAtmo km + hideChildren = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Escape the Atmosphere + PARAMETER + { + name = OrbitReturn + type = VesselParameterGroup + title = Suborbital Return + + rewardFunds = 4500 / ContractMultiplier() + rewardScience = 4 / ContractMultiplier() + rewardReputation = 2 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = HasNoCrew + type = HasCrew + maxCrew = 0 + minCrew = 0 + title = Uncrewed + hideChildren = true + } + PARAMETER + { + name = ReachSpace + type = ReachState + disableOnStateChange = True + situation = SUB_ORBITAL + title = Reach Space + } + PARAMETER + { + name = ReturnHome + type = ReturnHome + targetBody = HomeWorld() + title = Return Home Safely + hideChildren = true + completeInSequence = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Orbit & Transmit Science + PARAMETER + { + name = OrbitReturn + type = VesselParameterGroup + title = Orbit and Return + define = OrbitReturn + + rewardFunds = 5500 / ContractMultiplier() + rewardScience = 7 / ContractMultiplier() + rewardReputation = 4 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = HasNoCrew + type = HasCrew + maxCrew = 0 + minCrew = 0 + title = Uncrewed + hideChildren = true + } + PARAMETER + { + name = PartValidation1 + type = PartValidation + + category = Communication + + minCount = 1 + } + PARAMETER + { + name = PartValidation2 + type = PartValidation + + category = Electrical + + minCount = 2 + } + PARAMETER + { + name = PartValidation3 + type = PartValidation + + category = Science + + minCount = 1 + } + PARAMETER + { + name = Orbit + type = Orbit + targetBody = HomeWorld() + minInclination = 0 + title = Reach Orbit + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = CollectScience + type = CollectScience + location = Space + recoveryMethod = Transmit + title = Transmit science home + disableOnStateChange + completeInSequence = true + hideChildren + } +} From 753ae5f126337f6ff5a02c4cf674673daa5eb86a Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:14:40 -0400 Subject: [PATCH 09/22] Delete KerbinProbes.cfg --- .../Strategia/Strategies/KerbinProbes.cfg | 302 ------------------ 1 file changed, 302 deletions(-) delete mode 100644 GameData/Strategia/Strategies/KerbinProbes.cfg diff --git a/GameData/Strategia/Strategies/KerbinProbes.cfg b/GameData/Strategia/Strategies/KerbinProbes.cfg deleted file mode 100644 index 79a9ae3..0000000 --- a/GameData/Strategia/Strategies/KerbinProbes.cfg +++ /dev/null @@ -1,302 +0,0 @@ -// Contract for home world probes. -// Author: fwdixon -// Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale -// Strategia License: MIT -// Contract License: CC-BY-NC-SA - - -CONTRACT_TYPE -{ - name = STG_KerbinProbes - group = Strategia - - genericTitle = Home World Probes - genericDescription = This is a Strategia contract that is automatically accepted when the pre-requisite strategy is taken. - - title = @strategy - description = @strategy.description() - synopsis = @strategy.synopsis() - completedMessage = @strategy.completedMessage() - - agent = Strategia - - targetBody = @strategy.targetBody() - - autoAccept = true - cancellable = false - - maxSimultaneous = 1 - - prestige = Exceptional - - // Contract rewards - advanceFunds = @strategy.advanceFunds() / ContractMultiplier() - rewardFunds = @strategy.rewardFunds() / ContractMultiplier() - rewardReputation = @strategy.rewardReputation() / ContractMultiplier() - failureReputation = @strategy.failureReputation() / ContractMultiplier() - failureFunds = @strategy.failureFunds() / ContractMultiplier() - - DATA - { - type = StrategiaStrategy - requiredValue = true - title = The pre-requisite strategy must be taken - - strategy = ActiveStrategies().Where(s => s.contractType() == @name).First() - } - - DATA - { - type = string - uniquenessCheck = CONTRACT_ALL - hidden = true - - strategyName = @/strategy.Name() - } - - DATA - { - type = double - upperAtmo = HomeWorld().FlyingAltitudeThreshold() / 1000 - title = Upper Atmosphere - } - - DATA - { - type = double - space = HomeWorld().AtmosphereAltitude() / 1000 - title = Upper Atmosphere - } - -// Launch First Rocket - PARAMETER - { - name = FirstRocket - type = VesselParameterGroup - title = Launch your first rocket - define = FirstRocket - - rewardFunds = 2500 / ContractMultiplier() - rewardScience = 2 / ContractMultiplier() - rewardReputation = 1 / ContractMultiplier() - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = Crewmembers - type = HasCrew - hideChildren = true - title = Uncrewed - minCrew = 0 - maxCrew = 0 - } - PARAMETER - { - name = ReachState - type = ReachState - minAltitude = 200 - disableOnStateChange = true - situation = FLYING - title = Launch your first rocket and get to at least 200 meters off the ground! - hideChildren = true - } - PARAMETER - { - name = RecoverVessel - type = RecoverVessel - completeInSequence = true - disableOnStateChange = false - hideChildren = true - } - } -// Reach the Upper Atmosphere - PARAMETER - { - name = UpperAtmoRocket - type = VesselParameterGroup - title = Launch a rocket to the Upper Atmosphere - define = UpperAtmoRocket - - rewardFunds = 3500 / ContractMultiplier() - rewardScience = 3 / ContractMultiplier() - rewardReputation = 1 / ContractMultiplier() - - completeInSequence = true - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = Crewmembers - type = HasCrew - hideChildren = true - title = Uncrewed - minCrew = 0 - maxCrew = 0 - } - PARAMETER - { - name = ReachUpperAtmo - type = ReachState - minAltitude = HomeWorld().FlyingAltitudeThreshold() - disableOnStateChange = true - situation = FLYING - title = Reach the upper atmosphere above @/upperAtmo km - hideChildren = true - } - PARAMETER - { - name = RecoverVessel - type = RecoverVessel - completeInSequence = true - disableOnStateChange = false - hideChildren = true - } - } - -// Escape the Atmosphere - PARAMETER - { - name = OrbitReturn - type = VesselParameterGroup - title = Suborbital Return - - rewardFunds = 4500 / ContractMultiplier() - rewardScience = 4 / ContractMultiplier() - rewardReputation = 2 / ContractMultiplier() - - completeInSequence = true - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = HasNoCrew - type = HasCrew - maxCrew = 0 - minCrew = 0 - title = Uncrewed - hideChildren = true - } - PARAMETER - { - name = ReachSpace - type = ReachState - disableOnStateChange = True - situation = SUB_ORBITAL - title = Reach Space - } - PARAMETER - { - name = ReturnHome - type = ReturnHome - targetBody = HomeWorld() - title = Return Home Safely - hideChildren = true - completeInSequence = true - } - PARAMETER - { - name = RecoverVessel - type = RecoverVessel - completeInSequence = true - disableOnStateChange = false - hideChildren = true - } - } - -// Orbit & Transmit Science - PARAMETER - { - name = OrbitReturn - type = VesselParameterGroup - title = Orbit and Return - define = OrbitReturn - - rewardFunds = 5500 / ContractMultiplier() - rewardScience = 7 / ContractMultiplier() - rewardReputation = 4 / ContractMultiplier() - - completeInSequence = true - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } - PARAMETER - { - name = HasNoCrew - type = HasCrew - maxCrew = 0 - minCrew = 0 - title = Uncrewed - hideChildren = true - } - PARAMETER - { - name = PartValidation1 - type = PartValidation - - category = Communication - - minCount = 1 - } - PARAMETER - { - name = PartValidation2 - type = PartValidation - - category = Electrical - - minCount = 2 - } - PARAMETER - { - name = PartValidation3 - type = PartValidation - - category = Science - - minCount = 1 - } - PARAMETER - { - name = Orbit - type = Orbit - targetBody = HomeWorld() - minInclination = 0 - title = Reach Orbit - disableOnStateChange = true - hideChildren = true - } - PARAMETER - { - name = CollectScience - type = CollectScience - location = Space - recoveryMethod = Transmit - title = Transmit science home - disableOnStateChange - completeInSequence = true - hideChildren - } -} From 318f7303e076e3ef2505893cc68eedfed2e5f374 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:14:52 -0400 Subject: [PATCH 10/22] Rename UncrewedMissions-3-ImpactorProbes.cfg to UncrewedMissions-4-ImpactorProbes.cfg --- ...3-ImpactorProbes.cfg => UncrewedMissions-4-ImpactorProbes.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Strategia/Strategies/{UncrewedMissions-3-ImpactorProbes.cfg => UncrewedMissions-4-ImpactorProbes.cfg} (100%) diff --git a/GameData/Strategia/Strategies/UncrewedMissions-3-ImpactorProbes.cfg b/GameData/Strategia/Strategies/UncrewedMissions-4-ImpactorProbes.cfg similarity index 100% rename from GameData/Strategia/Strategies/UncrewedMissions-3-ImpactorProbes.cfg rename to GameData/Strategia/Strategies/UncrewedMissions-4-ImpactorProbes.cfg From 4aa6b8416a465ba96a4b93c9ca419af0978a7324 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:15:07 -0400 Subject: [PATCH 11/22] Rename UncrewedMissions-2-PlanetaryProbes.cfg to UncrewedMissions-3-PlanetaryProbes.cfg --- ...PlanetaryProbes.cfg => UncrewedMissions-3-PlanetaryProbes.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Strategia/Strategies/{UncrewedMissions-2-PlanetaryProbes.cfg => UncrewedMissions-3-PlanetaryProbes.cfg} (100%) diff --git a/GameData/Strategia/Strategies/UncrewedMissions-2-PlanetaryProbes.cfg b/GameData/Strategia/Strategies/UncrewedMissions-3-PlanetaryProbes.cfg similarity index 100% rename from GameData/Strategia/Strategies/UncrewedMissions-2-PlanetaryProbes.cfg rename to GameData/Strategia/Strategies/UncrewedMissions-3-PlanetaryProbes.cfg From fe6ce78050a5a16eb06599e48ac24dda6a3367c8 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:15:23 -0400 Subject: [PATCH 12/22] Rename UncrewedMissions-1-MoonProbes.cfg to UncrewedMissions-2-MoonProbes.cfg --- ...issions-1-MoonProbes.cfg => UncrewedMissions-2-MoonProbes.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GameData/Strategia/Strategies/{UncrewedMissions-1-MoonProbes.cfg => UncrewedMissions-2-MoonProbes.cfg} (100%) diff --git a/GameData/Strategia/Strategies/UncrewedMissions-1-MoonProbes.cfg b/GameData/Strategia/Strategies/UncrewedMissions-2-MoonProbes.cfg similarity index 100% rename from GameData/Strategia/Strategies/UncrewedMissions-1-MoonProbes.cfg rename to GameData/Strategia/Strategies/UncrewedMissions-2-MoonProbes.cfg From 181ecfada96631793ab666f1cb547fdde0a87121 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:15:41 -0400 Subject: [PATCH 13/22] Add files via upload --- .../UncrewedMissions-1-KerbinProbes.cfg | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 GameData/Strategia/Strategies/UncrewedMissions-1-KerbinProbes.cfg diff --git a/GameData/Strategia/Strategies/UncrewedMissions-1-KerbinProbes.cfg b/GameData/Strategia/Strategies/UncrewedMissions-1-KerbinProbes.cfg new file mode 100644 index 0000000..59b0016 --- /dev/null +++ b/GameData/Strategia/Strategies/UncrewedMissions-1-KerbinProbes.cfg @@ -0,0 +1,114 @@ +// Strategy for uncrewed missions around Kerbin. +// Author: fwdixon +// Strategia License: MIT + + +STRATEGY_BODY_EXPAND:NEEDS[CustomBarnKit] +{ + author = fwdixon + name = KerbinProgram + id = KerbinProgram + + title = $body Probes + title + { + Earth = The Sputnik Program + } + desc = Why send Kerbal to space when we can be more effective in gathering science by sending out uncrewed probes? Shall we send a probe to perform experiments around $body? + department = Uncrewed Missions + icon = Strategia/icons/LocalScience1 + + groupTag = CelestialBodyProgramCelestialBodyProgram,A + + minLeastDuration = 600 + maxLeastDuration = 600 + minLongestDuration = 1200 + maxLongestDuration = 1600 + + requiredReputationMin = -1000 + requiredReputationMax = -1000 + + initialCostFunds = 0.0 + initialCostReputation = 0.0 + initialCostScience = 0.0 + + hasFactorSlider = False + factorSliderDefault = 0.10 + factorSliderSteps = 1 + + EFFECT + { + name = IncompatibleGroupRequirement + + group = CelestialBodyProgramCelestialBodyProgram + text = Cannot have more than one uncrewed strategy active at one time + } + + EFFECT + { + name = CurrencyOperationByBody + currency = Funds + operation = Multiply + + effectDescription = to milestone gains for $body + + minValue = 1.50 + maxValue = 1.50 + + AffectReasons = Progression + + includeBody = $body + } + + EFFECT + { + name = CurrencyOperationByBody + currency = Funds + operation = Multiply + + effectDescription = to milestone gains for other bodies + + minValue = 0.80 + maxValue = 0.80 + + AffectReasons = Progression + + excludeBody = $body + } + + EFFECT + { + name = ContractEffect + + contractType = STG_KerbinProbes + + targetBody = $body + synopsis = Launch a probe into orbit around $body and transmit home science. + completedMessage = You've successfully performed an automated exploration of $body! + failureMessage = Your space program has failed to put enough probes onto $body! + + advanceFunds = 5000 + rewardReputation = 10 + + rewardFunds = 25000 + + failureReputation = 5 + failureFunds = 500 + } + + EFFECT + { + name = ContractWeightBooster + + bodies = $body + weight = 25 + } + + EFFECT + { + name = OrbitBodyRequirement + + invert = true + body = $body + } +} From 63fa0e85c0b4360496e634690945b7ea02f4fa50 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:16:06 -0400 Subject: [PATCH 14/22] Add files via upload --- GameData/Strategia/Contracts/KerbinProbes.cfg | 302 ++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 GameData/Strategia/Contracts/KerbinProbes.cfg diff --git a/GameData/Strategia/Contracts/KerbinProbes.cfg b/GameData/Strategia/Contracts/KerbinProbes.cfg new file mode 100644 index 0000000..79a9ae3 --- /dev/null +++ b/GameData/Strategia/Contracts/KerbinProbes.cfg @@ -0,0 +1,302 @@ +// Contract for home world probes. +// Author: fwdixon +// Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale +// Strategia License: MIT +// Contract License: CC-BY-NC-SA + + +CONTRACT_TYPE +{ + name = STG_KerbinProbes + group = Strategia + + genericTitle = Home World Probes + genericDescription = This is a Strategia contract that is automatically accepted when the pre-requisite strategy is taken. + + title = @strategy + description = @strategy.description() + synopsis = @strategy.synopsis() + completedMessage = @strategy.completedMessage() + + agent = Strategia + + targetBody = @strategy.targetBody() + + autoAccept = true + cancellable = false + + maxSimultaneous = 1 + + prestige = Exceptional + + // Contract rewards + advanceFunds = @strategy.advanceFunds() / ContractMultiplier() + rewardFunds = @strategy.rewardFunds() / ContractMultiplier() + rewardReputation = @strategy.rewardReputation() / ContractMultiplier() + failureReputation = @strategy.failureReputation() / ContractMultiplier() + failureFunds = @strategy.failureFunds() / ContractMultiplier() + + DATA + { + type = StrategiaStrategy + requiredValue = true + title = The pre-requisite strategy must be taken + + strategy = ActiveStrategies().Where(s => s.contractType() == @name).First() + } + + DATA + { + type = string + uniquenessCheck = CONTRACT_ALL + hidden = true + + strategyName = @/strategy.Name() + } + + DATA + { + type = double + upperAtmo = HomeWorld().FlyingAltitudeThreshold() / 1000 + title = Upper Atmosphere + } + + DATA + { + type = double + space = HomeWorld().AtmosphereAltitude() / 1000 + title = Upper Atmosphere + } + +// Launch First Rocket + PARAMETER + { + name = FirstRocket + type = VesselParameterGroup + title = Launch your first rocket + define = FirstRocket + + rewardFunds = 2500 / ContractMultiplier() + rewardScience = 2 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = Crewmembers + type = HasCrew + hideChildren = true + title = Uncrewed + minCrew = 0 + maxCrew = 0 + } + PARAMETER + { + name = ReachState + type = ReachState + minAltitude = 200 + disableOnStateChange = true + situation = FLYING + title = Launch your first rocket and get to at least 200 meters off the ground! + hideChildren = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } +// Reach the Upper Atmosphere + PARAMETER + { + name = UpperAtmoRocket + type = VesselParameterGroup + title = Launch a rocket to the Upper Atmosphere + define = UpperAtmoRocket + + rewardFunds = 3500 / ContractMultiplier() + rewardScience = 3 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = Crewmembers + type = HasCrew + hideChildren = true + title = Uncrewed + minCrew = 0 + maxCrew = 0 + } + PARAMETER + { + name = ReachUpperAtmo + type = ReachState + minAltitude = HomeWorld().FlyingAltitudeThreshold() + disableOnStateChange = true + situation = FLYING + title = Reach the upper atmosphere above @/upperAtmo km + hideChildren = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Escape the Atmosphere + PARAMETER + { + name = OrbitReturn + type = VesselParameterGroup + title = Suborbital Return + + rewardFunds = 4500 / ContractMultiplier() + rewardScience = 4 / ContractMultiplier() + rewardReputation = 2 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = HasNoCrew + type = HasCrew + maxCrew = 0 + minCrew = 0 + title = Uncrewed + hideChildren = true + } + PARAMETER + { + name = ReachSpace + type = ReachState + disableOnStateChange = True + situation = SUB_ORBITAL + title = Reach Space + } + PARAMETER + { + name = ReturnHome + type = ReturnHome + targetBody = HomeWorld() + title = Return Home Safely + hideChildren = true + completeInSequence = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Orbit & Transmit Science + PARAMETER + { + name = OrbitReturn + type = VesselParameterGroup + title = Orbit and Return + define = OrbitReturn + + rewardFunds = 5500 / ContractMultiplier() + rewardScience = 7 / ContractMultiplier() + rewardReputation = 4 / ContractMultiplier() + + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = HasNoCrew + type = HasCrew + maxCrew = 0 + minCrew = 0 + title = Uncrewed + hideChildren = true + } + PARAMETER + { + name = PartValidation1 + type = PartValidation + + category = Communication + + minCount = 1 + } + PARAMETER + { + name = PartValidation2 + type = PartValidation + + category = Electrical + + minCount = 2 + } + PARAMETER + { + name = PartValidation3 + type = PartValidation + + category = Science + + minCount = 1 + } + PARAMETER + { + name = Orbit + type = Orbit + targetBody = HomeWorld() + minInclination = 0 + title = Reach Orbit + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = CollectScience + type = CollectScience + location = Space + recoveryMethod = Transmit + title = Transmit science home + disableOnStateChange + completeInSequence = true + hideChildren + } +} From 6370fef39a4424c18dd78469f1ecc1ef16abbb17 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 00:38:57 -0400 Subject: [PATCH 15/22] Update KerbinProbes.cfg --- GameData/Strategia/Contracts/KerbinProbes.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GameData/Strategia/Contracts/KerbinProbes.cfg b/GameData/Strategia/Contracts/KerbinProbes.cfg index 79a9ae3..14e31ce 100644 --- a/GameData/Strategia/Contracts/KerbinProbes.cfg +++ b/GameData/Strategia/Contracts/KerbinProbes.cfg @@ -224,10 +224,10 @@ CONTRACT_TYPE // Orbit & Transmit Science PARAMETER { - name = OrbitReturn + name = OrbitTransmit type = VesselParameterGroup - title = Orbit and Return - define = OrbitReturn + title = Orbit and Transmit Science + define = OrbitTransmit rewardFunds = 5500 / ContractMultiplier() rewardScience = 7 / ContractMultiplier() From d42b76e1340bd112a3cc4ab43caf680df07e462b Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 01:47:52 -0400 Subject: [PATCH 16/22] Update KerbinProbes.cfg --- GameData/Strategia/Contracts/KerbinProbes.cfg | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/GameData/Strategia/Contracts/KerbinProbes.cfg b/GameData/Strategia/Contracts/KerbinProbes.cfg index 14e31ce..8678f82 100644 --- a/GameData/Strategia/Contracts/KerbinProbes.cfg +++ b/GameData/Strategia/Contracts/KerbinProbes.cfg @@ -1,7 +1,7 @@ // Contract for home world probes. // Author: fwdixon // Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale -// Strategia License: MIT +// Strategia License: MIT // Contract License: CC-BY-NC-SA @@ -76,10 +76,14 @@ CONTRACT_TYPE title = Launch your first rocket define = FirstRocket + completedMessage = That thing went off like a rocket! + rewardFunds = 2500 / ContractMultiplier() rewardScience = 2 / ContractMultiplier() rewardReputation = 1 / ContractMultiplier() + disableOnStateChange = true + PARAMETER { name = NewVessel @@ -123,11 +127,14 @@ CONTRACT_TYPE title = Launch a rocket to the Upper Atmosphere define = UpperAtmoRocket + completedMessage = Anybody seen Jeb? + rewardFunds = 3500 / ContractMultiplier() rewardScience = 3 / ContractMultiplier() rewardReputation = 1 / ContractMultiplier() completeInSequence = true + disableOnStateChange = true PARAMETER { @@ -172,11 +179,14 @@ CONTRACT_TYPE type = VesselParameterGroup title = Suborbital Return + completedMessage = One more booster and it will be ours! + rewardFunds = 4500 / ContractMultiplier() rewardScience = 4 / ContractMultiplier() rewardReputation = 2 / ContractMultiplier() completeInSequence = true + disableOnStateChange = true PARAMETER { @@ -229,11 +239,14 @@ CONTRACT_TYPE title = Orbit and Transmit Science define = OrbitTransmit + completedMessage = With our new found abilities, we can reach the stars! + rewardFunds = 5500 / ContractMultiplier() rewardScience = 7 / ContractMultiplier() rewardReputation = 4 / ContractMultiplier() completeInSequence = true + disableOnStateChange = true PARAMETER { @@ -253,12 +266,13 @@ CONTRACT_TYPE } PARAMETER { - name = PartValidation1 + name = PartValidation type = PartValidation category = Communication - - minCount = 1 + + minCount = 1 + } PARAMETER { From e81b33cb065a7769a28356e10714bbed036eadb5 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 01:48:27 -0400 Subject: [PATCH 17/22] Add files via upload --- .../Strategia/Contracts/KerbinProgram.cfg | 311 ++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 GameData/Strategia/Contracts/KerbinProgram.cfg diff --git a/GameData/Strategia/Contracts/KerbinProgram.cfg b/GameData/Strategia/Contracts/KerbinProgram.cfg new file mode 100644 index 0000000..020e9fc --- /dev/null +++ b/GameData/Strategia/Contracts/KerbinProgram.cfg @@ -0,0 +1,311 @@ +// Contract for Kerbin orbital program. +// Author: fwdixon +// Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale +// Contract License: CC-BY-NC-SA +// Strategia License: MIT + +CONTRACT_TYPE +{ + name = STG_KerbinProgram + group = Strategia + + genericTitle = The Home World Program + genericDescription = This is a Strategia contract that is automatically accepted when the pre-requisite strategy is taken. + + title = @strategy + description = @strategy.description() + synopsis = @strategy.synopsis() + completedMessage = @strategy.completedMessage() + + agent = Strategia + + targetBody = @strategy.targetBody() + + autoAccept = true + cancellable = false + + maxSimultaneous = 1 + + prestige = Exceptional + + // Contract rewards + advanceFunds = @strategy.advanceFunds() / ContractMultiplier() + rewardFunds = @strategy.rewardFunds() / ContractMultiplier() + rewardReputation = @strategy.rewardReputation() / ContractMultiplier() + failureReputation = @strategy.failureReputation() / ContractMultiplier() + failureFunds = @strategy.failureFunds() / ContractMultiplier() + + DATA + { + type = StrategiaStrategy + requiredValue = true + title = The pre-requisite strategy must be taken + + strategy = ActiveStrategies().Where(s => s.contractType() == @name).First() + } + + DATA + { + type = string + uniquenessCheck = CONTRACT_ALL + hidden = true + + strategyName = @/strategy.Name() + } + +// Break the Sound Barrier + + PARAMETER + { + name = SoundBarrier + type = VesselParameterGroup + title = Break the Sound Barrier + define = SoundBarrier + + completedMessage = I feel the need, the need for speed! + + rewardFunds = 2500 + rewardScience = 2 + rewardReputation = 1 + + disableOnStateChange = false + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + } + PARAMETER + { + name = OneCrew + type = HasCrew + minCrew = 1 + maxCrew = 99 + title = Have at least 1 crewmember on board + hideChildren = true + } + PARAMETER + { + name = BreakSoundBarrier + type = ReachState + minSpeed = 343 + situation = FLYING + title = Fly faster than 343 m/s + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = ReturnHome + type = ReturnHome + targetBody = HomeWorld() + title = Return Home Safely + hideChildren = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Reach the Upper Atmosphere + PARAMETER + { + name = UpperAtmo + type = VesselParameterGroup + title = Reach the Upper Atmosphere + define = UpperAtmo + + rewardFunds = 4000 + rewardScience = 10 + rewardReputation = 2 + + completedMessage = From that high up you can see the Snack Factory! + + completeInSequence = true + disableOnStateChange = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = OneCrew + type = HasCrew + minCrew = 1 + maxCrew = 99 + title = Have at least 1 crewmember on board + hideChildren = true + } + PARAMETER + { + name = UpperAtmo + type = ReachState + minAltitude = HomeWorld().FlyingAltitudeThreshold() + situation = FLYING + title = Fly higher than @minAltitude + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = ReturnHome + type = ReturnHome + targetBody = HomeWorld() + title = Return Home Safely + hideChildren = true + completeInSequence = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Cross the Karman Line + PARAMETER + { + name = KarmanLineCrew + type = VesselParameterGroup + title = Cross the Karman Line + define = KarmanLineCrew + + completedMessage = Space! It does exist! + + rewardFunds = 5500 + rewardScience = 10 + rewardReputation = 3 + + completeInSequence = true + disableOnStateChange = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = OneCrew + type = HasCrew + minCrew = 1 + maxCrew = 99 + title = Have at least 1 crewmember on board + hideChildren = true + } + PARAMETER + { + name = ReachState + type = ReachState + situation = SUB_ORBITAL + disableOnStateChange = true + title = Achieve a Sub Orbital trajectory + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = ReturnHome + type = ReturnHome + targetBody = HomeWorld() + title = Return Home Safely + hideChildren = true + completeInSequence = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } +// Orbit and Return + PARAMETER + { + name = CrewedOrbit + type = VesselParameterGroup + title = Kerbal in Orbit + define = CrewedOrbit + + completedMessage = Hey Bob, you gotta try this! + + rewardFunds = 9000 + rewardScience = 10 + rewardReputation = 5 + + completeInSequence = true + disableOnStateChange = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = OneCrew + type = HasCrew + minCrew = 1 + maxCrew = 99 + title = Have at least 1 crewmember on board + hideChildren = true + disableOnStateChange = true + } + PARAMETER + { + name = Orbit + type = Orbit + targetBody = HomeWorld() + minAltitude = @targetBody.AtmosphereAltitude() + title = Reach Orbit + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = OneDay + type = Duration + duration = 1d + preWaitText = Waiting to reach orbit + waitingText = Orbiting for @duration + 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 + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } +} From e04e46d663da0acc055db071026a6e3609804b6a Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 01:49:00 -0400 Subject: [PATCH 18/22] Add files via upload --- .../CrewedMissions-1-KerbinProgram.cfg | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg diff --git a/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg b/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg new file mode 100644 index 0000000..77e9ecc --- /dev/null +++ b/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg @@ -0,0 +1,115 @@ +// Strategy for the Kerbin Program +// Author: fwdixon +// Strategia License: MIT + +STRATEGY_BODY_EXPAND:NEEDS[CustomBarnKit] +{ + author = fwdixon + name = KerbinProgram + id = KerbinProgram + + title = The $body Program + title + { + Earth = The Mercury Program + } + desc = For generations we've stared at the stars, now we want to go there! But some say $body is flat and those little white dots are painted on a dome. Let's find out! + department = Crewed Missions + icon = Strategia/icons/LocalScience1 + + + groupTag = CelestialBodyProgram,A + + minLeastDuration = 600 + maxLeastDuration = 600 + minLongestDuration = 1200 + maxLongestDuration = 1600 + + requiredReputationMin = -1000 + requiredReputationMax = -1000 + + initialCostFunds = 0.0 + initialCostReputation = 0.0 + initialCostScience = 0.0 + + hasFactorSlider = False + factorSliderDefault = 0.10 + factorSliderSteps = 1 + + EFFECT + { + name = IncompatibleGroupRequirement + + group = CelestialBodyProgram + text = Cannot have more than one crewed strategy active at one time + } + + EFFECT + { + name = CurrencyOperationByBody + currency = Funds + operation = Multiply + + effectDescription = to milestone gains for $body + + minValue = 1.50 + maxValue = 1.50 + + AffectReasons = Progression + + includeBody = $body + } + + EFFECT + { + name = CurrencyOperationByBody + currency = Funds + operation = Multiply + + effectDescription = to milestone gains for other bodies + + minValue = 0.80 + maxValue = 0.80 + + AffectReasons = Progression + + excludeBody = $body + } + + EFFECT + { + name = ContractEffect + + contractType = STG_KerbinProgram + + targetBody = $body + synopsis = Safely put a Kerbal in orbit around $body and bring him back again. + completedMessage = No dome here, you've successfully orbited $body! + failureMessage = It's true! $body is flat! We are trapped under this dome. + + advanceFunds = 5000.0 + + rewardReputation = 10 + + rewardFunds = 25000 + + failureReputation = 5 + failureFunds = 500 + } + + EFFECT + { + name = ContractWeightBooster + + bodies = $body + weight = 25 + } + EFFECT + { + name = ReturnFromOrbitMannedRequirement + + invert = true + + } + +} From 1ead0fceaf4a6285c1787503d93ea5e6ac2c9ca7 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 07:15:09 -0400 Subject: [PATCH 19/22] Update KerbinProgram.cfg Added the Gemini Missions --- .../Strategia/Contracts/KerbinProgram.cfg | 236 +++++++++++++++++- 1 file changed, 232 insertions(+), 4 deletions(-) diff --git a/GameData/Strategia/Contracts/KerbinProgram.cfg b/GameData/Strategia/Contracts/KerbinProgram.cfg index 020e9fc..e4d6737 100644 --- a/GameData/Strategia/Contracts/KerbinProgram.cfg +++ b/GameData/Strategia/Contracts/KerbinProgram.cfg @@ -1,7 +1,7 @@ // Contract for Kerbin orbital program. // Author: fwdixon // Attributions: Contracts copied and adapted from Career Evolution Contract Pack by pap1723, Strategia headers taken from Strategia by nightingale -// Contract License: CC-BY-NC-SA +// Contract License: CC-BY-NC-SA // Strategia License: MIT CONTRACT_TYPE @@ -122,7 +122,7 @@ CONTRACT_TYPE define = UpperAtmo rewardFunds = 4000 - rewardScience = 10 + rewardScience = 3 rewardReputation = 2 completedMessage = From that high up you can see the Snack Factory! @@ -186,7 +186,7 @@ CONTRACT_TYPE completedMessage = Space! It does exist! rewardFunds = 5500 - rewardScience = 10 + rewardScience = 4 rewardReputation = 3 completeInSequence = true @@ -247,7 +247,7 @@ CONTRACT_TYPE completedMessage = Hey Bob, you gotta try this! rewardFunds = 9000 - rewardScience = 10 + rewardScience = 5 rewardReputation = 5 completeInSequence = true @@ -308,4 +308,232 @@ CONTRACT_TYPE hideChildren = true } } + +// Send 2 Kerbals into Orbit for 1 week & EVA + PARAMETER + { + name = TwoLiveCrew + type = VesselParameterGroup + title = 2 Kerbals in Orbit + define = TwoLiveCrew + + completedMessage = Congratulations! Now that we have proven we can launch multiple Kerbals on the same craft, we need to explore the other things that will extend our reach among the stars. + + rewardFunds = 10000 + rewardScience = 7 + rewardReputation = 5 + + disableOnStateChange = true + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = TwoCrew + type = HasCrew + minCrew = 2 + maxCrew = 99 + title = Have at least 2 crewmembers on board + hideChildren = true + } + PARAMETER + { + name = Orbit + type = Orbit + targetBody = HomeWorld() + minAltitude = @targetBody.AtmosphereAltitude() + title = Reach Orbit + disableOnStateChange = true + 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 = RecoverOrTransmit + } + disableOnStateChange = true // when you go inside + } + PARAMETER + { + name = OneWeek + type = Duration + duration = 7d + preWaitText = Waiting to reach orbit + waitingText = Orbiting for @duration + 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 + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Rendezvous + PARAMETER + { + name = Rendezvous + type = VesselParameterGroup + title = First Rendezvous + define = Rendezvous + + completedMessage = Congratulations! Apparently it IS possible for two spacecraft to meet in space! + + rewardFunds = 12500 + rewardScience = 8 + rewardReputation = 10 + + disableOnStateChange = true + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = TwoCrew + type = HasCrew + minCrew = 1 + maxCrew = 99 + title = Have at least 1 crewmember on board + hideChildren = true + } + PARAMETER + { + name = Orbit + type = Orbit + minPeA = @targetBody.AtmosphereAltitude() + title = Orbit @targetBody + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = Rendezvous + type = Rendezvous + distance = 100 + title = Rendezvous two craft in Orbit + hideChildren = true + disableOnStateChange = true + } + + PARAMETER + { + name = ReturnHome + type = ReturnHome + targetBody = HomeWorld() + title = Return Home Safely + hideChildren = true + completeInSequence = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } + +// Docking + PARAMETER + { + name = Docking + type = VesselParameterGroup + title = First Docking + define = Docking + + completedMessage = Congratulations! We have achieved a hard dock! This opens up new possibilities as to what we can accomplish in space. This will allow us to create complex ships that can be assembled in orbit and to eventually learn how to create space stations. + + rewardFunds = 15000 + rewardScience = 10 + rewardReputation = 15 + + disableOnStateChange = true + completeInSequence = true + + PARAMETER + { + name = NewVessel + type = NewVessel + title = Launch a New Vessel + hideChildren = true + } + PARAMETER + { + name = TwoCrew + type = HasCrew + minCrew = 1 + maxCrew = 99 + title = Have at least 1 crewmember on board + hideChildren = true + } + PARAMETER + { + name = Orbit + type = Orbit + minPeA = @targetBody.AtmosphereAltitude() + title = Orbit @targetBody + disableOnStateChange = true + hideChildren = true + } + PARAMETER + { + name = Docking + type = Docking + title = Dock two spacecraft in orbit + hideChildren = true + disableOnStateChange = true + completeInSequence = true + } + PARAMETER + { + name = RecoverVessel + type = RecoverVessel + completeInSequence = true + disableOnStateChange = false + hideChildren = true + } + } } From ec3ef3765cfd586161692ea7ff9fd2e93816f094 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Sun, 8 Apr 2018 07:16:10 -0400 Subject: [PATCH 20/22] Update CrewedMissions-1-KerbinProgram.cfg Edited RSS Title and Contract Message. --- .../Strategies/CrewedMissions-1-KerbinProgram.cfg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg b/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg index 77e9ecc..e3a995e 100644 --- a/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg +++ b/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg @@ -11,7 +11,7 @@ STRATEGY_BODY_EXPAND:NEEDS[CustomBarnKit] title = The $body Program title { - Earth = The Mercury Program + Earth = The Mercury/Gemini Program } desc = For generations we've stared at the stars, now we want to go there! But some say $body is flat and those little white dots are painted on a dome. Let's find out! department = Crewed Missions @@ -83,9 +83,9 @@ STRATEGY_BODY_EXPAND:NEEDS[CustomBarnKit] contractType = STG_KerbinProgram targetBody = $body - synopsis = Safely put a Kerbal in orbit around $body and bring him back again. - completedMessage = No dome here, you've successfully orbited $body! - failureMessage = It's true! $body is flat! We are trapped under this dome. + synopsis = Build up to the cusp of Kerbal-kind's first journey to another world. + completedMessage = We choose to go to the Mun! + failureMessage = The bad news is we are stuck here. The good news is the hotel will make a fortune! advanceFunds = 5000.0 From 64de3b7602237ef80f97d292233e71bcb9d3c0c7 Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Wed, 11 Apr 2018 12:19:34 +0000 Subject: [PATCH 21/22] Update KerbinProgram.cfg Change SoundBarrier to FirstLaunch --- GameData/Strategia/Contracts/KerbinProgram.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GameData/Strategia/Contracts/KerbinProgram.cfg b/GameData/Strategia/Contracts/KerbinProgram.cfg index e4d6737..9ee7ee0 100644 --- a/GameData/Strategia/Contracts/KerbinProgram.cfg +++ b/GameData/Strategia/Contracts/KerbinProgram.cfg @@ -57,10 +57,10 @@ CONTRACT_TYPE PARAMETER { - name = SoundBarrier + name = FirstLaunch type = VesselParameterGroup - title = Break the Sound Barrier - define = SoundBarrier + title = Launch Our First Kerbal + define = FirstLaunch completedMessage = I feel the need, the need for speed! From c97ba79c4a379b9fdf4e68b3ab4c70218491e0ee Mon Sep 17 00:00:00 2001 From: fwdixon <37962623+fwdixon@users.noreply.github.com> Date: Thu, 12 Apr 2018 09:57:38 -0400 Subject: [PATCH 22/22] Update KerbinProgram.cfg Removed redundant NewVessel Parameters (left the one in for the 2-crew launch due to future development plans). Added requirements for TACLS, USILS, and Snacks for the 7d endurance parameter. --- .../Strategia/Contracts/KerbinProgram.cfg | 38 +------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/GameData/Strategia/Contracts/KerbinProgram.cfg b/GameData/Strategia/Contracts/KerbinProgram.cfg index 9ee7ee0..9c14bb6 100644 --- a/GameData/Strategia/Contracts/KerbinProgram.cfg +++ b/GameData/Strategia/Contracts/KerbinProgram.cfg @@ -129,14 +129,7 @@ CONTRACT_TYPE completeInSequence = true disableOnStateChange = true - - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } + PARAMETER { name = OneCrew @@ -192,13 +185,6 @@ CONTRACT_TYPE completeInSequence = true disableOnStateChange = true - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } PARAMETER { name = OneCrew @@ -253,13 +239,6 @@ CONTRACT_TYPE completeInSequence = true disableOnStateChange = true - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } PARAMETER { name = OneCrew @@ -385,6 +364,7 @@ CONTRACT_TYPE waitingText = Orbiting for @duration completionText = Orbits Complete! You may fire retros when ready disableOnStateChange = true + NEEDS[TacLifeSupport|USILifeSupport|Snacks] } PARAMETER { @@ -422,13 +402,6 @@ CONTRACT_TYPE disableOnStateChange = true completeInSequence = true - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } PARAMETER { name = TwoCrew @@ -493,13 +466,6 @@ CONTRACT_TYPE disableOnStateChange = true completeInSequence = true - PARAMETER - { - name = NewVessel - type = NewVessel - title = Launch a New Vessel - hideChildren = true - } PARAMETER { name = TwoCrew