protected final void useItemOnPlayersPosition(Player player) throws InvalidActionException {
		if (player == null)
			throw new IllegalArgumentException("The given player is invalid!");
		if (!(this instanceof Useable))
			throw new InvalidActionException("The selected item can't be used!");
		if (player.getRemainingActions() <= 0)
			throw new InvalidActionException("The player has no turns left!");
		if (!player.getInventory().getItems().contains(this))
			throw new InvalidActionException("The player doesn't have the item in his inventory!");
		
		getGrid().addElementToPosition(this, getGrid().getElementPosition(player));
		
		player.getInventory().remove(this);
		player.decrementAction();
	}