@@ -124,11 +124,11 @@ void LoadFor(ProtoCrewMember kerbal)
124124
125125 Info . hash = "" ;
126126 int ? useChance = null ;
127+ string collection = "" ;
127128
128129 for ( int i = 0 ; i < SuitInfo . DataBase ? . Count ; i ++ )
129130 {
130131 SuitInfo info = ( SuitInfo ) SuitInfo . DataBase [ i ] . GetFor ( kerbal ) ;
131- string collection = "" ;
132132
133133 if ( info != null )
134134 {
@@ -139,26 +139,43 @@ void LoadFor(ProtoCrewMember kerbal)
139139 if ( info . type != null && info . type != type ) continue ;
140140 Debug . Log ( "CustomSuit.LoadFor" , "Matched suit type = " + info . type + " to current activity = " + type ) ;
141141
142+ bool useSuit = true ;
143+ if ( eva != null )
144+ {
145+ double pressure = FlightGlobals . getStaticPressure ( ) ;
146+ useSuit = ! ( pressure < info . suitMinPressure ) && ! ( pressure > info . suitMaxPressure ) ;
147+ if ( useSuit ) Debug . Log ( "CustomSuit.LoadFor" , "Matched suitMinPressure = " + info . suitMinPressure + ", suitMaxPressure = " + info . suitMaxPressure + " to current atmospheric pressure = " + pressure ) ;
148+ }
149+
150+
142151 if ( string . IsNullOrEmpty ( collection ) || collection == info . collection )
143152 {
144153 if ( info . useChance != 1 )
145154 useChance = kerbal . Hash ( info . useGameSeed ) % 100 ;
146155
147156 if ( info . useChance == 1 || useChance < info . useChance * 100 )
148157 {
158+ Debug . Log ( "CustomSuit.LoadFor" , "Matched suit useChance = " + info . useChance + " to generated chance = " + useChance + " %" ) ;
159+ Debug . Log ( "CustomSuit.LoadFor" , "Matched suit collection = " + info . collection + " to current collection = " + collection ) ;
149160 // Collection
150161 collection = info . collection ;
151162
152163 // Suit Specific Requirements
153- helmetLowPressure = helmetLowPressure ?? info . helmetLowPressure ;
154- helmetHighPressure = helmetHighPressure ?? info . helmetHighPressure ;
164+ if ( useSuit )
165+ {
166+ helmetLowPressure = helmetLowPressure ?? info . helmetLowPressure ;
167+ helmetHighPressure = helmetHighPressure ?? info . helmetHighPressure ;
168+ }
155169 jetpackMaxGravity = jetpackMaxGravity ?? info . jetpackMaxGravity ;
156170
157171 // Colors
158- body = body ?? info . body . Pick ( kerbal , info . useGameSeed ) ;
159- helmet = helmet ?? info . helmet . Pick ( kerbal , info . useGameSeed ) ;
160- visor = visor ?? info . visor . Pick ( kerbal , info . useGameSeed ) ;
161- flares = flares ?? info . flares . Pick ( kerbal , info . useGameSeed ) ;
172+ if ( useSuit )
173+ {
174+ body = body ?? info . body . Pick ( kerbal , info . useGameSeed ) ;
175+ helmet = helmet ?? info . helmet . Pick ( kerbal , info . useGameSeed ) ;
176+ visor = visor ?? info . visor . Pick ( kerbal , info . useGameSeed ) ;
177+ flares = flares ?? info . flares . Pick ( kerbal , info . useGameSeed ) ;
178+ }
162179 jetpack = jetpack ?? info . jetpack . Pick ( kerbal , info . useGameSeed ) ;
163180 flag = flag ?? info . flag . Pick ( kerbal , info . useGameSeed ) ;
164181 headset = headset ?? info . headset . Pick ( kerbal , info . useGameSeed ) ;
@@ -167,10 +184,13 @@ void LoadFor(ProtoCrewMember kerbal)
167184 backdrop = backdrop ?? info . backdrop . Pick ( kerbal , info . useGameSeed ) ;
168185
169186 // Textures
170- bodyTex = bodyTex ?? info . bodyTex . Pick ( kerbal , info . useGameSeed ) ;
171- helmetTex = helmetTex ?? info . helmetTex . Pick ( kerbal , info . useGameSeed ) ;
172- visorTex = visorTex ?? info . visorTex . Pick ( kerbal , info . useGameSeed ) ;
173- flaresTex = flaresTex ?? info . flaresTex . Pick ( kerbal , info . useGameSeed ) ;
187+ if ( useSuit )
188+ {
189+ bodyTex = bodyTex ?? info . bodyTex . Pick ( kerbal , info . useGameSeed ) ;
190+ helmetTex = helmetTex ?? info . helmetTex . Pick ( kerbal , info . useGameSeed ) ;
191+ visorTex = visorTex ?? info . visorTex . Pick ( kerbal , info . useGameSeed ) ;
192+ flaresTex = flaresTex ?? info . flaresTex . Pick ( kerbal , info . useGameSeed ) ;
193+ }
174194 jetpackTex = jetpackTex ?? info . jetpackTex . Pick ( kerbal , info . useGameSeed ) ;
175195 flagTex = flagTex ?? info . flagTex . Pick ( kerbal , info . useGameSeed ) ;
176196 gasjetsTex = gasjetsTex ?? info . gasjetsTex . Pick ( kerbal , info . useGameSeed ) ;
@@ -180,9 +200,12 @@ void LoadFor(ProtoCrewMember kerbal)
180200 backdropTex = backdropTex ?? info . backdropTex . Pick ( kerbal , info . useGameSeed ) ;
181201
182202 // Normals
183- bodyNrm = bodyNrm ?? info . bodyNrm . Pick ( kerbal , info . useGameSeed ) ;
184- helmetNrm = helmetNrm ?? info . helmetNrm . Pick ( kerbal , info . useGameSeed ) ;
185- visorNrm = visorNrm ?? info . visorNrm . Pick ( kerbal , info . useGameSeed ) ;
203+ if ( useSuit )
204+ {
205+ bodyNrm = bodyNrm ?? info . bodyNrm . Pick ( kerbal , info . useGameSeed ) ;
206+ helmetNrm = helmetNrm ?? info . helmetNrm . Pick ( kerbal , info . useGameSeed ) ;
207+ visorNrm = visorNrm ?? info . visorNrm . Pick ( kerbal , info . useGameSeed ) ;
208+ }
186209 jetpackNrm = jetpackNrm ?? info . jetpackNrm . Pick ( kerbal , info . useGameSeed ) ;
187210 flagNrm = flagNrm ?? info . flagNrm . Pick ( kerbal , info . useGameSeed ) ;
188211 headsetNrm = headsetNrm ?? info . headsetNrm . Pick ( kerbal , info . useGameSeed ) ;
0 commit comments