public Tower(int x, int y, double visionRadius, int fireRate,
			int shootStrength, MatrixGraph graph, ImageItem image,
			Effect effect, double shootSplashRadius) {
		super(x, y, image);

		selected = false;
		this.effect = effect;
		setVisionRadius(visionRadius);
		setVisionAngle(360.d);
		setDirection(new Vector2D(x, y));
		this.shootStrenght = shootStrength;
		this.shootSplashRadius = shootSplashRadius;
		this.fireRate = fireRate;

		buffs = new ArrayList<TowerModifier>();

		double circleX1 = (getX() - visionRadius);
		double circleY1 = (getY() - visionRadius);

		circle = new Ellipse2D.Double(circleX1, circleY1, visionRadius * 2,
				visionRadius * 2);

		this.graph = graph;
	}