public Brawler(TileMap tm, GameStateManager gsm, Player player, String spriteType, boolean facingRight)
	{
		super(tm);
		this.gsm = gsm;
		this.tm = tm;
		this.facingRight = facingRight;
		this.player = player;
		
		width = 30;
		height = 50;
		cwidth = 20;
		cheight = 40;
		
		moveSpeed = 0.2;
		airMoveSpeed = 0.2;
		maxSpeed = 1;
		stopSpeed = 0.4;
		fallSpeed = 0.20;
		maxFallSpeed = 4.0;
		jumpStart = -5.5;
		stopJumpSpeed = 0.3;
		
		flinchTimer = 100;
		
		health = maxHealth = 10;
		
		punchDamage = 5;
		punchRange = 30;
		punchForce = 3;
		punchReload = 1000;
		
		
		
		
		// load sprites
		try{
			BufferedImage spritesheet = ImageIO.read(
					getClass().getResourceAsStream(
							"/Sprites/Enemies/"+spriteType));
			sprites = new ArrayList<BufferedImage[]>();
			for(int i = 0; i < 7; i ++)
			{
				BufferedImage[] bi = new BufferedImage[numFrames[i]];
				for(int j = 0; j < numFrames[i]; j++)
				{
					if(i != PUNCHING && i != DYING1 && i!= DYING2)
					{// sprites for scratch are 60 px wide, not 30
						bi[j] = spritesheet.getSubimage(j*width, i*height, width, height);
					}
					else if(i == PUNCHING)
					{
						bi[j] = spritesheet.getSubimage(j*width*2, i*height, width*2, height);
					}
					else if(i == DYING1)
					{
						bi[j] = spritesheet.getSubimage(j*width*2, i*height, width*2, height);
					}
					else if(i == DYING2)
					{
						bi[j] = spritesheet.getSubimage(j*width*2 + width*2, i*height - height, width*2, height);
					}
				}
				sprites.add(bi);
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
		animation = new Animation();
		currentAction = IDLE;
		animation.setFrames(sprites.get(IDLE));
		animation.setDelay(400);
		
	}