// Kiwi's Tech Tree Overhaul (Coatl Aerospace by Akron Kerbalism Experiments Patch) // Version 1.3 // Created: 23 October 2020 for KSP 1.9.1 to 1.10.1 // Last Updated: 14 December 2020 // 19 November 2020: Fixed incorrect FOR KerbalismDefault pass // 23 November 2020: Added correct NEEDS to kdex science experiment // 29 November 2020: Small formatting changes // 14 December 2020: Generalized some of the experiments // Define some custom experiments //KDEX Experiment and definitions by mastertorch, spelling corrections and additional definitions by Akron !EXPERIMENT_DEFINITION:HAS[#id[ca_kdex]]:NEEDS[CoatlAerospace,FeatureScience] {} // This will get deleted if KDEX mod is installed, but deleting as using our own //KDEX Experiment and definitions by mastertorch, spelling corrections and additional definitions by Akron !EXPERIMENT_DEFINITION:HAS[#id[ca_filmcamera]]:NEEDS[CoatlAerospace,FeatureScience] {} // Deleting as using our own based on CA. !EXPERIMENT_DEFINITION:HAS[#id[ca_orbitalScope]]:NEEDS[CoatlAerospace,FeatureScience] {} // This will get deleted if Orbital Science is installed, so just making an alternate !EXPERIMENT_DEFINITION:HAS[#id[ca_gammaRay]]:NEEDS[CoatlAerospace,FeatureScience] {} !EXPERIMENT_DEFINITION:HAS[#id[ca_IRspec]]:NEEDS[CoatlAerospace,FeatureScience] {} !EXPERIMENT_DEFINITION:HAS[#id[ca_UVspec]]:NEEDS[CoatlAerospace,FeatureScience] {} !EXPERIMENT_DEFINITION:HAS[#id[ca_solarWind]]:NEEDS[CoatlAerospace,FeatureScience] {} !EXPERIMENT_DEFINITION:HAS[#id[ca_ionElec]]:NEEDS[CoatlAerospace,FeatureScience] {} !EXPERIMENT_DEFINITION:HAS[#id[ca_soilScoop]]:NEEDS[CoatlAerospace,FeatureScience] {} @KERBALISM_GROUP_SETTINGS:NEEDS[FeatureScience,CoatlAerospace] { CAMERA_EXPERIMENTS { BaseSlots = 3 kiwi_orbitalScope { ECCost = 0.1 size = 450 value = 4 duration = 3600 // Hour per biome requirements = Sunlight ResourceRates = UnlockTech = scienceTech SetupMass = 0.02 SetupCost = 1000 } kiwi_IRspec { ECCost = 0.15 size = 450 value = 6 duration = 3600 requirements = ResourceRates = UnlockTech = scienceTech SetupMass = 0.02 SetupCost = 1000 } kiwi_UVspec { ECCost = 0.15 size = 450 value = 6 duration = 3600 requirements = ResourceRates = UnlockTech = scienceTech SetupMass = 0.02 SetupCost = 1000 } } } @KERBALISM_GROUP_SETTINGS:NEEDS[FeatureScience,CoatlAerospace] { ARGOMAST_EXPERIMENTS { BaseSlots = 2 magnetometer { ECCost = 0.2 size = 550 value = 5 duration = 151200 SetupMass = 0.01 SetupCost = 1000 UnlockTech = basicScience requirements = CrewRequirement = ResourceRates = } geigerCounter { ECCost = 0.005 size = 0.5 value = 4 duration = 497 SetupMass = 0.005 SetupCost = 400 UnlockTech = engineering101 requirements = CrewRequirement = ResourceRates = } } } @PART[ca_DUSTC]:NEEDS[CoatlAerospace,FeatureScience] // Dust Experiment { !MODULE[*ModuleScience*],* {} MODULE { name = Experiment experiment_id = kiwi_kdex anim_deploy = deploy } } @PART[ca_DUSTX]:NEEDS[CoatlAerospace,FeatureScience] // Dust Experiment { !MODULE[*ModuleScience*],* {} MODULE { name = Experiment experiment_id = kiwi_kdex } } @PART[ca_DUSTX|ca_DUSTC]:HAS[@MODULE[Experiment]]:NEEDS[CoatlAerospace,FeatureScience]:AFTER[zzzKerbalismDefault] { MODULE { name = HardDrive experiment_id = kiwi_kdex dataCapacity = 0 sampleCapacity = 1 } } @PART[ca_ELIX]:NEEDS[CoatlAerospace,FeatureScience] { !MODULE[*ModuleScience*],* {} MODULE { name = Experiment experiment_id = kiwi_ionElec anim_deploy = deploy } } @PART[ca_GRS]:NEEDS[CoatlAerospace,FeatureScience] { !MODULE[*ModuleScience*],* {} MODULE { name = Experiment experiment_id = kiwi_gammaRay anim_deploy = deploy } } @PART[ca_LUV]:NEEDS[CoatlAerospace,FeatureScience] { !MODULE[*ModuleScience*],* {} !MODULE[ModuleAnimateGeneric] {} MODULE { name = Experiment experiment_id = kiwi_UVspec anim_deploy = deploy } } @PART[ca_KLIR]:NEEDS[CoatlAerospace,FeatureScience] { !MODULE[*ModuleScience*],* {} MODULE { name = Experiment experiment_id = kiwi_IRspec } } @PART[ca_telescope_a]:NEEDS[CoatlAerospace,FeatureScience] { !MODULE[*ModuleScience*],* {} MODULE { name = Experiment experiment_id = kiwi_orbitalScope } } // Juno/Maven Solar Panel and Magnetometer // Didn't seem to get picked up through the default patches @PART[sp_juno_mag|sp_maven]:NEEDS[CoatlAerospace,FeatureScience] { !MODULE[*ModuleScience*],* {} !MODULE[DMMagBoomModule],* {} MODULE { name = Experiment experiment_id = magnetometer } } @PART[ca_landv_cam_s1]:NEEDS[CoatlAerospace,FeatureScience] // Landing Site Cam { !MODULE[DMModuleScienceAnimateGeneric]:HAS[#experimentID[ca_SiteSurvey]] {} MODULE { name = Experiment experiment_id = kiwi_siteSurvey anim_deploy = deploy } } @PART[ca_landv_cam_s1]:HAS[@MODULE[Experiment]]:NEEDS[CoatlAerospace,FeatureScience]:AFTER[zzzKerbalismDefault] { MODULE { name = HardDrive experiment_id = kiwi_siteSurvey dataCapacity = 0 sampleCapacity = 1 } } @PART[ca_draco]:HAS[@MODULE[Experiment]]:NEEDS[CoatlAerospace,FeatureScience]:AFTER[zzzKerbalismDefault] { @MODULE[HardDrive] { @sampleCapacity = 1 } } @PART[ca_explorer]:NEEDS[CoatlAerospace,FeatureScience] { !MODULE[ModuleScienceExperiment]:HAS[#experimentID[ca_UVspec]] {} MODULE { name = Experiment experiment_id = kiwi_UVtelescope } } @PART[ca_explorer]:NEEDS[CoatlAerospace,FeatureScience]:AFTER[zzzKerbalismDefault] { @MODULE[HardDrive] { @dataCapacity = 128 } } @PART[ca_landv_soilScoop]:NEEDS[CoatlAerospace,FeatureScience] // Soil Scoop { !MODULE[DMModuleScienceAnimateGeneric]:HAS[#experimentID[ca_soilScoop]] {} MODULE { name = Experiment experiment_id = kiwi_soilScoop anim_deploy = deploy } } @PART[ca_landv_soilScoop]:HAS[@MODULE[Experiment]]:NEEDS[CoatlAerospace,FeatureScience]:AFTER[zzzKerbalismDefault] { MODULE { name = HardDrive experiment_id = kiwi_siteSurvey dataCapacity = 0 sampleCapacity = 1 } } @PART[ca_SWIS|ca_stereoBoom]:NEEDS[FeatureScience,CoatlAerospace]:FIRST { !MODULE[ModuleScienceExperiment],* {}// Get rid of the pre-configured experiments MODULE { name = Configure title = Solar Wind Experiments } } @PART[ca_argo-mk2-mast]:NEEDS[FeatureScience,CoatlAerospace]:FIRST { !MODULE[ModuleScienceExperiment],* {}// Get rid of the pre-configured experiments MODULE { name = Configure title = Argo Mast Experiments } } @PART[ca_argo-mk2-mast]:HAS[@MODULE[Configure]:HAS[#title[Argo?Mast?Experiments]]]:NEEDS[FeatureScience,CoatlAerospace] { //adding the experiment modules. The other parameters get added/overwritten later, thus it's pointless to add them here. MODULE { name = Experiment experiment_id = geigerCounter } MODULE { name = Experiment experiment_id = magnetometer } @MODULE[Configure]:HAS[#title[Argo?Mast?Experiments]] { SETUP { name = None desc = Empty slot for mass and cost savings, should you not require any experiments installed. } SETUP { name = Geiger Counter desc = Installs a Geiger Counter on the Mast, allowing you to perform radiation scans. MODULE { type = Experiment id_field = experiment_id id_value = geigerCounter } } SETUP { name = Magnetometer desc = Installs a Magnetometer on the mast, allowing you to explore magnetic fields. MODULE { type = Experiment id_field = experiment_id id_value = magnetometer } } } } // ============================================================================ // The experiments were just added above, but not configured. This section takes care of that // Patching the SETUPs along the way. // ============================================================================ @PART[ca_argo-mk2-mast]:HAS[@MODULE[Configure]:HAS[#title[Argo?Mast?Experiments]]]:NEEDS[FeatureScience,CoatlAerospace]:AFTER[KerbalismDefault] { @MODULE[Configure]:HAS[#title[Argo?Mast?Experiments]] { %slots = #$@KERBALISM_GROUP_SETTINGS/ARGOMAST_EXPERIMENTS/BaseSlots$ @SETUP:HAS[#name[Geiger?Counter]] { %tech = #$../../@KERBALISM_GROUP_SETTINGS/ARGOMAST_EXPERIMENTS/geigerCounter/UnlockTech$ %mass = #$../../@KERBALISM_GROUP_SETTINGS/ARGOMAST_EXPERIMENTS/geigerCounter/SetupMass$ %cost = #$../../@KERBALISM_GROUP_SETTINGS/ARGOMAST_EXPERIMENTS/geigerCounter/SetupCost$ } @SETUP:HAS[#name[Magnetometer]] { %tech = #$../../@KERBALISM_GROUP_SETTINGS/ARGOMAST_EXPERIMENTS/magnetometer/UnlockTech$ %mass = #$../../@KERBALISM_GROUP_SETTINGS/ARGOMAST_EXPERIMENTS/magnetometer/SetupMass$ %cost = #$../../@KERBALISM_GROUP_SETTINGS/ARGOMAST_EXPERIMENTS/magnetometer/SetupCost$ } } } @PART[ca_argo-mk4-cam|mer_rsp|ca_vor_camera|ca_sciBoom]:NEEDS[FeatureScience,CoatlAerospace]:FIRST { !MODULE[ModuleScienceExperiment],* {} // Get rid of the pre-configured experiments MODULE { name = Configure title = Camera Experiments } } @PART[ca_argo-mk4-cam|mer_rsp|ca_vor_camera|ca_sciBoom]:HAS[@MODULE[Configure]:HAS[#title[Camera?Experiments]]]:NEEDS[FeatureScience,CoatlAerospace] { //adding the experiment modules. The other parameters get added/overwritten later, thus it's pointless to add them here. MODULE { name = Experiment experiment_id = kiwi_orbitalScope } MODULE { name = Experiment experiment_id = kiwi_IRspec } MODULE { name = Experiment experiment_id = kiwi_UVspec } @MODULE[Configure]:HAS[#title[Camera?Experiments]] { SETUP { name = None desc = Empty slot for mass and cost savings, should you not require any experiments installed. } SETUP { name = Orbital Images desc = Installs a two-camera system (narrow-angle/wide-angle) to provide imagery of planets and moons. MODULE { type = Experiment id_field = experiment_id id_value = kiwi_orbitalScope } } SETUP { name = Infrared Spectrometry desc = Installs an infrared interferometer spectrometer to investigate atmospheric composition, vertical temperature profiles from planets and satellites as well as composition, thermal properties, and size of particles in planetary rings. MODULE { type = Experiment id_field = experiment_id id_value = kiwi_IRspec } } SETUP { name = Ultraviolet Spectrometry desc = Installs an ultraviolet spectrometer to investigate atmospheric properties and to measure radiation. MODULE { type = Experiment id_field = experiment_id id_value = kiwi_UVspec } } } } // ============================================================================ // The experiments were just added above, but not configured. This section takes care of that // Patching the SETUPs along the way. // ============================================================================ @PART[ca_argo-mk4-cam|mer_rsp|ca_vor_camera|ca_sciBoom]:HAS[@MODULE[Configure]:HAS[#title[Camera?Experiments]]]:NEEDS[FeatureScience,CoatlAerospace]:AFTER[KerbalismDefault] { @MODULE[Configure]:HAS[#title[Camera?Experiments]] { %slots = #$@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/BaseSlots$ @SETUP:HAS[#name[Orbital?Images]] { %tech = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_orbitalScope/UnlockTech$ %mass = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_orbitalScope/SetupMass$ %cost = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_orbitalScope/SetupCost$ } @SETUP:HAS[#name[Infrared?Spectrometry]] { %tech = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_IRspec/UnlockTech$ %mass = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_IRspec/SetupMass$ %cost = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_IRspec/SetupCost$ } @SETUP:HAS[#name[Ultraviolet?Spectrometry]] { %tech = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_UVspec/UnlockTech$ %mass = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_UVspec/SetupMass$ %cost = #$../../@KERBALISM_GROUP_SETTINGS/CAMERA_EXPERIMENTS/kiwi_UVspec/SetupCost$ } } } @PART[ca_argo-mk2-cam]:NEEDS[FeatureScience,CoatlAerospace]:FIRST { !MODULE[DMModuleScienceAnimateGeneric],* {} // Get rid of the pre-configured experiments MODULE { name = Configure title = Early Camera Experiments } MODULE { name = HardDrive experiment_id = kiwi_filmCamera dataCapacity = 2 sampleCapacity = 5 } } @PART[ca_draco]:NEEDS[FeatureScience,CoatlAerospace] { !MODULE[ModuleEnviroSensor],* {} !MODULE[ModuleScienceExperiment],2 {} // Order is important here. !MODULE[ModuleScienceExperiment],1 {} !MODULE[ModuleScienceExperiment],0 {} }