private void MoveEnemy(Point enPos, EnemyUnit eu) { int moves = eu.GetMovementSpeed(); Stack <Point> path = GetMovementPath(enPos, eu); Point oldPoint; Point newPoint = enPos; while (moves-- > 0) { if (path.Count == 0) { break; } oldPoint = newPoint; newPoint = path.Pop(); if (this.entities.ContainsKey(newPoint)) { LookForPlayers(newPoint, eu); break; } entities.Remove(oldPoint); entities.Add(newPoint, eu); eu.MoveUnit(oldPoint, newPoint); LookForPlayers(newPoint, eu); } if (path.Count == 0) { eu.state.NextDestination(eu); } }