public void Prune()
{
bool flag = false;
for (int index = 0; index <= 20; ++index)
{
HitTile.HitTileObject hitTileObject = this.data[index];
if (hitTileObject.type != 0)
{
Tile tile = Main.tile[hitTileObject.X, hitTileObject.Y];
if (hitTileObject.timeToLive <= 1)
{
hitTileObject.Clear();
flag = true;
}
else
{
--hitTileObject.timeToLive;
if ((double)hitTileObject.timeToLive < 12.0)
hitTileObject.damage -= 10;
else if ((double)hitTileObject.timeToLive < 24.0)
hitTileObject.damage -= 7;
else if ((double)hitTileObject.timeToLive < 36.0)
hitTileObject.damage -= 5;
else if ((double)hitTileObject.timeToLive < 48.0)
hitTileObject.damage -= 2;
if (hitTileObject.damage < 0)
{
hitTileObject.Clear();
flag = true;
}
else if (hitTileObject.type == 1)
{
if (!tile.active())
{
hitTileObject.Clear();
flag = true;
}
}
else if ((int)tile.wall == 0)
{
hitTileObject.Clear();
flag = true;
}
}
}
}
if (!flag)
return;
int num1 = 1;
while (flag)
{
flag = false;
for (int index = num1; index < 20; ++index)
{
if (this.data[this.order[index]].type == 0 && this.data[this.order[index + 1]].type != 0)
{
int num2 = this.order[index];
this.order[index] = this.order[index + 1];
this.order[index + 1] = num2;
flag = true;
}
}
}
}