diff --git a/GameData/Strategia/Contracts/KerbinProbes.cfg b/GameData/Strategia/Contracts/KerbinProbes.cfg new file mode 100644 index 0000000..8678f82 --- /dev/null +++ b/GameData/Strategia/Contracts/KerbinProbes.cfg @@ -0,0 +1,316 @@ +// 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 + + completedMessage = That thing went off like a rocket! + + rewardFunds = 2500 / ContractMultiplier() + rewardScience = 2 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + disableOnStateChange = 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 = 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 + + completedMessage = Anybody seen Jeb? + + rewardFunds = 3500 / ContractMultiplier() + rewardScience = 3 / ContractMultiplier() + rewardReputation = 1 / ContractMultiplier() + + completeInSequence = true + disableOnStateChange = 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 + + completedMessage = One more booster and it will be ours! + + rewardFunds = 4500 / ContractMultiplier() + rewardScience = 4 / ContractMultiplier() + rewardReputation = 2 / ContractMultiplier() + + completeInSequence = true + disableOnStateChange = 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 = OrbitTransmit + type = VesselParameterGroup + 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 + { + 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 = PartValidation + 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/GameData/Strategia/Contracts/KerbinProgram.cfg b/GameData/Strategia/Contracts/KerbinProgram.cfg new file mode 100644 index 0000000..9c14bb6 --- /dev/null +++ b/GameData/Strategia/Contracts/KerbinProgram.cfg @@ -0,0 +1,505 @@ +// 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 = FirstLaunch + type = VesselParameterGroup + title = Launch Our First Kerbal + define = FirstLaunch + + 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 = 3 + rewardReputation = 2 + + completedMessage = From that high up you can see the Snack Factory! + + completeInSequence = true + disableOnStateChange = 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 = 4 + rewardReputation = 3 + + completeInSequence = true + disableOnStateChange = 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 = 5 + rewardReputation = 5 + + completeInSequence = true + disableOnStateChange = 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 + } + } + +// 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 + NEEDS[TacLifeSupport|USILifeSupport|Snacks] + } + 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 = 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 = 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 + } + } +} diff --git a/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg b/GameData/Strategia/Strategies/CrewedMissions-1-KerbinProgram.cfg new file mode 100644 index 0000000..e3a995e --- /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/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 + 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 = 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 + + rewardReputation = 10 + + rewardFunds = 25000 + + failureReputation = 5 + failureFunds = 500 + } + + EFFECT + { + name = ContractWeightBooster + + bodies = $body + weight = 25 + } + EFFECT + { + name = ReturnFromOrbitMannedRequirement + + invert = true + + } + +} 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 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 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 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 + } +} 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 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 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 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 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 27db7dc..72edaa9 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) {