public void Render(GameContainer gc, Graphics g, LinkedList<Light> lights) throws SlickException
	{
		// Shadow drawing
		// if (lights != null)
		// {
		// for (Light curr : lights)
		// {
		// Color tmp = new Color(0, 0, 0, 0.75f / (lights.size() + 1));
		// double d = pos.getDistance(new Vector2(curr.getX(), curr.getY()));
		// if (curr.isSwitched_on() && curr.isOn())
		// {
		// Rect rect =
		// new Rect(
		// (int) pos.X + 32,
		// (int) pos.Y + 32,
		// (int) pos.X + 96,
		// (int) pos.Y + 32,
		// (int) pos.X + 32,
		// (int) pos.Y + 96,
		// (int) pos.X + 96,
		// (int) pos.Y + 96);
		// tmp.a -= d / 1500000f;
		//
		// for (int j = 0; j < 4; j++)
		// {
		// Line l = rect.edges[j];
		// Polygon poly = new Polygon();
		// poly.addPoint(l.x0, l.y0);
		// poly.addPoint(l.x1, l.y1);
		// poly.addPoint(l.x1 - curr.getX() + l.x1, l.y1 - curr.getY() + l.y1);
		// poly.addPoint(l.x0 - curr.getX() + l.x0, l.y0 - curr.getY() + l.y0);
		//
		// ShapeFill fill =
		// new GradientFill(
		// (l.x0 + l.x1) / 2,
		// (l.y1 + l.y0) / 2,
		// tmp,
		// (l.x1 - curr.getX() + l.x1 + l.x0 - curr.getX() + l.x0) / 2,
		// (l.y1 - curr.getY() + l.y1 + l.y0 - curr.getY() + l.y0) / 2,
		// new Color(0, 0, 0, 0f));
		//
		// g.fill(poly, fill);
		// }
		// }
		// }
		// }

		g.pushTransform();
		g.rotate((float) drawPos().X + GetSize() / 2, (float) drawPos().Y + GetSize() / 2, angle);
		switch (move)
		{
		case IdleStand:
			stand_idle.draw((float) drawPos().X, (float) drawPos().Y, GetSize(), GetSize());
			break;
		case Walk:
			stand_walk.draw((float) drawPos().X, (float) drawPos().Y, GetSize(), GetSize());
			break;
		default:
			stand_walk.draw((float) drawPos().X, (float) drawPos().Y, GetSize(), GetSize());
			break;
		}
		g.popTransform();

		/*
		 * ############# ### DEBUG ### #############
		 */

		//		// Collisions' dummy
		//		g.drawRect((float) collision.getX(), (float) collision.getY(), (float) collision.getWidth(), (float) collision.getHeight());
		//
		//		// Exact position used for calculations
		//		g.fillOval((float) collision.getCenterX() - 15, (float) collision.getCenterY() - 15, 30, 30);
		//
		// FOV display (color depending on ennemy's state)
		switch (state)
		{
		case Normal:
			g.setColor(new Color(100, 169, 87, 180));
			break;
		case Suspicious:
			g.setColor(new Color(242, 141, 59, 180));
			break;
		case Alerted:
			g.setColor(new Color(255, 0, 0, 180));
			break;
		case Investigating:
			g.setColor(new Color(255, 125, 0, 180));
			break;
		default:
			g.setColor(new Color(255, 0, 0, 180));
			break;
		}
		g.fill(fov);
//
//		// Hiding area (where player can't be seen by this ennemy)
//		g.setColor(Color.cyan);
//		for (Polygon p : ps)
//			g.fill(p);
//
//		// Waypoints
//		if (startingWaypoint != null && finalWaypoint != null)
//		{
//			g.setColor(Color.green);
//			g.fillOval(startingWaypoint.drawX() - 30, startingWaypoint.drawY() - 30, 60, 60);
//			g.setColor(Color.red);
//			g.fillOval(finalWaypoint.drawX() - 30, finalWaypoint.drawY() - 30, 60, 60);
//			g.setColor(Color.cyan);
//			g.fillOval(destination.drawX() - 30, destination.drawY() - 30, 60, 60);
//		}
		/*
		 * ############# ### DEBUG ### #############
		 */

	}