@Override
	protected void erender() {
		glPushMatrix();
		{
			glColor4d(0.5, 1.0, 1.0, attackRedFactor);
			glTranslated(game.comp.getDisplay().getCamera().getX(),game.comp.getDisplay().getCamera().getY(),0);
			phaseTexture.bind();
			Point d = game.comp.getDisplay().getCamera().getFOV();
			glBegin(GL_QUADS);
			{
				glTexCoord2f(0,0); glVertex2d(0, 0);
				glTexCoord2f(0,1); glVertex2d(0, d.y);
				glTexCoord2f(1,1); glVertex2d(d.x, d.y);
				glTexCoord2f(1,0); glVertex2d(d.x, 0);
			}
			glEnd();
			glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
		}
		glPopMatrix();
		if(lightMapSize > 0){
			glPushMatrix();
			{
				glColor4d(1.0, 1.0, 1.0, 1);
				glTranslated(x,y,0);
				lightMapTexture.bind();
				Point z = new Point((int)lightMapSize,(int)lightMapSize);
				glBegin(GL_QUADS);
				{
					glTexCoord2f(0,0); glVertex2d(-(z.x), -z.x);
					glTexCoord2f(0,1); glVertex2d((z.x), -z.x);
					glTexCoord2f(1,1); glVertex2d((z.x), z.x);
					glTexCoord2f(1,0); glVertex2d(-(z.x), z.x);
				}
				glEnd();
				glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
			}
			glPopMatrix();
			glPushMatrix();
			{
				glColor4d(1.0, 1.0, 1.0, 1);
				glTranslated(x,y,0);
				lightMapOutlineTexture.bind();
				Point z = new Point((int)lightMapSize,(int)lightMapSize);
				Point y = game.comp.getDisplay().getCamera().getFOV();
				for(int i = 2; i < (y.x/z.x)+(y.y+z.y)/64; i++){
					glBegin(GL_QUADS);
					
					{
						glTexCoord2f(0,0); glVertex2d(-(z.x)*i, -z.y*i);
						glTexCoord2f(0,1); glVertex2d((z.x)*i, -z.y*i);
						glTexCoord2f(1,1); glVertex2d((z.x)*i, z.y*i);
						glTexCoord2f(1,0); glVertex2d(-(z.x)*i, z.y*i);
					}
					glEnd();
				}
				glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
			}
			glPopMatrix();
		} else {
			glPushMatrix();
			{
				glColor4d(0, 0, 0, 1);
				glTranslated(x,y,0);
				lightMapTexture.bind();
				Point z = game.comp.display.camera.getFOV();
				glBegin(GL_QUADS);
				{
					glTexCoord2f(0,0); glVertex2d(-(z.x), -z.x);
					glTexCoord2f(0,1); glVertex2d((z.x), -z.x);
					glTexCoord2f(1,1); glVertex2d((z.x), z.x);
					glTexCoord2f(1,0); glVertex2d(-(z.x), z.x);
				}
				glEnd();
				glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
			}

			glPopMatrix();
		}
		if(blink){
			glPushMatrix();
			{
				glTranslated(game.comp.getDisplay().getCamera().getX(),game.comp.getDisplay().getCamera().getY(),0);
				blinkTexture.bind();
				Point d = game.comp.getDisplay().getCamera().getFOV();
				glBegin(GL_QUADS);
				{
					glTexCoord2f(0,0); glVertex2d(0, 0);
					glTexCoord2f(0,1); glVertex2d(0, d.y);
					glTexCoord2f(1,1); glVertex2d(d.x, d.y);
					glTexCoord2f(1,0); glVertex2d(d.x, 0);
				}
				glEnd();
			}
			glPopMatrix();
		}
		for(int i = 0; i < (int)(maxHealth/healthBlockQuantity); i++){
			glPushMatrix();
			{
				glTranslatef(game.comp.getDisplay().getCamera().getX()-(i*healthSpace)+(i*healthSize.width)+healthOffset.x, game.comp.getDisplay().getCamera().getFovY()-healthSize.height-healthOffset.y+game.comp.getDisplay().getCamera().getY(), 0);
				if(i < (int) (maxHealth/healthBlockQuantity)-2 && i != 0)
					healthCenterTexture.bind();
				if(i == 0 && health < healthBlockQuantity)
					deadLeftTexture.bind();
				if(i == 0 && health>0)
					healthLeftTexture.bind();
				if(i != 0 && i>(int) (health/healthBlockQuantity))
					deadCenterTexture.bind();
				if(i == (int)(maxHealth/healthBlockQuantity)-1 && health != maxHealth)
					deadRightTexture.bind();
				if(i == (int) (health/healthBlockQuantity)-1 && i == (int)(maxHealth/healthBlockQuantity)-1 )
					healthRightTexture.bind();
				glBegin(GL_QUADS);
				{
					glTexCoord2f(0,0); glVertex2d(-(healthSize.width/2), 0);
					glTexCoord2f(0,1); glVertex2d((healthSize.width/2), 0);
					glTexCoord2f(1,1); glVertex2d((healthSize.width/2), healthSize.height);
					glTexCoord2f(1,0); glVertex2d(-(healthSize.width/2), healthSize.height);
				}
				glEnd();
			}
			glPopMatrix();
			}
		for(int i = 0; i < (int)(blinkVisibleMax/visibilityBlockQuantity); i++){
			glPushMatrix();
			{
				glTranslatef(game.comp.getDisplay().getCamera().getX()-(i*visibilitySpace)+(i*visibilitySize.width)+visibilityOffset.x, game.comp.getDisplay().getCamera().getFovY()-visibilitySize.height-visibilityOffset.y+game.comp.getDisplay().getCamera().getY(), 0);
				if(i < (int) (blinkVisibleMax/visibilityBlockQuantity)-2 && i != 0)
					visibilityCenterTexture.bind();
				if(i == 0 && blinkVisibleFactor < visibilityBlockQuantity)
					blinkLeftTexture.bind();
				if(i == 0 && blinkVisibleFactor>0)
					visibilityLeftTexture.bind();
				if(i != 0 && i>(int) (blinkVisibleFactor/visibilityBlockQuantity))
					blinkCenterTexture.bind();
				if(i == (int) (blinkVisibleMax/visibilityBlockQuantity)-1)
					visibilityRightTexture.bind();
				if(i == (int)(blinkVisibleMax/visibilityBlockQuantity)-1 && (int) (blinkVisibleFactor/visibilityBlockQuantity)< (int)(blinkVisibleMax/visibilityBlockQuantity)-1)
					blinkRightTexture.bind();
				glBegin(GL_QUADS);
				{
					glTexCoord2f(0,0); glVertex2d(-(visibilitySize.width/2), 0);
					glTexCoord2f(0,1); glVertex2d((visibilitySize.width/2), 0);
					glTexCoord2f(1,1); glVertex2d((visibilitySize.width/2), visibilitySize.height);
					glTexCoord2f(1,0); glVertex2d(-(visibilitySize.width/2), visibilitySize.height);
				}
				glEnd();
			}
			glPopMatrix();
			}
		prender();
	}