250 {
251 bool flag = false;
252 for (
int i = 0;
i <= 500;
i++)
253 {
254 HitTileObject hitTileObject =
data[
i];
255 if (hitTileObject.type == 0)
256 {
257 continue;
258 }
259 Tile tile = Main.tile[hitTileObject.X, hitTileObject.Y];
260 if (hitTileObject.timeToLive <= 1)
261 {
262 hitTileObject.Clear();
263 flag = true;
264 continue;
265 }
266 hitTileObject.timeToLive--;
267 if ((double)hitTileObject.timeToLive < 12.0)
268 {
269 hitTileObject.damage -= 10;
270 }
271 else if ((double)hitTileObject.timeToLive < 24.0)
272 {
273 hitTileObject.damage -= 7;
274 }
275 else if ((double)hitTileObject.timeToLive < 36.0)
276 {
277 hitTileObject.damage -= 5;
278 }
279 else if ((double)hitTileObject.timeToLive < 48.0)
280 {
281 hitTileObject.damage -= 2;
282 }
283 if (hitTileObject.damage < 0)
284 {
285 hitTileObject.Clear();
286 flag = true;
287 }
288 else if (hitTileObject.type == 1)
289 {
290 if (!tile.active())
291 {
292 hitTileObject.Clear();
293 flag = true;
294 }
295 }
296 else if (tile.wall == 0)
297 {
298 hitTileObject.Clear();
299 flag = true;
300 }
301 }
302 if (!flag)
303 {
304 return;
305 }
306 int num = 1;
307 while (flag)
308 {
309 flag = false;
310 for (int j = num; j < 500; j++)
311 {
313 {
317 flag = true;
318 }
319 }
320 }
321 }