public static void checkNPCMovement() { IEnumerator enumerator; IEnumerator enumerator2; ArrayList list = new ArrayList(); try { enumerator = Module1.displayNPCs.GetEnumerator(); while (enumerator.MoveNext()) { NPCShip current = (NPCShip)enumerator.Current; if (current.getMoving()) { if ((DateTime.Now.Millisecond - current.getTime().Millisecond) >= current.getMoveTime()) { current.setMoving(false); list.Add(current); } } else { list.Add(current); } } } finally { if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } try { enumerator2 = list.GetEnumerator(); while (enumerator2.MoveNext()) { NPCShip ship2 = (NPCShip)enumerator2.Current; int num2 = (int)Math.Round((double)(ship2.getPosX() + rnd.Next(-100, 100))); int num3 = (int)Math.Round((double)(ship2.getPosY() + rnd.Next(-100, 100))); int num = (int)Math.Round(Math.Sqrt(((num2 - Module1.mainHero.getPosX()) * (num2 - Module1.mainHero.getPosX())) + ((num3 - Module1.mainHero.getPosY()) * (num3 - Module1.mainHero.getPosY())))); int time = (int)Math.Round((double)(((double)num) / (((double)ship2.getSpeed()) / 1000.0))); sendNPCMove(ship2.getUserID(), (double)num2, (double)num3, time); ship2.setPosX((double)num2); ship2.setPosY((double)num3); ship2.setMoving(true); ship2.setTime(DateTime.Now); ship2.setMoveTime(time); NPCShip ship3 = mainFunctions.getNPCByID(ship2.getUserID()); } } finally { if (enumerator2 is IDisposable) { (enumerator2 as IDisposable).Dispose(); } } }