Skip to content

Commit

Permalink
Add more asteroid and comet orbital classes (#248)
Browse files Browse the repository at this point in the history
  • Loading branch information
WarpPrime authored Oct 2, 2023
1 parent 899d326 commit ee29326
Show file tree
Hide file tree
Showing 3 changed files with 328 additions and 1 deletion.
18 changes: 18 additions & 0 deletions GameData/RealSolarSystem/CometDefs.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,21 @@ COMET_ORBIT_TYPE
maxCometClass = H
chanceWeight = 5 // KSP 1.11 gives 50:40:9:1 for stock classes
}
COMET_ORBIT_TYPE
{
name = sungrazer
// TODO: these strings should be localized, but I can't provide translations myself
displayName = Sungrazer
description = Sungrazing comets pass extremely close to the Sun during perihelion, and might even touch the edge of its atmosphere. However, these are extremely hard to find, so be on the lookout for them!
inclination1Min = -180
inclination1Max = 180
peMin = 0.00085
peMax = 0.0077
useEccentricity = true
eccentricityMin = 0.9995
eccentricityMax = 1.000001
minCometClass = E
maxCometClass = H
chanceWeight = 5
}
290 changes: 290 additions & 0 deletions GameData/RealSolarSystem/Compatibility/CustomAsteroids.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -673,4 +673,294 @@ AsteroidSets
max = -2
}
}

ASTEROIDGROUP
{
name = innerOort
title = Inner Oort Cloud Obj.

centralBody = Sun

// One object every 710 Earth days or about 2 years
spawnRate = 0.00141

orbitSize
{
type = SemimajorAxis
min = Ratio(Earth.sma, 2500)
max = Ratio(Earth.sma, 20000)
}

eccentricity
{
dist = Uniform
min = 0.1
max = 0.9
}

inclination
{
dist = Uniform
min = -20
max = 20
}

asteroidTypes
{
key = 0.98 CaAsteroidIcy
// key = 0.1 CaCometActive
// key = 0.18 PotatoComet
key = 0.02 PotatoRoid
}

// orbitType = long

sizes
{
key = 0.3 G
key = 0.7 H
// key = 0.2 I
}
}

ASTEROIDGROUP
{
name = outerOort
title = Outer Oort Cloud Obj.

centralBody = Sun

// One object every 1825 Earth days or about 5 years
spawnRate = 0.00055

orbitSize
{
type = SemimajorAxis
min = Ratio(Earth.sma, 15000)
max = Ratio(Earth.sma, 50000)
}

eccentricity
{
dist = Uniform
min = 0.04
max = 0.9
}

inclination
{
dist = Isotropic
}

asteroidTypes
{
key = 0.99 CaAsteroidIcy
// key = 0.1 CaCometActive
// key = 0.18 PotatoComet
key = 0.01 PotatoRoid
}

// orbitType = long

sizes
{
key = 0.3 G
key = 0.7 H
// key = 0.2 I
}
}

ASTEROIDGROUP
{
name = sungrazer
title = Sungrazer

centralBody = Sun

// One comet every 1000 Earth days or about 2.74 years
spawnRate = 0.001

orbitSize
{
type = Periapsis
min = Offset(Sun.rad, 1e6)
max = Ratio(Earth.sma, 0.04)
}

eccentricity
{
dist = Uniform
min = 0.9995
max = 1.000001
}

inclination
{
dist = Isotropic
}

orbitPhase
{
// Let comets be discovered only on approach, so that the player has
// time to prepare a flyby mission
type = MeanAnomaly
epoch = Now
min = -0.1
max = -0.0069
}

asteroidTypes
{
// key = 0.4 CaCometActive
key = 1.0 PotatoComet
}

orbitType = sungrazer

sizes
{
key = 0.3 F
key = 0.4 G
key = 0.3 H
// key = 0.1 I
}
}

ASTEROIDGROUP
{
name = hilda1
title = Hilda Ast.

centralBody = Sun

// One hilda every 30 Earth days
spawnRate = 0.011

orbitSize
{
type = SemimajorAxis
min = Resonance(Jupiter, 3:2)
max = Resonance(Jupiter, 3:2)
}

eccentricity
{
dist = Uniform
min = 0
max = 0.3
}

inclination
{
dist = Gaussian
avg = 0
stddev = 15 // hildas have inclination of less than 20
}

orbitPhase
{
type = MeanLongitude
epoch = GameStart
dist = Gaussian
avg = Offset(Jupiter.mnl0, 60)
stddev = 30
}

asteroidTypes
{
key = 1.0 CaAsteroidCarbon
}
}

ASTEROIDGROUP
{
name = hilda2
title = Hilda Ast.

centralBody = Sun

// One hilda every 30 Earth days
spawnRate = 0.011

orbitSize
{
type = SemimajorAxis
min = Resonance(Jupiter, 3:2)
max = Resonance(Jupiter, 3:2)
}

eccentricity
{
dist = Uniform
min = 0
max = 0.3
}

inclination
{
dist = Gaussian
avg = 0
stddev = 15 // hildas have inclination of less than 20
}

orbitPhase
{
type = MeanLongitude
epoch = GameStart
dist = Gaussian
avg = Offset(Jupiter.mnl0, -60)
stddev = 30
}

asteroidTypes
{
key = 1.0 CaAsteroidCarbon
}
}

ASTEROIDGROUP
{
name = hilda3
title = Hilda Ast.

centralBody = Sun

// One hilda every 30 Earth days
spawnRate = 0.011

orbitSize
{
type = SemimajorAxis
min = Resonance(Jupiter, 3:2)
max = Resonance(Jupiter, 3:2)
}

eccentricity
{
dist = Uniform
min = 0
max = 0.3
}

inclination
{
dist = Gaussian
avg = 0
stddev = 15 // hildas have inclination of less than 20
}

orbitPhase
{
type = MeanLongitude
epoch = GameStart
dist = Gaussian
avg = Offset(Jupiter.mnl0, 180)
stddev = 30
}

asteroidTypes
{
key = 1.0 CaAsteroidCarbon
}
}
}
21 changes: 20 additions & 1 deletion GameData/RealSolarSystem/ScienceDefs.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -719,4 +719,23 @@ EXPERIMENT_DEFINITION
{
default = This Centaur has remained relatively untouched since its ejection from trans-Neptunian space, and will help our scientists get a better look at conditions in the outermost regions of the protoplanetary disk. It's certainly easier than going all the way out to the Kuiper belt.
}
}
}

EXPERIMENT_DEFINITION
{
id = cometSample_sungrazer
title = Sungrazer Sample
baseValue = 450
scienceCap = 500 // vs. intermediate- (150) and long-period comets (300)
dataScale = 1

requireAtmosphere = False
requireNoAtmosphere = False
situationMask = 63
biomeMask = 7

RESULTS
{
default = The composition of this comet shows a lack of volatiles, especially due to the extreme heat of the Sun during its close passes. The sample that you've carefully packed away might be the last rocks you will get from this object before it boils away at its next perihelion.
}
}

0 comments on commit ee29326

Please sign in to comment.