public void render(Graphics2D g)
	{
		if(logic.getVictorious() != null)
		{
			g.setColor(Color.WHITE);
			g.drawString("Team " + logic.getVictorious().toString() + " is victorious!", 300, 300);
			return;
		}
		g.clearRect(0, 0, width, height);
		Ship currentShip = logic.getCurrentShip();
		// Current ship should be in center of screen
		int xOffset = width/2 - (int)currentShip.xC, yOffset = height/2 - (int)currentShip.yC;	// offsetting so that current ship is at the center
		g.drawImage(bg,
						0, 0, width, height,
						width/2-xOffset/BG_RATIO, height/2-yOffset/BG_RATIO, 3/2*width-xOffset/BG_RATIO, 3/2*height-yOffset/BG_RATIO, this);
		g.setColor(BORDER_COLOR);
		g.fillRect(xOffset - BORDER, yOffset - BORDER, BORDER, logicHeight + BORDER);
		g.fillRect(xOffset - BORDER, yOffset - BORDER, logicWidth + BORDER, BORDER);
		g.fillRect(xOffset + logicWidth, yOffset - BORDER, BORDER, logicHeight + (BORDER/2));	
		g.fillRect(xOffset - BORDER, yOffset + logicHeight, logicWidth + (BORDER/2), BORDER);
		
		for(Ship s : logic.getShips())
		{
			Team team = s.getTeam();
			s.draw(g, team, xOffset, yOffset);
	
		/*	Show hitboxes:
			Path2D shape = s.getCurShape();
			g.setColor(Color.BLUE);
			shape.transform(AffineTransform.getScaleInstance(BattleLogic.CELL_WIDTH, BattleLogic.CELL_HEIGHT));
			shape.transform(AffineTransform.getTranslateInstance(s.xC + xOffset, s.yC + yOffset));
			g.fill(shape); */
			
			for(Weapon w : s.getWeapons())
				w.draw(g, team, xOffset, yOffset);
		}
		
		g.setColor(Color.BLACK);
		g.fillRect(mmX, mmY, mmWidth, mmHeight);
		g.setColor(BORDER_COLOR);
		g.drawRect(mmX, mmY, mmWidth, mmHeight);
		g.setColor(Color.GREEN);
		for(Ship s : logic.getShips())
		{
			Point2D.Double ratio = logic.getRatio(s);
			if(s == currentShip)
				g.setColor(Color.WHITE);
			else
				g.setColor(s.getTeam().getColor());
			g.fillOval((int)(mmX + mmWidth * ratio.getX()) - MINIMAP_DOTS/2, (int)(mmY + mmHeight * ratio.getY()) - MINIMAP_DOTS/2,
							MINIMAP_DOTS/2, MINIMAP_DOTS/2);
		}
	}