This is a tool for players to record their [Pigment Laboratory](https://atitd.wiki/tale10/Pigment_Laboratory)
ingredient reactions in [A Tale in the Desert](http://www.atitd.com/).
### Latest Releases
You can find the latest releases at https://desert-paint-lab.malkyne.org/
You can find the latest releases at <https://desert-paint-lab.malkyne.org/>
### Features
* Scans your screen for the Pigment Lab reaction values, without any math, measuring, or manual number entry.
* Warns you when a reaction clipped outside of readable range.
* Supports multiple character profiles.
* Can export to [PracticalPaint](http://www.atitd.org/wiki/tale7/File:PracticalPaint.Zip) data format.
* Includes simulator for experimenting with recipes without spending ingredients.
* Includes a recipe generator
## Tale 11
* Updated for UI changes that were preventing detection of colors clipping above the maximum red/green/blue.
## Tale 10
* Desert Paint Lab is now Desert Paint Codex, and has a whole new UI, for Tale 10.
* Untested reactions are now kept in a list to the left, so you can immediately see what still needs testing.
* The application is updated for ATITD's new UI.
## Tale 9
* New papyrus texture in interfaces
* Earth Light was replaced by Falcon's Bait mushrooms. Practical Paint still uses the name EarthLight internally, so the data files still use that name here as well.
* macOS is now a 64-bit app. Windows remains 32-bit due to incompatibilities with the UI library.
* macOS build does not support Catalina (is not notarized)
### Known issues
* A batcher installed on a Pigment Lab will prevent finding the right part of the screen with the resulting color.
## Directions
### Download Desert Paint Lab
You can always find the available downloads, on [the download page](https://desert-paint-lab.malkyne.org/).
Desert Paint Codex now uses Net Core, instead of Mono. The package should come with everything you need to make it work.
### Set Up a Profile
The first time you run Desert Paint Lab, it will prompt you to make a profile. You may either create a new profile, or import an existing PracticalPaint reactions.txt file.
### Start Testing!
Add two ingredients to your Pigment Lab. Select those same ingredients in Desert Paint Lab. Then, with the Pigment Lab dialog unobstructred, select the **Capture** button. Once you are satisfied with the result, click the **Record** button. The data will automatically be added to your profile.
### Clipped? Huh?
Occasionally, you will see a warning dialog that informs you that a "Reaction clipped." That means that one or more of the color components moved outside of the testable range. This makes it impossible to calculate the reaction from these two ingredients.
You can solve this by doing a three-way test.
1. In your clipped reaction, let's call your **1st** ingredient **A** and your **2nd** ingredient **B**.
1. Select a **non-catalyst** ingredient **C** for which you have already tested **C + A** and **C + B**. It is OK if there was a reaction in those earlier tests. Desert Paint Lab can work out the math.
1. In Desert Paint Lab, select ingredients as follows:
1. **C**
2. **A**
3. **B**
1. Add the ingredients in your Pigment Lab _in exactly that order_.
1. Capture.
1. Record.
For clipped reactions, your **C** ingredient should be one that corrects for the clipped color. Here are some suggested **C** ingredients for clipping correction:
Clip Color | Clip Direction | Correction | Suggested "C" Ingredient
Red | High | -Red | Silver Powder (16) or Toad Skin (48)
Green | Low | +Green | Falcon's Bait (240) or Copper (192)
Green | High | -Green | Red Sand (16) or Silver Powder (16)
Blue | Low | +Blue | Falcon's Bait (224) or Copper (192)
Blue | High | -Blue | Red Sand (24) or Clay (32) or Carrot (32) or Silver Powder (32)
In many cases, it may be easiest to go back and do these three-way tests after you have finished all of your other testing.
### Catalysts
For catalyst to catalyst reaction tests, follow the three-way instructions, as above.
### Finishing Up
When you're done testing your reactions, you can either use the built-in Pigment Lab simulator (`Window > Run Simulator`) to experiment with recipes, without dipping into your precious ingredient stocks. Alternatively, you can export your reactions in PracticalPaint format.
## Generating Recipes
### What do all these settings do?
* _Minimum Ingredients_ is the minimum number of ingredients the generator will use in a recipe. It's best to leave this at 1 so the simple single-ingredient recipes are included (like 10 carrots for 'carrot')
* _Maximum Ingredients_ limits how many ingredients will be used in a recipe. Ingredients after the 5th will still affect the resulting color, but won't use their reactions.
* _Silk Ribbon Recipes_ sets the generator up to create recipes for silk ribbons. Ribbons use a base concentration of 50 instead of the 10 that is used for paint.
* _Maximum Concentration_ is the maximum recipe concentration. Recipes with a concentration above 10 will still produce a single db of paint, but can use larger quantities of ingredients to make smaller color adjustments. Increasing this will increase the time required to search all the possible combinations.
* _Full Quantity Depth_ is the number of ingredients in the recipe that will use up to the "full quantity" value as the limit for those ingredients over the ingredient's maximum.
* _Full Quantity_ is the maximum quantity of any ingredient to use up to the Full Quantity Depth. For example, with a Full Quantity of 15 and a Full Quantity Depth of 3, a recipe could use up to 15 of each of the first 3 ingredients. After that it will be limited by the setting for that specific ingredient.
## Known Issues
### Slowness
If you are running on a multi-screen system, or a very high-resolution screen, you may find that Desert Paint Lab is rather slow in determining paint reactions. That's because you have a lot of screen real-estate to scan, to look for the Pigment Lab dialog. You can speed up the scanning process by ensuring that your Pigment Lab Dialog is as far to the upper-left of the screen as possible. Also see the advanced settings (below) for some additional options that may help.
### Multiple Displays
When Desert Paint Lab asks for the resolution for a multiple-display setup, enter the combined resolution of all displays. Generally the detected default for this will be correct. For example, two 1920x1080 displays in a side-by-side configuration would be a combined resolution of 3840x1080. In a stacked configuration, they would be 1920x2160.
### Retina / High-Density Screens
High DPI screens may be displaying the game at something other than a 1:1 game-pixel to screen-pixel ratio. These screens didn't exist, back when Desert Paint Lab was created. The current version now prompts you for your screen resolution when it starts to work around this. If you see a crash when trying to capture a reaction, it's likely because the resolution is incorrect. For example, Snoerr's MacBook Pro has a retina screen with a resolution of 2880x1800. Mono (and therefore DesertPaintLab) detects it as having a resolution of 1440x900. He enters his resolution as 2880x1800 and sets the Game pixel width in screen pixels to 2.
## Mac user FAQ
Q: How do I find my native screen resolution?
A: You can find it by opening up "About this Mac" from the Apple menu and clicking on the "Displays" tab. That should show the screen size and resolution to enter.
## Advanced Settings
The settings file has several advanced options that are not available in the interface. Some of these are for debugging, while others are useful for improving the speed of finding the pigment lab interface. The settings file is found in AppData\Local\DesertPaintCodex\settings on Windows, and in ~/.local/share/DesertPaintCodex/settings on macOS.
* _scanarea.min.x_ sets the starting horizontal offset when searching for the pigment lab. This is useful in multi-screen setups to skip any leftmost displays. For example, a dual-screen setup with two side-by-side 3840x2160 displays where the game runs on the right screen would set this to 3840 to bypass scanning the left display.
* _scanarea.min.y_ Like scanarea.min.x, but skips the upper section of display
* _scanarea.max.x_ defines the rightmost edge of the area to scan
* _scanarea.max.y_ defines the bottom edge of the area to scan
* _debug.screenshot_ automatically saves out a screenshot when searching for the pigment lab to help in debugging
* _logging.verbosity_ sets the verbosity of the logging between 0 and 3. The higher the value, the more detail is included in the log file.
## For Developers
This application is written in C#, and it uses the [Avalonia UI Framework](https://avaloniaui.net/). You can learn more about getting set up to use Avalonia [here](https://docs.avaloniaui.net/docs/getting-started/).
## Older Versions
The old [Desert Paint Lab repository](https://repos.malkyne.org/ATITD-Tools/Desert-Paint-Lab) is still publicly available, in case anyone wishes to reference the old code, or tinker with it. However, it will no longer be maintained in any way by Afrah.
...
\ No newline at end of file
The old [Desert Paint Lab repository](https://repos.malkyne.org/ATITD-Tools/Desert-Paint-Lab) is still publicly available, in case anyone wishes to reference the old code, or tinker with it. However, it will no longer be maintained in any way by Afrah.