public Player(String s, TileMap tm) {
		
		super(tm);
		this.tiley = tm;
		//width = size of animation/tiles
		width = 30;
		height = 60;
		//cwidth = makes the dragon go kinda into the ground
		cwidth = 30;
		cheight = 50;
		
		moveSpeed = 0.6;
		maxSpeed = 2.0;
		stopSpeed = 0.4;
		fallSpeed = 0.15;
		maxFallSpeed = 4.0;
		jumpStart = -6.5;
		stopJumpSpeed = 0.3;
		
		facingRight = true;
		
		health = maxHealth = 5;
		fire = maxFire = 2500;
		
		screamCost = 200;
		screamDamage = 1;
		screams = new ArrayList<Scream>();
	
		drunk = false;
		hungover = false;
		
		bashDamage = 1;
		bashRange = 64;
		
		// load sprites
		try {
			
			BufferedImage spritesheet = ImageIO.read(
				getClass().getResourceAsStream(s));
			
			sprites = new ArrayList<BufferedImage[]>();
			for(int i = 0; i < 6; i++) {
				
				BufferedImage[] bi =
					new BufferedImage[numFrames[i]];
				
				for(int j = 0; j < numFrames[i]; j++) {
					
					if(i == 0) {
						bi[j] = spritesheet.getSubimage(
								j * width,
								i * height,
								width,
								height
						);
					}
					else if(i > 1 && i < 5){
						bi[j] = spritesheet.getSubimage(
								j * width,
								i * height,
								width,
								height
						);
					} else if(i == 1){
					
						bi[j] = spritesheet.getSubimage(
								j * width * 2,
								i * height,
								width * 2,
								height
						);
						}else if(i == 5){
							
							bi[j] = spritesheet.getSubimage(
									j * width * 4,
									i * height,
									width * 4,
									height
							);
						}
					}
				sprites.add(bi);
					
				}
			}
			
		catch(Exception e) {
			e.printStackTrace();
		}
		
		animation = new Animation();
		currentAction = IDLE;
		animation.setFrames(sprites.get(IDLE));
		animation.setDelay(400); 
		
	}