247 {
248 if (Main.netMode == 2)
249 {
250 return;
251 }
252 int num = 0;
253 for (
int i = 0;
i < 200;
i++)
254 {
255 if (Main.cloud[i].active)
256 {
257 Main.cloud[
i].Update();
258 if (!Main.cloud[i].kill)
259 {
260 num++;
261 }
262 }
263 }
264 for (int j = 0; j < 200; j++)
265 {
266 if (Main.cloud[j].active)
267 {
268 if (j > 1 && (!Main.cloud[j - 1].active || (double)Main.cloud[j - 1].scale > (double)Main.cloud[j].scale + 0.02))
269 {
270 Cloud cloud = (
Cloud)Main.cloud[j - 1].Clone();
271 Main.cloud[j - 1] = (
Cloud)Main.cloud[j].Clone();
272 Main.cloud[j] = cloud;
273 }
274 if (j < 199 && (!Main.cloud[j].active || (double)Main.cloud[j + 1].scale < (double)Main.cloud[j].scale - 0.02))
275 {
276 Cloud cloud2 = (
Cloud)Main.cloud[j + 1].Clone();
277 Main.cloud[j + 1] = (
Cloud)Main.cloud[j].Clone();
278 Main.cloud[j] = cloud2;
279 }
280 }
281 }
282 if (num < Main.numClouds)
283 {
285 }
286 else if (num > Main.numClouds)
287 {
288 int num2 =
rand.Next(num);
289 int num3 = 0;
290 while (Main.cloud[num2].kill && num3 < 100)
291 {
292 num3++;
293 num2 =
rand.Next(num);
294 }
295 Main.cloud[num2].kill = true;
296 }
297 }
static UnifiedRandom rand