boolean shootMortar(JSONObject action, int turnsLeft){
	int mortarLevel = 1;
	if(primaryWeapon.equals("mortar")){
	    mortarLevel = primaryWeaponLevel;
	}
	else if(secondaryWeapon.equals("mortar")){
	    mortarLevel = secondaryWeaponLevel;
	}
	else {
	    Debug.warn("User '" + username
			       + "' attempted to shoot the mortar, but doesn't have it");
	    return false;
	}
	try {
	    Coordinate relativeTargetCoordinates = new Coordinate(action.getString("coordinates"));
	    Mortar mortar = new Mortar(this, turnsLeft);
	    mortar.setPosition(this.position);
	    mortar.setTarget(relativeTargetCoordinates, mortarLevel);
	    return mortar.performShot();
	}
	catch (JSONException e){
	    sendError("Invalid shot: lacks 'coordinates' key");
	    return false;
	}
    }