forked from severedsolo/CleverSat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCleverSatCore.cfg
132 lines (123 loc) · 3.37 KB
/
CleverSatCore.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
CONTRACT_TYPE
{
name = CleverSatCore
title = #CleverSat_CleverSatCore_title // Put a new Satellite in orbit of @/targetBody1
genericTitle = #CleverSat_CleverSatCore_genericTitle // Put a new Satellite in orbit.
group = CleverSat
description = #CleverSat_CleverSatCore_desc // Someone is willing to pay us big bucks to launch a satellite into orbit for them. Sure we could be exploring the galaxy, but hey, at least the canteen won't run out of snacks!
targetBody = @/targetBody1
synopsis = #CleverSat_CleverSatCore_synopsis // Launch a satellite into the specified orbit.
completedMessage = #CleverSat_CleverSatCore_completedMessage // Well, that should hold them for a while. Until they ask us to move the thing of course.
targetBody = @/targetBody1
//debug line turn this off later
maxSimultaneous = 3
//end debug line
rewardFunds = Random(40000,60000)
rewardReputation = Random(2.0, 5.0)
DATA
{
type = CelestialBody
targetBody1 = OrbitedBodies().Random()
title = #CleverSat_CleverSatCore_DATA // Must have reached orbit.
}
//generate an orbit.
BEHAVIOUR
{
name = OrbitGenerator
type = OrbitGenerator
RANDOM_ORBIT
{
type = RANDOM
altitudeFactor = @/targetBody1.IsMoon() ? 0.8 : Prestige() == Trivial ? 0.1 : Prestige() == Significant ? 0.3 : 0.5
inclinationFactor = @/targetBody1 == Sun? 0 : Prestige() == Trivial ? 0.1 : Prestige() == Significant ? 0.3 : 0.5
}
}
PARAMETER
{
name = SatOrbit
type = VesselParameterGroup
defineList = SatList
disableOnStateChange = false
PARAMETER
{
name = HasCrewCapacity
type = HasCrewCapacity
maxCapacity = 0
}
PARAMETER
{
name = ReachSpecificOrbit
type = ReachSpecificOrbit
index = 0
//credits to nightingale for this one. Should make prestige match difficulty of contract.
deviationWindow = Prestige() == Trivial ? 10.0 : Prestige() == Significant ? 7.0 : 5.0
}
}
PARAMETER
{
name = Duration
type = Duration
startCriteria = PARAMETER_COMPLETION
parameter = SatOrbit
duration = 10s
preWaitText = #CleverSat_CleverSatCore_SatOrbit_preWaitText // waiting for correct orbit.
waitingText = #CleverSat_CleverSatCore_SatOrbit_waitingText // calibrating orbit
completionText = #CleverSat_CleverSatCore_SatOrbit_completionText // calibration completed
}
REQUIREMENT
{
name = Any
type = Any
REQUIREMENT
{
name = PartModuleUnlocked
type = PartModuleUnlocked
partModule = ModuleDeployableSolarPanel
}
REQUIREMENT:NEEDS[NearFutureSolar]
{
name = PartModuleUnlocked
type = PartModuleUnlocked
partModule = ModuleCurvedSolarPanel
}
REQUIREMENT:NEEDS[Kopernicus]
{
name = PartModuleUnlocked
type = PartModuleUnlocked
partModule = KopernicusSolarPanel
}
}
REQUIREMENT:NEEDS[RemoteTech]
{
name = CelestialBodyCoverage
type = CelestialBodyCoverage
targetBody = @/targetBody1
minCoverage = 0.5
maxCoverage = 1.0
}
REQUIREMENT
{
name = Any
type = Any
REQUIREMENT
{
name = PartUnlocked
type = PartUnlocked
part = probeCoreSphere
}
REQUIREMENT
{
name = PartUnlocked
type = PartUnlocked
part = probeCoreSphere_v2
}
}
REQUIREMENT
{
name = Expression
type = Expression
checkOnActiveContract = false
expression = @CleverSat:RNG >4
title = #CleverSat_CleverSatCore_SatOrbit_Req_Expression // The RNG must like you.
}
}