58 {
59
60
61
62 if (Main.netMode == 2)
63 {
64 return;
65 }
67 for (int i = 0; i < 200; i++)
68 {
69 if (!Main.cloud[i].active)
70 {
72 break;
73 }
74 }
76 {
77 return;
78 }
79 Main.cloud[
num].kill =
false;
80 Main.cloud[
num].rSpeed = 0
f;
81 Main.cloud[
num].sSpeed = 0
f;
82 Main.cloud[
num].scale = (float)
rand.Next(70, 131) * 0.01f;
83 Main.cloud[
num].rotation = (float)
rand.Next(-10, 11) * 0.01f;
86 Main.cloud[
num].Alpha = 0
f;
87 Main.cloud[
num].spriteDir = (SpriteEffects)0;
88 if (
rand.Next(2) == 0)
89 {
90 Main.cloud[
num].spriteDir = (SpriteEffects)1;
91 }
92 float num2 = Main.windSpeedCurrent;
93 if (!Main.gameMenu)
94 {
95 num2 = Main.windSpeedCurrent - Main.player[Main.myPlayer].velocity.X * 0.1f;
96 }
100 {
102 }
104 {
106 }
109 Main.cloud[
num].Alpha = 0
f;
110 Main.cloud[
num].position.Y =
rand.Next((
int)((float)(-Main.screenHeight) * 0.25f), (
int)((float)Main.screenHeight * 0.15f));
111 if (
rand.Next(3) == 0)
112 {
113 Main.cloud[
num].position.Y -=
rand.Next((
int)((float)Main.screenHeight * 0.1f));
114 }
115 Main.cloud[
num].type =
rand.Next(4);
116 if ((Main.cloudAlpha > 0
f &&
rand.Next(4) != 0) || (Main.cloudBGActive >= 1
f &&
rand.Next(2) == 0))
117 {
118 Main.cloud[
num].type =
rand.Next(18, 22);
119 if ((
double)Main.cloud[
num].scale >= 1.15)
120 {
121 Main.cloud[
num].position.Y -= 150
f;
122 }
123 if (Main.cloud[
num].scale >= 1
f)
124 {
125 Main.cloud[
num].position.Y -= 150
f;
126 }
127 }
128 else if (Main.cloudBGActive <= 0
f && Main.cloudAlpha == 0
f && Main.cloud[
num].scale < 1
f && Main.cloud[
num].position.Y < (
float)(-Main.screenHeight) * 0.15
f && (
double)Main.numClouds <= 80.0)
129 {
130 Main.cloud[
num].type =
rand.Next(9, 14);
131 }
132 else if ((((
double)Main.cloud[
num].scale < 1.15 && Main.cloud[
num].position.Y < (float)(-Main.screenHeight) * 0.3f) || ((
double)Main.cloud[
num].scale < 0.85 && Main.cloud[
num].position.Y < (float)Main.screenHeight * 0.15f)) && ((
double)Main.numClouds > 70.0 || Main.cloudBGActive >= 1
f))
133 {
134 Main.cloud[
num].type =
rand.Next(4, 9);
135 }
136 else if (Main.cloud[
num].position.Y > (
float)(-Main.screenHeight) * 0.15
f &&
rand.Next(2) == 0 && (double)Main.numClouds > 20.0)
137 {
138 Main.cloud[
num].type =
rand.Next(14, 18);
139 }
140 if (
rand.Next((Main.dontStarveWorld || Main.tenthAnniversaryWorld) ? 25 : 150) == 0)
141 {
143 }
144 else if (Main.tenthAnniversaryWorld &&
rand.Next(3) == 0)
145 {
147 }
148 if ((
double)Main.cloud[
num].scale > 1.2)
149 {
150 Main.cloud[
num].position.Y += 100
f;
151 }
152 if ((
double)Main.cloud[
num].scale > 1.3)
153 {
154 Main.cloud[
num].scale = 1.3f;
155 }
156 if ((
double)Main.cloud[
num].scale < 0.7)
157 {
158 Main.cloud[
num].scale = 0.7f;
159 }
160 Main.cloud[
num].active =
true;
161 Main.cloud[
num].position.X = x;
162 if (Main.cloud[
num].position.X > (
float)(Main.screenWidth + 400))
163 {
164 Main.cloud[
num].Alpha = 1
f;
165 }
167 {
168 Main.cloud[
num].Alpha = 1
f;
169 }
170 Rectangle
rectangle =
default(Rectangle);
172 Rectangle value = default(Rectangle);
173 for (
int j = 0;
j < 200;
j++)
174 {
175 if (
num !=
j && Main.cloud[
j].active)
176 {
177 ((Rectangle)(
ref value)).
_002Ector((
int)Main.cloud[
j].position.X, (int)Main.cloud[
j].position.Y, Main.cloud[
j].width, Main.cloud[
j].height);
179 {
180 Main.cloud[
num].active =
false;
181 }
182 }
183 }
184 }
static UnifiedRandom rand
static int RollRareCloud()
static Asset< Texture2D >[] Cloud