public void render(FadingSpriteBatch sb){
		int marginL = cornerTL.getRegionWidth(), marginD = cornerBL.getRegionHeight();
		int d = innerWidth * (side - 1)/2, o = 10;
//		float z = main.getCam().zoom / Camera.ZOOM_NORMAL;
		float x = 2*(float) Math.cos(lifetime);
		float y = 2*(float) Math.sin(lifetime);
		Vector2 v = new Vector2(owner.getPosition().x * Vars.PPM + o * side + x,
				owner.getPosition().y*Vars.PPM + y + owner.height + 1);
		float x1 = (2 * side / 9f) * (2 * marginL + innerWidth - spike.getRegionWidth()) 
				+ v.x - marginL;
		float y1 = v.y - spike.getRegionHeight() ;
		
		boolean bool = false;
		if(sb.isDrawingOverlay()){
			sb.setOverlayDraw(false);
			bool = true;
		}
		
//		System.out.println("("+speedX+", "+speedY+")\t("+innerWidth+", "+innerHeight+")\t("+maxWidth+", "+maxHeight+")");
		
		//draw all parts
		sb.draw(top, v.x + d, v.y + innerHeight, innerWidth, top.getRegionHeight());
		sb.draw(left, v.x - marginL + d, v.y, marginL, innerHeight);
		sb.draw(center, v.x + d, v.y, innerWidth, innerHeight);
		sb.draw(right, v.x + d + innerWidth, v.y, marginL, innerHeight);
		sb.draw(bottom, v.x + d, v.y - marginD, innerWidth, marginD);
		sb.draw(cornerTL, v.x - marginL + d, v.y + innerHeight);
		sb.draw(cornerTR, v.x + innerWidth + d, v.y + innerHeight);
		sb.draw(cornerBL, v.x + d - marginL, v.y - marginD);
		sb.draw(cornerBR, v.x + d + innerWidth, v.y - marginD);
		sb.draw(spike, x1, y1);
		
//		String msg = msgSrc.substring(0, shown);
		// draw text centered in textbox
		if(expanded){
			float w;
			for(int i = 0; i<text.length; i++){
				w = (maxWidth - (font[0].getRegionWidth()+1) * text[i].length()) / 2f;
				main.drawString(sb, font, font[0].getRegionWidth(), text[i], 
						v.x + w + d , v.y + maxHeight - (i + 1) * font[0].getRegionHeight());
			}
		}
		
		if(bool)
			sb.setOverlayDraw(true);
	}